Port ROMs to your Android device

Simon Chester
19 July 2012, 5:41 PM


Update your phone’s out-dated OS to a community ROM like CyanogenMod.


If you’re rocking an end-of-life handset, or perhaps one of the many el cheap-o pre-paid Android jobbies, you may be a little disappointed that your handset is stuck on an out-dated version of the world’s best phone OS. Worse yet, there may be minimal support in terms of community ROMs.

Port ROMs HowTo Phone initd
Do the copy, paste, delete, copy, paste shuffle.

Thankfully, it’s possible to port CyanogenMod – or just about any other community ROM – over to your beloved – if unpopular – handset, with just a little copy/paste mojo.

The first thing you need to do is find out what type of CPU your phone has (visit tinyurl.com/6qrpk5p), and find a ROM that is designed for the same CPU type and the same phone manufacturer. Any stock Gingerbread, ICS, or CyanogenMod 7/9 ROM should work, but you’ll have to make sure your phone can handle the ROM – no ICS for an HTC Hero, for example.

You will need: Notepad++, a compression program, the ROM you want to port to your phone (let’s call it the ‘base’), as well as a ROM designed for your phone (let’s call it ‘stock’ even though it may be a custom ROM). This guide may mention some files or directories that aren’t present in your particular ROM; don’t worry, just carry on.

On your PC, extract the .ZIP files containing the two ROMs, and navigate to /system/app in your extracted base rom and copy stk.apk, vpnservices.apk, camera.apk, and bluetooth.apk into a temporary directory somewhere else on your PC.

Now, delete the following folders from your base ROM and replace them with the ones from your stock ROM: /data, /system/app, /system/framework, /system/fonts and /system/media.

From your stock ROM, copy /system/lib/libandroid_runtime.so to the system/lib/ directory of your base ROM, overwriting the file.

Next up, move the .APKs you copied earlier back into the /system/app directory of your base ROM.

Open up /system/lib in your base ROM and copy all the files and folders. Paste them into the stock’s /system/lib directory, replacing all. Then go back to the base ROM and delete the /system/lib folder, and replace it with the /system/lib folder from the stock ROM.

Next, navigate to the /system/etc/init.d folder in the base ROM and do the same copy-from-base, paste-to-stock, delete-from-base, copy-from-stock, paste-to-base shuffle as before.

Sick of copying? Tough. Navigate to /system/etc/permissions and do that same copy-paste dance one more time.

Now, open system/build.prop from both the stock and the base ROM in Notepad++. Update the stock build.prop to match the values for “ro.build.description=” and “ro.build.fingerprint=” from your base. Now save the stock build.prop, exit Notepad++, and copy the stock build.prop into the base ROM, overwriting the base build.prop.

Almost there! In Notepad++, open \META-INF\com\google\android\updater-script from both your base and stock ROMs. Edit the base’s script to be like the stock’s updater-script: specifically, change, edit, or add the sections for permissions, ui_prints, asserts, run_programs, and installing the kernel. Don’t change any of the symlinks. In the base script, make sure that the ‘format’ values are appropriate for your device (compare them to the stock script).

Port ROMs HowTo Phone updater script
Change, edit or add the sections for permissions.

Finally, make sure that your kernel is specifically for your device.

Now, if you desire, you can update any apps you require, or add any tools like BusyBox or SuperSU.

And that’s it! Your base ROM is now ready to be zipped and installed on your device via Clockwork Mod!


TechLife the next generation of tech magazine


Post your comment



Comments

RSS feed Email alert

randomuser (New user):

does it require for the base and the stock roms to have the same resolutions? same physical/capacitive keys? same camera mp ( or with front facing cam or w/o)? with 3g or none? in short does it require to have almost the same specs?

02 January 2013, 7:47 PM (4 months ago)report abuse Send to a friend reply

anonymous user Anonymous user