Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[UTILITY][10-8-2012] APK Manager for Mac OS X, Intel only, v3.0

OP s0niqu3

1st October 2011, 10:44 PM   |  #1  
s0niqu3's Avatar
OP Senior Member
Thanks Meter: 389
 
716 posts
Join Date:Joined: Feb 2005
Donate to Me
More
So almost everyone here should be pretty familiar with android, and that means you've probably heard of (and maybe even used yourself) the windows tool APK Manager by fellow XDA member Daneshm90.

Early last year I started to port the windows 4.9 version to mac using the outdated linux script for a base. And I had some early success at the time with simply using macports to install sox, optipng, etc. And then my computer crashed (double drive failure in July, 2011) and I gave up for the time being. Recently though I was excited to find that someone else tried to do the same thing, XDA member MAD Industries released a very basic port for mac.

Sadly though, a quick diff of his script and the outdated linux version shows that it was still woefully behind the windows version. And so I started working (once again) on my own port of APK Manager for Mac OS X, with my goal to not only bring this current to the windows feature set, but exceed it in many ways.

I've built in 32/64-bit architecture checking, and compiled and include the required missing binaries to re-enable optimizing png images and ogg files. I'm also including a .terminal file for easily configuring the default display, and a copy of my NEW favorite fixed-width font, Bitstream Vera Sans Mono.

And now some notes, and requests:
  • PLEASE note: this is currently INTEL only, but it supports both 32-bit and 64-bit all-in-one with architecture checking built-in to the script.
  • PLEASE note: if your computer is running OS X 10.7.X, "Lion" then it does not include a java runtime by default, please download it here first: http://support.apple.com/kb/DL1421
  • PLEASE note: due to the length of some of the strings used in the menus, etc., in order to not need to scroll your terminal window, you must adjust your default columns and rows settings. You can set this automatically by using the include "JocelynCustom.terminal" file, and you can also find simple instructions to set this yourself in the README.txt
  • PLEASE read the included readme for installation and very basic (for right now) usage instructions. I welcome any and all feedback on improvements for the readme file.
  • PLEASE report any and all bugs or generally wonky behavior, preferrably by posting here in this thread, or by posting a comment back on my blog.
  • LASTLY, please if you re-post this anywhere else, including blogs, other forums, etc. I would greatly appreciate if you would at least give me credit, and link back to my blog (http://girlintroverted.wordpress.com/) or at the very least, link back here to this post.

WHEN UPGRADING, DO NOT COPY OVER THE CONTENTS OF THE "other" directory or the root directory unless you absolutely know what you're doing.

IMPORTANT: Please see the second post in this thread for update notes, issues, concerns, etc. thanks

Download apk manager v2.2.5 here: http://www.mediafire.com/?o4idx4en9ldnwx4
Download migration tool v1.4 here: http://www.mediafire.com/?hbhftv9195tk86t

v3.0 BETA INFORMATION

May 11, 2012 - beta version of v3.0 is online now on github, if you want to help test it, I suggest backing up your old apk_manager directory entirely, and then going here, and reading the simple install instructions:

https://github.com/jocelynmallon/apkmanager

The basic install is pretty simple though: open terminal, cd into whatever directory you want the apkmanager folder to be created in, and run:
  • cd into whatever directory you want the apkmanager folder to be created in, and run:
    Code:
    git clone git://github.com/jocelynmallon/apkmanager.git
  • launch APKManager.app and follow all the instructions.
Also, git is utterly retarded when it comes to the OSX 'icon' resource files (for custom folder icons) so by default, the folder icon isn't included with 3.0+, but you can download it and apply it yourself still. Link is on the wiki here:
https://github.com/jocelynmallon/apk...ic-Information

and thank you very much to anyone that helps test this!

Cheers everyone
Last edited by s0niqu3; 12th November 2012 at 02:26 AM. Reason: version bump, v3.0
The Following 27 Users Say Thank You to s0niqu3 For This Useful Post: [ View ]
1st October 2011, 10:44 PM   |  #2  
s0niqu3's Avatar
OP Senior Member
Thanks Meter: 389
 
716 posts
Join Date:Joined: Feb 2005
Donate to Me
More
IMPORTANT!
5-11-2012 - v3.0 BETA notes

Some notes about the new v3.0 beta released today.

First, please backup your entire old apk_manager directory before you install/clone the 3.0 git repo. My OCD got the better of me when it came to releasing 3.0, and I ended up trashing my entire git repo/history (from v1.0-2.2.5) and starting a new history when I was ~90% through the 3.0 dev process. Because of that, your old directory will cause problems, DO NOT CLONE/INSTALL 3.0b into your old 1.X/2.X directory.

Second, for those comfortable with the command line that really want to help test APK Manager, there are four 'hidden' menu options in most menus (main menu, debug/settings menu, auto-updates menu, signing menu, clean menu) that turn on a variety of debugging options.
  • 96) turns on 'trace mode' (set -x) for the entire script, once the main loop starts. This will make the script basically unusable for people, please only use this if you can reproduce a bug, and are saving the entire terminal output to submit an issue/error log.
  • 97) turns on 'verbose mode' (set -v) for the entire script, once the main loop starts. This will cause some display issues, but the script will remain mostly usable.
  • 98) turns on 'error mode' (set -e) for the entire script, once the main loop starts. This basically causes the script to exit if any condition/test/command fails. Not really useful on its own, but very useful in combination with option 96 or 97.
  • 99) turns on a very (and I do mean VERY) simple debug information display between main apk manager header and most menus. This shows the current PID, the last exit/return code (Currently non-functional) and the last directory change.
