Source for sbin/init - Galaxy S I9000 Android Development

Hi,
I've followed various posts on here and have managed to compile and install my own kernel build. I am using the leshak initramfs and would like to be able to modify the init executable that lives in the sbin folder.
I've had a search around and can't work out if there is any source code available to build this or if it just pulled directly from the device. Can anyone confirm if and how it is possible to build this executable?
Thanks in advance,
Jamie

Theres no source from Samsung available.
You can try official android sources:
http://android.git.kernel.org/?p=pl...dc717ed167482c09f342730f1c1f64b90d19c;hb=HEAD

Related

[Q] Can we compile a working firmware with the Samsung source?

Pretty much as the title suggests. If not, where do I find a kitchen that works?
Nobody? How about kitchens?
Pretty much
But if you would set everything up and run the build_kernel.sh script, you would end up with a 2.5 MB zImage, which is almost half the size of original zImage. This is beacuse initramfs is not available. I am not sure about the consequence of flashing this.
You can initramfs for i9000 from LeshaK's github. Though you'll have to modify the script not to replace the downloaded .config with the defconfig for aries_rev03.
Wow, finally another DEVELOPMENT question!
Keep it up!
Now for my answer: I'm working on a kitchen, have the extract / mod part mostly done, now working on initramfs extract / mod / repack (without the need to compile the kernel!) and repacking everything for flashing.
I hope to come up with something where you can start with any existing rom (different from some kitchens which are based on a particular version), mix and match apps and features compatible with that rom, then cook it for flashing either straight from Odin or installing from an update.zip.
Search in Google for
SamdroidMod Kitchen All in One for Samsung Galaxy S i9000
Does the Samsung source distribution include all the drivers or are some binary only?
snaff said:
Does the Samsung source distribution include all the drivers or are some binary only?
Click to expand...
Click to collapse
Sources included
ykk_five said:
Sources included
Click to expand...
Click to collapse
Just be sure to get the most recent sources. An older zip I had still had only binary blobs for the graphics kernel module, but they have now been GPL'ed. Joy!

[Request] tun.ko for kernel 2.6.32.15-ge2fb08e

