# [UTILITY] Android Utility - [apktool|dex2jar|smali|more][Mac & Linux][Oct09, 2011]



## tommytomatoe

*Hello again! What up Rootzwiki!

I thought it would be cool to share this with the community. 

This time, here to present you with Android Utility - a tool to discover and modify Android.

Love,
tommytomatoe*

*Currently available for Mac OS X and Linux

Windows Coming in the future.*


Code:


Welcome back tommytomatoe,<br />
<br />
  Android Utility by tommytomatoe. Version 1.0.7. Special Edition<br />
<br />
|-------------------------------||-------------------------------|<br />
|-------------------------------||-------------------------------|<br />
|         BASIC TOOLS           ||         ADVANCE TOOLS         |<br />
|-------------------------------||-------------------------------|<br />
| 1.  adb tools                 || 7.  apk Re-Engineering        |<br />
| 2.  keystore manager          || 8.  apk Optimization          |<br />
| 3.  sign apk and update.zip   || 9.  dex code utility          |<br />
| 4.  zipalign                  ||10.  draw9patch utilities      |<br />
| 5.  change-log creator        ||11.  AU ROM Utility            |<br />
| 6.  png swap themer           ||12.  3vodex                    |<br />
|-------------------------------||-------------------------------|<br />
|                 K. Run dsixda's Android Kitchen                |<br />
|----------------------------------------------------------------|<br />
|----------------------------------------------------------------|<br />
| x.  Run Installation Guide    || e.  Extras                    |<br />
| i.  Install Android SDK       || q.  Quit                      |<br />
| u.  Update Android-Utility    ||                               |<br />
|-------------------------------||-------------------------------|<br />
 Select an Option: <br />

*Install Instructions and Frequently Asked Questions in POST #3*

*What AU can help you do*


> Change apktool versions 1.3.1, 1.3.2, 1.4.1 on the fly
> Apk optimization
> Apk re-engineering (via apktool)
> Keystore manager
> Easy ADB
> Draw9Patch compiler/decompiler
> Zipalign
> Dex Editing (via smali and baksmali)
> Dex2Jar
> Pngout
> pngcrush
> advpng
> optipng
> Auto ODEX
> Auto dex-removal
> Android Kitchen Integration
> Much much more


*The Goal*


> A tool for Mac! AU will provide the tools necessary to begin theming projects, apk modifications, optimizations, and hacks. At the end of the day, I hope this project has helped you in doing these things.
> 
> AU can also help the user install and utilize apktool even if the user chooses not to use the Android Utility Interface.
> 
> Note, in some instances of the utility superuser permissions must be granted (sudo). Please be aware that the changes made are reversible and are not destructive to the Host Operating System.
> 
> Please READ Posts #1, 2, and 3 in their Entirety before proceeding.
> 
> Feel free to post concerns and bugs. This is still in development! Thank you.


*The Goods*


> *Version History*
> 
> *Android Utility Source Code and information*
> 
> *Mac OS X Version 1.0.2 Download:*
> Android Utility Mac OS X Version 1.0.2
> 
> *Linux Version 1.0.7 Download:*
> Android Utility Universal Installer Automated Script
> Download tar file. Open with Archive Manager. Extract au.installer. Run in terminal by double clicking on it. Follow on-screen prompts. Done.
> 
> *Old Versions*
> Mac OS X
> Android Utility Github Direct Download Version 1.0.1
> Mirror - Full Version 1.0.1 Download
> Mac Mirror Version b-1.0.0
> Android Utility Github Direct Download Version b-1.0.0
> Android Utility Github Direct Download Version 1.0.2
> Update Package - 1.0.1 -> 1.0.2 - ONLY USE IF RUNNING VERSION 1.0.1. Extract "update" folder into root of android-utility, then run "update_script" by clicking on it.
> Patch Update 1.0.2.b - Fixes three scripts. Extract "update" folder into root of android-utility, then run "update_script" by clicking on it.
> Linux
> Android Utility Github Direct Download Version 1.0.1
> Update Package - 1.0.0 -> 1.0.1 - ONLY USE IF RUNNING VERSION 1.0.0. Extract "update" folder into root of android-utility, then run "update_script" by clicking on it.
> Android Utility Github Direct Download Version 1.0.2
> Patch Update 1.0.2.b - Fixes two scripts. Extract "update" folder into root of android-utility, then run "update_script" by clicking on it.
> 
> Android Utility Mirror Mediafire Full Version 1.0.2 Linux