So, if you can reproduce any bugs, please close apk manager, and delete your log.txt. Then open APK Manager again, and on the main menu, choose option 98, then next choose option 96. Then reproduce the bug, and copy/paste the entire terminal output into a log on pastebin.com, gist, etc., and send it to me. And of course, if you feel confident debugging and fixing it yourself, then fork the apkmanager repo, and send me a pull request with your changes.

4-14-2012 IMPORTANT!

An update to the issue below. This has been resolved in version 2.1 of APK Manager, and should not present any issues moving forward. However, because the old user settings and private keys were stored locally, inside the apk_manager directory, in order to save these before upgrading, I've created a migration utility/script, that needs to be run before you upgrade.

The link to this migration utility is in the original post in this thread, and the tool is also included in the APK Manager disk image starting with versions 2.1.1.

To run this tool:
  1. mount the "Migration Utility.dmg"
  2. Copy Migrate.app to your old root apk_manager directory.
  3. Copy Migrate.sh to your old apk_manager/other directory.
  4. From your old root apk_manager directory, run Migrate.app
  5. Verify that the script completed without any errors
  6. OPTIONAL - for those paranoid, you can double check that it worked manually. Execute the following commands in a terminal:
    Code:
    cd $HOME
    ls -la | grep .apkmanager
    cd .apkmanager
    ls -la
4-13-2012 IMPORTANT!

AFFECTS all versions of apk manager prior to v2.1 (forthcoming release as of 4/13/2012.)

If you use any advanced signing functionality, you must backup your existing private key(s) and keystore(s) before upgrading to a new version of APK Manager.

Forthcoming version 2.1 will have a separate, automated, one-time backup & upgrade script to run, and all future versions will have automatic backup of key(s) and keystore(s) built in.

By default they get created and saved in the apk_manager/other/.keystores directory. This is a hidden directory by default. You can do one of several different things to unhide/view this directory, and backup your keystore(s).

I'm outlining one simple method here.
  • Enable 'show hidden files' in Finder. From a terminal copy and paste the following two lines:
    Code:
    defaults write com.apple.finder AppleShowAllFiles TRUE
    killall Finder
  • Finder will restart after those two lines, browse to your apk_manager/other directory and make sure you see the .keystores folder (it should be dimmed compared to regular folders.)
  • Copy this folder and all contents somewhere safe (desktop, user home directory, user backup folder, dropbox, etc.)
  • Proceed with your upgrade (usually just delete the old apk_manager folder and copy over the new one, you might need to manually move project folders, etc. too)
  • Copy/Paste your saved .keystores directory into your new apk_manager/other folder
  • Test advanced signing functionality to ensure everything still works.
  • Once you've verified everything is working, run the following code to turn off viewing all files/folders in finder:
    Code:
    defaults write com.apple.finder AppleShowAllFiles FALSE
    killall Finder
Last edited by s0niqu3; 12th May 2012 at 09:21 AM. Reason: Moved changelog to third post, added important notes to this post
The Following 6 Users Say Thank You to s0niqu3 For This Useful Post: [ View ]
1st October 2011, 10:45 PM   |  #3  
s0niqu3's Avatar
OP Senior Member
Thanks Meter: 389
 
716 posts
Join Date:Joined: Feb 2005
Donate to Me
More
CHANGELOG
10-8-2012
  • fixed a couple bugs that were introduced with some changes to homebrew and pngcrush
  • updated smali.jar and baksmali.jar to version 1.4.0
  • fixed a few various typos
  • updated the built-in pngout downloader to download the newest version (May 30, 2012)
  • changed the "view changelog" option on the debug menu to use "git log" if you used homebrew & git to install
  • added the ability to forcibly reset the "home" directory by holding the command/apple key when launching APKManager.app
  • removed all the little "b/beta" tags I could find since this seems good enough for a "real" 3.0 release finally

