[Q] Android build questions - Desire Q&A, Help & Troubleshooting

Been using st0kes' thread (http://forum.xda-developers.com/showthread.php?t=709105) and have checked out the AOSP tree, and build a ROM from it that boots on my phone, however....
How do I get the build to stop including things like the recovery image (rather than deleing the folder from the final zip)?
How do I get the build to include additional repo's, such as superuser?

I attempted to follow the guide myself, but when it comes to the command :
source build/envsetup.sh
I just get a "Bash: file not found"
But i don't know anything about the recovery...have you tried the cyanogen wiki?
Josh.

sounds like you're not in the correct folder..
Anyway, in answer to my original question... I found some useful posts on http://howto.ccroms.net/:
http://howto.ccroms.net/android_project/build/mod/recovery
http://howto.ccroms.net/android_project/build/mod/busybox
and
http://howto.ccroms.net/android_project/build/mod/root
I've got Superuser.apk / bash / busybox included, and my compile box is running with the changes from the /recovery howto now (Thank God for 24 core boxes, it compiles a full otapackage in ~10-15 minutes!)

Related

Flashing Galaxy S kernel from update.zip : template update.zip

NEWS :
Koush's bmlunlock (a simple IOCTL send to the bml device) is just out and can replace redbend_ua !
http://github.com/CyanogenMod/android_device_samsung_bmlunlock
Hey
Is Flashing from update.zip the new trend ?
'Don't know but here is how you can do it quite easily using this template.
If you target a GT-I9000 on Eclair, you'll need to customize one thing :
In build-update-zip.sh, set DROID_HOME to the source code path for your local Android repository.
If you target another Galaxy S phone or another version of Android, you'll need to adjust ro.hardware and ro.build.id properties accordingly.
This template is done for Linux/Unixes/OSX.
If Linux cost too much for you or your employer, please contribute by sending a .bat equivalent to the .sh
Of course, you also need to put a valid zImage to replace the template's empty zImage
Feel free to adjust to your needs. License is WTFPL
Note : requirement are Java and Android source repo, already build.
Looks awesome!
I have a question though... why do you need to flash the kernel in an update.zip at boot?
As far as I know, the system will read the kernel at boot up time and load it into ram. It won't access the on-disk file again until the next boot. If that is true, then flashing while running should be 100% safe, right?
RyanZA it's an update.zip, not a ramdisk.
The point is getting an easy flashing method, requiring no computer.
And you don't even need to root your phone !
curio, as i see this script is quite simple, so dont u think this all could actually be done on the phone directly? i mean if people cant afford a linux machine...
edit:
sorry for major dumbness, but do you think this could also somehow be used to reflash a nandroid backup?
FadeFx said:
curio, as i see this script is quite simple, so dont u think this all could actually be done on the phone directly? i mean if people cant afford a linux machine...
Click to expand...
Click to collapse
I don't think the signing tool works on android -- maybe it does? Anyway editing scripts on a phone seems a bit silly!
FadeFx said:
curio, as i see this script is quite simple, so dont u think this all could actually be done on the phone directly? i mean if people cant afford a linux machine...
edit:
sorry for major dumbness, but do you think this could also somehow be used to reflash a nandroid backup?
Click to expand...
Click to collapse
Nope actually this is not dumb at all
Yes the flashing part run in updater-script can be started manually.
In the script :
Code:
"redbend_ua", "restore", "zImage", "/dev/block/bml7"
The update.zip presented here mainly targets custom kernel creators in order to give them another way to distribute their work.
This is a working example of how to use redbend_ua programmatically, hopefully it may help new ideas coming. redbend_ua usage is not limited at all to kernel flashing.
PS : you can use this template with windows as well, you'll just need to translate the ulta-basic .sh to a .bat script, or do the signing part manually.
supercurio said:
Hey
If you target a GT-I9000 on Eclair, you'll need to customize one thing :
In build-update-zip.sh, set DROID_HOME to the source code path for your local Android repository.
Click to expand...
Click to collapse
quick question, the build-update-zip.sh is not a must if i only want to flash zImage, rite?
looks like that, I need to modify updater-script (if needed), as well as putting a zImage into ur zip file, and finally remove the build-update-zip.sh from ur zip attached
then, ur zip file can be used for flashing
is it correct?
thx
So this will let people flash any rom from an update.zip (once the ROM makers take this into account) via RomManager without ever having to use Odin to get off stock?
Awesome!
Thanks for the update script curio! this looks great.
One quick question - ive noticed several update.zip scripts for the galaxy S
have update-binary included.
Does anyone know what that does?? where did you get yours?
ive had success in using update.zips without that file at all.
Could anyone post information on what that binary is/does?
supercurio said:
Hey
Is Flashing from update.zip the new trend ?
'Don't know but here is how you can do it quite easily using this template.
If you target a GT-I9000 on Eclair, you'll need to customize one thing :
In build-update-zip.sh, set DROID_HOME to the source code path for your local Android repository.
If you target another Galaxy S phone or another version of Android, you'll need to adjust ro.hardware and ro.build.id properties accordingly.
This template is done for Linux/Unixes/OSX.
If Linux cost too much for you or your employer, please contribute by sending a .bat equivalent to the .sh
Of course, you also need to put a valid zImage to replace the template's empty zImage
Feel free to adjust to your needs. License is BSD anyway.
Note : requirement are Java and Android source repo, already build.
I'll add some documentation later.
Click to expand...
Click to collapse
dseo80 said:
Thanks for the update script curio! this looks great.
One quick question - ive noticed several update.zip scripts for the galaxy S
have update-binary included.
Does anyone know what that does?? where did you get yours?
ive had success in using update.zips without that file at all.
Could anyone post information on what that binary is/does?
Click to expand...
Click to collapse
Thats for the updater-script i believe. In most cases, theres a update-script in the zip's as well and the recovery picks that up in which case it doesn't need the binary and hence works.
Okay !
Answers hour
ykk_five said:
quick question, the build-update-zip.sh is not a must if i only want to flash zImage, rite?
looks like that, I need to modify updater-script (if needed), as well as putting a zImage into ur zip file, and finally remove the build-update-zip.sh from ur zip attached
then, ur zip file can be used for flashing
Click to expand...
Click to collapse
When you run ./build-update-zip.sh,
- it produce a temp zip file containing appropriate files in it.
- then there'is the signature part, building another .zip, ready to be used.
- this "final" update.zip is put in the same current directory and you can use it as it is.
No further complication
Brantyr said:
So this will let people flash any rom from an update.zip (once the ROM makers take this into account) via RomManager without ever having to use Odin to get off stock?
Awesome!
Click to expand...
Click to collapse
Yes, to flash a complete ROM (several partitions) one more thing is needed.
On command line, redbend_ua accept only one command.
In order to run several commands successively (ie flash multiple partition like Odin does), you'll need to write them in a file.
The file /cache/ota/command should do the trick, but it's untested right now.
There may be other method to prevent rebooting after flashing (hacking the redbend_ua binary, finding the appropriate command line option or removing the reboot command temporary)
dseo80 said:
Thanks for the update script curio! this looks great.
One quick question - ive noticed several update.zip scripts for the galaxy S
have update-binary included.
Does anyone know what that does?? where did you get yours?
ive had success in using update.zips without that file at all.
Could anyone post information on what that binary is/does?
Click to expand...
Click to collapse
Right, many update.zip done today are made without knowing anything about how it really works
I studied a bit before creating mine, here is a walk-through this fairly undocumented process :
- recovery mounts /sdcard/
- recovery search for a default file named : META-INF/com/google/android/update-binary in the zip and runs it : see the source in bootable/recovery/install.c
- update-binary is actually updater in sources
- updater looks into the zip file to the script file named updater-script, update-script is obsolete
- updater then runs the commands listed in updater-script : here is the list of commands.
- then reboot
The only documentation I know for this command is the recovery/updater/install.c file itself
supercurio said:
When you run ./build-update-zip.sh,
- it produce a temp zip file containing appropriate files in it.
- then there'is the signature part, building another .zip, ready to be used.
- this "final" update.zip is put in the same current directory and you can use it as it is.
Click to expand...
Click to collapse
ok,thx
but one more thing i want to know is, u said the path must be changed to the android repo, so do u mean the source code for the kernel like linux-xxx-2.xxx dir?
Thx
@ykk_five
Content of build-update-zip.sh v1 :
Code:
#!/bin/sh
DROID_HOME="/home/curio/dev/mydroid"
zip -r /tmp/update.zip META-INF/ redbend_ua zImage
java -jar \
$DROID_HOME/out/host/linux-x86/framework/signapk.jar \
$DROID_HOME/build/target/product/security/testkey.x509.pem \
$DROID_HOME/build/target/product/security/testkey.pk8 \
/tmp/update.zip update.zip
rm /tmp/update.zip
adb push update.zip /sdcard/
DROID_HOME="/home/curio/dev/mydroid" : you set here the directory of your Android AOSP directory.
See : http://source.android.com/source/download.html
Create an empty directory to hold your working files:
$ mkdir mydroid
$ cd mydroid
Run "repo init" to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
* If you would like to check out a branch other than "master", specify it with -b, like:
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
Click to expand...
Click to collapse
This is this mydroid directory
The one that contains Android git source home directory, and compiled files in the out/ subdir
many thx for ur detailed explanation, supercurio!
Thanks curio,
very helpful explanation!
Thanks supercurio for the template!
However, there is no need to spend many hours (depending on hardware and bandwidth) pulling down 100s of megabytes of source and compiling it all if all you want is to sign an update.zip with test keys (if you already have the zImage)!
Just google around for "signapk.jar test keys" and you will get there.
BTW: I know that koush, leshak and wesgamer have Samsung Galaxy S trees up at Github but are they fully merged with AOSP yet?
I'm planning to go build my own kernel for this beast to try to solve the mono FM radio mystery, but last time I checked around it was said that the SGS tree required the use of a custom toolchain to get it to work at all.
Any comments on this?
Hey miki4242 !
Good to know that signapk.jar doesn't require hundred of megs of dependencies
About toolchain, you can use the one indicated by Samsung (CodeSourcery) but you'll face the big and ugly WakeLag.
I recommend you crosstool-ng or buildroot to build toolchains, with gcc 4.3.x march=arm mcpu=cortex-a8 mtune=cortex-a8 (no 4.4.x with march=armv7-v)
The building tutorial will be a part of the documentation I'll publish with my lagfix opensource release
Right now these info are too hard to find.
PS : I send you a mail with attached .config for ct-ng !
supercurio said:
Hey miki4242 !
Good to know that signapk.jar doesn't require hundred of megs of dependencies
Click to expand...
Click to collapse
supercurio said:
PS : I send you a mail with attached .config for ct-ng !
Click to expand...
Click to collapse
Thanks for the info !
Sorry for my ignorance, but does this mean someone can package Froyo in an update.zip and we could update it directly on our phone without needing Samsung Kies or Odin?
@supercurio:
Thanks for this well working template.
In updater-script:
Code:
line 17: package_extract_dir("zImage", "zImage");
should be
Code:
package_extract_file("zImage", "zImage");
But it did work with package_extract_dir, for some reason, too.
Btw, could you send me the config for ct-ng ?
I'm also struggling with this wakelag.

