Tuesday, 6 May 2014

CREATING CUSTOM ROM

Hey Guys this is ANONYMOUS India from XDA(junior member)....
I Hope most of them knows about ANDROID CUSTOM ROMS...
And I'm here to show how to develop your own custom rom...

THIS TUTORIAL IS SPECIALLY FOR...

  • Newcomers to the world of Android 
  • People who want to create their own ROM but unable to do so as it is going over the head 
  • People who did not had any encounters with Programming

  • dsixda for his ultimate kitchen
  • lokeshsaini who is the original writer i have just modified it and simplified for better understanding
  • Neroyoung -For his video tutorials
  • If i left any one's name PM me 
REQUISITES:::
If that cygwin doesn't install properly download this offline install zip here
STEP 1:
Installing the JAVA JDK, Cygwin and Setting up the Kitchen

SEE THIS VIDEO FOR HELP..

STEP BY STEP INSTRUCTIONS:
BEFORE EVERYTHING INSTALL JAVA
INSTALLING CYGWIN
download the cygwin packages.rar from above
extract it to c:\cygwin folder 
now navigate to C:\cygwin\home\
here create a folder of ur windows username like this
now extract kitchen.rar [present in C:\cygwin\home\ ] contents in "C:\cygwin\home\username\kitchen\"
take a look at address bar of this example --- here

SETTING UP KITCHEN
Go to the original_update folder (located in: C:\cygwin\home\username\kitchen) like this 
add ur stock rom.zip here which u want to modify........
or there is an dummyrom.zip which u can use as a base zip.......

if kitchen is correctly stup you'll see






Part 2:Setting up a working folder

THERE ARE TWO 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:


 Now we need a rom to work on, for KarbonnA5 users i will recommend this rom by ME only  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:

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



Second METHOD -it is almost like ROM Dumping works on any device!
Quote:
-> 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 - Rooted phone required!!)

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)
IF TERMINAL FAILED TO WORK, DO THIS:
boot recovery mod in your android....
backup everything...
the backup file will be stored to sd card...
now copy the backup folder to system..
open it you'll see system.zip...
EXTRACT THAT

/etc
/fonts
/framework
/lib
/lost-found
/media
/sd
/usr
/xbin
build.prop
-> 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
Quote:
/app
/bin
/etc
/fonts
/framework
/lib
/media
/semc
/usr
/xbin
build.prop
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.
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...






Part 3 :Change/modify/update rom

[QUOTE]
  • Quote:
    YOU CAN MODIFY YOUR ROM IN TWO STEPS:




  • MODIFY USING ANDROID KITCHEN - for basic modification.
  • MODIFY MANUALLY. - for advanced modification.
Quote:

2. MODIFYING MANUALLY.

Check this Guide for some MODs like center clock,CRT animation, ics and jelly bean style mods etc...
Adding/removing applications
1. Go to the working folder where you extracted your rom, inside you will find:
 OR 
2. Then go to "system/app" inside this folder you will find all the rom applications(apks) you may also find some in the data folder if your rom has this folder.
3. Copy, replace, and change any app(apk) be carefull if you dont know what the apk is do not delete!!
LIST OF APPS YOU CAN DELETE - HERE OR HERE
If you can not find some apps in this guide then try opening all those app in your phone and see app name and icon or move those apps from system/app to sdcard and see what is not working...

Adding new boot animation
android kitchen doesn't works for my Karbonn A5 . So we need a different method.
1) Download and extract the bootanimation and samsungani file from Custom Booting.zip attached in first post.
2) Put them in the /system/bin folder and replace the existing files there
3) Now download any boot animation, and rename the bootanimation to “sanim.zip”.
4) Now, navigate to /system/media and replace the “ODEanim” with “sanim.zip”
You are done with the bootanimation change


Edit the gps script for your country/location
1. In the workingfolder/system/etc/ you will find a file named gps.conf, you can
edit this file with notepad++ or even word.
2. using the right gps script in this file can speed up gps lock, you can
find some from angeldeath, download extract and replace the gps.conf.

Adding ringtones :

  • Take your ringtone file...it should be in .ogg format..If not then convert it to .ogg..
  • Locate to the folder system>media>audio>ringtones>
  • Copy and paste your .ogg files here in ringtones folder..
  • You can also change notifications, alarm and UI tones like this..
Changing the Fonts :

  • Take your desired font.ttf file and rename it as DroidSans.ttf..
  • Locate to the folder system>fonts>
  • Now, replace the file DroidSans.ttf with your desired DoridSans.ttf...
  • To change the lock screen clock font...replace the Clocktopia.ttf with your desired one..(rename first)..