4-28-2012
  • v2.2.5 uploaded! - Fixed "adb log" function. I have no idea how or when I broke this, but it was yet another boneheaded mistake.

4-28-2012
  • v2.2.4 uploaded! - Fixed a bug in the "batch sign with private key" option that would cause the signing process to fail if the key and keystore password weren't identical.

4-24-2012
  • v2.2.3 uploaded! - I'm retarded and somehow failed to include zipalign in every release. Fixed.
  • Added zipalign path information to debug/binary info screen.
  • Replaced all instances/uses of 'which' with 'command -v' instead.
  • Fixed an obscure bug that could cause infinite loop in the function to check and set png optimization tool.

4-20-2012
  • v2.2.2 uploaded! - Updated 32-bit optipng to v0.7.1 (Somehow I forgot to update the 32-bit binary when I last updated the 64-bit version)
  • Minor changes to the way debug/binary version info is scraped and displayed. I personally think this new method is cleaner, and more consistent.
  • Fixed bug in binary display screen (debug menu, option 2) whereby pressing "any key" did not actually close the screen and return to debug menu.
  • Updated other/Migrate.sh to dynamically pull the APKManager version banner from whichever other/Script.sh version is present, when its run. This should mean the end of unnecessary updates to Migration Utility.dmg, purely to bump the APK Manager version information.

4-17-2012
  • v2.2.1 uploaded! - Updated pngcrush to 1.7.27 (yep, that's it, lol)

4-16-2012
  • v2.2 uploaded! - Integrated color scheme selection into one single script, and removed the separate 'black text on light backgrounds' script file since its no longer needed.
  • Added new option to the "Clean" menu to reset/change color scheme.
  • Fixed a few obscure bugs with the apktool selection menu.
  • Added the actual apktool jar file in use to the debug menu information.
  • Changed the way the default apktool.jar symlink is created in order to prevent APK Manager from ever linking 'mod' versions by default.
  • Added a new custom icon for the apk_manager folder (CC by-nc-sa) Jocelyn Mallon, 2012

4-15-2012
  • v2.1.2 uploaded! - Fixed a bug causing decompile/compile errors due to old framework files not being deleted when changing apktool versions.
  • Added 2 new apktool versions, an upgraded 1.4.2 version, and 1.4.3 ICS Mod. For most instances, 1.4.3 is still the best option to use.

4-14-2012
  • v2.1.1 uploaded! - Fix brain-dead mistake regarding user settings & private key migration.
  • Packaged "Migration Utility.dmg" with APK Manager for easier upgrading from previous versions.

4-14-2012
  • v2.1 uploaded! - Migrated user settings and private keys to new location ($HOME/.apkmanager) to ensure preservation when upgrading.
  • Bumped copyright/CC info in various files to 2012

4-12-2012
  • v2.0.1 uploaded! - Quick hotfix for directory check/creation for advanced signing options.

4-12-2012
  • v2.0 uploaded! - Re-packaged into a DMG (mac disk image) file to alleviate potential unzip/setup errors.
  • Updated a lot of the various binaries to latest versions (adb, sox, optipng, pngcrush, etc.)
  • Added a new option to view java source, this has a lot of potential issues/caveats so please read the CHANGELOG.txt for more information.
  • Re-worked and (hopefully) simplified debug menu for the millionth time.
  • Added Chocolat.app to list of text editors/viewers http://chocolatapp.com/
  • Lots of stuff I probably missed, please read README.txt and CHANGELOG.txt for full details.

10-18-2011
  • v1.2.1 uploaded! - Mostly bugfixes for a few really stupid bugs I introduced in 1.2. If you had problems running APK Manager because of "missing programs" or "not in PATH" errors (from a clean install) it was my crappy coding skills, and it should be fixed now.
  • I honestly don't think I added any new features, just bug fixes and code cleanups.

10-10-2011
  • v1.2 uploaded! - Added another png tool option, pngout. Unfortunately, due to the licensing restrictions, it is illegal to redistribute the actual pngout binary, so instead, APK Manager will download and install the binary upon first attempted use of pngout. This means that if you never use pngout, it will never be downloaded.
  • Completely re-worked the adblog.txt function, now completely automated, and, with much clearer instructions.
  • Added two additional text editor/log viewer options: sublime text 2, and vico. Just like all the rest, they both require command line support to be installed in order to function.
  • Cleaned up adb shell, ddms, and draw9patch options so that they all now automatically close the new tabs that they open, and when necessary, will kill and re-start adb.
  • 1.2 might be the last release. I had fun learning how to write shell script for this, but the overwhelming lack of interest in this project has already started to make it no fun for me. And well, its already basically good enough for everyday use, there's just not much else to keep adding.

10-8-2011
  • v1.1 uploaded! Please see Changelog.txt for full details.
  • switched some code back to a "portable" syntax and changed back to /bin/sh env in case users have a login shell other than bash set.
  • cleaned up and re-arranged debug menu again, it should be a lot less cluttered, and easier to use overall now.
  • fixed a few bugs in the startup check, hopefully nobody ever encountered them, they were pretty embarrassing, lol.
  • added option to choose between optipng and pngcrush for png optimization functions, and the setting is persistent between launches of APK Manager.
Last edited by s0niqu3; 12th November 2012 at 02:32 AM. Reason: added notes for 3.0
The Following 4 Users Say Thank You to s0niqu3 For This Useful Post: [ View ]
3rd October 2011, 05:57 PM   |  #4  
tommytomatoe's Avatar
Recognized Developer
Flag Knoxville USA
Thanks Meter: 6,822
 
6,256 posts
Join Date:Joined: Dec 2010
Donate to Me
More
Good work man. Let me know if you'd like to collaborate or borrow ideas. I wrote Android-Utility and it is currently on v1.0.2 and development is active.

Tommy

Android-Utility Linky
The Following User Says Thank You to tommytomatoe For This Useful Post: [ View ]
8th October 2011, 11:15 PM   |  #5  
s0niqu3's Avatar
OP Senior Member
Thanks Meter: 389
 
716 posts
Join Date:Joined: Feb 2005
Donate to Me
More
Quote:
Originally Posted by tommytomatoe

Good work man. Let me know if you'd like to collaborate or borrow ideas. I wrote Android-Utility and it is currently on v1.0.2 and development is active.

Tommy

Android-Utility Linky

Hi Tommy,

Thanks for the compliment and the offer to work together. I'm not really sure how much else I'm going to add, but I did take a nod from your tool and add the option to choose between optipng and pngcrush. Mostly I added that just because optipng hasn't been updated in forever, and pngcrush just had an update last month.

So I compiled both 32-bit and 64-bit specific binaries of the newest pngcrush (v1.7.17) and included them with v1.1 of APK Manager.

Anyway, your tool is pretty amazing, I'm rather intimidated by how many features you have, lol.

Thanks again, cheers
The Following User Says Thank You to s0niqu3 For This Useful Post: [ View ]
9th October 2011, 02:53 AM   |  #6  
tommytomatoe's Avatar
Recognized Developer
Flag Knoxville USA
Thanks Meter: 6,822
 
6,256 posts
Join Date:Joined: Dec 2010
Donate to Me
More
Quote:
Originally Posted by s0niqu3

Hi Tommy,

Thanks for the compliment and the offer to work together. I'm not really sure how much else I'm going to add, but I did take a nod from your tool and add the option to choose between optipng and pngcrush. Mostly I added that just because optipng hasn't been updated in forever, and pngcrush just had an update last month.

So I compiled both 32-bit and 64-bit specific binaries of the newest pngcrush (v1.7.17) and included them with v1.1 of APK Manager.

Anyway, your tool is pretty amazing, I'm rather intimidated by how many features you have, lol.

Thanks again, cheers

Back at you man. Yeah last week I went crazy. I went from version 1.0.2 to version 1.0.7 in three days. There's always something new that can be added.

Don't be intimidated! AU and apkmanager each have their places. I aimed to create a tool that encompasses everything to do with Android while apk manager focuses on modifying apks. Surprisingly however while I wrote the tool for mac users, I've had mote Linux users for au. But the mac community needed some love and attention, and now it has two tools to choose from :)