[How To] [GSM] Getting started with porting

Ok, so after having a million questions I thought I'd write up a quick little 'how to' with regards to porting.
And now the warning
Read and learn first, doing this could cause serious issues with your tab or even brick it. The tab is really tough, and hard to brick if you do everthing right but it could still happen. I'm not responsible if it does.
Where to start
Get good at reading, google searching and searching XDA. Lots of porting discussion regarding other phones can apply to the tab.
Learn to use Heimdell
Have a linux distro available, either by virtual box, or natively.
Technomancer where it all began
I've said it before and I'll say it again, without techs work miui wouldn't have been possible.
Reference technomancers thread here: http://forum.xda-developers.com/showthread.php?t=931857 on how to download the cm7 + sgt source, you're also going to want to follow the kernel making part, cause most likely you'll need to make adjustments to the init.rc which is inside the initramfs and requires building the kernel again.
porting x build
Get X build onto your computer and extract the update.zip for it.
Copy the boot.img into your linux environment and extract it using splitbootimg.pl script (note: Google it, plus this doesn't work with samsung builds). Compare the init.rc to your init.rc (from the sgt cm7 kernel source root folder). Specifically the most important part here is the PATH, LD_LIBRARY_PATH statement and BOOTCLASSPATH lines.
Build your kernel with the updated init.rc and flash with heimdell, it should still boot your cm7/miui build (if you were running it before) albeit with errors.
The system
Now following the awesome list of proprietary files (either from your source folder or technomancers github link) check the galaxytab-common-vendor-blobs.mk for the GT-P1000. It lists every file you need that's propreitary to the tab and where to put it.
Also you'll probably need the debuggerd from /system/bin on the cm7 build.
Compare the /system/build.prop of the cm7 build to your port, make sure the ril info is the same as well as the ro; model, brand, device, board, and platform lines.
Create an update.zip (or whatever you want to call it.zip) and try it.
It's not booting
Logcat is great, but I really suggest using the ddms from the android sdk tools. It's color coded, and gives a much nicer view of what's happening.
Using winmerge in windows or a linux file compare program start checking what other bin files may be missing that you require. Special notice to the xbin folder.
It works! I want to post it!
Ok, first up, make sure you have permission if this is someone elses custom build you've ported. Most people/groups are really good about it assuming you ask first and give them credit in your post.
Also credit everyone who helped, answered a question or sent you in the right direction. (it's just polite)
Second your going to want to make sure your update.zip flashes the kernel, read the update_script from the cm7 build to understand how it works.
So that's it for a start. roll up your sleves, gather your courage and get to it!
Please if you have other tips, add them to the thread, what's better 1 or 2 'developers/porters' or 100?
Thanks. This is very useful for me.
Thanks,
Following this method, with slight alterations to adjust, I was able to port an i9000 phone build to the tab in about 10 minutes, it's really not terribly that difficult once you have the right steps.
The first couple times are usually frustrating but after that you get the hang of it
Hi mssmison Thank you for your guide,it will be very useful in the future! I have only one request,how can I contact you? I have a proposal for you about a dev team (regarding an old think tank)
Thanks for the guide...
Is there any ROM left to port by the way?
Sent from my GT-P1000 using XDA Premium App

5/6 <DEV> [WIP] {ROM} 'AOSEP' Community Development "Build your own cm7/cm9/?"

5/6 <DEV> [WIP] {ROM} 'AOSEP' Community Development "Build your own cm7/cm9/?"
AOSEP V2.5​
Android Open Source Education Project​See post #191 for updated scripts
By following these instructions and/or using this set of files, you
proceed at your own risk. Under no circumstances would you hold
dizgustipated or anyone, except yourself, responsible for any negative consequences.[/COLOR][/I][/B]
################
***********************
################
I came across a "new" way of thinking over on a different thread, and have decided to adopt it.
I will still be developing and releasing roms,
but
Basically, I want to get you more involved in developing.
Allow you the chance to learn, contribute, and take pride in your accomplishments.
Possibly further the development of android, and see a whole new world open up to you.
That's why and how I got into developing. In was very curious, and unhappy with current rooms and update frequency. Or just with features available.
see post 2 for more info on the philosophy
I'd like to share a little script I found, and modified (with permission, and is still a work in progress) to automate the sync/build/package cycle, and to push the XDA community to get involved on a deeper level.
This whole process is designed for the latest stable Ubuntu (10.04/11.10), though it might work with Debian as well (or even other distros, if you have all the prerequisites already installed).
Alternatively, on tbe last post, you will find a handy script that gives a good shot at automating the whole prerequisites ordeal.
Place it in your root directory, navigate to it in terminal and type
Code:
Code:
sudo ~/installer.sh
Any brave souls willing to try?
I know you're impatient to get started, this script also contains a little guide, so check it out. I haven't had much opportunity to test this script because it takes so much time to start from scratch, so please help me out!
As of now, I have made many full builds this way, as well as a few incremental updates. Feel free to modify the MIT-licensed script. There are two time-consuming steps (4 and 6), so I'd recommend planning accordingly. Also make sure you have plenty of space on your disk; my working directory currently contains about 23GB.
0. I prefer you to start from scratch, (we want a clean start) as follows:
1. Make a folder for all your Android-building needs.
In your home directory, make a folder called "android"
Code:
Code:
mkdir android
and drop the text file in there, (in the new "android" directory, named Makefile (with no extension).
(Alternatively, you can open the make file, and edit the repo init to your preferred sgt7 repo sourcecode. Also, if you change repo address, you will need to make Bacon, instead of make package.)
Then open your favorite terminal app and navigate to that folder.
Code:
Code:
cd android
2. If you don't have any of the tools installed yet, and you're on Ubuntu, do this:
Code:
Code:
sudo apt-get install build-essential
sudo make apt
3. Initialize your working directory:
Code:
Code:
make init
4. Fetch the source code:
Code:
Code:
make sync
nb: It might take a while to fetch ~5.7GB of code off the Internet, depending on your connection. It might also hang, in which case you gotta stop the process, and retry (make sync) until you have everything. When you retry, you might want to do `make sync J=4` to reduce the concurrency. If it then complains about corrupt repositories ("not a repository"), you must delete the corrupt repositories and retry. You'd know it's frozen if "Fetching projects" does not progress for a minute or so.
(after a sync, seeing:
if ! grep -q "<stddef.h>" /home/diz/android/system/external/mesa3d/src/glsl/linker.cpp; then \
sed -i '1i #include <stddef.h>' /home/diz/android/system/external/mesa3d/src/glsl/linker.cpp; \
fi
is normal, it is patching so you can build)
5. (This step is done for you in the sync)
Alternatively, if you are looking to get deeper into dev-ing, you can back up the files, boot into CM7 and do the following to start making your own device files.
Plug in your SGT7 via USB, boot into CM7/BOCA RC1, and make sure debugging is enabled... to get some vendor-specific files (proprietary bits from Samsung and prebuilt bits from CyanogenMod):
Code:*
Code:
make vendor
*This will overwrite my device files, if you do not wish to do so, move on to the next step.
6
Build that stuff:
Code:
Code:
make build
This takes a while, depending on your hardware... perhaps a few hours. It's best to do this step overnight.
*if you error out in the build on: android_reboot.c, download THIS and replace the file already in android/system/system/core/licutils(android_reboot.c)
7. Save a snapshot for later:
Code:
Code:
make snapshot
This is actually required for the next step. But don't worry: snapshots are incremental, so they don't use too much space; and it's safe to remove any snapshot except "current".
8a. Package it up:
Code:
Code:
make package CLEAN=1
Check the snapshots directory for your shiny new update.zip
8b.Or simply make Bacon.
Code:
make bacon
9. It's even easier to keep your source up-to-date:
Code:
Code:
make sync
make build
make snapshot
make package CLEAN=1
(unsigned)
or
Code:
make package CLEAN=1 SIGN=1
(signed)
Or
Code:
make bacon
This makes a GSM P-1000 flashable zip, you can easily exchange the zImage for a L or N kernel, in the zip, & then flash in recovery after clearing user data, dalvic cache and cache then flash ICS gapps
10.
Be joy full and post a screen shot or a build.
11.
Continue developing/contributing to the android community
... and don't forget to thank FatTire and inportb for allowing me to alter and post this script, which made this possible
5/6
Reserved for instructions on how to use different sourcecodes
And things of that nature.
What works if you start building here:
The beginnings of the stuff that makes it BOCA, which include:
auto beagleboard patch
auto cherry pick of cyanogen vold that allows the use of the 4th vold partition (this has been merged)
A bit more HW accel
better video playback in YouTube and your movie files.
better quadrant score
better linpack score
address space layout randomization, as part of the install
WIFI (but takes a long time for the first connection)
Bluetooth
GPS
Accelerometer
Gyroscope
Light
Magnetic field
Orientation
Battery stats
Sound and sound recording
root
a bit of HW acceloration
better video playback (encode/decode)
recent apps button
Auto rotation (for launcher rotation, enable it in CM launcher)
Gallery
Flash
DSP Manager!!!
USB pc trickle charge
Market
Voodoo Sound
sdcard mounts are: internal (sdcard) and emmc (external sd)
USB PC mounting
NOT WORKING SO FAR:
Phone?
Things may/may not be added at some point in the future. You should have no expectations that they will. Anyone who asks for an ETA for something or other gets collectively stoned by the crowd.
Hopefully this project will push some to help fix a few things, as all that is on the NOT WORKING list is NOT WORKING in all and any SGT7 CM9 ports
DO NOT POST BUGS!!!!
ONLY POST "FIXES, OR THINGS THAT HELP FURTHER DEVELOPMENT
THANKS:
JT1134
Fattire
inportb
Spacemoose1
Teknomancer
Github
AOSP
Google (both its search engine and os)
Especially all the sgt7 tab developers
& all android Developers
This list could go on forever!​
Diz, you did it again. Cheers.
Sent from my GT-P1000 using xda premium
massive thread update
REMEMBER, this is still a WIP
We are so lucky to have you here diz. I will send my fourth donation to you at the end of this month! Thank you for educating us so we can learn how to contribute. I would not be surprised if this will be adopted by the whole XDA-community.
EDIT: Happy birthday!
EDIT 2: Is this related to the repo problem at the top of post #1? http://pastebin.com/Hb5rAUFr
Sent from my GT-P1000 using xda premium
stekarson said:
EDIT 2: Is this related to the repo problem at the top of post #1? http://pastebin.com/Hb5rAUFr
Sent from my GT-P1000 using xda premium
Click to expand...
Click to collapse
EDIT
open the makefile
look for these lines:
Code:
else
cd ${SYSTEM}; repo init -u git://github.com/CyanogenMod/android.git -b ics
endif
curl http://pastebin.com/raw.php?i=AGP6wn42 > ${SYSTEM}/.repo/local_manifest.xml
## removes old files and allows init to start from scratch
change it to:
Code:
cd ${SYSTEM}; repo init -u git://github.com/CyanogenMod/android.git -b ics
endif
## removes old files and allows init to start from scratch
then go to android folder, press Ctrl H (to see all the files) and delete everything except the make file.
Then:
in your terminal, in the android directory:
Code:
make init
make sync
Now get the needed files, from the location on the top of the OP.
Place them.
THEN:
Code:
make build
make snapshot
make package CLEAN=1
As soon as its second party verified, I'll update op
From http://review.cyanogenmod.com/p/CyanogenMod/android_system_vold
* branch refs/changes/77/11277/1 -> FETCH_HEAD
# Not currently on any branch.
nothing to commit (working directory clean)
make: *** [sync] Error 1
That just means it has been merged, there is no longer a need to cherry pick it.
Ill take the code out.
This does not ruin your sync.
simple proceed to make build
http://
www.teamovercome.net/common/xDA-Badge-ProudUser.png[/
IMG][/URL]
[B][url]www.teamovercome.net[/
url][/B]: [I][COLOR="Red"]Home of The Overcome ROM
Overcome Kernel ![/COLOR][/I][/LEFT]​
op updated with new directions and a new makefile.
this way we can sync pure cm9 source, and add the vendor and device files of our choice.
And we also don't ever have to worry about "make sync" conflicting with any of the device specific files and causing a sync error.
Although, at this time, I do recommend the files listed in the instructions to get the results implied in post #3
update 1/9
uploaded new makefile:
removed cherry pick vold, it was merged, so no need to clutter the script and get empty repo errors.
First of all thanks for your great work. Im trying to use your guide but got stuck at the "make init" command. If I use this command I get the following error:
Code:
rm /home/lesley/android/sign.tgz /home/lesley/android/update-lite.tgz
if ! grep -q "0x2080" /home/lesley/android/.android/adb_usb.ini; then echo 0x2080 >> /home/lesley/android/.android/adb_usb.ini; fi
cd /home/lesley/android/system; repo init -u git://github.com/CyanogenMod/android.git -b ics
/bin/sh: repo: Permission denied
make: *** [init] Error 126
Nevermind deleted all the folders in the android folder except the make file. After that I did "make init" and it run great.
The make file chmods the bin folder,
Sometimes a reboot is needed for it to take effect.
But sometimes you will still get an issue with bin permissions or paths
Then try this in terminal in the same directory you use the make init command.
Code:
PATH="$HOME/bin:$PATH"
Then
Make build as usual
dizgustipated said:
The make file chmods the bin folder,
Sometimes a reboot is needed for it to take effect.
But sometimes you will still get an issue with bin permissions or paths
Try his in terminal in the same directory you use the make init command.
Code:
PATH="$HOME/bin:$PATH"
Click to expand...
Click to collapse
Thanks, I deleted the folders/files in the android directory except the make file. After that it worked great it's now syncing.
Thank you so much diz !
Making my own CM9 is so damn exciting !!
looking at the instructions , looks easy
Thanks again .
To do list on 15th Jan ( after exam )
Make my own CM9
Diz you are the best !!
Oh btw sorry for this useless post !
I'm stuck at step 5.. how can I download these files....
And what files should be in these folders
Sent from my LG-P999 using Tapatalk
---------- Post added at 05:44 PM ---------- Previous post was at 05:29 PM ----------
tried to follow from step 5 and got this....
http://pastebin.com/vRw7U0Zq
Edit: downloaded whole commit from your git. Included is android folder, device_Samsung_galaxytab folder and Samsung/galaxytab folder
Using cdesi cm9 folder as reference, copied contents in device_Samsung_galaxytab folder. Into Samsung/galaxytab folder then.put that into device folder under android/system then ran step 6b and now it seems to be building since.I have a out folder atm
Edit 2: got same error again. Can you be more specific in your instructions?
Just for p1000 tabs, right? Or for p1010 too?
samcortez said:
Just for p1000 tabs, right? Or for p1010 too?
Click to expand...
Click to collapse
There wont.be support for wifi only.tab......
Sent from my LG-P999 using Tapatalk
samcortez said:
Just for p1000 tabs, right? Or for p1010 too?
Click to expand...
Click to collapse
as the title states, GSM/CDMA?
your device is basically a different device, altogether.
Does your device have cm7 yet?
ayysir said:
tried to follow from step 5 and got this....
http://pastebin.com/vRw7U0Zq
Click to expand...
Click to collapse
yeah thats all part of the original repo error, that i will be fixing today.
But in the mean-time,
navigate to android/system/vendor/cm
open: vendorsetup.sh
add:
add_lunch_combo cm_galaxytab-userdebug
close and save
now make build again
dizgustipated said:
as the title states, GSM/CDMA?
your device is basically a different device, altogether.
Does your device have cm7 yet?
yeah thats all part of the original repo error, that i will be fixing today.
But in the mean-time,
navigate to android/system/vendor/cm
open: vendorsetup.sh
add:
add_lunch_combo cm_galaxytab-userdebug
close and save
now make build again
Click to expand...
Click to collapse
What about galaxytab folder
Sent from my LG-P999 using Tapatalk
The links at step 5 is 404.

[GUIDE] How to build kernel from source

Overview
Here are the steps to build your own kernel from source. This example does nothing special. It just shows you how to build the stock kernel. It is a good starting point to making your own stuff. Experts, please correct me where I am wrong. This stuff is still new to me also.
These instructions work for both T989 (T-Mobile) and I727 (AT&T) variants of the Samsung Galaxy S2 phones.
Special Thanks
Special thanks to "interloper" and "dtm_stretch" for helping me learn all of this. Couldn't have done it without them.
Requirements
I am using Ubuntu 10.10 32-bit to do all my builds
Instructions
1) Get Samsung Source Code
First you need to get a copy of the kernel source code from Samsung. You can download it from the link below.
For T-Mobile users download the one that says T989:
https://opensource.samsung.com/reception/receptionSub.do?method=search&searchValue=SGH-T989
For AT&T users download the one that says SGH-I727:
https://opensource.samsung.com/reception/receptionSub.do?method=search&searchValue=SGH-I727
2) Unzip Samsung Source Code
Unzip the source code you just download with this command:
For T989:
Code:
unzip SGH-T989_GB_Opensource.zip
For I727:
Code:
unzip SGH-I727_ATT_Opensource.zip
There will be 4 files extracted. The one we are interested in for this exercise is SGH-T989_Kernel.tar.gz for T989 devicees or SGH-I727_ATT_Kernel.tar.gz for I727 devices.
3) Extract Kernel
Next we need to extract the kernel into a directory.
For T989:
Code:
mkdir kernel
tar xzf SGH-T989_Kernel.tar.gz -C kernel
or
For I727:
Code:
mkdir kernel
tar xzf SGH-I727_ATT_Kernel.tar.gz -C kernel
4) Get a Copy of initramfs
Next you need to get a copy of the initramfs for your phone. For T989 users you can get the stock initramfs from bubby323's github here: https://github.com/bubby323/anomaly_kernel_platform_SGH-T989
For I727 users you must use the alternate method below to get the initramfs. T989 users can choose to use the link above or go with the alternate method below.
Alternate method:
You can extract it yourself from an existing boot.img file. I got mine off of my phone using clockworkmod backup (boot.img file) and using the extractboot tool to extract the initramfs. The tool can be downloaded here: http://www.mediafire.com/?lc12eceeh617b97
Extract extractboot.tar.gz
Code:
tar xzf extractboot.tar.gz
Call this to extract your boot.img to get the initramfs folder
Code:
extractboot boot.img
If you get any errors with calling extractboot, make sure "extractboot" and "split_bootimg.pl" are executable first. If not, use "chmod a+x extractboot" (do the same for split_bootimg.pl).
Once extracted, the "out/ramdisk" folder is your extracted initramfs folder.
reference: http://www.freeyourandroid.com/guide/extract-edit-repack-boot-img-windows
5) Download Arm Toolchain
This toolchain will allow you to cross compile for your phone. There are several versions to choose. I currently use the 2010q1 version here: https://sourcery.mentor.com/sgpp/li...1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
Or choose another version if you like (version 2009q3 seems to be popular): https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription3053
6) Extract Toolchain
Code:
tar xjf arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
7) Download mkbootimg Tools
Download mkbootimg tools from here: http://www.mediafire.com/?w06d1m6n1dgo4op
Extract the file with
Code:
tar xzf mkboottools.tar.gz
There will be three files
Code:
mkbootfs
mkbootimg
mkbootimg-sg2x
"mkbootimg" is the original program to make the boot image but is not used for our phone. Our phone requires an edit to the ramdisk address which is why I also included "mkbootimg-sg2x" which we will use instead.
*Extra Info: the default ramdisk offset is 0x01000000 while our phone needs 0x01400000.
Move the three files to somewhere in your system PATH.
8) Compile Script
Now we are ready to compile the kernel. I have provided a script below to automate the process. You will need to change the paths to work with your environment.
*For I727 users only: change "msm8660_celox_usa_tmo_defconfig" to "msm8660_celox_usa_att_defconfig" in the script below.
*Update: Thanks to InstigatorX for his comment:
Also, for ATT the celox make command should be "make msm8660_celox_usa_att_rev02_defconfig" to make the latest 2.3.6 kernel.
Click to expand...
Click to collapse
Code:
INITRAMFSDIR=~/t989/initramfs
export ARCH=arm
export CROSS_COMPILE=~/arm-2010q1/bin/arm-none-eabi-
cd kernel
make clean
make mrproper
make msm8660_celox_usa_tmo_defconfig
make -j4
# copy the freshly compiled modules to the initramfs.
cp crypto/ansi_cprng.ko $INITRAMFSDIR/lib/modules/
cp drivers/bluetooth/bthid/bthid.ko $INITRAMFSDIR/lib/modules/
cp arch/arm/common/cpaccess.ko $INITRAMFSDIR/lib/modules/
cp arch/arm/mach-msm/dal_remotetest.ko $INITRAMFSDIR/lib/modules/
cp drivers/net/wireless/bcm4330/dhd.ko $INITRAMFSDIR/lib/modules/
cp arch/arm/mach-msm/dma_test.ko $INITRAMFSDIR/lib/modules/
cp drivers/input/evbug.ko $INITRAMFSDIR/lib/modules/
cp drivers/media/video/gspca/gspca_main.ko $INITRAMFSDIR/lib/modules/
cp arch/arm/perfmon/ksapi.ko $INITRAMFSDIR/lib/modules/
cp drivers/video/backlight/lcd.ko $INITRAMFSDIR/lib/modules/
cp drivers/net/wireless/libra/librasdioif.ko $INITRAMFSDIR/lib/modules/
cp drivers/misc/msm_tsif.ko $INITRAMFSDIR/lib/modules/
cp arch/arm/oprofile/oprofile.ko $INITRAMFSDIR/lib/modules/
cp drivers/crypto/msm/qcedev.ko $INITRAMFSDIR/lib/modules/
cp drivers/crypto/msm/qce.ko $INITRAMFSDIR/lib/modules/
cp drivers/crypto/msm/qcrypto.ko $INITRAMFSDIR/lib/modules/
cp drivers/scsi/scsi_wait_scan.ko $INITRAMFSDIR/lib/modules/
cp drivers/spi/spidev.ko $INITRAMFSDIR/lib/modules/
cp drivers/misc/tsif_chrdev.ko $INITRAMFSDIR/lib/modules/
cp drivers/misc/vibetonz/vibrator.ko $INITRAMFSDIR/lib/modules/
9) Get Compiled Kernel
The compiled kernel image is in the kernel source folder under "arch/arm/boot/zImage"
Copy the zImage file to a working area, preferably where you keep your initramfs folder.
Here is an example folder structure:
Code:
work
- zImage
- initramfs
10) Make boot.img File
Next we need to merge the kernel and initramfs directory into a boot.img file.
zip up ramdisk
Code:
mkbootfs initramfs | gzip > ramdisk.gz
make boot image
Code:
mkbootimg-sg2x --kernel zImage --ramdisk ramdisk.gz --cmdline "androidboot.hardware=qcom msm_watchdog.appsbark=0 msm_watchdog.enable=1 loglevel=4" -o boot.img --base 0x40400000 --pagesize 2048
11) tar boot.img
Tar your boot.img file so it can be flashed with Odin.
Code:
tar cvf MyKernel.tar boot.img
md5sum -t MyKernel.tar >> MyKernel.tar
mv MyKernel.tar MyKernel.tar.md5
12) Flash with Odin
Flash MyKernel.tar.md5 with odin under PDA. Please follow the flashing guides found in other posts. They do a better job at explaining.
13) Experiment *
Now try to customize your kernel to add in new features and experiment. I am going to learn how to compile the stock platform also. Once I know how I will post up a guide for that also. If someone already has a guide to build the platform please post. Also it would be great if you can post sources for me to read so I can learn how to build the platform. Thanks.
Optional
You might notice that the modules you compiled are significantly bigger than the original stock modules that came with the phone. That is because the stock modules were stripped of all debug info. To do this you need to run the below command at the end to get the "stripped" modules. Change INSTALL_MOD_PATH to point to any folder you like to hold the modules. You then need to copy these modules instead of the ones in the build script above.
Code:
make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=~/stripped/modules modules_install
What's Next?
Go here to learn how to start making changes to your ROM: http://forum.xda-developers.com/showthread.php?p=23343879
Good heads up. Thanks for putting this out there.
Once edited this needs to get stuckod
Sent from my SGH-T989 using xda premium
Thanks so much for this! I've been trying to figure this out for months. (Learned alot in that time).
Kernel Built!
Daunting....ill stick to this side of the fence
Thanks though. Must be tough explaining all of that...
Sent from my Phablet. The Purple Phone Tablet.
Great info !! Super !
Some questions: 1. How does one allow for SELECTION of custom boot animation? Is that a kernel thing or some thing else?
2. What about adding things like Voodoo Sound or some mod like that?
Thanks for any info !!
chappatti said:
Great info !! Super !
Some questions: 1. How does one allow for SELECTION of custom boot animation? Is that a kernel thing or some thing else?
2. What about adding things like Voodoo Sound or some mod like that?
Thanks for any info !!
Click to expand...
Click to collapse
I am glad you like it. I wanted to post this guide up so that noobs like me have a good starting point to learn this stuff.
I can take a crack at answering your questions, but do note that I am also a noob:
1) I would think a custom boot animation would be part of the ROM but not sure
2) I do not know what Voodoo Sound is but if it is an application then it would be modifying the ROM. If it is an enhancement to the audio drivers then it is kernel. Either way I would not know what to change. Sorrry.
I know I wasn't much help. But I tried
By the way, I am currently trying to learn how to make my own custom ROM. If you know of any guides that would be great if you can post them here. I will definitely post what I find. Currently I am downloading ROMs from this forum and seeing what they did to learn. One thing I am still confused about is if these guys built these ROM from source or used the binaries from the Stock ROM as base.
Thanks.
Nice Guide man...
datzstr8 said:
I am glad you like it. I wanted to post this guide up so that noobs like me have a good starting point to learn this stuff.
I can take a crack at answering your questions, but do note that I am also a noob:
1) I would think a custom boot animation would be part of the ROM but not sure
2) I do not know what Voodoo Sound is but if it is an application then it would be modifying the ROM. If it is an enhancement to the audio drivers then it is kernel. Either way I would not know what to change. Sorrry.
I know I wasn't much help. But I tried
By the way, I am currently trying to learn how to make my own custom ROM. If you know of any guides that would be great if you can post them here. I will definitely post what I find. Currently I am downloading ROMs from this forum and seeing what they did to learn. One thing I am still confused about is if these guys built these ROM from source or used the binaries from the Stock ROM as base.
Thanks.
Click to expand...
Click to collapse
Roms such as AOKP or CM are compiled from source, otherwise known as AOSP. However, the majority of the roms you'll find here are not. To build a non-source rom a good starting point would be a system dump from your own phone, or find a pre-deodexed, stock base rom. From there, the tool of the trade is 7zip. View all the file via 7zip, pull files and modify. Now obviously, this is only a starting point, couldn't possibly go into advanced development with you. It takes time to learn and it's a lot of trial and error. Another helpful tool to learn is ADB commands and functionality. If you know this, it will save you a lot of time. Good luck!
This guide is a life-saver. I have compiled my own kernel for my desktop literally dozens of times, and have built distributions entirely from scratch two or three times (using Linux From Scratch), but was unable to figure this out myself due to the lack of a guide and things being scattered everywhere and people unwilling to help.
THANK YOU!!!!
I am really looking forward to your guide on how to build an Android system from scratch. I have also been trying to do this as well (Cyanogen), but am running into the same lack of information.
sombionix said:
Roms such as AOKP or CM are compiled from source, otherwise known as AOSP. However, the majority of the roms you'll find here are not. To build a non-source rom a good starting point would be a system dump from your own phone, or find a pre-deodexed, stock base rom. From there, the tool of the trade is 7zip. View all the file via 7zip, pull files and modify. Now obviously, this is only a starting point, couldn't possibly go into advanced development with you. It takes time to learn and it's a lot of trial and error. Another helpful tool to learn is ADB commands and functionality. If you know this, it will save you a lot of time. Good luck!
Click to expand...
Click to collapse
So Som,
When are we going to see another nice Bionix build from you. anything in plan or not really.
An automation script would be a juicy treat and i may have just the thing...will need to be modified for this and tested but tomorrow (today, oh look at the time) i can put it together. Also, try building using make gconfig. Load your default config with the gui and you can see what bits of the kernel can be changed.
Sent from my SPH-D710 using xda premium
Very nice guide! Thanks a lot!
I wondering about what is the difference between Hercules and Skyrocket sources? Is it only this "*For I727 users only: change "msm8660_celox_usa_tmo_defconfig" to "msm8660_celox_usa_att_defconfig" in the script below." ?
erickwill said:
Very nice guide! Thanks a lot!
I wondering about what is the difference between Hercules and Skyrocket sources? Is it only this "*For I727 users only: change "msm8660_celox_usa_tmo_defconfig" to "msm8660_celox_usa_att_defconfig" in the script below." ?
Click to expand...
Click to collapse
You will still need the proper source for i727. Config file just tells the compiler what to build.
:: LOVE MY HATERS :: DARKSIDE ::
These instructions assume the user already has the boot.img tools, bubby's initramfs and source code from the OP
1. Create a directory called t989-kernel
2. Download this package of tool chains and unzip it, making sure it is named "toolchains" toolchains
NOTE: There are many toolchains included in this pack and I have used them all to make kernel for the E4GT and they are all
sufficient for this task. However, should you move on to 3.X kernel I suggest using the Mjolnar or Linaro tools as they
are more suitable for that version.
3. Inside the "t989" directory deposit bubby's initramfs, the kernel source (extracted directory), toolchains and boot.img tools.
4. The names of the directories must be "ramdisk", "kernel" (kernel source), "toolchain", and "bin". Change them accordingly.
5. Put the attached "tmo-build.sh" into the "kernel" directory
6. Edit line 9 to reflect you version number and name. It will be what you see when you look at the phone properties
7. Change line 20 of the script to reflect your machine's name
8. cd into "kernel"
9. Type "./tmo-build.sh" and watch the magic as your kernel is made right before your eyes!
10. Go to "kernel_tmp/out" and get your shiny new homemade kernel complete with custom recovery and all the fixins'
NOTE: You can change line 41 to say "make gconfig" if you have GTK2 installed on your system. This will allow you to launch a GUI
through the script to make changes in a visual manner. If you get any "file not found" or "no such file" etc, make sure the
permissions are set to executable for all directories/files.
I'm still working on the error logging output so I will post an updated script as soon as it's ready. For the i727 users I will post a script for you too, but to make this work for you all you need to do is choose the make gconfig route and load your def_config from /arch/arm/configs/
Enjoy the silence!
interloper, thanks for the great script!!! This will help a lot of people.
afawzi said:
So Som,
When are we going to see another nice Bionix build from you. anything in plan or not really.
Click to expand...
Click to collapse
+1
From a galaxy better than yours.
I am starting another GUIDE post on how to modify your ROM here: http://forum.xda-developers.com/showthread.php?p=23343879
Sweet guide. Worked great. Only thing I had issue with was Haptic feedback and WiFi wouldn't work. Any ideas? I'm on the SkyRocket.
Also, for ATT the celox make command should be "make msm8660_celox_usa_att_rev02_defconfig" to make the latest 2.3.6 kernel.
how do you make it cwm flashable?

[Q] Building AOSP - Branch 5.0.2_r1 - Boot-loader loop?

Hey XDA!
I've been trying to learn to compile AOSP so I can customize ROM's from scratch instead of having to steal someone else's compile and make modifications from there. I definitely don't want to take the work of others and back track to make changes.
I've got a Nexus 7 2013 LTE and I've setup a Linux build environment. I've installed the correct packages, followed all the instructions on the AOSP site, and downloaded the proprietary binaries (both the current 4.4.4 and preview binaries) to try and create a AOSP Lollipop 5.0.2_r1 build. I know there are ones out there that are working almost flawlessly, but I can't seem to get it to boot. My file sizes for system.img and all other packages are the same after compiling, I "make clobber" once executing the shell scripts to create the vendor folder in my source root, and I see the vendor files being processed during the build, but once the package (both ota and manually built attepts) are fastboot loaded, I get a boot loop, and I'm not sure why, it instantly hangs and reboots as soon as the "ANDROID" screen appears.
If anyone can give me any guidance, I want to start building ROMs for the community, but I just can't seem to get a bootable build to compile.
I may have missed some details, so if anyone can help me with figuring this one out, feel free to PM me, or leave a note on this topic.
Thanks!

Categories

Resources