*Install Instructions and Frequently Asked Questions*

*Credits*

Brut.all - apktool.jar and sound advice
JesusFreke - baksmali.jar and smali.jar
Stericson/JF - testsign.jar
Google - AOSP
Pendo - sound advice/answering my rookie questions 
aamikam - sound advice
themikmik.com - Awesome sauce [jadeboy, nick, cho, et cetera ]
myn's thread - dougjamal, myn, lowetax, ageesm, persnlmgr, et cetera
xda developers - Roots
JsChiSurf - sound advice
dsixda - sound advice
Amon_RA - sound advice
Igor Pavlov - 7zip
Ardfry Imaging, LLC. - pngout
Glenn Randers-Pehrson - pngcrush
Andrea Mazzoleni - advpng
Cosmin Truta - optipng
Emmanuel Dupuy - JD-GUI 
Xclusive Rydah, Chingy, misfit - testing and ideas


----------



## tommytomatoe

Version: 1.0.2

### Welcome to Android Utility
# README
# Author: Tommy Nguyen [tommytomatoe]
# Date: August 24, 2011

### Update. August 22, 2011
>version 1.0.2
>updated main menu
>updated apktool (1.4.2 and 1.3.2-mod)
>added png Optimization [pngout, pngcrush, optipng, and advpng]
>updated installation guide
>added support for touchwhix and sony
>added 3vodex script capabilities
>removed 7z in apk_compress and res_compress
>updated installau
>added auto-dex-removal [dexrm and dexrm2]
>BIGGEST CHANGE: added dex2jar
>added smali/baksmali support

### Update. July 14, 2011 
>version 1.0.1
>updated sign script
>updated main menu
>added ROM Utility
>added apk Optimization
>added change-log creator
>fixed error logging for decompiling and recompile process
>added resources.arsc decompression

### Update. July 13, 2011
>version b-1.0.0
>redid decompile and rebuild scripts
>added error logging to decode and rebuild
>added filter to adb script
>changed main menu layout

### Update. July 08, 2011
>more preparation
>added zipalign script
>added sign apk/update.zip scripts
>updated apktool decode mechanism, now includes META-INF extractions

### Update. July 05, 2011
> preparing for initial release
> added apktool build script
> added draw9patch stuff

### Update. June 20, 2011
> added some major changes
> got confirmation for use of PNGOUT
> preparing for initial release

### Update. June 15, 2011
> major changes to install script 
> minor changes to andutil script
> Version a-0.89 should be up and running soon

### Update. June 06, 2011
> github repo created

### CREDITS
> brut.all for apktool.jar and decode9patchPng.jar
> jesusfreke for smali and baksmali
> PNGOUT.EXE used with permission of Ardfry Imaging, LLC.
> pngcrush - Copyright (C) 1998-2002,2006-2011 Glenn Randers-Pehrson
> advpng - Andrea Mazzoleni
> optipng - Copyright (C) 2001-2011 Cosmin Truta
> dex2jar - [email protected]
> JD-GUI - Copyright © 2008-2011 Emmanuel Dupuy
> Igor Pavlov for 7zip
> Google
> Android
> HTC
> xda developers
> themikmik.com
> tommytomatoe


----------



## tommytomatoe

*Please follow these INSTRUCTIONS Carefully. The usefulness of AU depends on your attention of these instructions. Thank you.*

*### Installation ###

*** MAC ****