tapatalk signature here. lovely.
11th October 2011, 03:40 AM   |  #7  
s0niqu3's Avatar
OP Senior Member
Thanks Meter: 389
 
716 posts
Join Date:Joined: Feb 2005
Donate to Me
More
version 1.2 released, this might be the last release, I can't think of anything else to add really, and well, nobody really cares either, lol.
11th October 2011, 01:45 PM   |  #8  
Junior Member
Thanks Meter: 0
 
16 posts
Join Date:Joined: Oct 2011
great work
19th October 2011, 04:10 AM   |  #9  
s0niqu3's Avatar
OP Senior Member
Thanks Meter: 389
 
716 posts
Join Date:Joined: Feb 2005
Donate to Me
More
1.2.1 uploaded with a few bugfixes, please re-download, and I'm really sorry I didn't catch them sooner until someone messaged me today.
29th November 2011, 04:16 PM   |  #10  
stone_ship's Avatar
Senior Member
Binghamton, NY
Thanks Meter: 180
 
507 posts
Join Date:Joined: Jul 2010
More
Wow, this is amazing! So glad I don't need to boot into WinXP just to use apkmanager. I just downloaded the newest version, followed all instructions, and everything is working perfectly. Thanks for including all the extras such as terminal settings. Great for semi-noobs like myself.

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes