How to cook your own Android ROM


You will often hear to Android being referred to as Open Source. This means that the code that makes up the operating system is available for everyone to view, download , and if they wish, edit.

Android is now pretty mature, and having the option of tailoring the OS to your need is incredibly exciting , but something most people don’t even think about doing as they feel they need a degree in Computer Science to even start.

While its true that to truly develop the next CyanogenMod is going to take a fair bit of hard work and knowledge, there are a number of tools available that simplify the process. The easiest way to cook up your own ROM is to use one of the online Kitchens such as UOTKitchen or RomKitchen.

These online resources allow for a point and click interface where you chose the features you want, click generate and it spits out the ROM ready to flash. Before starting this guide it might be a good idea to have a quick hunt about and try out a few ROMS of your own. Online kitchens are great, but don’t offer a huge amount of flexibility or device support, and many of them are not up to date with the latest versions of Android.

In this guide though we are going to go a little deeper but still just basically adding and removing some features as a gentle introduction into building your own ROMs.

  1. Download the tools

    First off we need to navigate to dsixda’s Android Kitchen and download the tool. Its mainly for HTC devices , although others are supported. Depending on your operating system you will also need to install a few extra files.

  2. Download our source

    Next download CyanogenMod for your device from Choose the stable version and remember not to unzip the download.  If you want you could instead download standard Android AOSP from:, although this will involve some command line work.

  3. Run the Kitchen app

    Depending on your operating system the commands may differ slightly, but unzip the Kitchen files , then open up a Terminal or command line and move to that directory. Something like ‘cd user/documents/kitchen’. Once there type ./menu to run the app. You will then see the menu.

  4. Import our base ROM

    You can edit any .zip ROM image file you like , including stock ones. This is great if you want to remove unwanted apps from the image. To import our CyanogenMod ROM move the .zip to the ‘original_update’ folder in the Kitchen directory.

  5. Add ROM image to working directory

    In the menu press 1, then press enter to add the existing ROM to our working directory so that we can edit it. You will be given some options such as making a backup , and then a choice of ROM images within that directory. Choose the

  6. Rename the ROM

    Our first bit of personalization is to rename the ROM. In the Kitchen menu press ‘8’. You will be shown the original name , press ‘y’ and then type in your new name and press enter. This will then show in Settings->About when you boot the ROM.

  7. Add/Remove some Apps

    A common complaint with stock ROMS is that they come bundled with lots of apps that you don’t want. When cooking your own, you can add or remove apps by adding or deleting the .apk file in the system/app folder in the WORKING_myrom directory.

  8. ZipAlign your APKs

    After you have added or removed the apps you want, the next step is to zip align them. This process greatly speeds up access to the applications. In the Kitchen menu press ‘6’ and then press ‘y’. After this check for errors using option 23.

  9. Build the ROM

    Next we need to build the ROM. In the menu press ’99’ and then ‘1’. Make sure to choose ‘y’ when asked to sign the ROM. You can then rename the .zip file to something more personal. The ROM image will then be located in the Output_Zip folder.

  10. Boot the ROM

    Once the file is completed compiling ,copy the zip to the Sdcard and then boot into recovery by holding down the volume while turning on phone. Install as you would any other ROM and watch it load! Now go and try some more tweaks…

Warning: file_get_contents( failed to open stream: HTTP request failed! HTTP/1.0 500 Internal Server Error in /var/www/html/ on line 9