ZipThemer is a theme installer app with MetaMorph compatibility. It builds flashable "update.zip" files onboard your Android device by combining your existing system files with modifications from the theme files of your choosing. Supported theme files formats are ZipThemer and MetaMorph theme files.
The app determines which system files need to be patched by reading the XML descriptor information from the theme files. It then creates patched versions of the system files by merging in content from the theme files. The result is then packaged as a signed "update.zip" which you flash via recovery to apply the changes.
Add as many theme files as you want to install in a single "update.zip" file. Order is important when two theme files update the same resources. For example, lets say you have a status bar theme which updates all of the status bar icons, and a cool circle battery pack which updates only the status bar battery icons. You'll want to add the battery pack theme after the status bar theme so that the battery pack takes precedence. In other words, the battery theme should appear further down the list.
This method of patching/modding preserves themes you've installed previously that don't conflict with newly applied themes. It also allows multiple themes to be installed in a single recovery/flash/reboot cycle.
ZipThemer has the capability to also create flashable "undo" files that can be used to quickly and reliably revert a theme install. See the user manual for more information.
Unlike MetaMorph, ZipThemer works with the theme files in their unextracted format -- there is no step to unpack the theme files. ZipThemer will not work with the extracted zip files.
The following links will take you to the official ZipThemer website for more information:
User Manual
Overview and Feature List
Issues & Limitations
Screenshots
Donate
Edify workarounds:
NOTE: as of version 2.0 workarounds are no longer required. ZipThemer 2.0 can create an Edify configuration on the device by reading the required information from a flashable ROM or update on your sdcard. In the app, visit Menu -> Update Edify.
Deprecated workaround instructions...
Select the "Update Edify" menu item to force the creation of /sdcard/ZipThemer/edify.
Download the edify-support.zip file for your device.
Extract and push the two files, phoneDatabase.xml and update-binary, to /sdcard/ZipThemer/edify/. Use 'adb push' or your favorite onboard file manager app.
In ZipThemer's settings, change the 'Update Script Format' to the Edify option with your device name in it.
ZipThemer will now be able to create flashable updates with the correct Edify commands for your device.
NOTE: if you use the 'Update Edify' menu option after installing the workaround, it will overwrite the phoneDatabase.xml and you'll either have to delete the update-binary file or re-install the workaround.
I just published version 1.1 to the market. This removes three of the previously listed limitations.
Changelog:
* Added checkboxes to enable/disable theme subcomponents.
* Fixed update zip script generation so it automatically includes commands for copying to DATA and SDCARD as appropriate for the theme content.
* Improved the theme meta-descriptor format to allow files to be copied at build time.
* Added build completion status/log display.
This is sweet! I had a little trouble at first but then I realized that all the themes I was trying to build either had 'spaces' or 'periods' in their filenames. After renaming the main folder and the xml file it works fine.
Thank you!
Glad you like it. If you can point me at a theme with spaces/periods in the name I can probably fix ZipThemer to make it work without having to change the theme file.
Ken
Version 1.2 is out. The list of limitations just got shorter again.
Changelog:
* Added long press context menu to items in the theme list.
* Added ability to remove themes from the list via context menu.
* Added ability to move themes up and down in the list (because order is important, see first post).
* Added theme details screen which displays information from the theme's XML file and screenshot.
* Some minor fixes.
Error on build out
I'm trying to build a zip to theme swype. I'm using one of the zip files from here and trying to apply it to the swype.apk in the system/app folder.
When I click "build it" I get the following error "IllegalArgumentExecption: Incorrect offset/len parameters"... any help would be appreciated.
Thanks!
Do you have the Android SDK installed on your computer? If so, it would help to run the 'adb logcat' command while doing this and then send me the output so I can get a better idea about what's going on.
Was Swype was installed from the market? ZipThemer doesn't yet support theming market apps (but its on my TODO list). The error may be related to that.
Ken
Swype wasn't installed from the market. I'm on Calkulin's EViO 2 ROM v1.7.1 swype came in package ROM so it's the OTA version.
I've attached the log file
mwhiz said:
Swype wasn't installed from the market. I'm on Calkulin's EViO 2 ROM v1.7.1 swype came in package ROM so it's the OTA version.
I've attached the log file
Click to expand...
Click to collapse
Thanks. Unfortunately I forgot to tell you to increase certain log levels, so the output is not as useful as I had hoped. Anyway, after thinking about the problem and reading the SwipeHD theme thread I see at least three things that need fixing.
First, I'm pretty sure that the "IllegalArgumentExecption: Incorrect offset/len parameters" error is what happens when you try to theme what I call a "market app". But what I mean by that is any app which is not signed by one of the four well-known Google keys. An OTA version of Swype falls into this category because probably signed by a key private to the app makers. Anyway, there's a bug in ZipThemer which results in this error when you try to theme such an app. FYI, MetaMorph doesn't sign the files after patching them. Two things for me to do here -- provide a better error message in this case, and implement an option to patch market apps by a) re-signing with a Google key, or b) not signing the result.
The other thing I noticed is that the SwypeHD morph files have an item to copy a custom system library into place. I missed this feature of MetaMorph during my analysis, so I also need to implement support for this also.
I'm not sure how long it will take me to get a new version out that supports these features. Maybe a week or two. There are certain experiments that will help determine which way to go with the signing/not-signing part -- e.g., to figure out which one to implement, or if both are need which one is the best default, etc. Let me know if your willing to help with this.
My appologies for not having better news at this time, but with your help we can make ZipThemer a great app.
Thanks again,
Ken
Ken,
Thanks for the quick replies! I'll do what I can to help, let me know what I can do.
-Mark
mwhiz said:
Ken,
Thanks for the quick replies! I'll do what I can to help, let me know what I can do.
-Mark
Click to expand...
Click to collapse
Try the attached 1.3-beta1 version...
adb uninstall kellinwood.zipthemer
adb install ZipThemer-1.3-beta1.apk
or Gmail the attachment to yourself and click the "install" button in Gmail onboard the device -- this probably requires allowing "Unknown sources" to be enabled in the phone's Applications settings.
Your first attempt to build an update zip file should result in a "Key Selection Error" dialog. This is the fix for the incorrect offset/len parameter exception in the previous version. This dialog is issued when the key signing mode is "auto" (the current default) and the certificate of the app being patched is not recognized.
Next, visit ZipThemer's menu, select Settings and change the Package Key Mode to "auto-none". Retry the build... it should succeed. The Swype app should get patched but not re-signed because the app's certificate will not be recognized. The log ouput should say it updated entries, but should not say that it was signed.
Create a second update zip before flashing the first. This time set the package key mode to "auto-testkey", rename the output file using the "*Output" button and build again. In this version, the Swype app will be resigned with the Google testkey.
BACKUP YOUR SYSTEM BEFORE FLASHING EITHER OF THESE UPDATES!!!!
See what happens when you flash one of the files and reboot. Test swype and then flash the other update and reboot. In my tests I updated the YouTube app and didn't see any difference between the signed and unsigned versions.
I'm anxious to hear how it goes.
Ken
Worked like a charm! I flashed both updates with no problems and both updates appeared to work just fine. Nice work!!!
Going to try a few more and I'll let you know how it goes.
For my info does it matter which Package Key mode I use? Does one give me anything that the other doesn't?
Thanks again..
Nice!
I'm not exactly sure which one is better... auto-testkey results in a signed app which means it has a valid digital signature, but the certificate is different than the original and could cause problems in the future, e.g., if an updated version becomes available you might not get the update.
auto-none results in the same outcome as using MetaMorph -- a patched app with an invalid digital signature, because the file was patched and not re-signed.
I might be inclined to use auto-testkey myself until a problem was discovered, especially since I like the idea that everything is signed correctly. But with auto-none having the same result as MetaMorph which as been around for a while, it might be a better choice in the mean time.
I'll try to get an official 1.3 release out to the Market in the next day or two.
Ken
I uploaded 1.3 to the Market this morning. Most of the changes address Mark's issues above, but I also sneaked in the theme list save/restore feature and fixed a few bugs along the way.
FYI, in the 1.3 release the package key mode is "auto-none" by default, which means user's are unlikely to have to change it. The default was "auto" for the beta version.
Change log:
* Added support for including plain files to the generated zip via "xxx.cpy" item's in the theme control files.
* Preference settings to control key signing mode for patched packages and the update zip file
* Theme list save and restore operations
* Various other bug fixes.
Is the final output a theme file or an entire rom with the theme incorporated into it?
Neither... its an update zip file that you flash in recovery to apply the changes for the themes. The file is bigger than a theme file, but much smaller than a full rom. For example, say you have a theme which modifies the icon for the Calendar app. The theme file contains a single image and the theme control file. The resulting update zip file will contain a patched version of /system/app/Calendar.apk and the update-script file. When you flash the update the new version of Calendar.apk gets installed and you'll see the new icon. ZipThemer can easily create update zips to install multiple themes and therefore patch multiple packages/apps in one update, so this is just a simple example to explain things.
Hope that helps,
Ken
kellinwood said:
Neither... its an update zip file that you flash in recovery to apply the changes for the themes. The file is bigger than a theme file, but much smaller than a full rom. For example, say you have a theme which modifies the icon for the Calendar app. The theme file contains a single image and the theme control file. The resulting update zip file will contain a patched version of /system/app/Calendar.apk and the update-script file. When you flash the update the new version of Calendar.apk gets installed and you'll see the new icon. ZipThemer can easily create update zips to install multiple themes and therefore patch multiple packages/apps in one update, so this is just a simple example to explain things.
Hope that helps,
Ken
Click to expand...
Click to collapse
Worked like a charm and thanks for the quick response!
Kfunk said:
Is the final output a theme file or an entire rom with the theme incorporated into it?
Click to expand...
Click to collapse
Sorry, if you meant "theme file" as a something you flash in recovery to apply the theme, then the answer is the final output is a theme file.
I tend to think of theme files as MetaMorph files, and I forget that there are a lot of themes delivered as flashable updates.
Ken
kellinwood said:
Sorry, if you meant "theme file" as a something you flash in recovery to apply the theme, then the answer is the final output is a theme file.
I tend to think of theme files as MetaMorph files, and I forget that there are a lot of themes delivered as flashable updates.
Ken
Click to expand...
Click to collapse
Yes, that was my intent by using the word "theme". It is a relative term in the world of Android!
I just released 1.4 after fixing some issues which came up installing a large morph that patches about 20 apps. Some of the apps were missing on my device...
Change Log:
* Better support for installing themes when some system files are not found on the device. This version skips theme sub-components when the corresponding system file is not present. A notice is displayed when themes are loaded indicating which files are missing and the completion status display also notes skipped files. This is not an error condition but an FYI that some of the files the theme is capable of updating will not be updated because they weren't found. The previous version issued a "file not found" error during the build and you had to explicitly disable sub-components as a workaround.
The updated version causes a boot loop on KaosFroyo, probably other ROMs too. Make a backup or undo file !
This page contains instructions to install the port of the speedo battery from the Viva Cyan, http://forum.xda-developers.com/showthread.php?t=900589. I take no credit other than packaging it for installation on the Eris, Hero and other medium-res Androids.
The original theme post for Eris by CondemmedSoul is here.
This method of installation only updates the status bar battery icons. See the attached screenshots of it installed with stock Froyo and with my HtcBlackStatusBar. I like it better over a black background myself.
INSTALLATION
1. Download and install ZipThemer from the market. Its free. If you have it installed already, check to be sure you have version 1.5 or later.
2. Download this theme file to your device and leave it unpacked in Zip format. This is not a MetaMorph file and it is not a flashable update. You may put the zip anywhere you wish on your sdcard, but I suggest a subdirectory like /sdcard/ZipThemer or /sdcard/download so you won't see this zip in the list of flashables from recovery.
2a. If you don't already have a black status bar and want one, download any black status bar MetaMorph theme to your device such as HtcBlackStatusBar, http://forum.xda-developers.com/showthread.php?t=779488. Also leave this theme file in Zip format. ZipThemer can install multiple themes at once following the instructions below.
3. Open ZipThemer and press the "+Theme" button to load the theme file. A file browser opens, use it to select the speedo-battery2.zip file.
3a. If you are also installing a black status bar theme, click "+Theme" again and select its zip file. In the ZipThemer theme list, long-press on speedo-battery and select "Move Down". You want the speedo-battery theme to be lower in the list compared to the status bar theme in order to ensure that its icons take precedence over any others.
4. Click the "Build It!" button to begin the process of creating a flashable update zip file. Answer "Yes" to creating an undo file if you want an easy way to revert these changes later. It takes about a minute to create the flashable update and undo files.
5. Exit ZipThemer and make any font color changes required by the status bar, if you are installing one. The speedo-battery theme does not require font changes itself.
6. Boot into recovery and flash speedo-battery-update.zip.
7. Reboot. Enjoy your new status bar battery icons. If you're not enjoying them, go back into recovery and flash speedo-battery-undo.zip.
CondemmedSoul's version with 100% levels is here.
Sent you a PM dude. Check your in box
Anyone else notice that the gauge disappears while charging?
Eric1948 said:
Anyone else notice that the gauge disappears while charging?
Click to expand...
Click to collapse
Yes, you're not alone. I'll take a look at the problem when I get a chance.
Ken
Cool, other than that it works wonderfully!
It's been fixed now. I just uploaded the flashable zips for tazz v26 and CELB 4.1
in my thread and sent the missing piece to kellinwood so he can add it to the theme zipper file.
CondemnedSoul said:
It's been fixed now. I just uploaded the flashable zips for tazz v26 and CELB 4.1
in my thread and sent the missing piece to kellinwood so he can add it to the theme zipper file.
Click to expand...
Click to collapse
The updated ZipThemer theme file is attached here temporarily until CondemmedSoul picks it up for distribution in his thread.
EDIT: Rats, the new version causes a boot loop, just like when I tried the original flashable version. Looks like this install method is a no-go.
First you have to get YOUR Rom's Framework-res.apk
REQUIREMENTS:
MUST BE ROOTED
ROM MANAGER
ClockWorkMod Recovery
There are 4 main ways to get it: (Thanks to avreen)
1.From the zip file of your ROM
Code:
Download the ROM you are using.
Decompress/unzip it using 7zip/winzip .
Open System/Framework/ in the unziped folder
Take the framework-res.apk in system/framework/ folder.
Place it anywhere you want (on the desktop for example).
2.From your phone
Download a file manager (Astro or ES File Explorer or other...) in the Market.
Go to /system/framework/ folder in your phone.
Copy the framework-res.apk in your SDCard.
Place it anywhere you want (on the desktop for example).
3. Use file from the kitchen
Code:
You can select file of your ROM/Theme from drop-down list in file upload section.
We have corrected files for most popular roms/themes.
4. Alternatively you can also use ThemePro to extract it from your Rom.
Before starting editing your framework-res.apk you should make an other copy of it if you want to restore your original framework.
Copy it and rename it as framework-res_ORIGINAL.apk for example.
Then go to http://circle.glx.nl/
Choose the 4th option ("No Battery, theme only")
Click Next
Choose the 2nd option ("Themed icons sets (Froyo roms only)")
Click Next
Click the box(include icons) under EMOTICONS then click preview for you to see the emoticons, after choosing the emoticons you like (i chose B2 all set) leave everything as it is (THIS GUIDE IS FOR CHANGING YOUR EMOTICONS ONLY)
Click Next
The "Do not change notification status bar" option should be preselected here and again LEAVE EVERYTHING AS IT IS.
Click next
The "Do not include bootanimation" option should be preselected here and again LEAVE EVERYTHING AS IT IS.
Click next
The "Do not include windows animation" option should be preselected here and again LEAVE EVERYTHING AS IT IS.
Click next
Now upload YOUR Rom's Framework-res.apk
Click Next
Download your Cooked .zip file mine was named "UOT-YC-02-03-05-27-1.zip"
Then do a BACKUP OF YOU CURRENT ROM using ROM MANAGER
What to do of the UOT-......... ZIP File that you made from the kitchen (again thanks to avreen)
Code:
Reboot into recovery.
choose "install zip from sdcard"
choose "choose zip from sdcard"
locate your file UOT-... .zip in SD
confirm "YES - install UOT ... .zip"
wait for script to finish
reboot phone
Enjoy your new SMILEYS/EMOTICONS
If you find this post useful don't hesitate to press the THANKS button
hi... already do these step (i try with 1 and 2 options)
But... the smiley still same (green robot) and try to restart also clear dalvick and wipe cache...
But i see same green robot for smiley in my message application... i already check my framework-res.apk, and there are my modified smileys.
My Desire already rooted and S-OFF.
Please help...
Thank You....
i have a sprint sph-p100 and am running the latest cm9 nightly update-cm-9-20120427-NIGHTLY-p1c-signed i would like to get rid of the killerkun cat boot screen and replace with something else will rom toolbox do this ?
can anyone here help me ?
Sorry can't help, but hopefully my reply will garner more attention. I'm also bugged by this. I can't seem to find a way to get rid of it. I tried flashing AKOP milestone 5 and I see it there.
Hey! Maybe... Just MAYBE u can do it by following these:
-download GOO Manager from Play Store
-in Goo manager, select "Browse all files"
-then select "Themes"
-and find a theme with boot logo included!
-hope i helped!!!!
guys all you need to do is to find the bootanimation.zip on the rom you like and copy that file to /system/media overwriting the existing file.
Hope it helps
changing the boot animation will not change the boot logo
hello
could someone test if my ICS theme chooser theme works correctly on xhdpi devices?
v1.4: http://d-h.st/Qoe
Lockscreen: http://dl.dropbox.com/u/70450920/BOSS Lockscreen.zip
original thread:
http://forum.xda-developers.com/showthread.php?p=26686209#post26686209
Installation Guide
Theme
Go to Settings > Themes
Set as BOSS Theme
Reboot!
Lockscreen Add-on
*Make a nandroid before flashing!
Install 'Zip Themer'" from Google Play
Open ZipThemer > menu > Update Edify
Click Browse > your ROM, then Configure (should be done everytime you install/update rom)
Put the lockscreen file into sdcard/ZipThemer
Open ZipThemer, and click "+Theme" and choose the file
Click 'Build It', and it'll create a flashable zip
Create a backup file if you want when prompted
Flash this created file (BOSS-Lockscreen-update.zip) in CWM Recovery, NOT the original file in sdcard/ZipThemer
If you want to try out both lockscreens, click Menu > Theme List > Clear, and then start again.
THANK YOU!
Known Issues:
- notification bar icons (wifi, signal, battery etc) too small