Rom Cooking - General Questions and Answers

Hey everyone. I am on my fourth Android Device now and want to start developing (cooking) custom ROMS. I have a pretty solid understanding of Linux fundamentals and have a programming background, but no java. I know this isn't a huge roadblock, as I am not looking to develop apps right now, but I figured I would mention it.
My current development environment:
- Mac OS 10.6 (Primary)
And any number of the following virtual Machines
- Windows 7 32 bit
- Windows XP Professional
- Fedora 12
- Kubuntu 9.1
- openSuSE 11.2
- Ubuntu 9.1
I am trying to develop for the Motorola Droid. Many of the Droid Roms are currently being delivered as Nandroid backups, with the exception of a few coming through as update.zip or .rom.tgz.
Here is where I need some help. I realize that update.zips have to be signed. I have seen a lot of methods on signing update.zips /apks on this forum, and have tried a ton (AndroSign, testsign, and several others) and any time I get a signed update.zip, the installation halts on my device. Is the signing method device specific??
To create an update.zip or a .rom.tgz, do you need to have boot.img, recovery.img, data.tar, META-INF and system.tar? or can you create any combination of them?
Finally, what source file should I be using? One thread I saw recommended creating a nandroid backup of a clean 2.0.1 install + su + busybox and pulling apart system.tar. To my knowledge, there is no "factory recovery rom" for the droid like the RUU for some HTC devices. I pulled /system from a fresh backup and tried to pack THAT into an update.zip and rom.tgz and could not succeed either time. update.zip wouldnt install and rom.tgz installed but got stuck at boot loader.
Any help would be much appreciated!
I have scoured google, xda, modaco, alldroid, etc. and havent found the right answers, so now I am reaching out here.

Related

Interactive updates?

