[Galaxy S Plus I9001 Android Development] skywalker01:
Don't worry, everything's fine again, at least until now ;)

Yes, I've already read about the physical/electronic stuff, ie. how the different types are identified. There are also two different types of car kits around, one with an 1K resistor and one with a 365K resistor. First versions of fsa9480 driver only recognized the 1K variant, the Nexus S code already knows both types. That's why I tried that, but it is obviously impossible to use for our phone, see below why.

On NONE stock kernel ! And 2.3.4 is the system version of Android and not the kernel version. See your settings for the kernel version: it's 2.6.35.7 and that's only the base version of the underlying Linux kernel version. ALL kernels of the I9001 use this version of the Linux kernel as Samsung used it to build the I9001 kernel. If you need a metaphor: it's only the chassis, all other parts - and there are thousands of it - of the car can be totally different in the final product as long as they fit somehow and many are definitely different. To divide the kernel versions of the I9001 in detail you must use the stock ROM version (XXKPS for example) with which the kernel comes. With custom kernels it's the name the developer has chosen for it: FeaCore for manveru0's kernel and SkyHigh for my kernel. YardE hasn't named his kernel so it's just called YardE's kernel. And versioning is much more difficult, manveru0 has released more than ten different versions but used only version numbers 1.0, 1.1 and 1.2. Especially FeaCore 1.0 was released in 5 different variants. I try to give it more transparency with my kernel: my first 16 kernel builds were not released at all. Build #17 was named 1.0 and I only released the next two builds (#18 and #19) as versions V1.1 and V1.2 as testing versions. Next version will be V1.3 obviously, but the first attempt on that failed like described above and build #20 was already eliminated.

So there is no open source for any specific stock kernel. There is only one open source kernel for the I9001 (by Samsung of course and no version number at all except for the Linux kernel base version 2.6.35.7) and ALL custom kernels must use this one, so does mine. And it is only a "light version" of any stock kernel. In other words: if you just compile the only available sources like they are the resulting kernel will be different to any kernel out there. Obviously not everything of the stock kernels is included and some parts must be integrated differently, otherwise things like the car kit would definitely work. Only Samsung and perhaps some providers who release customized ROMs/kernels know these differences and they won't tell us obviously.

One more fact: you can change the configuration to integrate some more features and I already did that for some things (like PPP support). I also extracted the config files of some stock kernels (at least this file is included in all ROMS) and compared them to the basic config of the source codes. It were minor things like PP support that were integrated in some kernels and I already added all that options to my kernel (and even more). But many stuff like additional governors, IO schedulers and so on are just not there at all and must be ported from other sources manually. And this is not just adding one or two files like with modules (also see below on that topic). And for already integrated features which don't work correctly like the car kit issue the compiling configuration doesn't do anything about it. Except that you can even corrupt already working features by that. Example: WLAN didn't work anymore with my last configuration changes, so I had to revert these also.

1. it is NOT a module. If it were just a module it would be the easiest thing in the world because you can just exchange a single arm precompiled module (.ko file) by overwriting it with another one in the appropriate locations in /system/lib/. This (/system) is even outside the kernel and anybody with a rooted phone can copy it there, no developer needed at all. BTW: the 3D graphics update works exactly like this ;)

2. it DOES show reaction: but the opposite of the wanted/expected one. Charging doesn't work at all. Reason is easy: the code addresses other hardware (msm tuna board) which is in the Nexus S but not in the SGS+. But we also have a msm board (ariesve) so I hoped this might be a little bit compatible and could work eventually after integrating and modifying some more components/procedures of the tuna board. But it doesn't work at all with ariesve board.

These are good news, work is in progress :D