[GUIDE] [how to] CREATE OWN ROM [FOR ANY ANDROID DEVICE] [FOR N00B] [EASIEST METHODS]

Search This thread

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
NOTE: THIS GUIDE WILL WORK ANY ANDROID DEVICE BUT HAS FEW EXTRA PRE-SUGGESTED LINKS FOR GALAXY ACE PLUS USERS.


Special Thanks to -
  • dsixda for his awesome kitchen. Please Hit Thanks button for him.
  • inspired by isidromxz's thread.
  • Please kindly remind me if i have forgotten to write any name in thanks section, i have collected all things from many many sources and with modification.

Who is this tutorial for?
  • Absolute Beginners.
  • People with little or no programming skills.
  • people who really want to learn how to make custom rom's
  • people who want to learn android and don't know where to start.

Tools Required : (Update them manually and report me dead links please)



Step one: Installing the JAVA JDK, Cygwin and Setting up the Kitchen.

*Before you do anything install the java jdk*

Try this Dsixda Kitchen Install Picture Tutor(recommended)

OR

watch this video tutorial by gitagaire for how to setup cygwin and kitchen(recommended)


INSTRUCTIONS

  • Download and extract the cygwin_packages.zip
  • Run the set up(make sure there is no previous cygwin installation)
    NOTE: INSTALL CYGWIN IN ROOT DISK LIKE C:\
    • Follow the kitchen read me txt!!!
    • local package directory *must* be the path to the cygwin_packages folder that you just extracted

    • unledwkc.png
  • when it shows all the package names, go to the top and select "all default" until it changes to "all install" (you must click on the arrows)
  • Download the kitchen from above. Then, extract the kitchen's .zip file to a folder under your home account. Rename the dsixda-android-kitchen-*** folder to just "kitchen". In Cygwin, this folder would depend on what was set for your Cygwin install directory, e.g. C:\cygwin\home\John\kitchen
    NOTE!! If your user folder contains spaces (e.g. C:\cygwin\home\John Smith\kitchen), then the kitchen will not function properly. Instead, copy it under C:\cygwin\home\kitchen.
  • Now your ready to run the kitchen type:
    those who have their kitchen like this C:\cygwin\home\John\kitchen use these commands given below.
    cd kitchen(enter)
    ./menu(enter)
    those who have their kitchen like this C:\cygwin\home\kitchen use these commands given below.
    cd ../kitchen(enter)
    ./menu(enter)
    If you did things right you should see this:
    unledxwb.png

    congratulations!!
 
Last edited:

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
Step Two: Setting up a working folder


THERE ARE TOW METHODS FOR THIS.
1. WHEN YOU HAVE BASE ROM AVAILABLE.
2. WHEN YOU DON'T HAVE BASE ROM.


FIRST METHOD -
  • First our folder structure should look like this:
    Code:
    cygwin folder/home/your user name/kitchen
  • Inside the kitchen it should look like this:
    unledmlb.png
  • Now we need a rom to work on, for GALAXY ACE PLUS[s7500] users i will recommend this rom by blackburner but you can use any rom.
    Just Place the original rom zip in the original_update folder inside the kitchen.
  • run the cygwin.exe again type:
    Code:
    cd kitchen(enter)
    ./menu(enter)
  • now enter option 1, enter again. You should see your rom listed, choose and enter
    you will be asked about changing the working folders name, at this point it makes no difference so just continue.
  • congratulations you have a working folder!!!
    unledzfr.png



SECOND METHOD - this method is by neroyoung

FIRST MAKE A WORKING FOLDER IN CYGWIN FOLDER
IT SHOULD LOOK LIKE THIS
cygwin folder/home/your user name/kitchen/WORKING_(your rom name)

NOTE: FOR THIS MEETHOD WE NEED 3 FILES AND FOLDERS TO BE PLACED IN WORKING FOLDER.
1. META-INF FOLDER - GET THIS FROM DOWNLOAD FILES LIST IN FIRST POST
2. SYSTEM FOLDER - TUTORIAL BELOW
3. BOOT.IMG - TUTORIAL BELOW



