[Android Software Development] Flextrick:
Android Multitool

Hello,

I´m glad to present my Android Multitool wich makes it easier to decompile/recompile applications + jar framework files. You can also sign your apk by easily clicking a button.

Requirements:

Winows OS XP / 7 / 8 / 8.1 / 10

Installed Java on Windows

Installed Microsoft Powerpacks

Installed .NET framework

- Easy handling: Select your apk and push the "decompile" button!

- This tool makes modding much faster and easier, no cmd handling any more.

- You can read the log which is integrated in the tool to find your mistake in the error.

- ADB inside: Push files into your file system with a few clicks

It looks like this so far:

How to use this tool?

Follow this small how to!

Here you go..

Well, first extract the AndroidMultitool folder to C:\. Otherwise it probably won´t work

-copy your framework-res.apk in the Framework-Files folder and other files you want to mod in the "Files" folder (this folder is for all your files you want to mod, don't pick files from any other location)

-Next you have to start AndroidMultitool.exe

-select your framework-res.apk and push the "install" button (check log for errors)

Decompiling and recompiling apk files:

-select the apk you want to mod/decompile and push the "decompile" button (check log for errors)

Note: You can check the "use baksmali" checkbox, then e.g. the useless .line text will be removed

-your decompiled apk will be located in C:\AndroidMultitool\Decompiled_apk"apkname" as a folder

-if you want to compile your apk again, select your decompiled folder, check the "apk" radio button and compile it again (check log for errors)

-your recompiled apk will be located in C:\AndroidMultitool\Compiled_apk"apkname"

Decompiling and recompiling jar files:

-select in the combobox ".jar" (check the "use baksmali" checkbox for deleting the useless .line comments)

-select the ".jar" file you want to mod

-push the "decompile" button

-your decompiled jar file will be locaten in C:\AndroidMultitool\Decompiled_jar"jarname"

-for recompiling you have to check the "jar" radiobutton and select the folder within your decompiled ".jar" file

-push the compile button

-your compiled jar file will be located in C:\AndroidMultitool\Compiled_jar"jarname"\classes.dex

-delete the "classes.dex" file in your ".jar" file

-copy the new "classes.dex" file you compiled in the ".jar" file

Signing apk files:

-select the ".apk" you want to sign

-push the "sign" button

-the signed apk file is located in C:\AndroidMultitool\Signed_apk"apkname_signed"

Using tags:

You want to decompile many files from different devices or different android versions / frameworks? Tagging makes it possible!

- before installing your framework type in any tag (like "hero")

- then install your framework and work normally

Android Debug Bridge

You want to push files with adb to your device? Follow these instructions:

Please klick on the "advanced" register in the tool

-push "check" to control if your device is ready

-if the device is not ready please follow the instructions, which are listed in the tool (device offline, no device...)

-if the device is ready, choose a file you want to push

-choose a path on the device, where the file should be placed later

-push the "push" Button

-alternately: press "Reboot device" to reboot your device and to let changes take effect

If there are any questions or bugs, please post them in the thread.

Follow me on Google+ : Daniel Huber

[DOWNLOAD] see next post #2

Enjoy easier apk handling!

Having issues with the program?

Try the batch version developed by @bovirus (it's also in the AndroidMultitool folder)

Questions and answers:

Q: The programm does not start, it crashes.

A: Please install Powerpacks, this one: http://go.microsoft.com/fwlink/?LinkID=145727&clcid=0x804

Q: What do you mean exactly with "!!!NOTE!!! After compiling you have to copy the AndroidManifest.xml and the META-INF folder from your old apk to your newly compiled one!! Otherwise you´ll get bootloop! " .. I don't understand.

A: You have to open your old apk (this one you selected for decompiling in the folder /files) and copy from that apk the AndroidManifest.xml and the META-INF folder to the apk you just decompiled and recompiled.

Q: I followed all steps in the startpost but I'm still getting this error: "apktool is not recognized as internal or external command"

What can I do?

A: Please refer to this post by @LasVegasRomeo: http://xdaforums.com/showpost.php?p=51017662&postcount=681

Credits:

Developers (brut.all, iBotPeaches) of the base Apktool

mike_galaxy_s for his help on testing

@bovirus for batch development

------------------------------------------------------

Changelog:

v3.5.9:

updated build tools and platform-tools (aapt, adb and needed dll's)

updated 7za, apktool, smali and baksmali to latest version

added bovirus's batch version to the main directory (users can choose between gui and batch now)

added a folder (Framework-Files) for the framework-res.apk (only use this folder for the framework files from now on)

added a Help folder with all commands

v3.5.8:

updated build tools and platform-tools (aapt, adb and needed dll's)

updated apktool, smali and baksmali to latest version

v3.5.7:

updated build tools and platform-tools (aapt, adb and needed dll's)

updated apktool, smali and baksmali to latest version

v3.5.6:

fix progressbar not disappearing after decompiling

fix loop after/while compiling

save compiling path and jump into it when he starts folder browsing

update user interface

v3.5.5:

fix infinite loop on compiling when errors appeared

folderbrowserdialog (compiling): jump into /decompiled_apk default

update build tools and platform-tools (aapt, adb and needed dll's)

v3.5.4:

add option to copy AndroidManifest.xml automatically into the apk after compiling

layout cleanup

force overwrite already compiled or decompiled files when new compiling/decompiling thread started

update to apktool rc3 (mainly lollipop support)

v3.5.3:

copy AndroidManifest.xml and META-INF folder automatically into the apk after compiling

added some links

code cleanup

v3.5.2:

add more detailed log

fix decompiling/compiling/signing/installing framework multiple times sometimes

add batch decompiling (preview)

fix donation image not fitting center

add txt files with descriptions for all tools inside (thanks to @bovirus)

v3.5.1:

update all files

v3.5:

code rework

fix UI freezing on long tasks

add progress bar

many other small fixes

v3.4:

access files from all locations of the pc (you're not limeted to the /Files folder)

add version number to the tool

v3.3:

add tag support (tagging allows multiple framework support)

rework interface

small additions and fixes

support for Win7 / 8 / 8.1 (no extra versions)

v3.2.1:

add apktool b9

v3.2:

add different apktool, aapt and batch files

should solve some problems on de - and recompiling

v3.1:

Fixes for adb push

button to reboot device

many other fixes and code rework

v3.0:

SlimBean apktool ((de)compiling also with inverted folders from trds)

ADB (AndroidDebugBridge for pushing files to your device)

Some Links in the tool for support and donation

v2.2 Beta1:

apktool 2.0.0

Details:

Details

v1.5.x -> v2.0.0

Java JRE 1.7 is required!

Update apktool to v2.0.0

aapt is now included inside the apktool binary. Its not required to maintain your own aapt install under $PATH. (However, features like -a / --aapt are still used and can override the internal aapt).

Remove framework $HOME/apktool/framework/1.apk or manually update via (FrameworkFiles)

Eagle eye users will notice resources are now decoded before sources now. This is because we need to know the API version via the manifest for decoding the sources.

Parameter Changes

Smali/baksmali 2.0 are included. This is a big change from 1.4.2. Please read the smali updates here for more information.

-o / --output is now used for the output of apk/directory.

-t / --tag is required for tagging framework files

-advance / --advanced will launch advance parameters and information on the usage output.

-m / --match-original is a new feature for apk analysis. This retains the apk is nearly original format, but will make rebuild more than likely not work due to ignoring the changes that newer aapt requires.

After [d]ecode, there will be new folders (original / unknown) in the decoded apk folder.

original/ = META-INF folder / AndroidManifest.xml, which are needed to retain the signature of APKs to prevent resigning. Used with -c / --copy-original on uild.

unknown/ = Files / folders that are not part of the standard AOSP build procedure. These files will be injected back into the rebuilt APK.

apktool.yml collects more information than before

SdkInfo = Used to re-populate the sdk information in AndroidManifest.xml since aapt requires it to be passed at runtime.

packageInfo = Used to help support Android 4.2 due to renamed manifest packages. Automatically detects difference between manifest and resources and performs automatic --rename-manifest-package on uild.

versionInfo = Used to re-populate the version information in the AndroidManifest.xml since aapt requires it to be passed at runtime.

compressionType = Used to determine the compression that resources.arsc had on the original apk to duplicate on uild.

unknownFiles = Used to record the name/location/compression type of non-standard files in Apk.

v2.1:

fixed freezes

bigger UI for better overview

option to save log to a text file

other small fixes

v2.0:

complete code rework

folder structure for a better overview

decompiled, recompiled, signed files will be located in their own folder

no more messy file handling

added radio buttons for choosing jar or apk

some graphical changes

added info button in the "installing framework" section

V1.2:

Added ability to decompile and recompile ".jar" files

Added baksmali

FolderBrowserDialog: If you push the "browse" button you are in the right directory now and needn't to scroll and search the "AndroidApktool" folder

other small fixes

V1.1:

Added ability to sign .apk

Changed comboboxes to browse buttons

bigger log - screen

Initial Release