Credits for the MetaMorph Gui (The application) go to Stericson
Honorable mentions go to Riku, prash, and djengizz For continued support and testing metamorph!
MetaMorph is located in the Android Market in both a free version and a 2.99 donate version, with the donate version being a step ahead of the free version. (One version may be behind the other but they both will receive the same updates)
If youd like to support MetaMorph and keep development going on it please consider purchasing the 2.99 donate version
What MetaMorph is
MetaMorph is a project designed to allow us to patch files within .jar and .apk files on the phone.
Initially MetaMorph was designed for themers but it was discovered through use that we could also use it for applying customer dex files, resource files, images, and xml files. Pretty much anything inside of the apk and jar can be replaced with MetaMorph, which makes it very versatile and useful, in addition to this we can now copy files to places on the phone or sdcard, and we can implement the use of scripts now!
In this thread we will discuss how to theme using MetaMorph and any bugs that may be found with MetaMorph.
To use metamorph simply download an appropriate package for it to your sdcard and select it with MetaMorph.
Here is some basic info about MetaMorph:
Compatible themes can be found in various forms around the XDA forums, try looking by device. (eventually the donate version will get a theme repository, the free version wont get it)
I only recommend downloading what is in the first posts as those have been tested to work with your device and rom!
Please report any bugs.
MAKE A NANDROID BACK BEFORE USING.
Use at your own risk
Heres the link to videos showing metamorph in use:
Heres a quick video showing a metamorph theme being made from scratch using the old .thm control file! (which is not being supported anymore)
MetaMorph uses a fairly simple format to apply changes to apk or jar files, here you can find out how to create these templates:
http://www.youtube.com/watch?v=fX2xbY4nSd4 (Video 1/4)
http://www.youtube.com/watch?v=Dvps2501CAg (Video 2/4)
http://www.youtube.com/watch?v=3iu5AHF-Zew (Video 3/4)
http://www.youtube.com/watch?v=sgVL-0E8Rh8 (Video 4/4)
To tell metamorph what to do you need to include a Theme Control File. The Theme control file is located in the root directory of the template and MUST have the EXACT same name as the template. Here is a video on how to make the Theme Control File:
(The old .thm control file is no longer supported. if you need to convert your old theme to use the new .xml toll check here for a tool that will convert it for you:
Compression is not accepted on MetaMorph zip templates.
The latest version of MetaMorph (MetaMorph Pro V1.9.8) can be found in the Android Market!
// MetaMorph, what it is and isn't
MetaMorph, at heart, is simply a program that takes files from a directory and adds them to an already existing zip package.
In this case, our zip packages are apk and jar files.
What metamorph is used for, or what it accomplishes by moving files around is completely up to the designer of the package that is used.
For instance, if I make a package that tells metamorph to move a dex file into services.jar then I may be wanting to change the color of the clock which resides on the status bar. If this happens then MetaMorph has not done this, the creator of the package has done this and metamorph was simply the tool he/you used to accomplish this easily. In the same sense, if the desired change does not happen it is most likely not because of metamorph, but rather a fault in the package or instructions that metamorph was given.
here are some things using metamorph can cause:
1) As of right now MetaMorph cannot be used on market apps. If you do happen to use a package that modifies market apps, they will disappear from your phones launcher menu. This is because market apps are signed with Developer keys and by changing them we are changing the md5sum of the package. When this occurs the package takes notice of this change and starts rechecking its integrity. When the package discovers it has changed and has not been resigned with its approved key, thereby approving these changes in a sense, then it will basically error out and Android will remove it. Again MetaMorph can be faulted because it cannot handle this type of action but it cannot be faulted for this if you do it after reading or knowing of this limitation.
2) MetaMorph may also show you and error that some file doesnt exist or that some file that the theme control file is looking for doesnt exist. Again while these errors are thrown by MetaMorph, they are not caused by MetaMorph but by the package that you selected. When MetaMorph runs it checks for two things:
A) That the directory that the theme control file has specified where
the contents that we are to move to another zip package actually
exists in the theme.
B) That the target zip package that we will add files to actually
exists in the path that the theme control file has specified.
This protects the ap from Force closing, and the second check protects you from having unneeded files being created on your phone when it detects that the target apk doesn't exist.
If you have any issues with a theme/package not working please speak with the theme/package creator.
If you have issues, questions, or suggestion with/for MetaMorph please leave them here.
If you have questions about how MetaMorph can be used and how to create packages for it, please leave them here.
If you still have problems with a theme or package that cannot be resolved by the theme/package creator please let us know so that we can take a more in depth look into the issue.
Theme not applying
The issue here is that your phone probably doesnt have enough space in your /system partition, you can check the space using "df" in a shell. (terminal or another like program)
Depending on the device you have you may need a different SPL to be able to apply themes.
MetaMorph is a tool designed to change files within apks and jars. With this goal in mind MetaMorph succeeds very well.
However, MetaMorph cant predict what you will do with it. The packages you apply with it are are unknown to MetaMorph, and it cant be held responsible for what you decide to apply.
With this being said, it is your responsibility to make sure that the package you apply will work for your phone, and it is the themers responsibility to let you know what requirements are needed to use his package, this includes free space, specific hardware, and specific software needed.