build.prop tweaks!!
check this or this or this post for build.prop
NOTE: EDIT BUILD.PROP WITH NOTEPAD++. SIMPLE NOTEPAD WILL CORRUPT THE FILE.



MORE ADVANCE MODIFICATION (starters 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
https://www.youtube.com/watch?v=odr7rwIGZuo

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



How to integrate an app in settings(recommended)



Thread Junction

Few Guides


  1. Xposed - ROM modding without modifying APKs/flashing
  2. Compiling CWM Recovery 
    .
  3. Compiling TWRP Recovery 
    .
  4. Building Kernels and Android Sources 
    .
  5. Porting ARM V7 Roms to ARM V6 
    .
  6. Porting MIUI with JB/ICS 
    .
  7. Porting Jelly Bean( A few Assists)
    .
  8. Dev Basics Collection
    .
  9. MIUI v4
    .
  10. MIUI v4 Updated- Different and Noob Friendly
    .
  11. Sense UI
    .
  12. Making a Flashable Package (Update.zip)
    .
  13. Making a CWM Flashable Zip
    .
  14. Complete Android ROM development and essential tutorials
    .
  15. Re-Odexing a ROM
    .
  16. Porting AOSP ICS ROMs
    .
  17. Compiling CM9 on Mac-OSX Lion
    .
  18. MIUI (Source GB)
    .
  19. Create your own De-Bloat Tool
    .
  20. Porting LewaOS,JoyOS for Noobs
    .
  21. UOT Kitchen Guide
    .
  22. Making your Own Custom ROM
    .
  23. Unpack or Repack an APK
    .
  24. Building your first KERNEL
    .
  25. Compile JB on Ubuntu
    .
  26. DEODEXing Stock ODEXED ROM
    .
  27. [GUIDE]How to use AROMA Installer on any ROM/Device|NOOB Friendly|
    .
  28. [Guide][How To] Adding Brightness Bar Slider to Status Bar
    .
  29. [Guide] Jellybean navigation layout for CM7 ROM
    .
  30. [GUIDE] How to add TABS to Settings with swipe gesture
    .

  31. [DEV][TOOL] Android Image Kitchen - Unpack/Repack Kernel/Recovery + ramdisk

    .
  32. [EASIEST WAY ROM DUMP] ROM dumping method for any phone
    .
  33. How to use GitHub

Other Modding and Theming:
  1. Remap Hardware Button to ICS Recent Apps
    .
  2. Create GB Dictionary for your Language
    .
  3. ICS Recent Apps Button/Softkeys to Status Bar
    .
  4. Smooth Scrolling and Volume Increase
    .
  5. Re-Odexing a ROM
    .
  6. How to LogCat
    .
  7. Convert .jar to .apk
    .
  8. Setting up Android Dev Environment in Ubuntu 11.10
    .
  9. Modifying APK Files
    .
  10. Modifying APK files - Another Method

CREDITS: 
Credits to the Original Developers/Writers for posting this stuff.
I am just linking it to their threads, all credits go to them.

NOTE:
If you find any other Topic that maybe useful, Post it in comments, so that We can make a huge thread of Guides.

THANK YOU ALL:
I Thank you all for referring to this.. I have just searched a bit and though making a thread would be useful. I am really Happy that it helped many of you!! Will keep adding!! 
Last but the not the least: repackage the rom

  • AFTER YOU HAVE DONE ALL CHANGE/MODIFICATION YOU WANTED OPEN CYGWIN AGAIN AND TYPE
    now convert update script to updater script(in option 23)
  • now lets edit updater script(optional)

    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 :


    ui_print("Put your text in HERE");
    Add your text start at top and save,
    then replace with new updater-scrip


    Add New Aroma Installer to your ROMLink to Guide

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

    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
    • If you are facing java related problem with cygwin than refer post #8
    • If you have a rom without kernel then remove these lines:

      assert(package_extract_file("boot.img", "/tmp/boot.img"),
             write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p8"),
             delete("/tmp/boot.img"));
    • 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.]


SOME OTHER XDA USEFUL THREADS:::::
  1. http://forum.xda-developers.com/showthread.php?t=633246
  2. http://forum.xda-developers.com/showthread.php?t=2086771
  3. http://forum.xda-developers.com/showthread.php?t=2421381
  4. http://forum.xda-developers.com/showthread.php?t=1908063


FOR FURTHER MORE ANDROID EXPLORATION JOIN XDA




PEACE.......



No comments:

Post a Comment