The World Famous Theming And Decompiling Tool, Tickle My Android, is now even better than ever before!!
Click Here To Find Out How To Change Your Icons Click Here To Find Out How To Deodex Your ROM Click Here To Find For Frequently Asked Questions And Help
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,
decompile and recompile multiple files in a batch,
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, Polish, Bahasa Indonesia and now Spanish!!
..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,
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 [mention=3271517]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.
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 six 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 cool 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.
Simple, no?
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:
Marshmallow (Android 6.0) is new. Very new. So new that Tickle My Android can't currently deodex the files. There are tools available to do so but I need to do some research and experimentation before I incorporate these into TMA. As ever, though, watch this space!
[IMG][/IMG]
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.
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.
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. 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. http://forum.xda-developers.com/s...#8203;4 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 LinksDownload the latest, 'pure' version of Tickle My Android from here:http://www.mediafire.com/download/2s...2.0.exeWant to change your ROM's icons? Then download TMA from above and the latest Icon Pack from here: http://www.mediafire.com/download/wm...0.0.exe Want to change your font? Then download TMA from above and the latest Font Pack from here: http://www.mediafire.com/download...203;exe What if you want to change your boot animation? Then download TMA from above and the latest Boot Animation Pack from here: http://www.mediafire.com/download...203;exe 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)
Changelog:
Version 13.2.0 - Dalvik Cache Wiping Options Available In Advanced ZIPVersion 13.1.0 - Improved Icon Changing, Greater Flexibility In Selecting apktool Versions, Two New apktool Versions, Updated Indonesia Strings Version 13.0.0 - Batch Decompiling And Recompiling, Small Code Changes Version 12.0.1 - Spanish Language, New apktool, New Smali, New Baksmali, New oat2dex Version 12.0.0 - Completely Rewritten Deodexing Menu, Verbose Option Added, Theming Menu Layout Changes, Improved History Logging, Apktool 2.0.2., New Versions Of adb, aapt, smali, baksmali, oat2dex Version 11.1.1 - Deodexing Improvements, 'Dirty' Apktool Version 11.1.0 - Removed Quick Menu Option, Fixed Boot Animation Resizing, New Theming Menu Layout 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 [MENTION=3924617]iBotPeaches for making Apktool,
[MENTION=2794524]shivenjuneja for introducing me to the wonderful world of Android modding,
[mention=426561]scrosler for inspiring Tickle My Android,
[mention=2195216]itiskonrad. [MENTION=386804]kalagas, @tr.slate, [MENTION=2022018]patmorris, [MENTION=4868820]OlliG, [MENTION=4333195]vegeta1, [MENTION=4286807]xIC-MACIx and [MENTION=2138693]raubkatze for kindly sharing their icons,
[mention=5057272]Typhus_, [MENTION=4863176]szunyi77, [MENTION=4882208]Glad!ator, [MENTION=4864202]devadip, [MENTION=6150503]pamk22 and [MENTION=5539344]FunSucker for spending their spare time translating,
[MENTION=4868820]OlliG and [MENTION=3271517]carl1961 for help with icon screenshots
[mention=4768534]Madaditya for beta-testing and forum help
[mention=5232866]pxlcrnch for the new logo
and all the other wonderful people who made all this possible!
Last edited by Ticklefish; 23rd March 2016 at 08:21 PM.
Yes, Tickle My Android is an absolutely incredible de/recompiler but did you know that you can also use it to change the icons on your phone or tablet? Well..you can! TMA can change your battery icons, WiFi icons, signal icons, toggle icons, softkey icons, pattern lock icons and even your emoticons!! And it's so incredibly easy.. This is how to change your battery icons (the process is very similar for the other icons):
First, start the tool and select the Theming Menu option
Then the Pull Files From Device option
Now pull, backup, decompile and install the relevant files
This is the tricky bit, to be honest. In most roms and Android versions, battery icons are stored in framework-res.apk and/or SystemUI.apk. But you may need to install certain resource files before you can decompile those.
If you're on a Sense(HTC)-based rom, you might need to decompile and install com.htc.resources.apk. If you're on Touchwiz(Samsung), it could be that you need twframework-res.apk. If it's LG, then it might be lge-res.apk. It it's Motorola, then moto-res.apk and/or blur-res.apk. If it's Sony, it could SemcGenericUxpRes.apk. If you're on MIUI, maybe it's framework-miui.res.apk. Or it could be something else. Search your system/framework folder and make sure you pull and install every apk with "res" in the title.
Now, after all that, go back to the Theming Menu and choose the Change Battery Icons option.
As of right now, TMA comes with 77 different battery icons to choose from.
That's a lot.
That's so many in fact that I can't show them all in one post so, to help you choose between them, you'll find small previews of each one in the 'user_files\ICONS\BATTERY\_previews' folder.
The icons are fairly varied..
...so have a look and pick which one you like best
Or why not use your own? Tickle My Android can support up to 100 different icons in each category so you can easily add more. Just create a folder in the 'user_files\ICONS\BATTERY\' folder and fill it with your images and xml. Please note, it is your responsibilty to make sure any images and xml you use will work. If your battery icon currently changes every 10% and you add enough images for a 1% icon, it will still change at every 10% unless you add some new xml files as well.
When you're done, run the tool and TMA will automatically add your icons to the ones you can choose from.
If you're really proud of your creation and you'll like it to be added to the icons that TMA comes with, just let me know!
Once you know which icon to use, select it and Tickle My Android will work out where it needs to put the relevant files and gets to work.
This is set up to cope with icons that change every 1%, 5%, 10%, whatever% so you don't need to worry about that. Please note that every battery icon will work on every device, but some may look better on higher resolutions.
Once the icons and animations have been added, go back to the Theming Menu and choose the Recompile Files option. You only need to recompile the files that Tickle My Android said it was adding battery files to.
Make sure you choose to recompile with the original signature. Otherwise your apk might not work!
Now go back to the Theming Menu and select the Create Flashable Zip File option to...create a flashable zip file.
You can create an 'advanced' zip or a 'standard' zip.
'Advanced' zips create a flashable backup on your sdcard which is very handy if you don't like the new icons you've come up with. These don't work on every recovery though so you might need to use the 'Standard' option instead.
If you've changed the battery files in 'framework-res.apk', or any other of your resource apps, you'll need to put that app into the 'system/framework' folder.
If you've changed the battery files in 'SystemUI.apk', that app needs to go into the 'system/app' folder
Zip files are created in the 'c:\temp' folder by default, but you can change that to whatever you wish.
Copy the zip over to your device (if TMA didn't put it there directly) and reboot into recovery
Flash the zip
Wait a little while for it to load the new info
The device reboots and...there's your shiny new battery icon!
And that's about it. If you don't like the icon, you can try another by repeating the above steps. Or you can make a flashable zip with your backed-up apk files to get back to normal. Enjoy!
Changing WiFi Icons, Signal Icons, Notification Toggles, Emoticons, Softkeys And Pattern-Lock Icons
You can also use the same process to change other icons on your device. There are a few slight differences but it's still the same idea. All the icons can be found in the 'user_files\ICONS' folder. Some are designed to match certain battery icons, some are a little..odd, but all should work with your phone or tablet. It's worth mentioning that different roms use icons in different ways. It's possible that the icons you've selected won't work quite the way you'd want. That's why it's so handy having a backup! Try them out, see which one works for you and let me know how it goes!
Last edited by Ticklefish; 9th April 2014 at 02:32 PM.
Tickle My Android isn't just great at decompiling files and changing icons, it can deodex too! Not sure what this means? Click on the button below before reading any further.
Android app's are written in Java. This is a programming language that can be read by humans, which looks a little something like this:
Code:
/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.keyguard; import android.content.Context; import android.util.AttributeSet; import android.widget.ImageButton; import android.widget.RelativeLayout; /** * A frame layout which does not have overlapping renderings commands and therefore does not need a * layer when alpha is changed. */ public class AlphaOptimizedImageButton extends ImageButton { public AlphaOptimizedImageButton(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean hasOverlappingRendering() { return false; } }
(I copied this from https://android.googlesource.com/, which is why I've included the copyright info) When the app is compiled, all the Java files are amalgamated into one file. That file's called "classes.dex". This can't be read by humans and it sits inside the final .APK file. When we decompile the APK, the classes.dex can't be turned back into Java (or Java that's guaranteed to work, at least). So, instead, we get what's normally known as smali. Smali can be read by humans, but it's a bit more challenging than Java. The smali equivalent of that Java code above looks a little like this:
Code:
.class public Lcom/android/keyguard/AlphaOptimizedImageButton; .super Landroid/widget/ImageButton; .source "AlphaOptimizedImageButton.java"
# direct methods .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 3 .param p1, "context" # Landroid/content/Context; .param p2, "attrs" # Landroid/util/AttributeSet;
# virtual methods .method public hasOverlappingRendering()Z .registers 2
.prologue .line 36 const/4 v0, 0x0
return v0 .end method
To get an app to work on your device, Android extracts the classes.dex from the APK file and converts it into Dalvik. Dalvik is basically code that the devices processor can understand. Because every processor works differently, this code will be unique to your particular device. The dalvik code is stored inside a chunk memory known as the "dalvik cache" and everything works nicely. The problems come when your device needs to convert the classes.dex files from every APK and JAR file in your system partition. That's files like framework-res.apk, SystemUI.apk, android.policy.jar, services.jar, etc. This happens the very first time a device is booted, or when a new custom ROM is flashed, or an OTA update happens for your stock ROM....basically anytime the dalvik cache needs rebuilding. This can be very slow so, to speed things up, it's possible to take the classes.dex out of an APK and put it in a separate file known as an "ODEX" file. So, for example, you may find that you have in your ROM, SystemUI.apk and SystemUI.odex. It's faster for Android to convert an ODEX to dalvik than extract and convert classes.dex from an APK. And speed is good. BUT this makes things awkward for the modder. It's possible to convert an ODEX file to smali, make changes, convert it back again, decompile the matching APK, make changes and recompile that.....but it's slow and cumbersome. In fact, since Google changed how ODEX files are formatted in Android 5.0., you can't actually convert the smali back again anyway. This is where deodexing comes in. A deodexed APK is one that contains its classes.dex. Or, in other words, it's an APK whose smali can be edited. If you have an odexed APK or JAR file, Tickle My Android can turn it into a deodexed one for you. So....read on to find out how!
To deodex your APK and JAR files, you'll need to go to the Deodexing Menu: Select the first option: "Prepare Workspace" Here you have two options. You can select "Pull Relevant Files From Android Device" and TMA will gather together all the files it needs automatically. Or you can select "Use Files Supplied By User" to use your own files. This is handy if you want to deodex files from a ZIP'd ROM or similar. If you want to use the second option, you'll need to put the appropriate files in the "_WorkArea*\_deodex\" folders first. Just copy the contents of the "[b]system/app[b]" folder into the "_deodex\app" folder, "system/priv-app" (if you have it) into the "_deodex\priv-app" folder and "system/framework" into "_deodex\framework". Then, once this is done, let TMA do its thing and it will do what it needs to do. Once the workspace is ready, you can extract the smali files from the various ODEX files available. This is handy if you've got a decompiled, odexed APK/JAR file in your "_working" folder and you want to fill it with smali files (and possibly edit some of the smali as well). To do this, select either the "Extract Smali Files From Odex File" or "Extract Smali Files From Odex File [Android 5.0+]" option. I'm sure you can work out which one you should be using.. Choose which folder contains the ODEX file you want to use. Choose the ODEX file. Confirm it and, after a few moments, the smali files will be extracted. Next, you'll probably want to add these extracted smali files to your decompiled APK/JAR file. Just select the "Add Smali Files To Decompiled File In "_working" Folder" option and away you go! Now you can make whatever mods you want, recompile and flash your new, modded, deodexed APK or JAR back to your device. If you use the Standard Zip File, make sure to wipe your Dalvik cache as it'll need rebuilding!
HOW TO DELETE THE ORIGINAL ODEX FILE
If you flash a deodexed APK or JAR file, but you don't delete the original ODEX file, the classes.dex in your new file will be ignored. Android will continue to use that ODEX file as if nothing has happened. So we need to get rid of it. This is simple to do, but could cause potential problems if something goes wrong. SO MAKE SURE YOU MAKE A BACKUP!! To delete an ODEX file, reboot your device into recovery and mount the "system partition". How to do this depends on the particular recovery program you're using but it should be pretty straight-forward. Once that's done, use the "Delete Odex Files From Device" or "Delete Odex Files From Device [Android 5.0+]" option to delete the file from the device. Be sure you get the filename and location right.Be very careful here..if you delete the wrong file it may be gone forever and you might have to reflash the whole rom! With the ODEX file gone from your system, you may now unmount your partition and flash your deodexed APK/JAR. Be sure NOT to delete the ODEX file unless you have a deodexed file to flash!
HOW TO CREATE A DEODEXED APK/JAR IN ONE PRESS OF A BUTTON
Perhaps you want to create a deodexed file without having to decompile, extract smali, recompile and all of that. Well, TMA can create a fully deodexed file for you in just one press of a button! Actually, it's about five button presses but it's still a lot quicker! First, select the "Create Deodexed APK/JAR File" or "Create Deodexed APK/JAR File [Android 5.0+]" option. Then choose your file and let the program do its thing until... Now you'll find a fully deodexed APK or JAR file sitting in your "_out" folder! Easy, no?
A FINAL WORD
As you can see, deodexing really isn't that complicated. The main thing is to take your time, don't rush it and ALWAYS MAKE A BACKUP FIRST! At the time of writing, Tickle My Android can't deodex Marshmallow (Android 6.0) files. Google have changed how the ODEX files are formatted and, although there are utilities available for deodexing Marshmallow, I need to do a lot of research and experimentation before I can implement them into TMA. If you're having problems, and you're not using Marshmallow, I'm more than happy to help. Just tell me what step you've gotten stuck on and include your 'history.txt' which you can find in the 'user_files/LOGS' folder. Have fun!
Last edited by Ticklefish; 27th October 2015 at 05:47 PM.
Having trouble using Tickle My Android? Something not making sense? Something not working the way it should? Read on..
Q. I can't de/recompile something! A. With Android being open-source, more and more companies and developers are putting their own spin on the OS and it's not unusual to find that something won't compile even when there's no obvious reason why it should. I can help..but you need to do something for me first. In your 'user_files\LOGS' folder, you'll find various decompiling and recompiling logs...as well as 'history.txt'. Share that file with me, ideally by copying and pasting it into the post, and let me know a little bit about what's going wrong. That should give me enough information that I will be able to fix your problem. Please be aware that I won't be able to help you without this information.Q. I've Used Apktool 2 And I'm Getting An Error When I Try Adding Smali Files! A. I've encountered this a lot lately so I thought I'd best make a FAQ about it. So you've decompiled an apk with a version of apktool 2 (like apktool 2.0.0b9), you've added some smali files, tried to recompile and...you get errors that look a little like this:
Quote:
Recompiling "LenovoSystemUI.apk" With Original Signature, using "apktool_2.0.0b7.jar" With Tickle My Android (tinyurl.com\ticklemyandroid) ---------------- ..\_working\LenovoSystemUI.apk\smali\fx\dzolcp\Spe ed$1.smali[24,4] Error for input '.parameter': Invalid directive ..\_working\LenovoSystemUI.apk\smali\fx\dzolcp\Spe ed$1.smali[40,4] Error for input '.parameter': Invalid directive ..\_working\LenovoSystemUI.apk\smali\fx\dzolcp\Spe ed$1.smali[41,4] Error for input '.parameter': Invalid directive ..\_working\LenovoSystemUI.apk\smali\fx\dzolcp\Spe ed$1.smali[40,15] mismatched input '"context"' expecting END_METHOD_DIRECTIVE Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: fx/dzolcp/Speed$1.smali at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuil der.java:72) at brut.androlib.src.SmaliBuilder.build(SmaliBuilder. java:56) at brut.androlib.src.SmaliBuilder.build(SmaliBuilder. java:41) at brut.androlib.Androlib.buildSourcesSmali(Androlib. java:337) at brut.androlib.Androlib.buildSources(Androlib.java: 298) at brut.androlib.Androlib.build(Androlib.java:284) at brut.androlib.Androlib.build(Androlib.java:258) at brut.apktool.Main.cmdBuild(Main.java:233) at brut.apktool.Main.main(Main.java:88) ---------------- Recompile Not Successful!
(thanks to @zant76) This 'Error for input '.parameter': Invalid directive' error is caused by a difference in the davlik assembler/disassembler used in apktool 1 and the one used in apktool 2. Apktool 2 uses smali/baksmali v2, which doesn't like smali files generated by smali/baksmali v1. Basically, if you're seeing this error, you need to use apktool 1.5.2 to decompile and recompile your apk. Once the apk's been recompiled, you can use apktool 2.0.0b9 to decompile it again. (If you're feeling nice, once you've decompiled your apk with apktool 2, why not share your new smali files with the thread you got the original files from? Just like this nice guy here: http://forum.xda-developers.com/show...&postcount=962You never know, you just might help somebody else who had this error. ) Q. How Do I Use My Own Version Of Apktool? A. Apktool is a great piece of software that makes it possible to decompile and recompile almost any Android application. The trouble is that Android is open-source and some roms are made a little differently from the Google norm. Which means that stock apktool might not be able to do anything with those apps. In some cases, clever people have been able to mod apktool itself so it works on those roms. If you've got a rom that needs a custom apktool, it is possible to use it with TMA. And very easy too! Have a look in the 'user_files/apktool' folder: At the time of writing Tickle My Android comes with four different versions of apktool to choose from and they're stored here. If you want to use your own modded version, just copy it into this folder. If it's a version of apktool 1, give it a name that starts 'apktool_1' or 'apktool-1'. If it's a version of apktool 2, give it a name that starts 'apktool_2' or 'apktool-2'. This will ensure that Tickle My Android can use the file correctly. Just be sure not to use any spaces in the name! Then just run TMA, go to the Settings Menu, select your apktool and use it. It's that simple! Q. I'm getting a 'Java Not Installed" error...but I do have Java installed!! You may have Java installed...but you probably don't have it in your PATH. TMA is a batch file, which runs in a command-line environment. If you don't have Java in your PATH, the tool won't be able to access it and won't be able to do any decompiling or recompiling at all. Adding Java to your PATH is actually a lot easier than it seems. Have a look at the official guide here: http://www.java.com/en/download/help/path.xml (Big thanks to @carl1961 for the pictures!)
***MORE FAQ's WILL BE ADDED SOON***
Last edited by Ticklefish; 9th March 2016 at 07:38 PM.
Decompile your framework-res.apk and SystemUI.apk, then use the Change Status Bar Color option. :) It should work on your rom but not every launcher supports transparent statusbars. Let me know how you get on! Oh,and thanks! Sent from my SK17i using xda premium
Just wondering if you could make these for me with your tool cos i'm likely to do something wrong if I try it myself lol. I don't want on screen buttons.