Just throwing an idea out there, and since it's for developers (specifically people who make their own recovery images) I assume this is the right section.
Since we have 'control' over the recovery image on our phones, would it not be possible to add a little script to an update.zip that a suitably modified recovery image could extract and run to interactively prompt the user for various Rom options? I'm thinking specifically of kernel choices, but it could be extended to almost anything that needs to be done prior to booting the installed image.
Imagine installing a rom, and during the install you got a little menu like this:
1: RamHack, BFS Kernel
2: RamHack, CFS Kernel
3: No-RamHack, BFS....
etc...
inefficient, it adds extra baggage to rom, and more things can go wrong. what would you rather downlaod a 90mb file or a 110 mb file.
Which would you rather download, one 110MB ROM or 2 90MB ROMS?
I'm pretty sure there's more than a few people who'll download different variations of the same ROM so they can see which is faster, how much easier would it be to just download one thing and then choose which options you want in there without downloading anything else.
I believe it is entirely possible. As a matter of fact, I was working on a ROM project that would have an interactive installer from the update.zip that would selectively install different features, apps, customization, themes, etc., based on the recovery menu application. It would use a lot of the /cache for temp space, though, as the installer application and its resources and configuration file, and later, the necessary parts of the ROM itself, would need to be unzipped before the install can run, if I recall correctly.
Does anyone have a good link to a reference for the command syntax for the /META-INF/com/google/android/update-script file? I'll go search for it in a few moments myself. I could probably make a simple ROM installer that chooses between ROM X and ROM Y based on a key input, as a proof of concept. I'll test it myself, I don't really mind half-bricking my device for science. (As long as I don't need to touch the SPL/Radio, that is.)
Update: Some creative searching finds me this:
JesusFreke said:
Assuming you mean update-script in an update.zip update, you will need to either look at existing update-script files for an example of the syntax, or look at the source of the recovery program in the android source
Click to expand...
Click to collapse
There's also a "make-update-script.c" file I'm seeing here and there, I'm trying to find the file in the Android source.
Update 2: From install.c at donut from cyanogen's android_bootable_recovery:
Code:
#define ASSUMED_UPDATE_SCRIPT_NAME "META-INF/com/google/android/update-script"
#define ASSUMED_UPDATE_BINARY_NAME "META-INF/com/google/android/update-binary"
and in commands.c, toward the bottom at register_update_commands is all the commands defined, and above that are all the functions they carry out.
sorry about that deicist i was sleepy when i wrote that so i must have been cranky yea i guess that is a fine idea, with just 30 more mb you have like 300mb worth of stuff. and you can pick which 90 mb you want.
markolo25 said:
sorry about that deicist i was sleepy when i wrote that so i must have been cranky yea i guess that is a fine idea, with just 30 more mb you have like 300mb worth of stuff. and you can pick which 90 mb you want.
Click to expand...
Click to collapse
Well, on the 32B platform with the Death SPL (my phone) we have the following partitions of the internal NAND memory (mtdblock*) from the df and mount command:
NAND 3: /system 92160kb - OS partition, static and read-only
NAND 5: /data 91904kb - User, system config, app config, and apps (without a2sd)
NAND 4: /cache 30720kb - OTA cache, Recovery/update config and temp
And I'd assume NAND 1 and 2 are the kernel, ramdisk, and bootloader config.
So the ROM wouldn't exceed 92MB installed (most leave some room in /system for hacks and updates). And the update process doesn't ever really "flash", per se; it just formats, copies files, and sets permissions and initialization configs, like Windows or Mac.
So the files that are common to the different ROMs being packaged don't need to be duplicated, only the ones that are changed (like a boot.img, or 32A/B compatibility, or different apps). The update script and chooser menu will decide which files to copy. Meaning the ROM package in and of itself shouldn't really need to exceed 128MB, even if choosing from a wide variety of platforms. And upon installation, the system might take less than 32 MB.
yeah, what he said ^
The scenario I was thinking about specifically was SuperD. If you look here:
http://forum.xda-developers.com/showthread.php?t=613809
There's 8 different downloads there. How many files are actually different between those 8? I guess the themes mean a lot of application files are different (due to having different resources in them) but the underlying framework files will be pretty much the same I think.
Deicist said:
yeah, what he said ^
The scenario I was thinking about specifically was SuperD. If you look here:
http://forum.xda-developers.com/showthread.php?t=613809
There's 8 different downloads there. How many files are actually different between those 8? I guess the themes mean a lot of application files are different (due to having different resources in them) but the underlying framework files will be pretty much the same I think.
Click to expand...
Click to collapse
I could download them all, and find the differences of each. It would be cool if a ROM like this were available in a single download, from which you would choose the content from the device before flashing.
Also, inspired by talking about this, I wrote up a guide on the update-script in the package file. It's still not finished, but it'll be the only guide available for that syntax yet (trust me, I couldn't find one myself ). Link's in my sig.
I'm surprised that nobody's mentioned the Droid... the sholes.info rom (now called droidmod) have used a .tgz archive instead of a .zip, the .tgz installs have always allowed this customization, droidmod makes one of the most common recovery's AND rom's. (SPRecovery/Droidmod).
It give you the option to choose what launcher to install, what theme, what apps to remove.
page here: http://droidmod.org/news/droidmod-v1-0-is-out/
how big of a ROM are you thinking about?
There are roms (WG etc...) that offer more than one kernel as update.zip you can flash over an existing installation of your rom instead of adding all the stuff to one big file. also you can download themes for several roms/for metamorph.
so why would you want some big install script instead of just downloading the files you like and flash it?
jmhalder said:
I'm surprised that nobody's mentioned the Droid... the sholes.info rom (now called droidmod) have used a .tgz archive instead of a .zip, the .tgz installs have always allowed this customization, droidmod makes one of the most common recovery's AND rom's. (SPRecovery/Droidmod).
It give you the option to choose what launcher to install, what theme, what apps to remove.
page here: http://droidmod.org/news/droidmod-v1-0-is-out/
Click to expand...
Click to collapse
Is the Droid's recovery image capable of running on the G1, and/or is it open-source enough to be cross-built to the G1? If so, we could port it here. Only problem there though, is that all the roms are in update.zip format for the G1 already, we'd need to make it dual-compatible if we don't want to split the community and annoy generally everyone ("My rom only supports TGZ recovery!" "ROMs are in ZIP format, and I will not make a TGZ one for those unfortunate enough to use the other Recovery!")
domenukk said:
There are roms (WG etc...) that offer more than one kernel as update.zip you can flash over an existing installation of your rom instead of adding all the stuff to one big file. also you can download themes for several roms/for metamorph.
so why would you want some big install script instead of just downloading the files you like and flash it?
Click to expand...
Click to collapse
Well, for one, devs need to host one file only, and users need to download one file only. The file won't be much bigger or more complex at all, really. And the way things look on the recovery side, we could probably put a selection of themes in with the updater and patch them in post-install with a Metamorph script straight from recovery. That way, the rom is as you want it out-of-the-box, no multiple reboots, etc.
Also, those scripts that usually run on first-boot, like zipalign, dexopt, apps2sd etc. should run from the recovery environment, instead of before the Android bootanimation (I do get tired of hearing "This ROM will take a LONG time on the first boot. If it's stuck at the G1 screen, just wait 10-30 minutes.")
So what would you rather have, one single ROM (G1_Android_ROM_v1.17.zip) for each version released,
or six different ZIPs to flash (G1_Android_ROM_10MB_CFS.zip, G1_Android_ROM_Greentheme.zip, G1_Android_ROM_Bluetheme.zip, G1_Android_Nowipe_GApps.zip)?
Would you rather select what you want to include at flash (and be able to change things like themes or features after flashing), or have 20 different files to choose from, wiping and flashing on each?
I am aware of the no-wipe upgrades for many ROMs, but they can get confusing (I once flashed a CFS_10MB.zip that was for a Hero ROM, stupidly thinking that it might have been for the Eclair that I just downloaded.) Needless to say, I had to wipe and reflash. Again.
TylTru said:
Is the Droid's recovery image capable of running on the G1, and/or is it open-source enough to be cross-built to the G1? If so, we could port it here. Only problem there though, is that all the roms are in update.zip format for the G1 already, we'd need to make it dual-compatible if we don't want to split the community and annoy generally everyone ("My rom only supports TGZ recovery!" "ROMs are in ZIP format, and I will not make a TGZ one for those unfortunate enough to use the other Recovery!")
Well, for one, devs need to host one file only, and users need to download one file only. The file won't be much bigger or more complex at all, really. And the way things look on the recovery side, we could probably put a selection of themes in with the updater and patch them in post-install with a Metamorph script straight from recovery. That way, the rom is as you want it out-of-the-box, no multiple reboots, etc.
Also, those scripts that usually run on first-boot, like zipalign, dexopt, apps2sd etc. should run from the recovery environment, instead of before the Android bootanimation (I do get tired of hearing "This ROM will take a LONG time on the first boot. If it's stuck at the G1 screen, just wait 10-30 minutes.")
So what would you rather have, one single ROM (G1_Android_ROM_v1.17.zip) for each version released,
or six different ZIPs to flash (G1_Android_ROM_10MB_CFS.zip, G1_Android_ROM_Greentheme.zip, G1_Android_ROM_Bluetheme.zip, G1_Android_Nowipe_GApps.zip)?
Would you rather select what you want to include at flash (and be able to change things like themes or features after flashing), or have 20 different files to choose from, wiping and flashing on each?
I am aware of the no-wipe upgrades for many ROMs, but they can get confusing (I once flashed a CFS_10MB.zip that was for a Hero ROM, stupidly thinking that it might have been for the Eclair that I just downloaded.) Needless to say, I had to wipe and reflash. Again.
Click to expand...
Click to collapse
You could just have flashed the original rom without wipe.
Would be a step forward if you could simply put roms and additional files in folders... maybe even whole zip files containing some updates and an xml like file to describe them. This would guarantee compatibility with earlier boot images (just unpack the updates in the zip). Tar might work better than zip as it is not compressed thus faster afaik.
http://droidninja.com/?p=26334
We got ninja'd. Apparently the Droid Does exactly this.
So let's get to work on porting it! Like this comment says, I'm working on finding the source code to a good Droid recovery image (sadly Droid hasn't its own forum here), and if it's closed source, I'll get on reverse-engineering a .tgz rom to see exactly how it works.
TylTru said:
http://droidninja.com/?p=26334
We got ninja'd. Apparently the Droid Does exactly this.
So let's get to work on porting it! Like this comment says, I'm working on finding the source code to a good Droid recovery image (sadly Droid hasn't its own forum here), and if it's closed source, I'll get on reverse-engineering a .tgz rom to see exactly how it works.
Click to expand...
Click to collapse
This is pretty awesome. I was going to say, we could easily run bash scripts but this is so much better.
This needs to be merged with both Amon_ra's recovery and the new 2.x based recovery...

<< Create & Modify your own ROM's easy way - files included >>

This a simple and quick guide for everyone who wana make or just modify their own HTC DESIRE ROM's.(Rooted ones)
For example you downloaded a nice ROM from one of devs here, but they removed some application that you cant live without. Now you dont need to beg them to add those files back, simple add them your self and flash your rom.Missing APK's you can get simple by downloading any stock rom, than extract them and put them in your new ROM.
After you extracted files provided (c root recomended), you will see 2 maps
"Sign ROM" and "tools"
Signing ROM's:
After you modifed your ROM zip file, simple put it in "Sign ROM" map, and rename it to update.zip.Than run "Sign.bat" After the process is done you will get another zip called "update_signed.zip" which you can now put to your SD card and your ready for flashing. Note:JAVA SDK files are included, you only need to have normal java installed.
http://img99.imageshack.us/img99/2921/signedrom.jpg
Pushing recovery files from windows:
Now to flash your ROM you dont need linux anymore, simple enter recovery (Power button+back, than select recovery...), and than in the map "tools" run recovery-windows.bat. Than you will get standard screen where you can flash your roms, partition SD, clear data and so on..
NOTE: You need to have HTC Sync driver installed or your phone wont be detected (you can get them from HTC)
http://img213.imageshack.us/img213/1894/pushfiles.jpg
If you have any questions, suggestions or if i wrote something wrong i will be happy to answer/corect them.
http://hotfile.com/dl/43311449/92d9ee6/Desire_Tools.exe.html
http://www.megaupload.com/?d=JNI68MWZ
http://rapidshare.com/files/388849647/Desire_Tools.exe.html (Thanks pympster for link )
http://www.robertolsen.no/desire_tools.rar
(Thanks GeoTrail for link)
would this tool work for the HTC Legend aswell?
For signing roms yes, for pushing files not sure if Desire and legend use same files..
Ok this one is simple, but this is only how to add/delete several apps.
How about going little bit more deeper?
Well if you wana go deeper, you can download costom kernels with overclocks or low volatege and replace the ones in rom, or those circle battery mods or costom boot sounds and so on...Basicly your replacing/modifying original files. But this is just quick basic guide for basic stuff, let real ROM developing and costomizing to the developers who are good at it.
As far as hardware support goes is it the kernel that provides everything? Basically if I take an N1 rom (like cyanogen 5.0.6) and change to a desire kernel, is it likely to just work perfectly or are there other bits in the ROM that are likely to need changing?
Of course you can just use dsixda's Kitchen which is cross-platform and quite straightforward to use.
You just add the update.zip file you want to change, remove/add any apps you want and make any advanced changes you want too.
Select Build ROM and it'll create the new update.zip that you can flash to phone.
I've used it on my Desire without problem for adding/removing apps.
Well that kitchen is nice, but still..you need to downlaod virutal machine to make it run under windows or Cygwin tool than download JAVA SDK..setup lots of things.
My point of this thread was just vey basic and simple way to quickly add/remove/costomize files from ROM, without installling and downloading lots of tools, and quickly install it on Phone and test.
Sorry, I wasn't meaning to undermine your work. No doubt you've spent a lot of time creating this and trying to contribute to the community. It's far more than I can say for myself.
I was just pointing out there's something already out there, and more capable than this.
It's definitely good to see people helping out the members and this is definitely something useful
Everything is cool TheAshMan, and thanks for you link, im sure some enthusiastic people will try some advance things like that. But even my self im not big expert about Linux and phones, i do have great knowledge about windows and computers, but dont have much time for this area.
Screen shots on how to use this would help, I've come from cooking my own WinMo ROMs and wuld like to give this a try if possible
Also, as I use W7 x64 is it best to run the .bat files as an admin? Had issues using Windows methods in the past so have been using Linux to get rooted
I'm also using Windows 7 x64.
About running bat's as admin its not necessary unless you have some kind of UAC high settings, or running on some kind of limited user account. I never run this bats as admin and they work fine.
Basicly download some stock rom, or someones rom. And simple add or remove files inside rom.zip/system/app/
If you dont like facebook for example, just remove Facebook.apk and facebook.odex(if its present).
After your done with that, rename ROM to update.zip and put it in the folder
C:\Desire Tools\Sign ROM\ and excecute "Sign.bat" , and it will create signed rom with name update_signed.zip.
http://img99.imageshack.us/img99/2921/signedrom.jpg
This is just some base, im not gona explain you about ROM deodexing, framework, boot images kernels and stuff, because im not expert at this.
Now you can put that file to root of your SD card.
Now you can test it on your phone.
Shut down your phone. Turn it ON while holding back button.You will see Bootloader selected, press power button again. Than Recovery will appear, you can navigate down with volumen UP AND DOWN and select Recovery and press POWER button again to select it.Phone with Red triangle will appear on your phone. Now go in map C:\Desire Tools\tools and excecute "recovery-windows.bat"
http://img213.imageshack.us/img213/1894/pushfiles.jpg
And on your phone you will get that screen with green letters where you can select to 'Flash zip from sdcard' ,where your signed rom will appear.(You need to wipe data before from the same menu)
I hope i made some thing clearer im writing this from work so dont have much time
Right, got a ROM and added 2 .apk files to the /system/app folder and now got a signed_update.zip...is that it? They'll be on the device from the start?
Seems to simple to me!!
How can you add a new radio? Or change the version number in About phone>Software?
Yea thats it. About those other things..Google is your friend...
edit mate
when i flash it says:
E: Can't find update script
rom.zip/META-INF/COM/google/android/update-script
Did you touch that in ROM? If you didint, than you removed something that you shouldnt.
Can u also remove apps from rom that you don't like by this method.
-------------------------------------
Sent via the XDA Tapatalk App
Yea, thats the all point of everything i wrote here. Very simple way of very quickly removing apps that you dont want from the rom before flashing it.
Also, you need to watch out, and to a bit experementing. Because sometimes if you remove some crucial app, you will start getting random crashes of applications or random bugs. Allways make a copy of original rom.
For example if you remove HTC-IME.apk, you wont have any kind of keyboard in the rom. Making it un-usable
Somebody already asked how to add radio update, is it maybe included in Modaco r3 rom(the one without apps2sd and modaco additional stuff)?
Tnx for help

Regarding Root Privileges

Crash course about root and roms:
I keep seeing a lot of people make comments like "I flashed xboarders rom so I could have root and then flashed CM7. Everything working great." That's not really the way it works. It doesn't hurt to do that, but you're adding an uneceasary step. Lets say you use Superoneclick, what that does is roots the stock rom you have in place. For now it works with our phones on Froyo and not on GB. So what are our options to "gain root" with GB? We have to flash an already-rooted rom. But understand that the root privileges are built in to the rom. Flashing xboarders rom or any other rom doesn't "give you root" for the other roms you might flash, it is simply one rom out of many that is pre-rooted by the dev who packaged it up. When you flash it you have a rom that is rooted. If you flash CM7 (another rom that provides root access to its system files) then you have a different rom that was pre-rooted by its dev.
Are you catching what I'm saying? Root doesn't "stick" between roms, so flashing one rom to "gain root" before flashing another doesn't really help all that much. Root privileges are built in to the rom.
If you want to unroot GB, then browse the threads in the development section. There are a couple of stock nandroid backups posted that you can restore via clockworkmod recovery and then you'll have a stock unrooted rom. You can even do that and still have clockworkmod recovery in case you want to flash a different rom to your phone again.
And just a friendly reminder to PLEASE remember when flashing from one rom to a different rom: WIPE WIPE WIPE data, cache, dalvik cache, then flash rom, then fix permissions, then reboot. This will save you SO MANY headaches.
G2X CM7
Nice buddy
I've asked a couple of n00b technical questions that nobody would answer. Like, "does the 'ROM" image contain the linux portion of the run-time?". Since "root" apparently means obtaining unix root privilege at the linux layer (again another question I've asked that nobody answered), and root follows the ROM, then I will add 1+1 and say the ROM contains the linux layer.
As a side note, a ROM is a piece of silicon (where I used to put my embedded code) that hasn't been manufactured for over a decade, so the overloading of that term is still tripping me up.
Nobody on this forum is responsible for technical training. I've looked at some android books on Safari, and all I find is UI stuff. I can't seem to find driver and IOS level stuff. Anyone know of a book about that stuff? It appears Android mostly goes thru JNI, so maybe I need to get on a JNI forum to understand how JNI connects to the linux drivers?
I could care less about app dev - I want to figure why my phone crashes.
Thanks,
-BobK
What most people mean nowadays when they refer to a ROM is a ROM image, flashable or otherwise copyable into the partitions that are set up in the phone's non-volatile RAM.
Yes, the ROM image contains Linux -- bootloader, kernel, drivers and a bunch of binaries like "busybox", dalvikvm (the dalvik virtual machine), dexopt, dhcpd, vold and so on.
EDIT: namklak: since it sounds like you know something about Linux already, you really should learn about ADB so you can login to your phone and look around. You should probably make sure you have a rooted ROM so you can run as superuser and look through / and /system/etc and /dev and /sys.
namklak said:
I've asked a couple of n00b technical questions that nobody would answer. Like, "does the 'ROM" image contain the linux portion of the run-time?". Since "root" apparently means obtaining unix root privilege at the linux layer (again another question I've asked that nobody answered), and root follows the ROM, then I will add 1+1 and say the ROM contains the linux layer.
As a side note, a ROM is a piece of silicon (where I used to put my embedded code) that hasn't been manufactured for over a decade, so the overloading of that term is still tripping me up.
Nobody on this forum is responsible for technical training. I've looked at some android books on Safari, and all I find is UI stuff. I can't seem to find driver and IOS level stuff. Anyone know of a book about that stuff? It appears Android mostly goes thru JNI, so maybe I need to get on a JNI forum to understand how JNI connects to the linux drivers?
I could care less about app dev - I want to figure why my phone crashes.
Thanks,
-BobK
Click to expand...
Click to collapse
If you're familiar with Linux then an Android ROM is basically the equivalent of a Linux distro. Its a customized version of Android that contains the Linux-based OS along with whatever modifications and default apps the developer wants to include to give it its own flavor. The name "ROM" is a bit of a misnomer since most all custom android ROMs give the user root access to the system partition. Its no longer "read-only memory" if you have read/write access. The first time I heard the term ROM used this way was in reference to copies of old Nintendo games ROM cartridges that could be run in an emulator on my computer.
Not sure about books to direct you to.
G2X CM7
Most "so-called" doesn't read. Maybe it's easier for them to post/start new thread rather than reading. They don't even care where they pot as long as they can ask, and sadly, it's the same question over and over again.
If you check Q & A (even General and sometimes Development), there are more than 2 root questions in the first and/or second pages.

How to Port a ROM to Milestone2

As lately some people are asking me about ROM porting I decided to create this new thread where we can share knowledge about this hard task.
Please note this is a Dev talk thread, so DON'T ASK about fixing a particular ROM problem here. Also don't ask questions like "My phone is bricked! please help!". This IS NOT the appropriate place for it. There are plenty of other threads to help you out.
Also note that this is not a step by step guide (and not a guide at all), it's just a point where you can start from. Android is a very complex system and there are many things I don't know yet. So, research and hard work is what you need to learn it deeply. My first tip is Google really works. Don't be afraid to search
Ok, to the basics. Porting a ROM is no simple task. It requires advanced understanding of how android works and how it is organized. Previous Linux/Unix knowledge helps A LOT. As android is based on this O.S. there are many similarities between both. In fact many ppl consider android to be a kind of linux distro.
The very first task to port a ROM is finding a device which is compatible with your own. For example Defy/Milestone2. Then you are going to choose a ROM to port to your device.
As our devices (Milestone2) have a locked bootloader we now need to find a system image that have a compatible kernel with the ROM we are trying to port. This is mainly based on trial and test and takes a long time. You'll be ending flashing your phone several times with RSD Lite. You should learn how to use MotoAndroidDepacker and how to create a fixed SBF.
The basic procedure to try that:
1. Open original ROM update.zip and remove any files/commands that flashes boot/devtree/recovery/anything.
2. Install this new file on your phone via CW Recovery.
3. Boot into bootmenu and enable ADB so you can read logcat while phone boots.
4. Choose Boot/Normal. If your ROM uses 2nd-init you will need to place/edit/adapt bootscripts into bootmenu 2nd-init folder.
5. Check logcat for errors:
- If you're getting HAL errors you're going to need a new kernel;
- If you can start android without getting HAL errors but still getting errors and bootloop on android animation you should try to replace libs with appropriate original ones.
6. Once you are able to boot android you should test it's features to see what needs to be fixed.
This is what I have to say for now. The thread is now open for discussion.
At this week, motorola has just pushed the GB official update for Droid 2 and Droid 2 Global....
Can i try to port this new rom to milestone 2 and after a success boot, fix the radio..??
I was asking that, because some people has success on port CM7 to milestone 1, when it originally maked for droid 1...
tks a lot..!!
jorgebaruchi said:
At this week, motorola has just pushed the GB official update for Droid 2 and Droid 2 Global....
Can i try to port this new rom to milestone 2 and after a success boot, fix the radio..??
I was asking that, because some people has success on port CM7 to milestone 1, when it originally maked for droid 1...
tks a lot..!!
Click to expand...
Click to collapse
It may be possible, but you'll have a hard time fixing the baseband.
You may have to mod the init.rc scripts and find the right radio binaries (rild is one of them) and drivers.
Ask those ms1 people for help, if they are still with the same phone...
Sent from my Milestone 2 XDA App
I don't know if this will be relevant or not.
I wanted to know if to do any of this, having a Linux distro as OS a must or can I try my hands at it on a windows based machine. I mean I'm sure that a Linux distro will give certain advantages (as Android is based on UNIX/Linux) but can we get things to work a 100% on windows.
If yes, then will someone be kind enough to get give the list of all softwares etc. which will be required to do the job on Windows machine as well as a Linux machine.
I do know a few softwares but I'm not sure if I have an exhaustive list. I would like to learn and try and at least be able to modify in bits n pieces to begin with.
I apologize if this wasn't supposed to be asked in this thread.
The only thing i can get from SBF is a bunch of smg files.
But the only ones i can open are
preinstall.smg
CG39.smg
Is there a way to open/see the rest?
2)
Im trying to modify the CM7 rom, what boot does it use? 2nd-init or 2nd-boot?
i guess it is second-init. but not sure
thanks a lot for this !!!
WeeDv2 said:
The only thing i can get from SBF is a bunch of smg files.
But the only ones i can open are
preinstall.smg
CG39.smg
Is there a way to open/see the rest?
2)
Im trying to modify the CM7 rom, what boot does it use? 2nd-init or 2nd-boot?
Click to expand...
Click to collapse
SMG files are disk images of certain partitions of your flash memory.
You can only open CG39.smg and preinstall (CG66.smg) because they are the only images in ext3 format. The rest of images may be on ramdisk format or some proprietary format. For more details on partition codes take a look here:
http://and-developers.com/partitions:cdt
You may be able to open and see contents of other partitions but the only one that matters aside from system and preinstall is the boot partition (CG35.smg), which contains the init scripts we should mod in order to make they work with 2nd-init. Boot partition is in ramdrive format. More details here:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
http://elinux.org/Android_on_OMAP
It is easier to unpack boot image using Dsixda's Kitchen here:
http://forum.xda-developers.com/showthread.php?t=633246
Edit: To see what boot your CM7 uses just go inside /system/bootmenu/config and look for a file called default_bootmode.conf. That should be the boot method used. It's normally 2nd-init.
sahilarora911 said:
I don't know if this will be relevant or not.
I wanted to know if to do any of this, having a Linux distro as OS a must or can I try my hands at it on a windows based machine. I mean I'm sure that a Linux distro will give certain advantages (as Android is based on UNIX/Linux) but can we get things to work a 100% on windows.
If yes, then will someone be kind enough to get give the list of all softwares etc. which will be required to do the job on Windows machine as well as a Linux machine.
I do know a few softwares but I'm not sure if I have an exhaustive list. I would like to learn and try and at least be able to modify in bits n pieces to begin with.
I apologize if this wasn't supposed to be asked in this thread.
Click to expand...
Click to collapse
Don't worry, this is the right place
As for your question: yes you can work in windows if you like, but using at least a Linux VM is more productive. I don't have a full list of applications to give you, as different mods may require different tools, but I advice you to have at least:
- Notepad++ (essential for editing text files and keeping linux end-line format);
- dsixda's Android Kitchen (http://forum.xda-developers.com/showthread.php?t=633246)
- 7zip (or some other compress tool you like)
- Moded putty for ADB as working with windows command prompt really suck (http://forum.xda-developers.com/showthread.php?t=803225)
- Oracle Virtual Box (if you are going to use linux VM).
r2beta0 said:
SMG files are disk images of certain partitions of your flash memory.
You can only open CG39.smg and preinstall (CG66.smg) because they are the only images in ext3 format. The rest of images may be on ramdisk format or some proprietary format. For more details on partition codes take a look here:
http://and-developers.com/partitions:cdt
You may be able to open and see contents of other partitions but the only one that matters aside from system and preinstall is the boot partition (CG35.smg), which contains the init scripts we should mod in order to make they work with 2nd-init. Boot partition is in ramdrive format. More details here:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
http://elinux.org/Android_on_OMAP
It is easier to unpack boot image using Dsixda's Kitchen here:
http://forum.xda-developers.com/showthread.php?t=633246
Edit: To see what boot your CM7 uses just go inside /system/bootmenu/config and look for a file called default_bootmode.conf. That should be the boot method used. It's normally 2nd-init.
Click to expand...
Click to collapse
Thanks again r2beta
thanks r2beta0
- Notepad++ -- got it
- dsixda's Android Kitchen -- downloaded (need some link for a how-to on its usage)
- 7zip -- got it
- Moded putty for ADB -- got it
- Oracle Virtual Box -- can't install Linux on my system as this is a work machine
dunno if I can do without the last option.
sahilarora911 said:
thanks r2beta0
- Notepad++ -- got it
- dsixda's Android Kitchen -- downloaded (need some link for a how-to on its usage)
- 7zip -- got it
- Moded putty for ADB -- got it
- Oracle Virtual Box -- can't install Linux on my system as this is a work machine
dunno if I can do without the last option.
Click to expand...
Click to collapse
Oracle Virtual Box is an application that lets you run an operational system on a virtual machine, in other words, it doesn't install linux on your real computer. It's a very useful tool that I use everyday. Google for it and learn a bit, you won't be disappointed. About kitchen: the link I provided was download + guide. Read it again. If necessary read the full thread.
r2beta0 said:
Oracle Virtual Box is an application that lets you run an operational system on a virtual machine, in other words, it doesn't install linux on your real computer. It's a very useful tool that I use everyday. Google for it and learn a bit, you won't be disappointed. About kitchen: the link I provided was download + guide. Read it again. If necessary read the full thread.
Click to expand...
Click to collapse
I know a bit about virtual box but as I said I'm not allowed to have softwares not approved by the IT team to be present on the system. Though I can get away with small things like notepad++ and 7-zip, having virtual box on my system may raise some eye brows.
I'm trying to arrange an alternative system.
Me neither. I must do almost everything at home, and at this very moment I simply don't have any free time. I'm afraid you're not going to see me here very often anymore (maybe in a few months? a year? well, it might be a bit too late for milestone2...)
hi. Have a question, I want to remove baseband from a flashable zip (lets say, CM7 from Tezet) , is it posible? I dont know where to look for it (baseband). Thanks!!
Baseband is located in \system\etc\motorola\bp_nvm_default\
But don't remove it, just replace it with files from ROM, which have baseband you want.
---UFO--- said:
Baseband is located in \system\etc\motorola\bp_nvm_default\
But don't remove it, just replace it with files from ROM, which have baseband you want.
Click to expand...
Click to collapse
Ok thanks for the info.
Sent from my A953 using XDA
Hi All,
Just a quick question. I have ported Paranoid Android 2.10 to MS2 but the problem I am facing is that Reboot goes through Bootmenu and I have to choose reboot from Bootmenu again.
Any inputs?
Thanks in advance
Megalith27 said:
Hi All,
Just a quick question. I have ported Paranoid Android 2.10 to MS2 but the problem I am facing is that Reboot goes through Bootmenu and I have to choose reboot from Bootmenu again.
Any inputs?
Thanks in advance
Click to expand...
Click to collapse
I meant to get to it last night, but I was tired after work and fell asleep watch tv. Eventually, later tonight, I'll be uploading PA for MS2. Check my Defy PA thread in 12-14 hours cause I'm about to go to work and I'm not gonna feel like making a MS2 PA thread or updating my Bravo PA thread -- but the Defy Thread is always up to date when I put out new roms.
Also, I'm looking to get either a Defy or MS2 -- I've heard that there's 3G issues with AT&T users (which I am) with the MS2 -- Apparently the MS2 has different 3G frequencies than AT&T. Are there any AT&T MS2 users who are knowledgeable about that? While I can deal with no 3G, edge only, calls only -- I need to make sure I can at least do that before I commit to something.
I'd rather have the MS2 because I want a hw keyboard and I don't have the $300+ to try and get a Photon Q LTE from eBay (and I don't have to change up my repos if I get a MS2). If anyone here knows of a phone that's AT&T compatible, Defy code compatible, and has a keyboard, please let me know.
Thanks.
//Normally I'd post the latter half in the Q&A section, but ya'll don't have one so I'm just gonna piggyback
//My Bravo doesn't have a Q&A page either -- it needs one that's not my PM box...Don't PM me on how to root your phone and flash CM7 -- read one of the 5 guides on the first page of both General & Dev...:silly:
Ok devs need some help here.
I am trying to port a rom to our Milestone 2...but it bootloops on rom animation.
I tried to logcat it but I don't think it gets as far as adb server to detect the device.and just keeps saying "waiting for device"...so I end up with no logcat to diagnose the problem.
I can logcat my current working rom but only after the phone boots....am i missing something here? please, help
Any help is very much appretiated.
Thanks a lot in advance

[Q] How and where to start modifying/customizing roms

Hello, first of all this is my first post, so im gonna introduce myself first,
I am a freelance web designer/developer and understands logical programming. Anyways i am basically new to android, and i want to learn how to edit/modify/customize stock roms. so first i want to learn extract these stock roms. I am currently on the starting phase and i only have some ideas about the terms / programs that is used in this forums. Basically, i am running a windows machine, OS is windows 7.
I find it hard to fix some bugs i encounter in my android which lead me to the goal of learning.
So for the device that i will use as a scapegoat for my learning venture, i am using a Skyworth x7010 tablet which have no more support, i think and not a very well known model, infact i cant seem to find any forums dedicated to the tablet itself.
I am technically knowledgable in computer hardware and windows OS, also i am able to write different type of websites in php, (forums, E-Commerce, social networking/networking website, company web based panels, etc.). As of now I am currently working alone in every web aspect of bagongpleion.com and bagongpleion.net.
So far this is what i have done, and done to the tablet. I have no backup as of now.
1. I have already bricked one, just made it perma bricked then returned for warranty, the staffs decided to mark it as defective motherboard (No response from anything including recovery mode and bootloader mode) ~ Bricked it while trying to flash cwm for rk30 device.
2. device is running a JB 4.1.1 for the android version, and kernel 3.0.36+ ([email protected] #48)
3. I have already started learning adb, well for the most part, i had used it in the past for unlocking devices that got locked out screen patterns, and rooting.
4. The Device has a rk3188 1.6ghz max quad (Box says 1.8 though), mali400mp(Quad), 2GB ddr3 ram, 8gb internal storage, partitioned in 2, nand and internal.
5. I have the usb drivers for adb and rktool, android sdk, currently downloading and installing cygwin but the download is so long, i am forced to close/pause it.
6. I have already rooted the device, and modified the applications, and removed some apps that is not required. I deleted the files in the /system/app thru adb. I also had edited the Build.prop already, Changed the heapsize to the best performance (I am comparing the performance with CPU Identifier and Passmark. ) Stability is tested with simultaenous apps (High end games, browser, root apps, benchmark). I also edited the pixel density and reduced it by 1 to make the resolution exactly 1280 x 800.
7, One bug i found is that it cant play NBA 2k13, I had almost tried every solution i can find in the internet, Used different version, i even copied the data and apk from a device that can play it. The game force closes automatically after the Black screen (Original apk) or muzhiwan or apkmania.com loading screen at the start. This is also one of the reasons why i wanted to edit/modify the device.
What i wanted to do.
-Backup Original Firmware/rom/img (i dont know which and what is the correct term)...
-upgrade jellybean to 4.2 if possible, or 4.3
-Tweak more the device to bring out the full potential of it,
-remove and clean the apps and everything, leaving only the necessary files and apps.
-learn more how much i can modify it.
NOTE: I am not asking for the people in this forum to spoonfeed me, i just wanted to know how and where to start, what to do, some keywords for searching, and the limitations that i have in my venture.
-i am a gambler and will take the risk to learn android much more )
Thank you
First of all, congrats that you are more of a researcher. That's a good thing because in the internet, answers to every questions are available. You just need to do the right search in the right way. :good:
Games not working on a device maybe because of various reasons such as the developer has made it limited to work on certain devices or processor architecture etc. If Play Store link shows not supported, then it needs more research and modifications to make it work, which is like 50-50.
And, as a learner you are good to start with XDA-University. It has countless tutorials in that section.
Good Luck and welcome to XDA!
thank you for the link and reply, i am actually suited best in researching, i learned every bit and pieces i know in building websites, programming web apps and system with php, even overclocking and advanced troubleshooting in researching the internet, anyways i have another question to ask,
what is nandroid?
is it an android device with nand storage? (I.E. Nand - internet - external - usb storage)
thank you again
th3f33 said:
what is nandroid?
is it an android device with nand storage? (I.E. Nand - internet - external - usb storage)
thank you again
Click to expand...
Click to collapse
Nandroid is referred to as Nandroid Backup (Backup being taken of ROMs) in ClockWorkMod recovery (Custom Recovery) for the most part.
coolsandie said:
Nandroid is referred to as Nandroid Backup (Backup being taken of ROMs) in ClockWorkMod recovery (Custom Recovery) for the most part.
Click to expand...
Click to collapse
i see, thank you again, as of now, i am still downloading cygwin packages, do you have an idea how big is the total file size of it?
and another thing, I have used romdump, and got the following..
boot.img (13mb+)
checksum.md5(265b)
config.gz
recovery.img(32mb)
systeminfo.gz(1.76kb)
system.tar(385MB)
how can these files help me and can i use them for backup?
th3f33 said:
i see, thank you again, as of now, i am still downloading cygwin packages, do you have an idea how big is the total file size of it?
and another thing, I have used romdump, and got the following..
boot.img (13mb+)
checksum.md5(265b)
config.gz
recovery.img(32mb)
systeminfo.gz(1.76kb)
system.tar(385MB)
how can these files help me and can i use them for backup?
Click to expand...
Click to collapse
Sorry, no idea about Cygwin.
boot.img is your Kernel, and its needed for modifying the kernel. config.gz is the configuration of your device, and its also used for kernel building. recovery.img is your recovery. system.tar is your system partition which contains all files related to ROM. Yes, you can use these as a backup, as actually you'll get these when you take a nandroid backup in CWM recovery.
coolsandie said:
Sorry, no idea about Cygwin.
boot.img is your Kernel, and its needed for modifying the kernel. config.gz is the configuration of your device, and its also used for kernel building. recovery.img is your recovery. system.tar is your system partition which contains all files related to ROM. Yes, you can use these as a backup, as actually you'll get these when you take a nandroid backup in CWM recovery.
Click to expand...
Click to collapse
basically, the system.img is the one that is mounted on /system right? and it contains all files related to rom, does it mean that the ROM is like the OS? if i am not mistaken, i had already edited the apps and build.prop in the /system before i had made the system.img. But i have pulled the whole /system folder before i deleted the apps thru adb.
now the recovery.img is the one that have the android with red triangle exclamation point on vol+ power (android system recovery 3e, this is stock right) ? this is what i need to use if i fail on flashing a custom recovery? is that right?
how important is the config.gz?
boot.img is the kernel, should i stay away from the kernel for the time being? or is it better to check the boot.img first?
am i lacking any file for backup or is this enough for backup?
i have installed rom manager but it says it unsupported device. does it mean that i cannot install CWM?
i think i can flash custom rom with rkbatchtool, i had tried it before (custom rom for a different type) and it ended up bricking the device
as of now, i have tried flashing the generic cwm for rockchip which ended in a black screen recovery,
i also tried flashing my recovery.img but it doesnt work, it get flash but nothing works
it is still working fine as of now except that it doesnt have a recovery!
i think i had corrupted the recovery partition, cause i used a 1.35 rk flash tool and the memory address was set for rk3066 which is 0x0010000 (i think) and mine was 0x0020000.....

Categories

Resources