> Prerequisite: JAVA (standard on Mac OS X)
> 
> 1. Download from Github.com link or direct link or mirror.
> 2. Unpack the archive (tar.gx or zip) to your HOME folder.
> HOME folder is located in /Users/username. To determine HOME folder, open Terminal in Applications Drawer and type:
> open $HOME
> 3. Place the unzipped folder in the finder window that opens.
> 4. Rename the folder to "android-utility" - ATTENTION! CASE SENSITIVE (ie. Android-utility ≠ android-utility).
> 5. Double check and make sure name of folder is "android-utility".
> 6 From here, you have two options (A or B).
> 
> # Option A
> Open in Finder the android-utility
> Look for the file "andutil"
> Double click on "andutil"
> A Terminal Window will open up with Welcome Screen (Which you will see only on initial install)
> Continue through the installation
> 
> # Option B
> Open a Terminal Window
> Type these lines followed by ENTER key:
> cd $HOME/android-utility
> ./andutil
> Continue through the installation
> 
> From now on, to run AU, you can either double click on the andutil icon, or simply type "andutil" in Terminal from any directory. AU adds necessary files to your PATH.


**** Linux ****


> Prerequisite: JAVA
> 
> If you have Java, continue. If not, run these commands (pressing ENTER key after each one) in Terminal to install Java:
> 
> sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
> sudo apt-get update
> sudo apt-get install sun-java6-bin sun-java6-jre
> sudo apt-get -f install
> sudo apt-get install sun-java6-bin sun-java6-jre
> 
> 1. Download from Github.com link or direct link or mirror.
> 2. Unpack the archive (tar.gx or zip) to your HOME folder.
> HOME folder is located in /home/username. To determine HOME folder, open Terminal in Applications Drawer and type (for Gnome Environment):
> nautilus $HOME
> 3. Place the unzipped folder in the window that opens.
> 4. Rename the folder to "android-utility" - ATTENTION! CASE SENSITIVE (ie. Android-utility ≠ android-utility).
> 5. Double check and make sure name of folder is "android-utility".
> 6 From here, you have two options (A or B).
> 
> # Option A
> Open in Finder the android-utility
> Look for the file "andutil"
> Double click on "andutil"
> A Terminal Window will open up with Welcome Screen (Which you will see only on initial install)
> Continue through the installation
> 
> # Option B
> Open a Terminal Window
> Type these lines followed by ENTER key:
> cd $HOME/android-utility
> ./andutil
> Continue through the installation
> 
> From now on, to run AU, you can either double click on the andutil icon, or simply type "andutil" in Terminal from any directory. AU adds necessary files to your PATH.


**** Windows ****

Coming Later.

*Frequently Asked Questions*

1. What if I get /usr/local/bin not a directory? ScreenShot
*Answer:* Post #111 aka my Epiphany

2. What if I get an error "Apk cannot be decoded"? ScreenShot
*Answer:* Please be sure that your apk has no spaces in its name. Post #98

3. Why is my new apk so much smaller than my original apk?
*Answer:* Two reasons. 1. Apktool when it builds, it uses full compression. 2. The new apk has not been signed, so the signature files "META-INF" are not present.

4. What can I use to edit xml files?
*Answer:* Mac: TextEdit or TextWrangler. Linux: Gedit (my personal favorite). Windows: Notepad++

5. Why won't my apk decompile?
*Answer:* Well, multiple reasons. Let's start fresh. 
a. Have you installed proper "framework" files, ie framework-res.apk and com.htc.resources.apk? These go inside working-folder/framework-here/. Install via Option #1 in Apk re-engineering. 
b. Have you installed a new version of apktool? Sometimes that will resolve your issues.

6. Why won't my apk recompile/build?
*Answer:* Again, could be multiple reasons.
a. Are you sure your framework files are installed?
b. Your edits could just be bad/mistakes.
c. Install a different version of "aapt", available in installau and the apk Re-engineering suite.

7. I get the error: "apktool.yml does not exist".
*Answer:* Please refer to questions 5 and 6. A file "apktool.yml" gets created that's used by apktool during the decode process. If that went wrong, then you won't be able to compile.

