Any guides on how to create/compile custom roms? - myTouch 3G, Magic Android Development

I am a linux user...
Anyone can share the howto or if there are any guides?

+1 bumping this thread

Second that...
http://www.koushikdutta.com/2009/08/build-configuration-for-t-mobile.html#links
He seems to have a script to compile the Kernel...
I don't know to what extent this would help us but it is a start. I dont quite know how the apps are installed on a new ROM....
It would be nice if someone can explain what is needed and what is optional in the kernel and some of the mods that other people are doing and how they integrate in the OS.
I see a lot of improvements in the new ROM's but no how-to on doing it your self. I thought that was the point of having open source OS.

I would quite like this as well =o)
Have made a bit of a start by following this:
http://source.android.com/download
Shows you how to get all the code and do a build.
I believe the next thing would be to pick the required files from the output folder of the build, dump the boot.img and replace the kernel with 32B or 32A one, add the Magic model config file (to ramdisk) and recreate the boot.img
Replace/Add any modules required like maybe wifi or bluetooth, then need to change the build.prop file and put it all in to update.zip and sign the file.
Haven't had time to test this out but seems kind of logical...maybe?

Hello!
I'm following the android.com tutorial, but I want to ask: how can I download the donut branch? There's no mention in the entire site about it... Also, the cyanomod's multitouch and so on, where does it come from? Is it made by himself or it's somewhere in the net?
Thanks

Learn how to use GIT to get the donut branch from here: http://android.git.kernel.org/

Proble is that it doesn't specify the donut project path
Is there a command to list all project paths? I can't seem to find it

L10nH34Rt said:
Proble is that it doesn't specify the donut project path
Is there a command to list all project paths? I can't seem to find it
Click to expand...
Click to collapse
Code:
git branch -a
in any local git directory

Ok, then so far I've downloaded the donut branch, and compiled too. What now?
1. how to create a ROM from the made files?
2. how to compile the kernel / how to replace the one created with the make command with the one I'm running on?
3. is there any option I can configure to fit my phone? (HTC Magic 32A)
4. how can I root my ROM?
thanks

there is this guide that i have found:
http://www.koushikdutta.com/2009/08/build-configuration-for-t-mobile.html
'make' finished with success but i can't find how to transform it into 'update.zip' file...
anyone?

It says that in the link you have posted yourself.

Related

Creating a ROM Image for ATnT Tilt

I have been working on a project to insert debug messages in low level dlls [like coredll, ws2.dll] and so on. The testing so far was done on device emulators and the .nb0 image seems to be pretty stable on it now.
Where I need help from xda community is how to take the next step - how to generate a ROM image for my kaiser. Specifically what all build options should be specified to my platform builder to get the right image for my device.
I tried to search previous postings for help but could not find one - may be I did not search thoroughly. My apologies if I did not search thoroughly - if it has been discussed in the past - would be great if someone could point me a link to it.
Thnx
TPC and myself has kitchens available for download. Pick one and replace your files, and build ROM.
To be precise - download a kitchen from here?
http://m-s-j.net/tpckitchen/kitchens/
poifgh said:
To be precise - download a kitchen from here?
http://m-s-j.net/tpckitchen/kitchens/
Click to expand...
Click to collapse
yes any one will work
Thnx for helping .. have a few hickups setting the ROM up.
1. Downloaded http://m-s-j.net/tpckitchen/kitchens/TPC_KITCHEN_6.120146.7z
2. Doing a build_rom.bat results in the following errors
Failed to set data for 'htcrt_backup'
"There is no device found to meet your project configuration. Try to update your devices file with new one."
"Access Violation - read at 000000"
Do I need to setup some config file somewhere - do we have a README for the process?
3. I dont quite understand the point "replace your files, and build ROM."
I have changes done to coredll and ws2.dll which were compiled using the 'emulator' flag in platform builder
a. What compile flags should the I use before I copy/paste my dlls into the kitchen
b. In the current kitchen - coredll is a directory containing 5 files S00 to S04 and also contains imageinfo files. Do I put in my coredll.dll file? or is there a step in between?
As you could see from my questions, I am complete newbee in building ROMs for phones - would appreciate any help from the community
thnx
I guess you're using Vista, right? It did me too. There are two (three?) solutions:
1. Disable UAC
2. Ignore it and via htc rom tool build .nbh by yourself (click right -> run as administrator on TOOLS\htcrt.exe) - OS.nb is in TMP directory
3. (not confirmed) Run the build script via cmdline manually, AFAIK TPC has got it written somewhere there.
poifgh said:
Thnx for helping .. have a few hickups setting the ROM up.
1. Downloaded http://m-s-j.net/tpckitchen/kitchens/TPC_KITCHEN_6.120146.7z
2. Doing a build_rom.bat results in the following errors
Failed to set data for 'htcrt_backup'
"There is no device found to meet your project configuration. Try to update your devices file with new one."
"Access Violation - read at 000000"
Do I need to setup some config file somewhere - do we have a README for the process?
3. I dont quite understand the point "replace your files, and build ROM."
I have changes done to coredll and ws2.dll which were compiled using the 'emulator' flag in platform builder
a. What compile flags should the I use before I copy/paste my dlls into the kitchen
b. In the current kitchen - coredll is a directory containing 5 files S00 to S04 and also contains imageinfo files. Do I put in my coredll.dll file? or is there a step in between?
As you could see from my questions, I am complete newbee in building ROMs for phones - would appreciate any help from the community
thnx
Click to expand...
Click to collapse
this is not the right place to be asking this, if you have questions about my kitchen you need to look in my kitchen thread. you will find the answers to your questions have already been posted there and if you need more help ask there and we will help you.
twopumpchump said:
this is not the right place to be asking this, if you have questions about my kitchen you need to look in my kitchen thread. you will find the answers to your questions have already been posted there and if you need more help ask there and we will help you.
Click to expand...
Click to collapse
you know how it is anymore, Have a question = START A NEW THREAD.
msd24200 said:
you know how it is anymore, Have a question = START A NEW THREAD.
Click to expand...
Click to collapse
= Flying Fishheads lol

