Remove All Ads from XDA
Honor 9 Lite

[TUTORIAL] How to easily THEMES .apk (for DEODEXED ROM only)

4,779 posts
Thanks Meter: 1,764
By Andrewtst, Senior Member on 14th April 2012, 08:36 AM
Post Reply Email Thread
After few days surfing, asking & testing. I decide to make a easily tutorial for theming in Windows, I think as long you know to use computer, they is nothing much difficult to theming/modifying the .apk yourself.

My guide only cover:
  • De-compile & compile of .apk
  • changing the .png file inside .apk
  • Modifying tricky .9.png file.
  • Modifying .xml file.
  • Zip Align the .apk

What you need:
  • Your phone must be ROOT and DEODEXED.
  • CWM pre-install recommended, you can simply get this function by installing superatmos / Lucifr kernel.
  • 7-zip - for replacing file inside .apk
  • JRE (Java Runtime Environment) - required to run the APKtool
  • Android-SDK - must install before APKtool & Zipalign work.
  • APKTool Download the apktool & also apktool-install-windows.

Before Start:
  • Always remember make a backup for any .apk file you plan to change or amend.
  • Recommended make a flash-able version of origin not amend .apk in-case something went wrong, you can always flash back the original file via CWM. Example if you did something wrong in your systemUI.apk (for statusbar) it will probably make your phone nearly impossible access any part due to unstop FC.
I also like to take this opportunity to THANKS the following user help, without them, all this is not possible.
  • ronhoover88
  • superatmos
  • tarunagg
  • Vertumus
The Following 24 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 08:37 AM |#2  
De-compile & Compile of .apk

Why this step is required:
  • You need to de-compile the .apk before you can correctly modified the tricky .9.png and also to see a readable .xml for amending.
  • Install JRE (Java Runtime Environment) & Android-SDK.
  • Download the apktool & also apktool-install-windows, extract the file and put inside your Windows Folder.
  • Open command prompt (Start - Run - CMD)
  • Before de-compile the .apk, make sure you copy out your current phone framework-res.apk & twframework-res.apk, lidroid-res.apk only required if you using lidroid-res.apk in your framework.
    apktool if [location of .apk]
    apktool if D:\APK\framework-res.apk
    apktool if D:\APK\twframework-res.apk
    apktool if D:\APK\lidroid-res.apk
  • Now, De-compile the .apk
    apktool d [filename.apk] [directory]
    Example: apktool d D:\framework-res.apk D:\De-compile
  • If sucess, you will seen the following line in your CMD.
  • The De-compile folder will be generate as seen below.
  • Now you can amend whatever you like to amend, after done, proceed to following step.
  • Compile back:
    apktool b [directory]
    Example: apktool b D:\De-compile
  • Extra build folder will appear inside your De-compile folder, all file inside here already compile and can use later in your Android phone.
The Following 7 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 08:37 AM |#3  
Changing/Replacing the .png file inside .apk
  • Amending normal .png no need to de-compile, just extract the file and modified using any photoshop tools or simply replace the .png
  • Just right click any .apk file and select 7-zip extract to, as seen below:
  • Now go to the extracted folder and amend / replace any .png file you like to replace. (Remember .9.png file cannot just simply replace, check following post for instruction.)
The Following 6 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 08:38 AM |#4  
Modifying tricky .9.png file.
  • The .9.png cannot just simply amend using any photoshop and put back, because by doing so, either the amend .9.png won't appear or just simply give you FC in your phone when running it.

What to do:
  • De-compile the .apk.
  • Below showing the different between before and after de-compile of .9.png, as you can seen on right image,they is extra 4 black dot + 1 black bar and surrouding with transparent bar, all this area must be keep and not amend during photoshop. The de-compile image will auto increase 1 x pixel + 1 y Pixel.
  • Just amend without touching those area, save it and then put back to correct folder and compile back.
The Following 7 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 08:38 AM |#5  
Modifying .xml file
  • After you have de-compile the .apk, now all inside .xml is readable where you can make some changes on the color selection, clock position and etc. by just simply open with notepad and modified.
  • Before de-compile, the .xml look like below which is not readable and understand by human.
  • After de-compile, now the .xml is readable and understand by human.
  • Now you can amend what ever you like, Google/Search XDA forum for which .XML to amend.
  • Use this color code checker site for getting your desire color code.
  • After done, don't forget, you must compile back the .xml before it is understandable by Android OS.
  • Screenshot below showing modifying the sub text .xml to ICS blue color.

    Change all
    from android:color="#ffffffff to android:color="#ff3f9bbf
    at zzz_tw_secondary_text_sub.xml
The Following 8 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 08:39 AM |#6  
Zipalign the .apk

Why this step is required:
  • You need to align the .apk to let the Android phone run the modified .apk perform much smoother and better, if you have more not align .apk file in your phone, it will eventually drag down your entire phone performance.
  • This step is not necessary but recommended.

  • Open command prompt at your Android-SDK Tools folder
  • Type following command and run
    zipalign -fv 4 [filename.apk] [filename-new.apk]
    Example: zipalign -fv 4 framework-res.apk framework-res-new.apk
  • A new Zipalign .apk will be generate as seen below, highlight in blue.
  • Zipalign in batch, save following code in .bat and put in your folder that contains .apk file. It will batch running zipalign all .apk inside, this guide I found from user Grumpy Old Man post at RootWiki. Thanks for this easier method.

    @echo off
    REM Batch file to recursively zip align *.apk files in a directory
    REM and its sub-directories. This is significantly easier and faster
    REM than manually zip aligning them.
    @echo Zip aligning now...
    for /R %%X in (*.apk) do zipalign 4 "%%X" ""
    @echo Replacing non-aligned files with zip aligned files...
    for /R %%X in (*.new) do move /Y "%%X" "%%~dpX%%~nX.apk"
    @echo Zip aligning done, press any key to exit
The Following 6 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 08:40 AM |#7  
Final Step

OK, done everything? now you need to put back to your phone with 2 method
  • Flash via CWM - highly recommended
  • Root Explorer - not recommended as it may not properly change for Statusbar theming.

Using CWM
  • Make a flash-able .zip to flash at CWM
  • Not sure how to do, let use a easier way, take any flash-able .zip, use 7-zip and choose open archive as seen below:
  • Now just drag and drop all your modified .apk inside the .zip file, choose YES when ask "Confirm File Copy" as seen below:
  • Copy the modified .zip to your root SDCARD and restart to CWM and install. Done!

Using Root Explorer
  • Temporary copy your modified .apk to your /system/csc
  • Right click choose permission and set as below:
  • Move your current .apk to correct directory /system/app
  • Done! This method is not recommended for framework-res.apk & systemUI.apk, better way still flashing via CWM.

The Following 5 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 09:50 AM |#8  
My Achievement

Below is what you can get after themes. Enjoy!


De-compile the SystemUI.apk, then change some code at status_bar.xml in /res/layout

Step 1 - Find
< android:textAppearance="@style/TextAppearance.StatusBar.Clock" 

android:gravity="left|center" android:id="@id/clock" android:paddingLeft="6.0dip" 

android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
Step 2 - Replace Step 1 code with
< android:id="@id/clock" android:layout_width="fill_parent" 

android:layout_height="fill_parent" android:gravity="center_horizontal|center" 

android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:singleLine="true" />
Step 3 - Then search for
and now cut Step 2 code and paste in bottom Step 3 code.

Step 4 - Lastly find
<LinearLayout android:orientation="horizontal" android:id="@id/ticker"
and past following code beside it.
Save the edited status_bar.xml

Sony Xperia Z Center Clock Screenshot.
The Following 10 Users Say Thank You to Andrewtst For This Useful Post: [ View ] Gift Andrewtst Ad-Free
14th April 2012, 10:44 AM |#9  
fauzi_91's Avatar
Senior Member
Flag B.B.Bangi
Thanks Meter: 215
Very nice tutorial!i'm too lazy to type/make a its good for sharing the idea..:thumbup:

Sent from my GT-I9100G using Tapatalk 2
The Following User Says Thank You to fauzi_91 For This Useful Post: [ View ] Gift fauzi_91 Ad-Free
14th April 2012, 11:41 AM |#11  
Senior Member
Flag kathmandu
Thanks Meter: 652
u forget to mention the deleting of edited xmls file and resources.arsc
The Following User Says Thank You to samyam2002000 For This Useful Post: [ View ] Gift samyam2002000 Ad-Free
Post Reply Subscribe to Thread

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

Advanced Search
Display Modes