(Newbies) Cooking a Rom with a Kitchen
The purpose of this guide is to show users here in our Forum how to use the DSIXDA kitchen so that they may become familiar with cooking their own Roms and possibly becoming a valuable asset to our community down the road. So I hope to see this become useful for some of you willing to learn and well, to also not be lazy and expecting others to do the work for you - no pun intended lol.
Let's understand what a basic Rom contains:
- First and foremost, a Rom.zip will always have at minimum:
-- A boot.img at the root of the Rom.zip
-- A /system folder
-- A /META-INF folder
--- Now, I assume you already have done me the favor of installing the kitchen and so by therefore, saving me the trouble of having to explain the process of installation. It's simple. Moving along now.
--- Go ahead and get the kitchen up and running in your CMD Window. I will be using Ubuntu in reference to this guide but the same should also apply to those who prefer Windows/Cygwin.
As you see in your CMD Window there are some options with basic information as to what those options will do for you.
The first thing we need to do is set up our working folder which will be option number 1, but before we can do that we need a Rom to work with. There are many ways to getting your hands on a Rom. However, for the sake of this tutorial I will use a Nandroid Backup created by TWRP (Custom Recovery).
-- Please note that a TWRP system backup will require additional steps.
-- This is because the kitchen does not support its backup format.
--- Go ahead and make a copy of your boot and system backup and paste them in the original_update
folder which can be found in the kitchen directory. From a 'TWRP backup' the boot.img
will be originally named boot.emmc.win
and the system.img
will originally be named system.ext4.win
. Go ahead and change them respectively to boot.img and system.img (It is that easy).
--- Now, create a folder and name it whatever you like, BUT the name MUST include WORKING_
at the beginning of its name.
-- An example: WORKING_
--- Move the boot.img in to the created folder. Open up the working folder and create another sudirectory folder named system
--- Go ahead and move the system.img in to the subdirectory folder named system
located inside of your working folder.
--- Open up a new CMD Window and change directories to where the system.img is currently located at.
--- Go ahead and enter:
tar -xvf system.img
-- This will unpack the system backup made by TWRP
-- DSIXDA Kitchen does not currently
support this format so YOU must do it.
--- As you can see, the system folder is now complete with all that you will need to start on your Rom. Go ahead, and remove the actual system.img file as it will not be needed now.
--- Go back to the CMD Window which has the kitchen up and running. Select option 1 to set up your working folder for the kitchen. It will give options to show supported formats or to abort. Go ahead and just press enter.
--- It will bring up a list of working materials to use for establishing your working folder for the kitchen. In my case, the working folder I will be using is option number 2, WORKING_k2cl_412_deodexed. Go ahead and select your option now.
--- It will ask you if you want to change the name of the new working folder. The option is yours. Choose yes or no (this part really doesn't matter).
--- Once you press enter it will create the new working folder which can be found at the root of the kitchen directory. It will be copying the contents over to the new working folder.
--- It will detect whether or not your rom has an updater script, symlinks, root, busybox, etc. If any of these are detected it will let you know it found them and it will adjust accordingly to them. Which saves you lots of time.
--- Now it will ask you if you would like to view the Rom's information. This is optional for you. If you want to see it then select yes, if not, then select no.
--- Congratulations! You have a Rom set up to be worked on! At this point you can choose to deodex your Rom, unpack and edit your boot.img, root your device both, /system and boot.img. Add additional tweaks, apply init.d support, etc.
--- Once you have finished playing with your Rom as a first timer, go ahead and back out to the main menu of the kitchen. Select number 99 to build your Rom from the working folder.
--- You will be asked to select a build option. Go ahead and select option number 1.
--- Select yes to zipalign your apk files
--- Next it will build your updater-script for your Rom based on an android device. It will ask you to review the updater-script before proceeding forward. You MUST insure the updater-script is ready for your device or it will not flash!
--- Go to the working folder of that rom and scroll the the subdirectories found in the META-INF folder until you see the updater-file. Open it up with notepad++ for Windows users or Gedit for linux users. You are going to look at the top and add the following (PLEASE INSURE YOU USE THE PROPER SYSTEM PARTITION FOR YOUR DEVICE - THIS EXAMPLE IS BASED ON MY K2_CL DEVICE!
mount("ext4", "EMMC", "/dev/block/mmcblk0p35", "/system");
--- Now scroll to the bottom of the updater-script. You may see some crazy stuff about raw writing the boot.img. Go ahead and remove that mess and replace it with the following (PLEASE INSURE YOU USE THE PROPER BOOT PARTITION FOR YOUR DEVICE - THIS EXAMPLE IS BASED ON MY K2_CL DEVICE!
--- Once done, go ahead and save the updater-script file. Go back to the CMD window running the kitchen and select yes to keep the updater-script for the Rom.
--- It will create the update.zip, it will ask you to sign the Rom (say yes), then it will ask you if you wish to change its name or leave it as is (your choice).
--- Congratulations, now go ahead and flash your Rom to test it out. Be sure to Factory reset your device from within the custom recovery, and insure that the system partition is wiped also. After it is done flashing the rom, wipe the dalvik and cache before rebooting, and remember... Any problems without a logcat is trivial!!!
--- Happy Hunting!!