[Galaxy 3 General] hillbeast:
You are probably already all seeing this coming, and you shouldn't get much of a shock from me saying this, but I'm giving up official development on the Galaxy 3. I'm doing this for a few reasons, but I feel it's necessary to give an official post to my reasoning, and I'll leave the thread open so people can comment or flame me or whatever they wish to do.

So here are the reasons I won't do any more development:

Lack of enthusiasm/inspiration/need to develop

I replaced my Galaxy 3 over a year ago, and since then I've only used it to develop kernel 3.4. It's been sitting without a ROM on it, and a flat battery for a good 90% of that time, and I don't ever pick it up and feel I need to use it, and the reason being is that the devices I've owned/used since then have been massively faster. You have to bear in mind that an ARMv7 core (Scorpion, Cortex A8, Cortex A9) is almost twice as fast per clock than an ARMv6 core, and adding NEON to it makes it even faster, and the Krait core in my new HTC One is almost four times faster per clock, so effectively, the processor in the Galaxy 3, even when overclocked to 800MHz is like my HTC One running at 50MHz (800MHz / 4 for Krait vs ARMv6 / 4 cores). It makes it almost pointless using the device even as an MP3 player when the difference in performance is that great, and when I have no wish/need/desire to use the device, it makes it difficult to develop for it simply because I have no purpose in trying to improve it. It doesn't benefit me directly, and the only thing I gain is the satisfaction of completing something. I tried as hard as I could to find inspiration to work with the device, but when I have to work around a processor made by a company that doesn't care put into a phone by a company that doesn't care (I'll cover this shortly), I just come up not caring myself. Sorry :(

Lack of documentation for the components inside the device

You can argue that the processor is similar to the S3C6440 (in the Spica), and the S5PV210 (in the Galaxy S or Nexus S), and yes it is similar, but not the same. As a result, documentation is non-existent, and you can't use documentation from it's brothers, because they have conflicting information. For example, the GPIOs in the S5P6442 (Apollo) are the same as the ones in the S5PV210, but the GPU and CPU is the same as the one in the S3C6440. If you find something you need to work on, let's say the I2C controller, you're constantly digging through code from the old kernel (basically the only reference material you have) trying to mix and match it compared to kernel 3.4 and see which processor they stole that function from, and sometimes you find it's completely different and it's even MORE of a chaotic mess. I spent countless weekends patching together code on that phone trying to make it work, and I'm surprised I even got kernel 3.4 to show ANYTHING on the screen. Sure it doesn't boot Android, but it's not like it's incapable of doing it. I just need someone smarter than I to carry on from where I left off and finish it. I KNOW it's something missing somewhere that I just don't know about, because I can tell it's wanting to work. It's so close but it refused to cooperate with me and I lack the inspiration to continue with it, and the lack of documentation and quality source code just didn't help.

Samsungs lack of support for the open source community

Say what you will about HTC or Motorola or LG or Sony or whoever, it doesn't matter. You can argue till the cows come home about who is the worst for not helping the community, I don't really care who is worst. I've now owned a device from Samsung, HTC, Sony, Motorola, LG, and Asus, and Samsung is definitely one of the worst. They're not THE worst, they do help somewhat (not locking bootloaders knocks them up a few places), but it's still really bad at the low end. Every company is bad with helping the low end devices, it's just a fact of the Android world. HTC is terrible, Sony is terrible, Samsung is terrible, Motorola is abysmal, it's never going to change. The companies just don't see it as economically viable to help the little phones get updates, but at least a lot of the other companies (Sony for example) at least provide GOOD code in their kernels for you to work with. The whole argument that we NEED kernel 3.0 or 3.4 to make Jellybean work on the Apollo is completely destroyed when you take into account the Xperia Arc S which can run ICS and JB on kernel 2.6.32... the same kernel version in our phone. Sure Sony butchered it a little to get it working, but heck: it works. The problem the Galaxy 3 has is that the code in that kernel is just SO bad. I cringe every time I look at it. Lines of code that are '#ifndef 0'ed out, and blocks of the code that was left in there from a mystical nonexistent revision of the device that never saw the light of day which are referenced all backwards, and the amount of warnings the code throws up when you compile it, it really was made by monkeys. I can see why they refuse to do source drops, because if I made code look that bad, I'd be ashamed to let people see it too.

That's all beside the point though, because all Samsung does by not giving quality code is just hurt the end user. They make the code so ugly the developers can't work with it, and they make the code so broken you have to use the exact right compiler to make it work. I know I needed to use CodeSourcery to compile the likes of G3MOD or Kyorakernel because the Google Toolchain would fail when it gets to the audio drivers. Why? I dunno. Just the way the Google toolchain reacted to the code, but as a result I couldn't use the same toolchain I use for everything else. Yes you can argue the Google toolchain isn't the best, but the thing is: the Google toolchain is what Google wants us to use. It's in the Android repositories for a reason. It's problems like this that make it just frustrating working with this device.

Samsung reputation with the developers is so bad now, it's called big-time developers like codeworkx and Entropy512 to completely abandon the Galaxy S2 and S3 and vow to not buy the S4 with the Exynos processor (i9500?) and instead buy competing devices like the Xperia Z and the HTC One. I agree with them. Samsung are just really really bad with their processors and their relations to developers when it comes to them. The Exynos 4 has so much potential: a 1.2GHz dual or quad core with a fantastic GPU, it's a brilliant chip, but it's held back by terrible code and documentation, and as a result CM10.1 will probably never get a stable release on the Galaxy S2 or S3. I sold my Galaxy S2 in protest of Samsung and I don't regret it. Even my Xperia Arc S was more stable than that Galaxy S2. I've now bought the HTC One. That's how much I hate Samsung these days: they made me take back all I said negative about HTC. I wanted to hate the One but I just can't. It's everything that the Galaxy S4 should have been, and when you have something as well made and easy to work with as this in your hands, it makes working on the broken down disaster that is the Galaxy 3s kernel a nightmare.

I'm sorry to be the bearer of bad news, I won't be selling my Galaxy 3 or getting rid of it. It was my first Android phone, and I'll always remember it for that. It's just a shame I bought the S2 last year because it made the poor Apollo all lonely.