2. getting system folder
(NOTE - YOU MUST BE ROOTED FOR THIS MEDHOD)
  • This is universal method and can be done easily using terminal emulator.
    For this simply download Terminal Emulator from Android Market.
    we need freshly flashed device here. OTHERWISE YOU WILL HAVE LOT OF JUNK FILES.
  • Open it and type:
    su
    tar -c system/* >> sdcard/system.tar
    This will copy all your /system folder to your SDcard with name System.tar
    This will take some time to finish so be patient.
  • After it's done you should have a tar file in your /sdcard named system.tar
    You can extract it using Winrar or 7zip software. But yes this will have huge size , as it has other useless folders so you will have to delete them. After extracting this system.tar file you will get following folders (Similar one)

    • /etc
    • /fonts
    • /framework
    • /lib
    • /lost-found
    • /media
    • /sd
    • /semc
    • /usr
    • /xbin
    • build.prop
    • And some other files and folders like ""autorooted,kernel files" etc

    Now simply delete the folders marked in red color and its done.Don't worry if you don't have folders with red colors above,we don't need them.
  • And the final files that we will have in our system folders will be

    • /app
    • /bin
    • /etc
    • /fonts
    • /framework
    • /lib
    • /media
    • /semc
    • /usr
    • /xbin
    • build.prop
    If it dont have semc folder no need to worry.
    NOTE: YOU CAN ALSO GET THIS SYSTEM FOLDER BY USING ANY ROOT BROWSER. JUST FIND THIS FOLDER AND COPY/EXTRACT TO SDCARD
  • NOW COPY THIS system FOLDER TO WORKING FOLDER


3. getting boot.img

Here we have 2 options
1. stock boot.img from stock rom - simple kernel which we get in brand new mobile.
2. custom boot.img from custom kernel - kernel which are modified for overclock or other features


1. getting stock boot.img from stock rom.
extract your stock rom with winrar or 7zip. you will see boot.img there. copy it to working folder

2. getting custom boot.img from custom kernel.
  • download any custom kernel which is only for your device. [galaxy ace plus [s7500] users get from here or here]
  • extract it with winrar or 7zip and copy boot.img to working folder
NOTE: many of new devices have kernel.bin and other files instead of boot.img so skip this part if your device don't have it...
 
Last edited:

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
Step Three :change/modify/update rom

YOU CAN MODIFY YOUR ROM IN TWO STEPS:
  1. MODIFY USING ANDROID KITCHEN - for basic modification.
  2. MODIFY MANUALLY. - for advanced modification.



1. MODIFYING USING ANDROID KITCHEN
watch this amazing tutorial by neroyoung on how to editing rom with kitchen
NOTE: DON'T FORGET TO DEODEX YOUR ROM


2. MODIFYING MANUALLY.


FOR ALL ANDROID PHONES (ESPECIALLY FOR GINGERBREAD ROMS) USE THIS GUIDE FOR COOL MODS. like center clock,CRT animation, ics and jelly bean style mods etc... ANOTHER GUIDE BY ME

 
Last edited:

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
MORE ADVANCE MODIFICATION (not advised for beginners)


  • editing .apk files
    THERE ARE TWO BEST TOOLS FOR EDITING .APK FILES
    1. APKTOOLS
    This video by neroyoung teaches you how to setup APKTOOL folder as well as teaches you how to edit .apk files.

    2. APK Manager
    this video by adgoosuc teaches you How to unpack,repack and sign an APK File with APK Manager




    [*]Editing .JAR Files
    In this video by neroyoung you will get information on how to edit .jar files like services.jar using APKTOOL.





    [*]THEMEING .apk FILE


    HERE IS A AWESOME TUTORIAL BY Andrewtst FOR THEMEING ANY .apk FILE.

    for porting themes:
    1. download and extract theme you want to port.
    2. open both apk(base and port) in 7zip/winrar
    3. drag and replace png files with same name
    this works with only png files not with xml and others


    FOR THEMING YOUR ROM YOU CAN EDIT framework-res.apk AND GET MANY COOL THINGS
    LIKE you can change smiles, default wallpaper, default lockscreen wallpaper, add 14 toggle mod and many cool things...
    for that use Framework Flasher or apktools or any other tool and do changes manually.


    CHECK THIS GUIDE BY dully79 TO KNOW WHICH FILES YOU CAN MODIFY AND HOW.

    HERE ARE FEW MORE COOL GUIDES -
    ICS Style 'Settings.apk' BY balamu96m
    Implement Swipe to Remove Notification BY hansip87
    add customizable 14 statusbar toggle buttons for samsung ROM BY lidroid


    FOR MORE SEARCH MORE...




  • CHANGING HARD KEY FUNCTION (REMAPPING BUTTON)

    1. open /system/usr/keylayout/[phone model]-keypad.kl with notepad++
    (Some phone may have different names, but it will always end with "keypad.kl)
    it will look like this --
    Code:
    # Copyright (c) 2011, Code Aurora Forum.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # [url]http://www.apache.org/licenses/LICENSE-2.0[/url]
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    
    #
    key 2     1
    key 3     2
    key 4     3
    key 5     4
    key 6     5
    key 7     6
    key 8     7
    key 9     8
    key 10    9
    key 11    0
    key 158   BACK              WAKE_DROPPED
    key 230   HOME              WAKE
    key 60    SOFT_RIGHT        WAKE
    key 62    ENDCALL           WAKE_DROPPED
    key 229   MENU         WAKE_DROPPED
    key 59    MENU         WAKE_DROPPED
    key 139   MENU              WAKE_DROPPED
    key 228   POUND
    key 227   STAR
    key 231   CALL              WAKE_DROPPED
    key 61    CALL              WAKE_DROPPED
    key 232   DPAD_CENTER       WAKE_DROPPED
    key 108   DPAD_DOWN         WAKE_DROPPED
    key 103   DPAD_UP           WAKE_DROPPED
    key 102   ENDCALL           WAKE_DROPPED
    key 105   DPAD_LEFT         WAKE_DROPPED
    key 106   DPAD_RIGHT        WAKE_DROPPED
    key 115   VOLUME_UP         WAKE
    key 114   VOLUME_DOWN         WAKE
    key 212   SLASH
    key 213   DEL               WAKE_DROPPED
    key 355   DEL               WAKE_DROPPED
    
    key 16    Q
    key 17    W
    key 18    E
    key 19    R
    key 20    T
    key 21    Y
    key 22    U
    key 23    I
    key 24    O
    key 25    P
    
    key 30    A
    key 31    S
    key 32    D
    key 33    F
    key 34    G
    key 35    H
    key 36    J
    key 37    K
    key 38    L
    key 14    DEL
            
    key 44    Z
    key 45    X
    key 46    C
    key 47    V
    key 48    B
    key 49    N
    key 50    M
    key 51    COMMA
    key 52    PERIOD
    key 28    ENTER
            
    key 56    ALT_LEFT
    key 42    SHIFT_LEFT
    key 215   AT
    key 57    SPACE
    key 53    SLASH
    key 127   SYM
    key 100   ALT_RIGHT
    
    key 399   GRAVE

    HERE YOU WILL FIND 3 ROWS...
    1. As you can see, there are different attributes assigned to each key. like this
    Code:
    key 102   HOME
    key 139   MENU
    key 158   BACK
    key 115   VOLUME_UP
    key 114   VOLUME_DOWN

    2. Specific application/action launchers:
    Code:
    HOME                     #Launches "Home"
    MENU                     #Launches "Menu"
    BACK                     #Takes you back to the last activity
    SEARCH                   #Launches "Universal Search"
    CALL                     #Launches the "Phone" activity and corresponding .apk or initiates a call
    ENDCALL                  #Ends a call
    CAMERA                   #Launches "Camera" activity and corresponding .apk
    FOCUS                    #Initiates Auto-Focus while using the Camera
    VOLUME_UP                #Self explanatory
    VOLUME_DOWN              #Self explanatory

    3. And attributes saying if it should wake the phone at button push to complete the action, or if it should just complete the action without waking the screen.
    Code:
    WAKE                 #Completes the action without waking the screen
    WAKE_DROPPED         #Wakes the phone to complete the action

    2. NOW WE WILL EDIT SECOND AND/OR THIRD ROW
    Erase the center row value for any key to completely disable it. To reassign the key, replace the center row value with another one from the same row. Change the right row value to either "WAKE" or blank to enable the wake function. Do not modify the left row.
    NOTE: don't edit left row i.e. first row which contains specific key identity number.

    FOR EXAMPLE I DO THESE CHANGES
    DEFAULT VALUES ---
    Code:
    key 115   VOLUME_UP         WAKE
    key 114   VOLUME_DOWN       WAKE

    CHANGED VALUES ---
    Code:
    key 115   CAMERA         WAKE
    key 114   FOCUS          WAKE

    NOW VOLUME UP KEY WILL WORK AS CAMERA KEY AND VOLUME DOWN KEY WILL WORK AS FOCUS KEY....
    NOTE: all words should be in BOLD letters i.e. capital letters...
  • MORE COMING SOON

FOR ADVANCE ROM DEVELOPMENT GUIDES (like porting rom) SEE THIS COLLECTION BY F3niX
 
Last edited:

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
Step Four: repackage the rom


  • AFTER YOU HAVE DONE ALL CHANGE/MODIFICATION YOU WANTED OPEN CYGWIN AGAIN AND TYPE
    cd kitchen(enter)
    ./menu(enter)
    now convert update script to updater script(in option 23)


  • now lets edit updater script(optional)

    Thanks to user langthang for a great updater-script guide.
    Download it HERE

    the updater-script basically tells CWM what steps to take during the installation(flashing rom).
    If you don't have any experience please don't edit anything other than what is in this simple tutorial.


    TO EDIT UPDATER SCRIPT -
    1.Go to META-INF/com/google/android
    2.Open the updater-scrip file with Notepad++
    3.Any text that would appear during the CWM install should be in this format :

    Code:
    ui_print("Put your text in HERE");

    Add your text start at top and save,
    then replace with new updater-scrip
    unledofd.png


    IF YOU GET ANY ERROR YOU CAN COMPARE YOUR UPDATER SCRIPT WITH MINE (attached in 1st post)
    NOTE: DO NOT COPY WHOLE UPDATER SCRIPT JUST EDIT PART WHERE YOU GET ANY ERROR...

    most common errors will be in mount, remount part in starting and end and boot.img installing part... so replace only those lines....



    AND AT LAST

    [*]Now that you have made some changes it's time to pack the rom and test!!



    1. Run the cygwin and type
      cd kitchen(enter)
      ./menu(enter)
    1. enter option 99 - "biuld rom from working folder"
    2. Choose your build option and few more enters
      I recommend that you go with all default options until you get more experience with the kitchen.
    3. When rom is packed and signed it will ask to change rom zip name (type name of your rom)
    4. When its all done you will find a folder inside "cygwin/home/yousername/kitchen" called output_zip
    5. Inside the folder is your new rom ready to be flashed and tested!!!
      unledwxh.png

    IF YOU WANT THAN YOU CAN MAKE CWM FLASH ABLE ZIP'S MANUALLY USE THIS TOOL BY I.AM.H3RO


    congratulations you have build your own rom

  • TROUBLESHOOTING (by hell_lock)

    • If you are facing java related problem with cygwin than refer to this post. and Google search
    • If you get problems in installing a rom then compare your updater-script in META-INF folder with one attached in first post.
    • If you have a rom without kernel then remove these lines:
      Code:
      assert(package_extract_file("boot.img", "/tmp/boot.img"),
             write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p8"),
             delete("/tmp/boot.img"));
      NOTE: mmcblk0p8 can be different with different devices... this works fine with galaxy ace plus...
    • If there is a package error then extract the files of the rom and repack them using any compression software.
    • If rom installed correctly but stuck onto logo screen?? Then remove try removing kernel and flashing rom again.
    • If rom installed correctly but got onto bootloop then there could be many possibilities which could lead to this. If you want accurate cause of it then do a logcat.
    • If there are some apk's which are not working then check if you correctly modded them.
    • For status errors like status error 0, status error 6, status error 7 see this guide by Tha TechnoCrat and for rest go here and type your error.

NOTE: Most of the problems occur because of updater-script problems so before trying any of the troubleshooting try the first tip.

IF YOU HAVE ANY QUESTIONS OR PROBLEMS FEEL FREE TO POST HERE OR PERSONAL MESSAGE ME.


sigpic3913662_2.gif
 
Last edited:

dodoik

Senior Member
Dec 20, 2011
256
171
pekanbaru
omg all my thanks goes for you today:D

●๋•ηι¢є ιηƒσ●๋•
how about using dsixda, toolchain etc in linux? would u please add some tutor for that...even i guess it has the same way... i mean in ubuntu what version of dsixda that work well and what lib is needed for that? cos i have made my own kernel on my last device galaxr fit(gt-s5670) that use armv6 procie..maybe it need diferent type n bersion of tools?

thanks in advance

Sent from my GT-S7500 using xda app-developers app
 

fro5tie

Senior Member
Sep 3, 2009
179
34
Had a quick read through, seems fairly easy to get started, so thanks for that!

What I want to achieve is to be able to take an existing ROM, and customise it for my organisation. I want to be able to remove the initial set up that you get when you flash a new ROM, e.g. name, Google account etc. Do you know how I would achieve this, or the files I would need to edit?

I also want to remove some APKs and preload some APKs, I think I know how to do this its just a case of replacing them in the system folder?

Also I want to preload some Wifi settings on so set it to know our SSID and PSK, is this something which is possible?

Thanks for your help!
 

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
Had a quick read through, seems fairly easy to get started, so thanks for that!

What I want to achieve is to be able to take an existing ROM, and customise it for my organisation. I want to be able to remove the initial set up that you get when you flash a new ROM, e.g. name, Google account etc. Do you know how I would achieve this, or the files I would need to edit?

I also want to remove some APKs and preload some APKs, I think I know how to do this its just a case of replacing them in the system folder?

Also I want to preload some Wifi settings on so set it to know our SSID and PSK, is this something which is possible?

Thanks for your help!
1st for rom you will use as base, get permission of its developers before doing it...
2nd the setup wizard you are talking about(i guess where we have to touch android) is by app in system/app named SetupWizard.apk but i think you should not delete it. it also controls few other things.
3rd replace/delete app you know about...(system/app)
4th i don't know much about preloaded settings... all i know is you will need to edit smali files of apk....
 
Last edited:

fro5tie

Senior Member
Sep 3, 2009
179
34
Hi

I've been playing around with this, I've extracted the ROM to a working folder and made a few changes, e.g adding and removing APKs. Then I've repackaged the ROM, but when I copy the .zip onto my SD card and try flashing it, I get an error:

Install /sdcard
Finding update package
Opening update package
Verifying Update package
E:signature verification failed
Installation aborted

I can't install CWM on this device so its just using the Android System Recovery 3e

Is there something else I have to do to get it flashable?
 
  • Like
Reactions: CrazyFix

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
hiii

okay.. so first get cwm recovery as you say you dont have cwm... then while making a zip with android kitchen make sure when it ziplangs all apks then it signs your rom zip... make sure you press enter or press y and then enter...
while flashing rom with cwm you get this error again then in 'ïnstall zip from sdcard' select 'toggle signature verification' then try again if still no luck rply back....
and it seams like you used this guide and you found it helpful i guess and you dint even pressed a thanks button... i don't know why you guys enjoy all stuff and don't even press thanks button.. i am not asking you for money... it wont cost you anything...
Hi

I've been playing around with this, I've extracted the ROM to a working folder and made a few changes, e.g adding and removing APKs. Then I've repackaged the ROM, but when I copy the .zip onto my SD card and try flashing it, I get an error:

Install /sdcard
Finding update package
Opening update package
Verifying Update package
E:signature verification failed
Installation aborted

I can't install CWM on this device so its just using the Android System Recovery 3e

Is there something else I have to do to get it flashable?
 
Last edited:

fro5tie

Senior Member
Sep 3, 2009
179
34
Hi

Thanks for this, I've got it sorted now.

I can't install CWM as its not compatible with my device, but it was just that the zip needed signing for my device. I found info on another forum to sign it properly, and its flashing fine now.

Thanks for your help.
 
  • Like
Reactions: shainshailesh

androsamace

Senior Member
Nov 25, 2011
326
1,178
Hi

Thanks for this, I've got it sorted now.

I can't install CWM as its not compatible with my device, but it was just that the zip needed signing for my device. I found info on another forum to sign it properly, and its flashing fine now.

Thanks for your help.

Wich device you have?
 

lokeshsaini94

Senior Member
May 1, 2012
1,777
3,973
Behind you!!!
use this to make your own cwm recovery.... http://builder.clockworkmod.com/
Hi

Thanks for this, I've got it sorted now.

I can't install CWM as its not compatible with my device, but it was just that the zip needed signing for my device. I found info on another forum to sign it properly, and its flashing fine now.

Thanks for your help.
 

xSilv85

Senior Member
Aug 17, 2008
353
48
HTC One X
- no ROM support, but de-odexing only! (Here is the guide to de-odex)

So i wanted to start building a ROM the easy way, guess I have to find the manual method..
 

Top Liked Posts

  • There are no posts matching your filters.
  • 711
    NOTE: THIS GUIDE WILL WORK ANY ANDROID DEVICE BUT HAS FEW EXTRA PRE-SUGGESTED LINKS FOR GALAXY ACE PLUS USERS.


    Special Thanks to -
    • dsixda for his awesome kitchen. Please Hit Thanks button for him.
    • inspired by isidromxz's thread.
    • Please kindly remind me if i have forgotten to write any name in thanks section, i have collected all things from many many sources and with modification.

    Who is this tutorial for?
    • Absolute Beginners.
    • People with little or no programming skills.
    • people who really want to learn how to make custom rom's
    • people who want to learn android and don't know where to start.

    Tools Required : (Update them manually and report me dead links please)



    Step one: Installing the JAVA JDK, Cygwin and Setting up the Kitchen.

    *Before you do anything install the java jdk*

    Try this Dsixda Kitchen Install Picture Tutor(recommended)

    OR

    watch this video tutorial by gitagaire for how to setup cygwin and kitchen(recommended)


    INSTRUCTIONS

    • Download and extract the cygwin_packages.zip
    • Run the set up(make sure there is no previous cygwin installation)
      NOTE: INSTALL CYGWIN IN ROOT DISK LIKE C:\
      • Follow the kitchen read me txt!!!
      • local package directory *must* be the path to the cygwin_packages folder that you just extracted

      • unledwkc.png
    • when it shows all the package names, go to the top and select "all default" until it changes to "all install" (you must click on the arrows)
    • Download the kitchen from above. Then, extract the kitchen's .zip file to a folder under your home account. Rename the dsixda-android-kitchen-*** folder to just "kitchen". In Cygwin, this folder would depend on what was set for your Cygwin install directory, e.g. C:\cygwin\home\John\kitchen
      NOTE!! If your user folder contains spaces (e.g. C:\cygwin\home\John Smith\kitchen), then the kitchen will not function properly. Instead, copy it under C:\cygwin\home\kitchen.
    • Now your ready to run the kitchen type:
      those who have their kitchen like this C:\cygwin\home\John\kitchen use these commands given below.
      cd kitchen(enter)
      ./menu(enter)
      those who have their kitchen like this C:\cygwin\home\kitchen use these commands given below.
      cd ../kitchen(enter)
      ./menu(enter)
      If you did things right you should see this:
      unledxwb.png

      congratulations!!
    544
    Step Four: repackage the rom


    • AFTER YOU HAVE DONE ALL CHANGE/MODIFICATION YOU WANTED OPEN CYGWIN AGAIN AND TYPE
      cd kitchen(enter)
      ./menu(enter)
      now convert update script to updater script(in option 23)


    • now lets edit updater script(optional)

      Thanks to user langthang for a great updater-script guide.
      Download it HERE

      the updater-script basically tells CWM what steps to take during the installation(flashing rom).
      If you don't have any experience please don't edit anything other than what is in this simple tutorial.


      TO EDIT UPDATER SCRIPT -
      1.Go to META-INF/com/google/android
      2.Open the updater-scrip file with Notepad++
      3.Any text that would appear during the CWM install should be in this format :

      Code:
      ui_print("Put your text in HERE");

      Add your text start at top and save,
      then replace with new updater-scrip
      unledofd.png


      IF YOU GET ANY ERROR YOU CAN COMPARE YOUR UPDATER SCRIPT WITH MINE (attached in 1st post)
      NOTE: DO NOT COPY WHOLE UPDATER SCRIPT JUST EDIT PART WHERE YOU GET ANY ERROR...

      most common errors will be in mount, remount part in starting and end and boot.img installing part... so replace only those lines....



      AND AT LAST

      [*]Now that you have made some changes it's time to pack the rom and test!!



      1. Run the cygwin and type
        cd kitchen(enter)
        ./menu(enter)
      1. enter option 99 - "biuld rom from working folder"
      2. Choose your build option and few more enters
        I recommend that you go with all default options until you get more experience with the kitchen.
      3. When rom is packed and signed it will ask to change rom zip name (type name of your rom)
      4. When its all done you will find a folder inside "cygwin/home/yousername/kitchen" called output_zip
      5. Inside the folder is your new rom ready to be flashed and tested!!!
        unledwxh.png

      IF YOU WANT THAN YOU CAN MAKE CWM FLASH ABLE ZIP'S MANUALLY USE THIS TOOL BY I.AM.H3RO


      congratulations you have build your own rom

    • TROUBLESHOOTING (by hell_lock)

      • If you are facing java related problem with cygwin than refer to this post. and Google search
      • If you get problems in installing a rom then compare your updater-script in META-INF folder with one attached in first post.
      • If you have a rom without kernel then remove these lines:
        Code:
        assert(package_extract_file("boot.img", "/tmp/boot.img"),
               write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p8"),
               delete("/tmp/boot.img"));
        NOTE: mmcblk0p8 can be different with different devices... this works fine with galaxy ace plus...
      • If there is a package error then extract the files of the rom and repack them using any compression software.
      • If rom installed correctly but stuck onto logo screen?? Then remove try removing kernel and flashing rom again.
      • If rom installed correctly but got onto bootloop then there could be many possibilities which could lead to this. If you want accurate cause of it then do a logcat.
      • If there are some apk's which are not working then check if you correctly modded them.
      • For status errors like status error 0, status error 6, status error 7 see this guide by Tha TechnoCrat and for rest go here and type your error.

    NOTE: Most of the problems occur because of updater-script problems so before trying any of the troubleshooting try the first tip.

    IF YOU HAVE ANY QUESTIONS OR PROBLEMS FEEL FREE TO POST HERE OR PERSONAL MESSAGE ME.


    sigpic3913662_2.gif
    331
    Step Two: Setting up a working folder


    THERE ARE TOW METHODS FOR THIS.
    1. WHEN YOU HAVE BASE ROM AVAILABLE.
    2. WHEN YOU DON'T HAVE BASE ROM.


    FIRST METHOD -
    • First our folder structure should look like this:
      Code:
      cygwin folder/home/your user name/kitchen
    • Inside the kitchen it should look like this:
      unledmlb.png
    • Now we need a rom to work on, for GALAXY ACE PLUS[s7500] users i will recommend this rom by blackburner but you can use any rom.
      Just Place the original rom zip in the original_update folder inside the kitchen.
    • run the cygwin.exe again type:
      Code:
      cd kitchen(enter)
      ./menu(enter)
    • now enter option 1, enter again. You should see your rom listed, choose and enter
      you will be asked about changing the working folders name, at this point it makes no difference so just continue.
    • congratulations you have a working folder!!!
      unledzfr.png



    SECOND METHOD - this method is by neroyoung

    FIRST MAKE A WORKING FOLDER IN CYGWIN FOLDER
    IT SHOULD LOOK LIKE THIS
    cygwin folder/home/your user name/kitchen/WORKING_(your rom name)

    NOTE: FOR THIS MEETHOD WE NEED 3 FILES AND FOLDERS TO BE PLACED IN WORKING FOLDER.
    1. META-INF FOLDER - GET THIS FROM DOWNLOAD FILES LIST IN FIRST POST
    2. SYSTEM FOLDER - TUTORIAL BELOW
    3. BOOT.IMG - TUTORIAL BELOW



    2. getting system folder
    (NOTE - YOU MUST BE ROOTED FOR THIS MEDHOD)
    • This is universal method and can be done easily using terminal emulator.
      For this simply download Terminal Emulator from Android Market.
      we need freshly flashed device here. OTHERWISE YOU WILL HAVE LOT OF JUNK FILES.
    • Open it and type:
      su
      tar -c system/* >> sdcard/system.tar
      This will copy all your /system folder to your SDcard with name System.tar
      This will take some time to finish so be patient.
    • After it's done you should have a tar file in your /sdcard named system.tar
      You can extract it using Winrar or 7zip software. But yes this will have huge size , as it has other useless folders so you will have to delete them. After extracting this system.tar file you will get following folders (Similar one)

      • /etc
      • /fonts
      • /framework
      • /lib
      • /lost-found
      • /media
      • /sd
      • /semc
      • /usr
      • /xbin
      • build.prop
      • And some other files and folders like ""autorooted,kernel files" etc

      Now simply delete the folders marked in red color and its done.Don't worry if you don't have folders with red colors above,we don't need them.
    • And the final files that we will have in our system folders will be

      • /app
      • /bin
      • /etc
      • /fonts
      • /framework
      • /lib
      • /media
      • /semc
      • /usr
      • /xbin
      • build.prop
      If it dont have semc folder no need to worry.
      NOTE: YOU CAN ALSO GET THIS SYSTEM FOLDER BY USING ANY ROOT BROWSER. JUST FIND THIS FOLDER AND COPY/EXTRACT TO SDCARD
    • NOW COPY THIS system FOLDER TO WORKING FOLDER


    3. getting boot.img

    Here we have 2 options
    1. stock boot.img from stock rom - simple kernel which we get in brand new mobile.
    2. custom boot.img from custom kernel - kernel which are modified for overclock or other features


    1. getting stock boot.img from stock rom.
    extract your stock rom with winrar or 7zip. you will see boot.img there. copy it to working folder

    2. getting custom boot.img from custom kernel.
    • download any custom kernel which is only for your device. [galaxy ace plus [s7500] users get from here or here]
    • extract it with winrar or 7zip and copy boot.img to working folder
    NOTE: many of new devices have kernel.bin and other files instead of boot.img so skip this part if your device don't have it...
    304
    Step Three :change/modify/update rom

    YOU CAN MODIFY YOUR ROM IN TWO STEPS:
    1. MODIFY USING ANDROID KITCHEN - for basic modification.
    2. MODIFY MANUALLY. - for advanced modification.



    1. MODIFYING USING ANDROID KITCHEN
    watch this amazing tutorial by neroyoung on how to editing rom with kitchen
    NOTE: DON'T FORGET TO DEODEX YOUR ROM


    2. MODIFYING MANUALLY.


    FOR ALL ANDROID PHONES (ESPECIALLY FOR GINGERBREAD ROMS) USE THIS GUIDE FOR COOL MODS. like center clock,CRT animation, ics and jelly bean style mods etc... ANOTHER GUIDE BY ME

    248
    MORE ADVANCE MODIFICATION (not advised for beginners)


    • editing .apk files
      THERE ARE TWO BEST TOOLS FOR EDITING .APK FILES
      1. APKTOOLS
      This video by neroyoung teaches you how to setup APKTOOL folder as well as teaches you how to edit .apk files.

      2. APK Manager
      this video by adgoosuc teaches you How to unpack,repack and sign an APK File with APK Manager




      [*]Editing .JAR Files
      In this video by neroyoung you will get information on how to edit .jar files like services.jar using APKTOOL.





      [*]THEMEING .apk FILE


      HERE IS A AWESOME TUTORIAL BY Andrewtst FOR THEMEING ANY .apk FILE.

      for porting themes:
      1. download and extract theme you want to port.
      2. open both apk(base and port) in 7zip/winrar
      3. drag and replace png files with same name
      this works with only png files not with xml and others


      FOR THEMING YOUR ROM YOU CAN EDIT framework-res.apk AND GET MANY COOL THINGS
      LIKE you can change smiles, default wallpaper, default lockscreen wallpaper, add 14 toggle mod and many cool things...
      for that use Framework Flasher or apktools or any other tool and do changes manually.


      CHECK THIS GUIDE BY dully79 TO KNOW WHICH FILES YOU CAN MODIFY AND HOW.

      HERE ARE FEW MORE COOL GUIDES -
      ICS Style 'Settings.apk' BY balamu96m
      Implement Swipe to Remove Notification BY hansip87
      add customizable 14 statusbar toggle buttons for samsung ROM BY lidroid


      FOR MORE SEARCH MORE...




    • CHANGING HARD KEY FUNCTION (REMAPPING BUTTON)

      1. open /system/usr/keylayout/[phone model]-keypad.kl with notepad++
      (Some phone may have different names, but it will always end with "keypad.kl)
      it will look like this --
      Code:
      # Copyright (c) 2011, Code Aurora Forum.
      #
      # Licensed under the Apache License, Version 2.0 (the "License");
      # you may not use this file except in compliance with the License.
      # You may obtain a copy of the License at
      #
      # [url]http://www.apache.org/licenses/LICENSE-2.0[/url]
      #
      # Unless required by applicable law or agreed to in writing, software
      # distributed under the License is distributed on an "AS IS" BASIS,
      # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      # See the License for the specific language governing permissions and
      # limitations under the License.
      #
      
      #
      key 2     1
      key 3     2
      key 4     3
      key 5     4
      key 6     5
      key 7     6
      key 8     7
      key 9     8
      key 10    9
      key 11    0
      key 158   BACK              WAKE_DROPPED
      key 230   HOME              WAKE
      key 60    SOFT_RIGHT        WAKE
      key 62    ENDCALL           WAKE_DROPPED
      key 229   MENU         WAKE_DROPPED
      key 59    MENU         WAKE_DROPPED
      key 139   MENU              WAKE_DROPPED
      key 228   POUND
      key 227   STAR
      key 231   CALL              WAKE_DROPPED
      key 61    CALL              WAKE_DROPPED
      key 232   DPAD_CENTER       WAKE_DROPPED
      key 108   DPAD_DOWN         WAKE_DROPPED
      key 103   DPAD_UP           WAKE_DROPPED
      key 102   ENDCALL           WAKE_DROPPED
      key 105   DPAD_LEFT         WAKE_DROPPED
      key 106   DPAD_RIGHT        WAKE_DROPPED
      key 115   VOLUME_UP         WAKE
      key 114   VOLUME_DOWN         WAKE
      key 212   SLASH
      key 213   DEL               WAKE_DROPPED
      key 355   DEL               WAKE_DROPPED
      
      key 16    Q
      key 17    W
      key 18    E
      key 19    R
      key 20    T
      key 21    Y
      key 22    U
      key 23    I
      key 24    O
      key 25    P
      
      key 30    A
      key 31    S
      key 32    D
      key 33    F
      key 34    G
      key 35    H
      key 36    J
      key 37    K
      key 38    L
      key 14    DEL
              
      key 44    Z
      key 45    X
      key 46    C
      key 47    V
      key 48    B
      key 49    N
      key 50    M
      key 51    COMMA
      key 52    PERIOD
      key 28    ENTER
              
      key 56    ALT_LEFT
      key 42    SHIFT_LEFT
      key 215   AT
      key 57    SPACE
      key 53    SLASH
      key 127   SYM
      key 100   ALT_RIGHT
      
      key 399   GRAVE

      HERE YOU WILL FIND 3 ROWS...
      1. As you can see, there are different attributes assigned to each key. like this
      Code:
      key 102   HOME
      key 139   MENU
      key 158   BACK
      key 115   VOLUME_UP
      key 114   VOLUME_DOWN

      2. Specific application/action launchers:
      Code:
      HOME                     #Launches "Home"
      MENU                     #Launches "Menu"
      BACK                     #Takes you back to the last activity
      SEARCH                   #Launches "Universal Search"
      CALL                     #Launches the "Phone" activity and corresponding .apk or initiates a call
      ENDCALL                  #Ends a call
      CAMERA                   #Launches "Camera" activity and corresponding .apk
      FOCUS                    #Initiates Auto-Focus while using the Camera
      VOLUME_UP                #Self explanatory
      VOLUME_DOWN              #Self explanatory

      3. And attributes saying if it should wake the phone at button push to complete the action, or if it should just complete the action without waking the screen.
      Code:
      WAKE                 #Completes the action without waking the screen
      WAKE_DROPPED         #Wakes the phone to complete the action

      2. NOW WE WILL EDIT SECOND AND/OR THIRD ROW
      Erase the center row value for any key to completely disable it. To reassign the key, replace the center row value with another one from the same row. Change the right row value to either "WAKE" or blank to enable the wake function. Do not modify the left row.
      NOTE: don't edit left row i.e. first row which contains specific key identity number.

      FOR EXAMPLE I DO THESE CHANGES
      DEFAULT VALUES ---
      Code:
      key 115   VOLUME_UP         WAKE
      key 114   VOLUME_DOWN       WAKE

      CHANGED VALUES ---
      Code:
      key 115   CAMERA         WAKE
      key 114   FOCUS          WAKE

      NOW VOLUME UP KEY WILL WORK AS CAMERA KEY AND VOLUME DOWN KEY WILL WORK AS FOCUS KEY....
      NOTE: all words should be in BOLD letters i.e. capital letters...
    • MORE COMING SOON

    FOR ADVANCE ROM DEVELOPMENT GUIDES (like porting rom) SEE THIS COLLECTION BY F3niX