How do I port ROMs to 32A [Windows?]

Hey guys.
Is there any guide etc, that can show me how to port ROMs to 32A Magic using windows?
Thank you
WaterMan! said:
Hey guys.
Is there any guide etc, that can show me how to port ROMs to 32A Magic using windows?
Thank you
Click to expand...
Click to collapse
I think you'll be much better off using a Linux distribution for this sort of stuff. I have never looked into running perl scripts and the like in Windows but I dont imagine it is very enjoyable.
Run a virtual machine with Ubuntu or something.
The general process to port a 32B ROM --> 32A is to swap the 32b kernel for a 32a one. This also requires that you change the wlan.ko as it is tied to the specific kernel.
I recommend VirtualBox for a virtual machine - it is very simple to use and set up. Check out this article for a bit of a primer http://lifehacker.com/5204434/the-beginners-guide-to-creating-virtual-machines-with-virtualbox
Once you have Ubuntu (or w/e) set up...grab Amon_RAs port tools from here. You will also want to set up the android-sdk as well. There is a good guide on the android sdk download site. You dont need to worry about eclipse and stuff unless you are going to be a dev.
Basically, just download the sdk, unpack it, add the tools dir to your PATH and you are set.
From there you can download the update.zip I use for cyanogen ports, delete my packaged boot.img, grab a 32A kernel, get the ramdisk from a ROM you want to port and create a boot.img using the 32A kernel and the ramdisk. You will also need to replace the wlan.ko in /system/lib/modules to match the kernel you decide to use. Then, rezip everything, sign the existing zip file and flash away.
hope this helps and isnt super confusing.
bcrook said:
Run a virtual machine with Ubuntu or something.
Click to expand...
Click to collapse
or just format your comp and use ubuntu cus its the **** but ill have to agree it seems to be a headack with windows, far easier with linux
I am not getting Linux, windows has far to many things I need.
Guess I will stray away from that path then. Thanks anyways
Runnig a virtual machine is no risk. It runs ubuntu inside a window...like an application
bcrook said:
From there you can download the update.zip I use for cyanogen ports, delete my packaged boot.img, grab a 32A kernel, get the ramdisk from a ROM you want to port and create a boot.img using the 32A kernel and the ramdisk. You will also need to replace the wlan.ko in /system/lib/modules to match the kernel you decide to use. Then, rezip everything, sign the existing zip file and flash away.
Click to expand...
Click to collapse
Hi bcrook, thanks for the explanation. I have just a simple question: does it need to be the exact same kernel or can it vary (for example 2.6.27 vs 2.6.29 or TT vs gbo)?
edubarr said:
Hi bcrook, thanks for the explanation. I have just a simple question: does it need to be the exact same kernel or can it vary (for example 2.6.27 vs 2.6.29 or TT vs gbo)?
Click to expand...
Click to collapse
You can use any kernrl u want as long as it is 32a. The wlan.ko just has to match.
Alright! Thanks very much bcrook!!!
Perfect how to, thanks a lot!

[HOWTO] porting a ROM for old radio to work with new radio