Will someone please make a tun.ko for the new released kernel or send links on how to and the tools needed? Thanks in advanced.
until HTC releases the source for kernel 2.6.32.15-ge2fb08e
we can not compile a "Real" tun.ko
I modified the version string on the current released code 2.6.32.15-g746f4f0 to ge2fb08e and am compiling it right now.
This will allow it to load and as long as there are no major changes in the kernel it could work for you. It will at least load so you can test it.
I will up load it as soon as it is done compiling
Bill Tedeski
dwertz said:
Will someone please make a tun.ko for the new released kernel or send links on how to and the tools needed? Thanks in advanced.
Click to expand...
Click to collapse
That would be great. Thank you
btedeski said:
until HTC releases the source for kernel 2.6.32.15-ge2fb08e
we can not compile a "Real" tun.ko
I modified the version string on the current released code 2.6.32.15-g746f4f0 to ge2fb08e and am compiling it right now.
This will allow it to load and as long as there are no major changes in the kernel it could work for you. It will at least load so you can test it.
I will up load it as soon as it is done compiling
Bill Tedeski
Click to expand...
Click to collapse
to build it yourself
you can get instructions for an android build system here
http://source.android.com/source/download.html
download the source from HTC http://developer.htc.com/
you will need a .config file should be /proc/config.gz on your phone, uncompress and rename to .config
http://code.google.com/p/android/issues/detail?id=3803
you will need to setup your path to include the build environment you download from source.android.com I will put mine at the end of this
edit the Makefile and change EXTRAVERSION = .15-ge2fb08e to contain version string you need
do a make modules
as long as the kernel has not changed to much from the base source HTC has provided it should work.....
I added the folllowing path statements to my .bash_profile
PATH=$PATH:$HOME/bin
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/arm-eabi/bin/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/arm-eabi/lib/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib32/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/libexec/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/share/
PATH=$PATH:/user/lib/gcc/i686-redhat-linux/4.4.4./libgcc.a
dwertz said:
Will someone please make a tun.ko for the new released kernel or send links on how to and the tools needed? Thanks in advanced.
Click to expand...
Click to collapse
Tun.ko vermagic=2.6.32.15-ge2fb08e
the attached tun.ko is build from the released HTC source with the version string changed to ge2fb08e
as long as the kernel has not changed much on the leaked kernels this should load and work
[[email protected] net]$ strings tun.ko | grep magic
vermagic=2.6.32.15-ge2fb08e preempt mod_unload ARMv7
You are awesome. Thanks
update - The tun.ko does work so it looks like the leaked kernel did not change much.
I will try and learn how to make one. I have ubuntu in vmware to use. Does this have to be a linux box or can it be done on a MacOSX?
Do you have the cifs.ko and nls_utf8.ko for 2.6.32.15-ge2fb08e?
I am trying to get cifs working on my evo.
Never mind. Thanks for everyone's help.
Here is what I did to get the cifs.ko and nls_utf8.ko (from here http://forum.xda-developers.com/showthread.php?t=754793) to work for my kernel.
I took the cifs.ko and nls_utf8.ko created by "snq-" and used a hex editor to edit the kernel number to match mine.
That was all, no re-compile needed. then I followed the rest of the steps laid out by snq- to install the files and test them.
Lastly I installed CifsManager which is available on Market and everything worked.
I am able to connect to my network only locally. Comcast seems to be blocking ports so I cannot access smb from outside my network.
please post link for cifs.ko
If you have a working cifs.ko for this kernel, please post a link!
Thanks!
Any Suggestions
Any where else to go for a tun.ko for ge2fb08e? I've almost exhausted my searching. Thanks!
i am trying to set up OpenVPN on my Evo with the same ge2fb08e kernel version. i installed the pre-requisites, but do not have the tun driver. can you send me a copy of the tun.ko zip? TheEdge88
SR, You can download the tun.ko file in the previous post, but you need to post 9 more times before you can access it. It worked for me and now I can connect to the OpenVPN server. I think I still have a problem with routing though.

[REF] Source code: Unified git repo for GT-I9000 Gingerbread kernel source

Here we go
Common gingerbread-samsung git branch for all of us
This branch contains the fixed Gingerbread source (compiling and working) everyone of us may use as reference git repository.
Fixed in this source:
- all cleaned up gitignores
- missing FSR in Makefile
Take also a look at the updated README.txt that will explain you how to compile and get it working with modules
Also: makes sure you disable, in .config:
[*] Automatically append version information to the version string in menuconfig or CONFIG_LOCALVERSION_AUTO in .config
It will help each developer to exchange patches easily because of the common starting point.
bilboa1 said:
What supercurio means, is that he's offering to have a common GIT repository for the official Samsung kernel of the GT-I9000 (and similar phones).
The GIT tree would contain only Samsung drops and possible other upstream fixes/changes (the kernel being loosely based on the Nexus S kernel, there's at least Samsung and Google as different upstream), as well as bug fixes. No new features etc except maybe Voodoo.
The advantage of that is that the ones not using GIT yet could fork it and make their own kernel variation on a STABLE base. They could also issue pull requests for fixes they made, which would profit everyone. That's the open-source spirit and way of doing things efficiently by the way.
Note that the current GIT already contains fixes for compiling and using Samsung's GB sources with Samsung's firmwares (and binary modules).
I certainly support this idea.
Click to expand...
Click to collapse
How you can fork this repository:
- clone it via github directly
or, if you prefer keeping only this gingerbread branch directly, on your dev computer:
Code:
git clone git://github.com/project-voodoo/linux_gt-i9000.git -b gingerbread-samsung
cd linux_gt-i9000
git remote rm origin
git remote add origin git://your-new-remote-repository.git
git remote add common git://github.com/project-voodoo/linux_gt-i9000.git
This way, for people re-using Vodooo sound for example, it will be as easy as:
Code:
git fetch common
git merge gingerbread-voodoo-sound
If you have more idea of collaboration like that, express yourself
FAQ:
Q: Bleh! I hate this Kernel/ directory.
A: Yes, this was the case for the original commits but now it's a standard Linux repository with everything on its root.
But it didn't worked as expected, so I had to make the change, sorry for the inconvenience to the early adopters.
Q: What happens when Samsung update their source code tarballs
A: I'll update the common git repository accordingly (hopefully fast enough for you)
On your side, all you'll need to do will is.
Code:
git fetch common
− or git fetch git://github.com/project-voodoo/linux_gt-i9000.git
git merge gingerbread-samsung
Say good bye to messy tarballs!
PS: if you're looking to initramfs, take a shot at https://github.com/project-voodoo/samsung_initramfs − contribution welcome.
Good idea, I second that, it will be easier
wrong link
Github reads http://project-voodo.org/
What supercurio means, is that he's offering to have a common GIT repository for the official Samsung kernel of the GT-I9000 (and similar phones).
The GIT tree would contain only Samsung drops and possible other upstream fixes/changes (the kernel being loosely based on the Nexus S kernel, there's at least Samsung and Google as different upstream), as well as bug fixes. No new features etc except maybe Voodoo.
The advantage of that is that the ones not using GIT yet could fork it and make their own kernel variation on a STABLE base. They could also issue pull requests for fixes they made, which would profit everyone. That's the open-source spirit and way of doing things efficiently by the way.
Note that the current GIT already contains fixes for compiling and using Samsung's GB sources with Samsung's firmwares (and binary modules).
Forking in git hub is VERY VERY easy btw.
I certainly support this idea.
Awesome! - I also support this idea
United Galaxy S Developers
Nice idea! Perfect spirit of open source
I hope good things come out og this.
Great move Supercurio - once again !
Simply awesome men
Will the github include the multitouch fix(SGS only using two fingers rather than multiple fingers) that affects Google Maps rotation?
pikachu01 said:
Will the github include the multitouch fix(SGS only using two fingers rather than multiple fingers) that affects Google Maps rotation?
Click to expand...
Click to collapse
The gingerbread-samsung branch promoted here will only contain Samsung kernel sources and won't interfere with other developers modifications.
Only exception is if this source is broken and needs something to work, like nikademus's patch: https://github.com/project-voodoo/linux_gt-i9000/commit/6c8f989f58999770d23236bb172c3a4e1c80586b
It seems that JVK and JVB was pulled from Kies because of an update problem. Looks like we're going to have new ROMs to play with in a week or two (maybe less)
Edit: What about the SSL fix (http://forum.xda-developers.com/showthread.php?t=1040005)
Great, good idea. That's how community development should work!
zorxd said:
Great, good idea. That's how community development should work!
Click to expand...
Click to collapse
Agreed! Thanks for getting things started Supercurio! Now I have to start making a Vibrant branch.
Any chance this code will boot with preempt enabled? Does the MTD driver work with the OneNAND partitions like the NS code does? I'd kind of like to get away from FSR/RFS and such....
Still cloning...
ttabbal said:
Any chance this code will boot with preempt enabled? Does the MTD driver work with the OneNAND partitions like the NS code does? I'd kind of like to get away from FSR/RFS and such....
Still cloning...
Click to expand...
Click to collapse
The code has many similarities with Nexus S one (build from it IMO) and is preempt too
Just a note, I had to edit the Makefile to set the crosscompile variable to the right path
Question: is the generated zImage flashable through ODIN? Don't we need to add the initramfs?
supercurio said:
The code has many similarities with Nexus S one (build from it IMO) and is preempt too
Click to expand...
Click to collapse
Excellent! I just did a defconfig to check it out and saw the preempt in there.. Nice to see Samsung fixing things up a little. Now I need to get a GB ROM to install so I can try to boot.
Thanks again. I'll send a pull request when I have a Vibrant branch ready. Going for minimal modifications, fix touch button mapping and such. People can add whatever they want after that. Now I need to learn the new code tree... wheee! Hopefully the basics are the same, getting the changes into an i9k froyo kernel is pretty easy.
zorxd said:
Just a note, I had to edit the Makefile to set the crosscompile variable to the right path
Question: is the generated zImage flashable through ODIN? Don't we need to add the initramfs?
Click to expand...
Click to collapse
You will need an initramfs... anyone have a default one we can start with for 2.3?
zImage will have to be in a TAR file to flash with Odin. Heimdall can flash a bare zImage, as can the SGS Kernel Flasher tool for Android.
Oh... think I saw a setting in "make menuconfig" for the cross-compiler prefix. Might be able to avoid Makefile mods....
Sorry for the newb question, but how do we generate the initramfs? I guess we could take the one from stock JVB. But how do we extract it and how do we combine our compiled kernel with it?
On a side note, I noticed that CFQ is the default scheduler. Isn't it better to use No-op for flash memory?

[Q] Compiling and Porting Native Applications and Libraries to Android

Hello, I would like to add libusb library to my Nook Simple Touch. I read few documents how to port and compile it. As it seems to me there are two options:
1.Putting your sources into the Android source tree and compiling them with the Android tool chain.
I'm new to this and my questions may sound stupid but I don't want to mess things up.
I found only NTS kernel source, but which android source tree I need to use and where to find it?
2.Compiling your sources statically with another tool chain.
Do I need to use Android NDK?
Is it possible to make an update zip containing ported library?
I need some directions for further reading. Thank you! Best regards, Andy

building from source

Hi,
Amazon release source code as is required by GPL. That is great but to reproduce a binary needs compiler information.
All the stuff I find here on modifying these devices seems to be based on downloading someone else's binaries and hoping they are clean and actually relate to the OS version I have. This info does not always seem to be provided.
If I want to build busybox and su using gcc and copy them across using adb , where can I find the required build info ?
I guess guys here building ROMs must be doing this.
Thanks.

Categories

Resources