The World Famous Theming And Decompiling Tool, Tickle My Android, is now even better than ever before!!
Post 2 - How To Change Your Icons
Post 3 - How To Deodex Your ROM
Post 4 - Frequently Asked Questions
TMA can pull apps from your phone or tablet, decompile them and recompile them. Even tricky apps like Sony's Xperia 'framework-res.apk'..
Which is cool, but it can also:
- change the battery icon,
- change the WiFi icon,
- change the signal icon,
- change the emoticons,
- change the notification toggles,
- change the softkeys,
- change the pattern lock icons,
- change the lockring icons,
- change the transparency of the statusbar (if the rom allows it),
- unzip image files from apk files
- zipalign apk files,
- sign recompiled apk files in the same way as the original,
- deodex apk and jar files,
- odex apk and jar files,
- resize and change boot animations,
- change fonts,
- create backup-generating flashable zip files,
- create standard flashable zip files,
- take screenshots of your device,
- let you choose between which version of Apktool you want to use,
- lets you theme up to three different roms or devices at the same time,
- can generate logcat files,
- comes in Portuguese, Hungarian, Italian, French and now Polish!!
- ..and can be controlled by keyboard or MOUSE!
To use Tickle My Android, you will need:
- - a rooted Android phone or tablet with USB Debugging enabled and a recovery installed (either ClockworkMod or TWRP) ,
- - any version of Android on that device,
- - a Windows PC (XP or above) with the phone or tablet's drivers installed,
- - Java Runtime Environment 8.0 or above installed to your PATH (http://www.java.com/en/download/help/path.xml),
- - a USB cable to connect your device to the PC,
- - patience and a little common sense
If you're running Android 4.3 or above, you'll also need to give USB Debugging permission on your phone when this sort of message pops up on the screen:
(Thanks to @carl1961 for the picture)
Download the tool to the root of 'c:\' from the link at the bottom of this post and run it. This is a self-extracting archive which, once it's extracted everything, will put on your PC a new folder called "Tickle My Android". This is where the tool runs from.
(If you extract the archive to anywhere other than 'c:\', Tickle My Android will not run!!)
The "_WorkArea1", "_WorkArea2", "_WorkArea3", "_WorkArea4", "_WorkArea5", "_WorkArea6" folders we'll talk about later.
The "tool_files" folder contains various files Tickle My Android needs to run. Don't touch these!
The "user_files" folder will hold your icons backups, boot animations and fonts. In here are your log files as well, you might need those later.
And the "Tickle My Android" exe file starts the tool. Double click on that and away we go!
How To Decompile An Application
The very first thing you need to do is backup your device. If you don't know how to do this, it's worth finding out first before going any further. Tickle My Android lets you change the very workings of your device and if you don't know what you're doing, it's possible to get things wrong. If you haven't made a backup, you could lose everything.. And that would be bad.
Next, you need to install your resource apks.
No idea what this means? Files with the '.apk' extension are the actual Android app's and some apks contain information that TMA will need before it can decompile any others.
Those apks are known as "resource" or, sometimes, "framework" files. The most common resource file is "framework-res.apk" but there are others.
First pick your WorkArea.
This is new to Tickle My Android. You can now work on up to three different rom's or devices without having to reset the tool everytime you want to change from one to the other.
Each WorkArea is completely separate from the others and you can easily change which one you're using in the Settings Menu.
Inside each WorkArea are four folders. The '_deodex' folder is used for deodexing files (this is covered in the next few posts), the '_in' folder is where files about to be decompiled go, the '_working' folder contains the results of that decompiling and the '_out' folder contains the recompiled files.
For now though, you can actually ignore all this. When you first use TMA, you'll be in WorkArea 1 by default and we'll cover the other folders later.
So, to begin decompiling your application, go to the Theming Menu.
Next select the Pull Menu.
This gives you the option of pulling (copying from your Android device to the PC) one of the most commonly modified system files, or any other file you wish.
Pull and install 'framework-res.apk'. This is the most common resource apk. Depending on your device or rom, you may need to install others as well. You'll normally find these in your framework folder with "resources" or "res" in the filename, and I've listed the most common ones.
If in doubt, use the 'ADB Shell' option in the Title Menu and enter the command 'ls system/framework' to see what files you actually have in the framework folder.
IF YOU DON'T INSTALL ANY RESOURCE APKS, YOU WILL HAVE PROBLEMS LATER!!
Once you've installed the relevant resource apks, you'll need to decompile some apks. Which ones? Well, that's the tricky bit as it all depends on what sort of mod you want to do. If you're on Gingerbread (Android 2.3) or higher, the chances are you'll need to pull and decompile SystemUI.apk.
Once a file has been decompiled, have a look in the "_WorkArea1\_working" folder. You'll see a folder with the same name as that file, this contains all the various files (images, xml, smali, etc) that the file you pulled actually consists of. Now you can make all the changes you desire.
How To Recompile An Application
Once you've finished changing things, go back to the Theming Menu and select the Recompile Files option and put everything in that folder back into a single file.
You'll have the option to recompile with the original signature, new signature or no signature. For most mods you'll want to use the original signature.
Only use a new signature if you've changed the Android manifest. If you have no idea what that means, don't worry about it and just use the original signature.
This recompiled file will now be in the "_WorkArea1\_out" folder. From there you can push it back to the device.
How To Put A Recompiled Application Back On Your Device
This is where your recovery comes in. Select the Create Flashable Zip File option to create a flashable zip. There are two types available:
The 'Advanced Zip' and 'Advanced Zip [Android 4.1+]' use the Universal Flashing Tool by JRsoft and Intronauta. This is an absolutely incredible tool and full credit goes to them.
These zips can do a lot of clever things but the bit that I like most is that they create a flashable backup of every file you've changed.
Don't like what you've changed? Just flash the backup!
However, the advanced zips don't work with all versions and ports of every recovery program. If you find yourself faced with an error message saying that "we need at least one sdcard mounted", the advanced zips aren't compatible with your recovery. That's where the 'Standard Zip' comes in. This doesn't generate a backup, it's just an ordinary flashable zip file.
Just select the option to use files from the "_out" folder. If you've recompiled 'framework-res.apk', put it into 'system/framework'. If you've recompiled 'SystemUI.apk', put it into 'system/app'. Any other files, make sure you took note of where they were pulled from.
Well..it's supposed to be. But if you're having trouble, here is an awesome video by Tomsgt123 on Youtube, showing you what to do.
It's for v5, but the general principles will apply to the later versions as well. Check it out!
What is Tickle My Android compatible with?
Tickle My Android's decompiler function always uses the very latest apktool files, as well as the very best aapt files, available. But, because Android is an open-source OS, there will always be some implementations of it that TMA will not be fully compatible with. Here are the current offenders that we know about:
MIUI apk files are often constructed in a different way to the Google standard..and MIUI aren't sharing how they're made.
Which means apktool might struggle to decompile those apk files.
Apktool also struggles to decompile files from HTC Sense v4.0+ for exactly the same reason.
And apktool has trouble with Huawei's apks as well.
LG are another company that have done some strange things while making their files, although the developer of apktool has managed to bypass most of the problems that they cause. Not all of them though.
Always make sure you're using the most recent version of apktool and let me know if there are any problems.
Samsung make some amazing phones and tablets and they deserve to be one of the big Android OEM names. However..they don't like Android very much. It's no secret that Samsung want to get away from Google and use their own software. Until they get to that stage though, they seem determined to make their Android rom's as non-stock as possible.
And one of the ways they do this is by having different filenames and even different formats for their image files. As far as I can, I've tried to keep TMA compatible with all of the different Samsung variations but there's always a chance that you won't be able to automatically change the icons on some Samsung rom's.
If you have a Note 4, you definitely won't be able to change the icons. Samsung have started using the QMG format for their icons, instead of the normal PNG. And you can't replace them.
But don't despair! There's a tool by @sorg that can convert your .qmg files to .png files so they can be replaced. Check it out here: http://forum.xda-developers.com/note...6#post56242026
There's also a great guide by @tdunham to theming Lollipop SecContacts.apk, which you can find here: http://forum.xda-developers.com/show...postcount=3720
There's always a way!
It is very frustrating that some companies take an open-source OS and use it to make a closed-source rom. Especially in the case of MIUI, which is a rom that can only be used by people who've hacked their phone.
If you can't decompile an apk and all you want to do is change some of the icons, you now have the option to 'Unzip Image Files'. This will take just the image files from an apk and put them into the '_working' folder.
Be aware that this option is for experienced themers only.
There will be some devices/roms that are unable to use the zip files TMA creates and you'll be given an 'error code:0'. This is down to the update-binary and can be easily fixed.
Take the update-binary from a working zip file and place it in the 'user_files\UPDATEBINARY' folder. Use the option in the settings menu and all future zips will use your update-binary. Easy!
What happens if it goes wrong?
Tickle My Android has been designed to be easy to use but the very nature of Android means that things might not always go smoothly.
Have a look at the 4th post in this thread.
This is the FAQ post which should hopefully be able to help you out.
And it tells you how to ask for help if you can't find the answer.
Download the latest, 'pure' version of Tickle My Android from here:
Want to change your ROM's icons? Then download TMA from above and the latest Icon Pack from here:
Want to change your font? Then download TMA from above and the latest Font Pack from here:
What if you want to change your boot animation? Then download TMA from above and the latest Boot Animation Pack from here:
Virus scanner not letting you download "Tickle My Android.exe"? Then you can download the latest one from here:
(Please don't forget to download the rest of the 'pure' version as well!)
If you're downloading any Packs, please extract them to the same address as the Tickle My Android folder. So, if TMA is in "c:\temp\", extract the Packs to "c:\temp\" as well!!
(Please remove any existing versions of Tickle My Android from your PC before installing, to avoid any conflicts)
Version 11.0.0 - New Quick Menu Option, Corrected Thinking Display, Experimental APKTool, Minor Fixes
Version 10.4.4 - Small Bug Fixes
Version 10.4.3 - Minor Update With Improved Logging And Corrected APK Install Feedback
Version 10.4.2 - Improved History Logging
Version 10.4.1 - Improved Icon Changing
Version 10.4 - Improved Lollipop Deodexing
Version 10.3 - Added ability to generate logcat files
Version 10.2 - Improved Lollipop deodexing, bug fixes
Version 10.1 - Extra theming menu options
Version 10 - Bug fixes, code improvements, recompile then decompile option added, significantly faster dynamic file selection
Version 9.2.6 - Improved App Signing!
Version 9.2.5 - Lollipop deodexing fixed!
Version 9.2.3 - Partial Lollipop deodexing available!
Version 9.2.2 - Lollipop Compatibility!!
Version 9.2 - WorkAreas increased to 6, odexing option added, new build of apktool added
Version 9.1.1 - Improved logging, de/recompiling error reporting, fixed deodexing, new icons
Version 9.1 - Multiple bug fixes and code improvements, new icons, lockring icons added, improved logging, option to install all files, Work Areas created, tool icon changes
Version 9.0 - Introduced mouse control option, new icons, pattern lock icons added, code improvements
Version 8.1 - Introduced option to change apktool version, minor code tweaks, new battery icon
Version 8.0 - Complete rewrite of code making it faster and more efficient, new icons, improved zip file options, improved deodexing, option to unzip icons only from an apk, Android 4.4 (KitKat) compatibility, updated apktool to version 2.0.0b7 ensuring maximum compatibility with as many versions of Android as possible
Version 7.1 - Improved file preparing, additional icons, option added to set zip name, bugfixes
Version 7.0 - Multiple code changes, improved error checking, improved logging, updated presets, added option to set favourites
Version 6.1 - Enhanced zip menu, code improvements, new icons
Version 6.0 - Tool redesign, added softkeys to icon changing
Version 5.4 - Improved compatibility with modern devices, added French language option
Version 5.3 - Improved preparing process, added Portuguese option
Version 5.2 - Process tweaks
Version 5.1 - New apktool, bug fixes, improved file preparing algorithm
Version 5.0 Beta 04 - Code improvements
Version 5.0 Beta 03 - Bug fixes, new toggle icons, theming log
Version 5.0 Beta 02 - Latest apktool with Android 4.2 compatibility
Version 5.0 Beta 01 - Latest apktool, customised appt, significant UI changes, added toggles and emoticons to icon changing, removed pushing to phone, re-added statusbar transparency, added the Mini Menu, added option for changing the tool language (languages to follow)
Version 4.3 - Added apktool 1.5.0, minor bug fix
Version 4.2 - Added apktool 1.4.10, added option to make log files when decompiling or recompiling
Version 4.1 - Bug fixes, UI tweaks, added option to change boot animation size, major improvement to preparing file speed, increased Android compatibility, moved version number to credits screen
Version 4.0 - Added ZIP maker, UI and code changes to improve user friendliness, 2 new battery icons, added option to use own battery icons, latest apktool and aapt ensuring compatibility with nearly all Android devices, updated deodexing for ICS and JB, expanded quick file select, improved installation of resource files, better error handling
Version 3.0 - Added deodexing option, signal and wifi icon changing, code tweaks, UI overhaul, more battery icons
Version 2.2 - Improved battery icon adding, improved framework adding, improved error handling, UI changes, small code tweaks
Version 2.1 - Improved de- and recompiling of files, fixed "Enter 'x' To Cancel" bug, other slight tweaks
Want to help promote the World's Greatest Android Theming Tool?
Please consider placing one of these banners somewhere in your signature:
Your support keeps this tool alive! Spread the word!!
Big thanks are owed to:
- @Brut.all and @iBotPeaches for making Apktool,
- @shivenjuneja for introducing me to the wonderful world of Android modding,
- @scrosler for inspiring Tickle My Android,
- @itiskonrad. @kalagas, @tr.slate, @patmorris, @OlliG, @vegeta1, @xIC-MACIx and @raubkatze for kindly sharing their icons,
- @Typhus_, @szunyi77, @Glad!ator, @devadip and @pamk22 for spending their spare time translating,
- @OlliG and @carl1961 for help with icon screenshots
- @Madaditya for beta-testing and forum help
- @pxlcrnch for the new logo
- and all the other wonderful people who made all this possible!