I would love to help the community by using your kernel for the newer radios to port any roms for the older radio... is there any help you can give me? should i use your boot.img from the test-donut.img/test-eclair.img?
Click to expand...
Click to collapse
first, a thing we must know for porting job is what boot.img included.
here: http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
the ramdisk do some initializing jobs, so if we port a ROM, we should ensure that the content in ramdisk and files which are included in ramdisk (like init.rc), have necessary things the ROM needed.
for the first step, we can just extract the boot.img from the ROM, and extract the ramdisk from the boot.img which extracted just now, then repack it with my kernel (you can extract the kernel from my boot.img with same tools).
(to execute the perl script in link above, you need linux or just cygwin. )
but if we are sure that the ROM we want to port have nothing special with ramdisk, just like common ROMs, we can use my boot.img files directly. for eclair ROM, I suggest you extract the boot.img from my ROM, and don't use the first boot.img (test-NOCDB.img) I had posted.
after this, make our update.zip (use other's ROM as an example, especially the update-script in META-INF directory). sign our zip with testkey and apply it, then we can make our phone booting into desktop.
(you can find information about sign and download tools here: http://forum.xda-developers.com/showthread.php?t=471586, though the thread is not talk about how to sign things)
the main troubles we may meet probably are symlinks and setperm* in the update-script. if there is already a file/link has a name we want to symlink to, or if there isn't a file we want to symlink from or setperm, we will fail. so check the files carefully.
the next step is make everything work properly. we can use file from a ROM which made for new radio (and work well of course) to replace the one in the ROM we are porting. we can find these files in my 2.x ROM for eclair, or other's 1.6 ROM for donut (and for new radio, since the maker of them tested them already).
the most important files are (to my knowledge):
system/lib/libhtc_acoustic.so
system/lib/libhtc_ril.so (if something wrong with mobile network)
system/lib/libcamera.so
system/lib/libcameraservice.so
system/lib/liboemcamera.so (for 2.x) or system/lib/libqcamera.so (for 1.6)
system/lib/libgps.so
system/bin/akmd
(are there something I missed?)
(if we want to use NCommander's work on CameraHardwareInterface with a 2.x ROM, we should use my kernel for DONUT instead. I didn't try it, and I don't recommend it.)
these files are some thing work with hardware partially, so different radio may need different files. but if something just work fine, don't hurry to replace the file for it.
and now...., I don't have more thing to talk about, since we have most things work well. but for further tweaks, there are lots of things to do.
everyone can post your question here. if I know the answer I will post it. if I don't or I am not online, I think others will response you. and if there are things I missed or made some mistake, plz point it out
I will update this post when we collection more info or correct something. I find that I don't organized everything in order . I will update it later.
Thanks for the post... what's the difference between your eclair/donut kernel? (This is based on your original post about your kernel... is there an updated kernel somewhere i should know about?)
Edit
Nevermind i figured it out by reading your post more. carefully thanks for the detailed instructions
Thank you very much for this sanpei. This is the type of posts that really should be on this forum
Appreciated so much. waiting for your next updates.
Phil_McRevis said:
Nevermind i figured it out by reading your post more. carefully thanks for the detailed instructions
Click to expand...
Click to collapse
sorry for my poor ability of expression
asero said:
This is the type of posts that really should be on this forum
Click to expand...
Click to collapse
I expect more people can share their knowledge, and we can make a wiki for all
Hello!
I have to edit some lines of init.rc of your kernel. I've thus extracted the ramdisk, edited the file, repacked and tried booting with fastboot boot kernel-img ramdisk-img, but the phone hangs on the operator logo. I've tried even just extracting kernel+ramdisk and boot them - same result (the boot.img works well).
how can I fix it? Thanks
Wrong post

[Q] how to compile libaudio.so module? [CM7]

Original post: forum.cyanogenmod.com/topic/41583-hello-hello-bug-cant-hear-caller/
It seems like I'm suffering from this bug
code.google.com/p/cyanogenmod/issues/detail?id=4681
although I found the commit
github.com/CyanogenMod/android_device_samsung_crespo/commit/49cb776c1a5d056c345d90465f8006ef23d947b0#libaudio/AudioHardware.cpp
which (hopefully) fixed this bug but the commit only merged into ics branch not gb branch (CM7).
I got cygwin and NDK set up, but I have no idea how exactly to compile libaudio.so module.
After selecting your target, enter:
Code:
make audio.primary.herring
from cygwin?
the target is the libaudio folder, right?
does it involve NDK?
I also need library file (libhardware_legacy.so, libcutils.so, libmedia.so, etc) isn't it? I have the files, where do I put those files?
gleenfield97 said:
from cygwin?
the target is the libaudio folder, right?
does it involve NDK?
I also need library file (libhardware_legacy.so, libcutils.so, libmedia.so, etc) isn't it? I have the files, where do I put those files?
Click to expand...
Click to collapse
Your target should be listed in the set of options before you begin building. In this case, it's crespo or crespo4g for the Nexus S or Nexus S 4G, respectively. If you need to build other modules, locate the Android.mk file for the module you want to build and locate the value under LOCAL_MODULE. The destination for the file(s) in question will be printed after the build is completed. What happens from there depends on what you intend to do with it.
Getting familiar with the build system will make things much more easier and faster for you in the long run.
Thanks for your guide.
Unfortunately, I still can't fully understand so I end up using the script provided by nicandris
forum.xda-developers.com/showthread.php?t=969266
instead of building the module, I build the whole rom.

[q] Getting uncompressed Kernel from zImage?

Hello!
Device: i535PP
Kernel version: 3.4
Build date: July 22(futex(towelroot) patched)
So, I am trying to get the symbol table or whatever the heck it is.
I do not have root access, that is what I need the symbol table for > read about that here
So I can't do this the easy way of just open /proc/kallsyms
I have the zImage from boot.img.
I have kept reading on google ect that the most common type of compression used by Android kernels is gzip.
I have looked for the gzip magic numbers in a hex editor and also using hexdump/grep and dd.
I tried using binwalk zImage | head and it didn't see any gzip headers in the file, it found lzo and "pcrypt" or something like that but. I found the magic numbers for gzip... I did some googling and. I belive the whole "pcrypt" is because I had my device encrypted, and I had the OTA flash able rom on my and did all the extracting and Shia on my phone. I have since then decrypted the device and reextract everything.
I believe I am supposed to be after piggy.gz...
When I get the offset and use dd to skip to the beginning of the gzip header and save, I do gunzip piggy.gz and it says that it's corrupted. When I use a hex editor it's also corrupted...
Anyone who has done this before, mind helping me out?
I'll upload the zImage if needed.
Just don't go get the addresses yourself and post them here, I want to get some of the experience out of this
I will be more than happy to add to the list of thankyous/credits when it's all done and I test then make a release. I would also be able to port the exploit to other devices too.
I think I know why....
Probably messed it up when I tried going it on a pc I moved it back and forth via ftp... I didnt have a usb cable at the time.
If anyone wants to take a shot at this, please do. I will love you forever.
No clue what you're trying to do, but my ArchiKitchen should be able to split kernel into zImage and ramdisk, and also unpack the ramdisk, allow you to make changes, and repack it back. You can also replace zImage only if you wish... However, beware, invalid zImage may lead to brick.
You're interested in barebones project. Then you put boot.img in proper folder, restart kitchen, and unpack boot.img.
And if you're interested in decompressing zImage, then sorry, but you're doing it wrong, zImage is compressed binary, and you can't unpack the binary, even if you manage to decompress it.
@JustArchi
Well, thanks for getting me some info about that. But if I understand correctly, zImage is the kernel yes? From what I have read on boot it decompresses itself and copies it into memory. I am not really trying to modify anything, trying to get to the kernel symbols for a device that currently has not working rooting method I am aware of(i535pp on latest build...). Locked boot loader, signature verification of system.img.ext4 so no adding su binary and done. Futex is a no go, kernel compiled July 22. I am trying to port cve 4322 to the device from poc code by retme7 to get a root shell and go from there. If you know how I can go about doing that or point me to a tut, would be great.
Would this help? http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=I535pp
OpenSourcererSweg said:
@JustArchi
Well, thanks for getting me some info about that. But if I understand correctly, zImage is the kernel yes? From what I have read on boot it decompresses itself and copies it into memory. I am not really trying to modify anything, trying to get to the kernel symbols for a device that currently has not working rooting method I am aware of(i535pp on latest build...). Locked boot loader, signature verification of system.img.ext4 so no adding su binary and done. Futex is a no go, kernel compiled July 22. I am trying to port cve 4322 to the device from poc code by retme7 to get a root shell and go from there. If you know how I can go about doing that or point me to a tut, would be great.
Would this help? http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=I535pp
Click to expand...
Click to collapse
If device has locked bootloader, you won't be able to flash custom kernel you made anyway.
Otherwise, you just compile kernel from sources, get zImage, and combine it with the ramdisk through my kitchen.
JustArchi said:
If device has locked bootloader, you won't be able to flash custom kernel you made anyway.
Otherwise, you just compile kernel from sources, get zImage, and combine it with the ramdisk through my kitchen.
Click to expand...
Click to collapse
I am not trying to make a custom kernel. I am trying to extract information from the kernel required for exploitation. I am not even sure I am going about this correctly. I need to symbol table. I believe I ptmx_fops and perhaps a few other things... I have the src, anything valuable?
OpenSourcererSweg said:
I am not trying to make a custom kernel. I am trying to extract information from the kernel required for exploitation. I am not even sure I am going about this correctly. I need to symbol table. I believe I ptmx_fops and perhaps a few other things...
Click to expand...
Click to collapse
Stop it, you're talking nonsense. You won't achieve the thing you want in that way.
JustArchi said:
Stop it, you're talking nonsense. You won't achieve the thing you want in that way.
Click to expand...
Click to collapse
How do I go about making cve 2014 4322 work on my device?
I have been looking and looking...
You dont understand what not having root does to me....

Categories

Resources