FORUMS
Remove All Ads from XDA

[GUIDE] How to Customize a ROM

2,527 posts
Thanks Meter: 1,816
 
By kurotsugi, Senior Member on 9th April 2012, 02:58 PM
Post Reply Email Thread
I made this guide because I've found that a lot of us doesn't satisfied with our current custom ROM. Please don't bully the dev to make a rom with our personal preference. You may follow this guide instead to modify the custom rom to suit with your personal taste. I hope I could make it as simple as possible so all of us so even a new android user could understand. Please make sure you've read this guide throughly before make any modification.

Quote:

Please note that this is just a simple guide. You won't find any guide about theming a rom here. Please refer to another guide about uot kitchen or apk modification.

tools:
1. a custom rom (to be customized) or stock rom.
2. 7zip or another similar program
3. apk files
4. dsixda kitchen (not mandatory)
5. apktools (not mandatory)
6. titanium backup (not mandatory)
7. CWM.

First of all, extract your custom rom. You'll see that the custom rom's zip file contain several files and folders. Some of them are common and could be find in almost all custom rom. The files and folders are:
1. meta-inf : contain the script needed to install the rom (don't touch it if you don't understand about scripting nor dsixdia kitchen).
2. system : contain the system files and folder of the custom rom
3. boot.img : the kernel used in the custom rom
4. additional file : (eg:install-busybox, check-data and bmlunlock) additional file contain scripts needed to install additional feature (eg: busybox, additional app in data/app, and install custom kernel) in the custom rom.

Quote:

NOTE: you can start from either stock or custom rom. If you start from stock rom, use CWM to make nandroid backup, then extract the system.rfs.tar. That's the system folder that we need later. You'll need installer script from other custom rom to make your rom installable to other device. In my past experience, the script form hybrid 2.1 or myss 3.4 is easy to use. I'd like suggest use them if you only want a light customization (without custom kernel, init.d script, or a2sd support.)

If you don't know much about them, don't touch anything but system folder. now, open the the system folder. You'll see a lot of folders and some common files. Leave CSC files and SWconfiguration intact if you don't know about them. You can edit build.prop to insert more build.prop setting or modify the content if you understand how to do it. To change the rom's name, edit the value for 'ro.build.display.id'. You may also change the value for 'ro.build.version.release' to any number like 9.9.9 if you want to show off your modified custom rom