8. AU tells me to check build_log for errors. But there is nothing there!
*Answer:* Currently the build_log is funky. I will fix in the future. If it tells you to check log and nothing is there...then ignore it. There really wasn't an error. But if the log does exist, then you have an error.

9. When will a PC Version exist?
*Answer:* When I have time.

10. When will you include latest apktool (v1.4.2)?
*Answer:* AU Version 1.0.2 will include latest tools.

11. When will smali/baksmali support be available?
*Answer:* AU Version 1.0.2 will include latest tools.

12. When will png optimization be available?
*Answer:* AU Version 1.0.2 will include latest tools.

13. Why cant't I sign my apk with test keys? They won't install!
*Answer:* Using an archive manager, delete the ORIGINAL "META-INF" (aka the signature) and then sign.

14. I get errors using Draw9Patch decompiler after using 9.png from a decompiled apk.
*Answer:* Post 151

15. What if I have a non-HTC Device, like Xperia or Sammy?
*Answer:* Currently, support for those devices does not exist for the "Apk Re-Engineering", namely Option #1 Install Framework first. The tool is written to only look for "framework-res.apk" and "com.htc.resources.apk". Future versions will have support for more proprietary ROMs. More info on Post 134.

More to come.

Enjoy!


----------



## TreyM

This is wicked! Thanks alot!


----------



## tommytomatoe

TreyM said:


> This is wicked! Thanks alot!


No problem man. Thank you. Feel free to drop any feedback you want. 

Sent from my PC36100 using Tapatalk


----------



## TreyM

I had to modify the signing script to sign to the same filename. I just created a "signed" folder to place the new signed zips/apks in. This way, they still retain the original filename.


----------



## tommytomatoe

TreyM said:


> I had to modify the signing script to sign to the same filename. I just created a "signed" folder to place the new signed zips/apks in. This way, they still retain the original filename.


That's cool man. The sign script was one of the first I wrote. At the time I started work on AU I didn't want to create an excessive amount of directories. But after I added more and more functions it was inevitable to create different directories for each task. In version 1.0.3 I will revisit some of the older scripts and update them. Thanks for the input 

Sent from my PC36100 using Tapatalk


----------



## Peperm1nt

Having issues with this script. After doing the full install as you stated, I go to terminal and type "andutil" and the application opens, BUT I can not place the rom in the specified folder. I ended up having to change the permission of all the folders back to me in order to access the folder and sign the file. NOTE: the script recognizes me forcing the .zip in the folder through nautilus but will not write or give output of the signed .zip. I dont know if you knew this or not, but I think you should change to where you do not give root only to the folders. Just food for thought I guess.


----------



## tommytomatoe

Peperm1nt said:


> Having issues with this script. After doing the full install as you stated, I go to terminal and type "andutil" and the application opens, BUT I can not place the rom in the specified folder. I ended up having to change the permission of all the folders back to me in order to access the folder and sign the file. NOTE: the script recognizes me forcing the .zip in the folder through nautilus but will not write or give output of the signed .zip. I dont know if you knew this or not, but I think you should change to where you do not give root only to the folders. Just food for thought I guess.


That's very interesting indeed. I haven't had that issue and you are the first to have presented it to me. I need to update the op anyways. Linux has version 1.0.7 up with auto updating.

The permissions should not be for root user by default. I would recommend deleting the android-utility folder completely and starting over later when I update. There is now an installer script that does all the work for you. I'll update the op after my errands today.

But on another note, which folder are you trying to place the Rom?

tapatalk signature here. lovely.


----------



## tommytomatoe

OP Updated to Version 1.0.7 for Linux Users.


----------



## Jonathon

Dude this is awesome! Especially that installation script for Linux, keep the great work up!


----------



## thunderteaser

I've been using Apk Manager for a long time, but it's very nice to see a new up-to-date utility for Linux, with many more features! Thank you so much!


----------



## redsox 98

nevermind hehehehe


----------

