Port ROMs to your Android device

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-INFcomgoogleandroidupdater-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