I'll give a quick explanation about the folders in /system.
1. app : contain all the system's app
2. bin : contain the command and bin files for the rom (don't touch it)
3. cameradata : camera files
4. csc : csc files. contain dictionary for the keyboard
5. etc : additional setting and files for the rom
6. font : the fonts
7. framework : system's framework
8. lib : drivers, modules, kernel related files for the rom
9. media : media files-ringtones, notification
10. sd : folder created by a2sd darktremor. (don't touch it)
11. usr : files needed for keyboard, bluetooth, etc.
12. xbin : additional command and bin files (busybox is normally installed here)(don't touch it)
13. T9DB: dictionary and language database for swype and stock keyboard

Quote:

NOTE: if you start from stock rom, copy all the files under /system folder (the one from system.rfs.tar) except /system/bin and system/xbin. don't touch them.

now, you're ready to customize the rom. I'll divide the guide into several section. pass the section if you don't want to modify it.

Quote:

>>> SYSTEM APP-CUSTOMIZATION <<<

DEODEX VS ODEXED ROM. Most of custom rom available is deodexed rom while our stock rom is half deodexed rom. I'll try to explain it in most simple way. First of all, we should understand that mostly every app in android consist of three part, *apk files, *dex/odex files, and lib files.

ODEXED rom means that *dex file needed to run the app is extracted from the apk file and placed in same folder with the apk files (/system/app). the positive side, it consume less internal memory and a execute faster. the negative side, it makes the app uncostumizable (cannot apply custom themes) and need more space in system partition.

DEODEXED rom means that *dex file needed to run the app is extracted from the apk file and placed in /data/dalvik-cache. the positive side, the app can be themed (full customizable) and consume less system partition. we could put more app in /system/app in deodexed rom. the negative side, it consume a lot of internal memory. please be cautious with the internal memory space if you use deodexed rom. (NOTE: if you start from stock rom, you may use dsixdia to convert odexed to deodexed rom).

system app customization is easy. you can add or remove any app in /system/app folder as long as it fit with the space in sistem partition (220MB). if you start from stock rom, please be cautious to not remove essential app from the folder. you may see the app in hybrid rom v.2.1 to see which app is safe to remove or not (the spreadsheet document in this forum is gone. sorry). having ~20mb free space in system partition is a good thing if you want to make the rom more customizable.

Quote:

NOTE:
1. not all apk could be placed in /system/app (especially keyboard app)
2. tw launcher file is named tw'xxxxx'launcher.apk. you may remove it if you have another launcher.
3. not all custom launcerh could be placed in /system/app. you may put the launcher from other custom rom to minimalize the risk.
4. for the app info reference, please refer to this link

https://docs.google.com/spreadsheet/...lE&output=html

if anyone want to edit it please contact me.

Quote:

>>> THEME-CUSTOMIZATION <<<

Basicly, theme is easily changed by replacing systemUI.apk in /system/app and framework-res.apk in /system/framework. You may put theme from another custom rom or make for yourself from uot kitchen or make it by yourself with apktool. A high modified theme like dysmenorrhea is also modify some part in setting.apk and jobmanager.apk. and another app. Don't forget to delete the *odex file (for all changed app only)from /system/app if you start from stock rom.

NOTE: please be aware with the base firmware of the rom. make sure that systemUI.apk and framework-res.apk files are from exact firmware version. I've found that theme for DXLA, DXLB, DXLC are exchangeable but you can't put theme from DXKL2 to DXLA or the reverse. to minimize any risk, please use themes only from exact same firmware.

Quote:

>>> PERFORMANCE-TUNING <<<

Performance tuning could be done in several ways. the easiest (proven works but risky) method is by edit build.prop file. I won't give you all the script. Feel free to search and apply the script with your personal preference. you can found in this forum or just copy from another rom. these script below is used to increase gprs/hsxdpa speed. this script is a common script and proven to be works in a lot of device. (I forgot the original source. sorry)

Code:
ro.ril.enable.dtm=1
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.3g.prefix=1
ro.ril.hsdpa.category=8
ro.ril.hsupa.category=6
ro.ril.hsxpa=2
ro.ril.enable.a53=1
there are also some common tweaks for build.prop file. these are the one I always using in my rom.
Code:
#mod battery kats
debug.performance.tuning=1
pm.sleep_mode=1
video.accelerate.hw=1
windowsmgr.max_events_per_sec=150
ro.ril.disable.power.collapse=1
wifi.supplicant_scan_interval=150

#mod performance
dalvik.vm.execution-mode=int:jit
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.media.enc.jpeg.quality=100
ro.telephony.call_ring.delay=0
video.accelerate.hw=1
ro.kernel.android.checkjni=0
ro.HOME_APP_ADJ=1
======

the second way, (little bit harder, but its still proven works) by create or modify some file in /system/etc. I'll give you some of them.

1. sysctl script-to increase internet speed.
make a new file in system/etc, name it 'sysctl.conf' (or edit if it already exist). put this script inside.

Code:
net.ipv4.tcp_wmem = 4096 39000 187000
net.ipv4.tcp_rmem = 4096 39000 187000
net.ipv4.tcp_mem = 187000 187000 187000
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.route.flush = 1
net.ipv4.ip_no_pmtu_disc = 0
net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
its a common sysctl mod for linux based OS (I found it in another mod for another device but I forgot the source). you'll need busybox, and terminal emulator. to run it, type:
'su
'sysctl -p
in your terminal emulator (without ' symbol).

2. GPS mod-to make the GPS lock faster
this mod is based on zeusseuz's guide. please see this page for further information (the script is quite long) http://forum.xda-developers.com/show....php?t=1552076

======

the last way...by init.d script. it only works in custom kernel. I won't put any script here. you should find by yourself. you can use make a file in init.d with there script to check if your kernel support init.d script.
Code:
#!system/bin/sh
touch data/kurotsugi_test.txt
set the both init.d folder and the file's permission to rwxrwxrwx (777)
if the script work, you'll find kurotsugi_test.txt in /data.

======

Quote:

>>> ADDITIONAL CUSTOMIZATION <<<

I'll only put the one I've tested and proven to be works.
1. beats audio
this is the old version but doesn't have FC issue. get the file from here http://forum.xda-developers.com/show....php?t=1526643
unzip. copy all the files into their respective folder

2. bravia engine
put be_photo and be_movie in system/etc folder then edit the build.prop file doesn't seems work. The real bravia engine mod is consist of
- be_photo, be_movie in /system/etc
- com.sonyericsson.android.SwIqiBmp.xml in /system/etc/permission
- com.sonyericsson.android.SwIqiBmp.jar in /system/framework
my megabassbeat mod contain these files. you can get it from there.

3. boot animation
download or get custom boot animation file from another custom rom or another source. rename it to bootanimation.zip, put it on /system/media.
you may check this out http://forum.xda-developers.com/show....php?t=1548479

please note that DXLB rom doesn't support bootanimation. you need to put bootanimation and samsungani files from another rom (like hybrid) in /system/bin and replace all file in /system/lib with lib files from older firmware (DXLA or older)

4. boot sound
make or download boot sound. please make sure the format is *ogg. rename it to poweron.ogg then put it in /system/etc.

5. custom ringtones, notification,
make or download the sound file (in ogg format). put it in /system/media/audio/(respective folder)

6. disable boot animation (for quick boot)
put 'debug.sf.nobootanimation=1' in build.prop.

7. megabassbeats (better than beat bass)
you can get the file from this link http://forum.xda-developers.com/show....php?t=1646406. you'll need to copy the files into its respective folder.

If you've done with the customization, enter the custom rom folder. select all the files then create zip file. to install the rom, copy to your sdcard, flash it either by stock recovery or CWM after wipe /data. PLEASE MAKE SURE THAT ALL THE FILES DOESN'T EXCEED THE LIMIT 220MB BEFORE ZIPPED.

This guide can be used if you want to make your own rom. if you start from stock rom, you may use this script (its from myss v.3.4) to install the rom. please make note that it will only install the rom, not the kernel. you'll still need the bin and xbin folder from custom roms in order to make it work.
http://www.mediafire.com/download.php?skw1ytt37mklb4o

Quote:

DISCLAIMER:
1. do it with your own risk
2. please note that NOT ALL YOUR MODIFICATION WILL WORK. ROM modification is seriously hard thing. its not easy. thats why we should give the dev proper respect to them. you'll need a lot of research to make it work.
3. this guide is made for personal use only. don't publish the customized rom without permission from the original dev.

All credits for the dev who make the rom, the one I've used the guide here, and all XDA member. no need to say thanks or press it for me. give that to the real dev. I'm just a noob here. Feel free to correct me if I'm wrong.

Quote:

ADDITION STUFFS
==============

1. dualboot
this mod actual intent is to make developing a rom a lot more easier without risking our native rom. I was using it a lot when customizing my rom. you can get the original link for dualboot here: http://forum.xda-developers.com/show....php?t=1598803 and for a little more detailed step how to use it http://forum.xda-developers.com/show....php?t=1600973.

you can find another dualboot kernel here. http://www.mediafire.com/download.php?gkb33aktyf7wbbh
this one have init.d support. all credits goes to irfanbagus

2. data2sd
this mod is used to increase data partition size. you can find the complete guide here http://forum.xda-developers.com/show....php?t=1622052
The Following 87 Users Say Thank You to kurotsugi For This Useful Post: [ View ] Gift kurotsugi Ad-Free
 
 
9th April 2012, 02:59 PM |#2  
kurotsugi's Avatar
OP Senior Member
Flag yogyakarta
Thanks Meter: 1,816
 
More
Noob guide: Light theming
just for addition...this guide is only about change minor aspect in your theme. please don't expect any hard modification. we'll only change some of the picture used by the app.

what you need:
1. 7zip
2. any graphic editor program
3. systemUI.apk and framework-res.apk

the steps:
1. extract both apk files
2. open /res/drawable-ldpi. you'll see the graphic files used by the app.
3. replace any graphic files with yours. please make sure the resolution size and the name are same.
4. open the apk file. right klik>7zip>open archive
5. drag n drop /res folder (from the extracted one) to 7zip.
6. push it to your rom
7. cross your finger...reboot your device.

Quote:

IF YOU WANT TO CHANGE THE SETTING BACKGROUND, CHECK THIS LINK.
http://forum.xda-developers.com/show...5&postcount=90

it's a tranlated version of this post:http://www.kaskus.us/showpost.php?p=...postcount=5784
all credits for heriawan.fx who make the original post.
m only translated it and post it to here.

CAUTION:
some user have found that this background setting mod cause a problem in deskclock.apk. if this happen, you can replace the deskclock.apk with this one http://www.mediafire.com/download.php?w5vchbdyj2k9837
please delete deskclock.odex if you're using a stock odexed rom.

NOTE:
- don't forget to make backup
- you may use the files attached in this post to push the file into your ROM. put systemUI in app and framework in framework.

here are some pic from my customized rom. its an odexed rom with a slight customized repencis v.2.5 theme.




the launcher is downloadable here
http://forum.xda-developers.com/show....php?t=1596280
Attached Thumbnails
Click image for larger version

Name:	SC20120414-035222.png
Views:	35409
Size:	122.0 KB
ID:	1001851   Click image for larger version

Name:	SC20120405-130012.png
Views:	30004
Size:	126.1 KB
ID:	1001852   Click image for larger version

Name:	SC20120414-035254.png
Views:	35078
Size:	128.4 KB
ID:	1001853   Click image for larger version

Name:	SC20120414-035620.png
Views:	35115
Size:	112.7 KB
ID:	1001854  
Attached Files
File Type: zip kats2.zip - [Click for QR Code] (100.3 KB, 282 views)
The Following 36 Users Say Thank You to kurotsugi For This Useful Post: [ View ] Gift kurotsugi Ad-Free
9th April 2012, 03:09 PM |#3  
Senior Member
Thanks Meter: 142
 
More
Hmm, gonna read this later. It's a wall of text on phone lol. Hope I don't forget.

Anyway thumbs up for the effort.

Sent from my GT-S5360 using xda premium
9th April 2012, 03:13 PM |#4  
GeekSpin's Avatar
Senior Member
Flag sonipat
Thanks Meter: 71
 
Donate to Me
More
reserved
good work dude
have done a lot of homework lol
9th April 2012, 03:24 PM |#5  
machinehead121's Avatar
Senior Member
Flag Mumbai
Thanks Meter: 57
 
More
excellent work bro !!

very informative.....really appreciate your work

thanks alot .
9th April 2012, 03:37 PM |#6  
bumslayer's Avatar
Senior Member
Flag Near you
Thanks Meter: 143
 
More
Wonderful thread. Can you give tutorials on how to recompile framework-res.apk with apktools? I always end up with lots of warnings regarding translations and end up with an apk which is about half the size as the original. And lots of force closes once it is pushed

Sent from my GT-S5360 using Tapatalk
9th April 2012, 04:11 PM |#7  
kurotsugi's Avatar
OP Senior Member
Flag yogyakarta
Thanks Meter: 1,816
 
More
Quote:
Originally Posted by bumslayer

Wonderful thread. Can you give tutorials on how to recompile framework-res.apk with apktools? I always end up with lots of warnings regarding translations and end up with an apk which is about half the size as the original. And lots of force closes once it is pushed

Sent from my GT-S5360 using Tapatalk

Sorry...I'm just a chemistry student and consider my self as a noob here. I never use apktool before and only use 7zip, notepadd++ and simpel graphic editor program to modify an apk files (only light theming). its a lot of simpler and easy for a mid user like me.

you may follow this guide instead
http://forum.xda-developers.com/show....php?t=1466100
The Following 2 Users Say Thank You to kurotsugi For This Useful Post: [ View ] Gift kurotsugi Ad-Free
9th April 2012, 04:37 PM |#8  
bumslayer's Avatar
Senior Member
Flag Near you
Thanks Meter: 143
 
More
Noted bro. I already took a peek at the link you gave. Thanks anyway.

Sent from my GT-S5360 using Tapatalk
9th April 2012, 04:43 PM |#9  
GeekSpin's Avatar
Senior Member
Flag sonipat
Thanks Meter: 71
 
Donate to Me
More
Quote:
Originally Posted by bumslayer

Wonderful thread. Can you give tutorials on how to recompile framework-res.apk with apktools? I always end up with lots of warnings regarding translations and end up with an apk which is about half the size as the original. And lots of force closes once it is pushed

Sent from my GT-S5360 using Tapatalk

hey
I can provide you the tutorial for framework and system ui apks
with apktool for sgy
I think you are trying to make your themes
if that is I will provide the tutorial tommorow
if you need it
The Following User Says Thank You to GeekSpin For This Useful Post: [ View ] Gift GeekSpin Ad-Free
9th April 2012, 04:49 PM |#10  
kurotsugi's Avatar
OP Senior Member
Flag yogyakarta
Thanks Meter: 1,816
 
More
why don't you PM repencis? the setting.apk in repencis v3 changed a lot from the original one. I thought he could help you.

EDIT: thedeadlycoder seems already have the solution for you
9th April 2012, 05:00 PM |#11  
bumslayer's Avatar
Senior Member
Flag Near you
Thanks Meter: 143
 
More
Hahaha indeed he does! @deadlycoder I am anticipating your pm soon

Sent from my GT-S5360 using Tapatalk
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes