The ThemeMachine is a theming tool, which makes it easier to port a theme.
Its writen in batch and executeable on every Windows since XP.
What it does is told easy but wasn´t that easy to implement.
It copies all PNG-files (this includes .9.png) from one APK into another one, preconditioned the file exists in the destination APK.
You´re interested in the complete process of the tool? Take a look in the attached flowchart or click here.
- Be aware you have cmd and powershell on your PC (which are both components of every Windows since XP)
- Download the attached file or click here and extract it to any place you want. E.g. like this:
- Get a BASE and a THEME APK. Both have to be deodexed.BASE: Its an APK that you want to theme with the contents of the THEME apk. That could be the framework-res.apk that you currently use.
THEME: Its an APK that contains the theme that you want to copy. That could be the framework-res.apk of CM7.2 for Motorola defy.
Using it the right way
Navigate to the folder where you´ve extracted the archive. Enter the folder and you´ll see a foldercontent like this:
Double click on "start.cmd" to execute the batch script.
Drag&drop the first file, the BASE apk, into the window.
Exactly do the same with the second file, the THEME apk.
Now the script will do its best to get a good theme out of it.
You also get some infos in the window. For example the info how much files got copied (see picture below)
At the end of the script when it shows "Press any key to get into folder that contains the new file"
press a any key on your keyboard then the explorer will opens the folder with your new themed APK.
Example / Result
I´m using MotoSwitchUI 2.0 on my Motorola XT615 (a.k.a Motoluxe) with Gingerbread on it.
Sadly we don´t have more options like using CM because of locked bootloader.
In my opinion you can´t make a GUI more ugly then the MotoSwitchUI
So i thought.. well i can´t make it worser.. so i decided to theme it with the AOSP/CM-Style.
First i´ve downloaded CM7.2 for Motorola Defy. So i remain on the same API-Level, which means more compatible filenames.
Further i have the same imagesizes in this szenario: HDPI.
Files i´ve used: Framework-res.apk, SystemUI.apk, Browser.apk, Settings.apk, DeskClock.apk, DownloadProviderUI.apk, Email.apk, Mms.apk, Music.apk, Phone.apk, SettingsProvider.apk
As BASE i´ve used my stock files from MotoSwitchUI and as THEME the files out of CM7.2 for defy.
After theming them with ThemeMachine + about 10 .xmls edits + using launcher of CM7.2 (which suprisingly works fine) i reached the following result.
And gess me thats not all You should see the rest!
- APKs share their PNGs with other APKs. Most used: framework-res.apk.
To get a good copy of a theme its a must to theme it too.
- As theme-APK you should use a APK with the same API-level as the base-APK.
Reason for this: APKs with the same API-Level most likely have the same PNG-filenames.
- As theme-APK you should use a APK with the same Android image size (xdpi, hdpi,...)
- Igor Pawlow: 7zip is a mighty tool and used for extracting and adding contents
- pieh-ejdsch/bastla (@administrator.de): For helping me to find the right command for comparing contents
- jevan24 (@xda-developers.com): For excessive testing and reporting
- imageshack.us: For hosting my images
- gliffy.com: Used for creating flowcharts. Realy good service.