Decompiling a ROM app - Android Software/Hacking General [Developers Only]

Hi there. I've just migrated to Android from WinMo and have a few questions. Firstly, where can I find the ROM apks? In which folder are they stored? I'm particularly interested in the HTC Desire's FM Radio app. Is there anyway I can track what commands does it send to the FM Radio device so I can make a custom Radio app? And as far as those apps run on the Dalvik VM, can the code be partially decompiled? I know it's a long shot for a newbie, but at least it would be an interesting thing to attempt. I got used to dlls in Windows and have almost no experience with Linux, so I know it would be hard. Anyway, any help or suggestions will be much appreciated
Edit:
----------------------------------------
So here are the files I succeeded in decompiling: HTCRadio.rar (18.7 MB)
In case anybody needs them
The archive contains HtcFMRadio.apk, HtcFMRadio.odex, their decompiled resources and classes in smali format and the com.htc.resources framework
I will try to make sense of them, but I'm almost certain I'll fail

martintzvetomirov said:
Firstly, where can I find the ROM apks? In which folder are they stored?
Click to expand...
Click to collapse
/system/app for system apps, and /system/framework for frameworks: Java runtime, Android libraries, etc.
martintzvetomirov said:
And as far as those apps run on the Dalvik VM, can the code be partially decompiled?
Click to expand...
Click to collapse
http://code.google.com/p/smali/ - Dalvik bytecode (dis)assembler
http://code.google.com/p/android-apktool/ - decodes app resources (they are compiled/optimized to binary form), simplifies working with decoded files, uses smali

Thanks, mate! That's a really good start point for me
EDIT: I successfully decompiled the resources and the classes. I've added a link in my fist post in case someone searching in Google for that comes accross this topic

Ok, from what I've seen HTCRadio.apk has registered a service called FMRadioService and luckily its android:exported is set to true. Does it mean that I can call this service from my app and get something useful from it? And if yes, how can I call a service for which the only thing I know about is its name? Cheers
EDIT: I successfully invoked the Remote Service and I think implemented the aidl correctly. Now it's time to figure out how to make it work

Related

Where are the Java class files?

I've got signed-kila-ota-126986.f6469a1e.zip and after looking through it, I can't seem to find the Java class files. I did find what look like stubs in signed-kila-ota-126986.f6469a1e.zip/system/framework/ . I also found the correct source in the Android source repository. Am I just looking for the wrong thing? In the wrong place?
I want to make changes to the class that handles gps and in a style similar to JF's hacks. I.e., take the ota, adjust it, and install that.
Ouroborus said:
I've got signed-kila-ota-126986.f6469a1e.zip and after looking through it, I can't seem to find the Java class files. I did find what look like stubs in signed-kila-ota-126986.f6469a1e.zip/system/framework/ . I also found the correct source in the Android source repository. Am I just looking for the wrong thing? In the wrong place?
I want to make changes to the class that handles gps and in a style similar to JF's hacks. I.e., take the ota, adjust it, and install that.
Click to expand...
Click to collapse
To edit a class file, you surely have to rebuild it from source? :/
The short version is that you will not find any .class files in an android apk. Android compiles files into .dex files and there is not necessarily a one to one correlation between classes and dex files. Dalvik will combine multiple classes for purposes of memory optimization.
http://en.wikipedia.org/wiki/Dalvik_virtual_machine should get you started in understanding.
JanetPanic said:
The short version is that you will not find any .class files in an android apk. Android compiles files into .dex files and there is not necessarily a one to one correlation between classes and dex files. Dalvik will combine multiple classes for purposes of memory optimization.
http://en.wikipedia.org/wiki/Dalvik_virtual_machine should get you started in understanding.
Click to expand...
Click to collapse
Ah, I see. Looks like it's going to be more difficult than I'd hoped.

[How To] Install AmazonMP3 on Haykuro, Dude's, and JF's Firmware

Hi everyone, as many of you guys have noticed, the newer firmwares do not come with the Amazon MP3 application. For those of you who want this, here is a tutorial on installing.
First, download the com.amazon.mp3.zip file uploaded, and place it on your desktop. DO NOT OPEN IT OR EXTRACT IT. Change .zip extension to .apk. For those of you who do not know how to do that, hit Start> My Computer> Organization> Folder and Search Options> and Uncheck "Hide Extentions for Known File Types". Then, delete the .zip extension and type in .apk. Have your G1 ready and plugged in, as you will be using ADB to install this program.
Open up command prompt and type:
cd desktop
adb install com.amazon.mp3.apk
exit
It should now be installed!
For those of you who do not have ADB installed for whatever reason, place the com.amazon.mp3.apk onto your SDcard. Then, using a file manager on your G1 (I use OIfilemanager) navigate to the location where the file is placed and install.
Also, the com.amazon.mp3.apk can also be extracted directly from RC and JF 1.4x builds.
NOTE TO MODS: I understand that Amazon MP3 is not an open source application. Therefore, if for any reason if you guys do not feel that uploading this apk is allowed, feel free to remove this post.
Paying $1 per mp3 can add up over time
With RC 33 i wanted to removed this program, now that JF 1.50 removed automatically, do you believe that i will tried this? But thanks anyway...
PS- People DL music MP3's on theirs PC' for free, Amazon Sucks!
Sometimes I find Amazon MP3 useful for previewing a CD while I am at the library.
By the way, there is no need to distribute the apk here when anyone can just extract it themselves legally from an official update.zip
jashsu said:
Sometimes I find Amazon MP3 useful for previewing a CD while I am at the library.
By the way, there is no need to distribute the apk here when anyone can just extract it themselves legally from an official update.zip
Click to expand...
Click to collapse
Yeah I understand that, I'm just saving them the trouble of having to do it themselves. However, when you say "legally" do you mean distributing this apk is illegal? If so I will remove it.
SolemnWishing said:
However, when you say "legally" do you mean distributing this apk is illegal? If so I will remove it.
Click to expand...
Click to collapse
It's not expressly forbidden. The general stance on xda is as long as the software in question isn't payware, then it is okay (of course a mod is free to make a judgement otherwise). However, everyone should have a RC33 or somesuch build lying around that they can extract the file from themselves anyway.
Seems that most folks don't appreciate the usefulness of Amazon MP3 as a source of track preview. I just wish that it still integrated into ShopSaavy and CompareEverywhere. Used to be you could scan a barcode of a CD and it would pull up the CD on Amazon MP3. If anyone knows how to make this work with current software versions, let me know.
Thank you for the explicit directions. This worked great on my G1 and my friend's using a mac.
Well, I guess that means we will wait for a mod to say something... next in line.. PDFviewer.
Okay, PDFviewer will not work on my JF1.50 build. Just for fun I also tried to push the H build camera and the H build dialer. The pushed camera resulted in the camera app disappearing all together along with the camcorder, gallery and picture frame widget. The H build dialer caused the phone to be completely unresponsive.
Remember, always use a Nandroid backup when attempting risky procedures
SolemnWishing said:
Well, I guess that means we will wait for a mod to say something... next in line.. PDFviewer.
Okay, PDFviewer will not work on my JF1.50 build. Just for fun I also tried to push the H build camera and the H build dialer. The pushed camera resulted in the camera app disappearing all together along with the camcorder, gallery and picture frame widget. The H build dialer caused the phone to be completely unresponsive.
Remember, always use a Nandroid backup when attempting risky procedures
Click to expand...
Click to collapse
If you want to extract features from Haykuro's H build for 1.50 installation, I suggest you hook up ddms so you can get realtime debugging and see what libraries/functions are being called that are causing problems. It should work in the emulator too.
By the way PDFViewer's dependencies have been well established, but the program checks some unknown properties of the build and will refuse to run for non-HTC builds. Decompiling the dex might lead to clues as to what it is and how to workaround it or patch the apk. I'm actually hoping it will just run unmodified on the official T-Mo 1.5 rom expected any day now.
jashsu said:
If you want to extract features from Haykuro's H build for 1.50 installation, I suggest you hook up ddms so you can get realtime debugging and see what libraries/functions are being called that are causing problems. It should work in the emulator too.
By the way PDFViewer's dependencies have been well established, but the program checks some unknown properties of the build and will refuse to run for non-HTC builds. Decompiling the dex might lead to clues as to what it is and how to workaround it or patch the apk. I'm actually hoping it will just run unmodified on the official T-Mo 1.5 rom expected any day now.
Click to expand...
Click to collapse
hehehhe! We can always dream can't we...
lol HTC dream.. well, I do not know how to work apps, or port them or anything, so that is pretty much out of the question. Ill just stick with the obvious ones.
Much thanks!! I wanted Amazon back.
thanks
works on JF flawless. no issue yet. Thanks.
I installed the Amazon MP3 apk night before last and found that the search function wouldn't open its search box. I uninstalled and then pushed it to /system/app via adb and now it works just fine. FWIW, I have apps on SD (the symlink version).
That is good, and does anyone know if the Teeter game from the original Haykuro H build requires some sort of special resource or something? As the game installs, but force closes on startup.
thank you very much for this... anybody got a fix for myfaves???
jashsu said:
If you want to extract features from Haykuro's H build for 1.50 installation, I suggest you hook up ddms so you can get realtime debugging and see what libraries/functions are being called that are causing problems. It should work in the emulator too.
By the way PDFViewer's dependencies have been well established, but the program checks some unknown properties of the build and will refuse to run for non-HTC builds. Decompiling the dex might lead to clues as to what it is and how to workaround it or patch the apk. I'm actually hoping it will just run unmodified on the official T-Mo 1.5 rom expected any day now.
Click to expand...
Click to collapse
hehehe. the properties aren't unknown. It's a library, and 2 framework files.
TheDudeOfLife said:
hehehe. the properties aren't unknown. It's a library, and 2 framework files.
Click to expand...
Click to collapse
So you have PDFViewer working without the "Only for HTC devices" nag screen?
Haha mind enlightening us??
someone run some diffs on thedudes libs and framework files =P!

help modifying framework.odex

I have been looking for the way to decompile /system/framework/framework.odex, modify something, compile it back (with smali), and integrate it into the phone... The first time (what an innocent ) though it may work, but of course it didn't.... Finding why not, i came up with the fact that all the dependencies in the bootclasspath needs to be reverified and reoptimized when any of them is changed, now the question is: how to do that?
and a second question, if I mess something up with any of those files, Will i still having access to the adb console to fix it back?
Thanks,
P.D: any bibliografy or something to keep an eye on will be welcome...
come on

[Q] Creating A Custom ROM?

I heard its fairly easy to customize a stock ROM with little to no coding (I don't know anything but visual basic). Even though i have heard this i have no idea on how to do it. Could someone point me to instructions or explain to me how its done? Youtube has not helped be either. The ROM would be based off of the Infuse 4G Stock (at least for my first one).
noahk11 said:
I heard its fairly easy to customize a stock ROM with little to no coding (I don't know anything but visual basic). Even though i have heard this i have no idea on how to do it. Could someone point me to instructions or explain to me how its done? Youtube has not helped be either. The ROM would be based off of the Infuse 4G Stock (at least for my first one).
Click to expand...
Click to collapse
depends on what you need to do, porting from device to device may need some coding (unless it is from a galaxy s to an infuse or other similar devices where you can swap samsung libs) app editing is java and can sometimes be done with smali/baksmali or apk tool but you can still theme with nothing but an archive type program (7zip or similar) also you can move apps around or delete bloat. there are different ways to go about it certain things.
the best way i think is to setup adb with the phone functional. then you can root and adb into the phone and pull apps, theme/edit and then push the apps back to the phone. this makes it much easier to find problems and debug since ther eis no flashing and you do changes one at a time. you could also ssh into the phone over wifi.
do you just want to do this for personal use or share what you have done? cwm packages will need some scripting skills and you will possibly have to make new simlinks and fix permissions.
basically the perminant apps are all in /system/app. the framework apps are in /system/framework
/system/app/systemUI.apk is the app responsible for the notification bar and most of the other themeing is in /system/framework/framework-res.apk and /system/framework/twframework-res.apk all i can say is google around and if you see something you want to do look for a tutorial on the subject.
Dani897 said:
depends on what you need to do, porting from device to device may need some coding (unless it is from a galaxy s to an infuse or other similar devices where you can swap samsung libs) app editing is java and can sometimes be done with smali/baksmali or apk tool but you can still theme with nothing but an archive type program (7zip or similar) also you can move apps around or delete bloat. there are different ways to go about it certain things.
the best way i think is to setup adb with the phone functional. then you can root and adb into the phone and pull apps, theme/edit and then push the apps back to the phone. this makes it much easier to find problems and debug since ther eis no flashing and you do changes one at a time. you could also ssh into the phone over wifi.
do you just want to do this for personal use or share what you have done? cwm packages will need some scripting skills and you will possibly have to make new simlinks and fix permissions.
basically the perminant apps are all in /system/app. the framework apps are in /system/framework
/system/app/systemUI.apk is the app responsible for the notification bar and most of the other themeing is in /system/framework/framework-res.apk and /system/framework/twframework-res.apk all i can say is google around and if you see something you want to do look for a tutorial on the subject.
Click to expand...
Click to collapse
Id prefer to share what i've done. Id like to go into simple rom development.

[TOOL] ApkSpy v1.8 - Resurrected (APK: view manifest on PC and/or Install APK via PC)

APKSPY - RESURRECTED​
First:
I want to thank @ido for the original application -- It was his idea (and his code I've hacked :cyclops and modified.
Second:
Since Ido seems not to be active anymore I'll re-publish the application here.
Unless for some reason Ido will specifically ask me to remove it.
The original post
ido said:
ApkSpy is a simple tool I hacked up tonight which allows you to easily view the manifest of an APK (screenshots attached - not up to date though) just by double clicking it. (It can even associate with the .apk filetype, yay!)
ApkSpy relies on the aapt.exe tool from the android SDK, so you must have that installed (or just copy aapt.exe from somewhere, that's the only file needed to run ApkSpy).
Click to expand...
Click to collapse
Third:
Requires Microsoft©® .Net Framework v4
(Kind of since I've done it some time ago and waited for Ido [the orignal developer] to respond and allow or disallow me to re-publish... So, I don't remember all the changes I've already done...)
v1.8.19 CHANGELOG:
Fixed some Date parsing function (zipped file with no time stamp) in ZipStorer (by @Jaime Olivares) maybe causing some of the error reported here...
v1.8 CHANGELOG:
Changed Icon - CONTRIBUTED BY @Jarmezrocks
Removed unneeded tabs (System, Batch Rename, Log)
Minimize / Maximized restored back
v1.7 CHANGELOG:
(Actually 4.1.7.870, but the first and the last parts are internally used :fingers-crossed:)
Try to automatically find adb.exe and aapt.exe in ApkSPY directory or in PATH variable: If failed finding any of the executables, the user is asked to manually locate them
(★ Currently the location is not saved... ★).
Check if the ADB server is running and Start or ask if to Restart ADB server
Tidy up the code
Refining the original libraries written by Ido related to ADB and AAPT
Some more minor code updates
Revised most of the "General" tab (other tabs ware not touched) of the UI:
Grouped and ordered controls on form
Added DropDown of devices attached (★ Not automatically updating upon plugging... ★)
Added some control over ADB actions
Added status bar that some other details are shown, e.g. device type (Nexus, I9100...), OS version (4.1.2, 4.4.2...) and OS build (KOT49H, KVT49L...)
Added (nice looking) information panel with clickable links (for actions on the form) and coloring
Other changes (I can't recall right now, since I've done it some time ago and waited for a response from Ido for permission to republish)
(★ Maybe I'll add an option for this later, depending on my -- not to much -- free time and requested by users .... ★)
Known bugs:
Sometimes ADB fails to return build.prop property for the status bar (however it has not caused any critical problem, so (I think) it can be safely ignored) -- haven't been able (yet) to find the exact state it is happening
Please take the time to look at the application ABOUT tab
Any Other ideas are welcome!
If you like it, Don't forget to Thank me
If you enjoy using this application as much as I have enjoyed re-writing it
please donate to show your appreciation​
RESERVED
Nice
Sent from my SM-N900T using Tapatalk
Good news
Bug report, every time I open this program, this dialog pops up, after click OK, this program works well.
PS, aapt.exe is in the same dir with ApkSpy
I got this errors:
1:
2:
Error in property: [email protected]@usrdata
cmlx said:
Good news
Bug report, every time I open this program, this dialog pops up, after click OK, this program works well.
PS, aapt.exe is in the same dir with ApkSpy
Click to expand...
Click to collapse
Hey dude,
I am not sure what you are doing wrong on your PC but it's certainly not the app as it works perfectly fine on my computer? Out of interest and for the sake or helping the new dev I thought I would raise a few points just to eliminate any finger pointing. There's a wishy-washy area when it comes to building/hacking things that were originally someone elses work...so yeah one can easily make great improvements yet open the door to bugs at the same time too. Anyway...thought I'd ask this:
Does aapt sit on your path? I know you said it is in the same directory, however just like a batch script in Windows it needs to "CD" or change directories to the %~dp0 if it is to understand what an executable is that happens to be sitting in the same directory as it's self. So this is is kinda directed at the new dev now. What I think is happening is that aapt is assumed to be in the system path when quite often it is not (i.e. those on XDA who have not yet played with the Android SDK properly). Put simply unless the application knows it is in the same directory as your executable it won't at all understand what aapt is. Does that make sense?
@dmagician , I would make sure that the apkspy app can do a check (even if it is a string search for the first few lines returned from aapt.exe), a simple if statement before throwing that error ....actually it would likely be an 'if not' statement. I don't have any of the code in front of me atm but I can help you out if you like? I was hacking this app myself sometime ago when ido first released it just using reshacker.
Note: If you are stuck and don't have source code you technically could write a full AutoIT wrapper for this app that could do all the checks and more and then bundle everything up into the one exe still. Check out the newer WinAPI stuff for AutoIT and in particular "Run binary" (yes that's correct you can just about run anything repackaged now and not need to deploy the original exe's or even libraries....they can all be stream fed to AutoIT @Compile time and need not be typically "installed" like you used to have to do. Anyway...I am waffling on shoot me a PM man.
@cmlx, to overcome your ApkSpy woes, and until dmagician can put his finger on what the cause is or what ido did when building it ages ago.....then you will firstly need to be patient (props to dmagician to figuring sh!t out so far) but till then where ever you have dumped the ApkSpy and aapt.exe on your system; just copy the address and put it on your system path. To do this 1) right click on My Computer or Computer if you are on Win 7 or 8. 2) Choose properties. 3) Advanced System settings and then at the bottom of tab you will see 'Environment Variables', click it and you will see some "User" and "System" options. Depending on your User access rights on the system you are running on (hopefully you are running as Admin surely?) then you can choose to edit your main system path or create a new variable in your user settings called 'path' Note User variables are always postfix to system variables but should always work anyhow.
Disclaimer: cmlx, if however you have already got an aapt.exe already existing on your system path but it is dodgy then you have to ensure that the good aapt.exe in your app directory is placed on path BEFORE the dodgy one....just sayin. Cause your system searches till it finds what it wants and then doesn't search anymore. Simple but can stuff people up quite often....and likely your case. Nowdays we tend to work from the known application location and not from a "Global environment path" when we know that there are going to be conflicts...and I can assure you that aapt is possibly the worst and most modified binary out there LOL. Hence this is also a note to the dev to ensure that ApkSpy reads from the current directory.....or like I am suggesting, wrap aapt up in the main application as well and that way there is no confusion EVER.
And I am done.....
Oh wait no I am not....sorry bug reports LOL :good: you thought I was all praise eh? Got another thing coming man
OK....so um the red boxes should explain everything. A picture says a thousand words (and yeah I needed at least 1 picture for this god damned long arsed post - sry). Um why in gods name would you remove the minimise and expand buttons? WTF? Anyway...it works but errrm yeah it doesn't wrap the text anymore? and it cuts the words off lol.
Other than that....I only really have one suggestion and it isn't even really a suggestion as I have kind of already made it so I can just give it to you if you want it? And that is that most people (well I can't say most as I am not speaking for everyone) tend not to like how apps take over their system. This isn't your fault at all in anyway as the first dev thought it was a good idea back then.....and back then hardly anything in Windows knew what a freakin apk was so it was a GOOD thing.....However now, every man and his dog wants to steel .apk extension for himself. I myself tend to be all over the shop with apks so I tend not to want to have any particular Windows app take it away from my control. I use WinZip as the main app for simple double click open as I want to see the contents of apks without needing to decompile them (great for theming) however I have apk shell extensions displaying the apks main icon to explorer, so if I set WinZip as default I get a nice lumping hunk of gold turd/box running rampet all over my Windoze bro ......so if you like I can show you my code that allows me to have default apps for specific tasks without interfering with anyones existing sh!t It looks neat too as you can right click any apk and just choose from a dropdown list what particular app you want at the time. If one has the need to use more apps then they need only put those apps in a list. There is nothing worse than double clicking an apk to find that Bluestacks or some other rubbish Windoze crApp has taken offf with your apk.
Lastly I thought I'd ask, Why no config file? Why store everything in memory? I know it's only small....but seeking for things everytime it is executed is a pain in the arse and not good practice. At the very least if you have no idea how to make an exe totally portable then you could reference a config file in the same directory....Or do as most do and write entries to the registry all neat and tucked away. If we get paranoid about "portable-ness" then we write to temporary space in the registry and make sure we clean up upon closing and/or inspect at runtime. simple!
I have plenty of AutoIT scripts that do exactly that too, so if you are stuck for ideas let me know. Anyway I have rambled enough, good luck and I will keep reporting bugs haha
Edit: That's waaaay too many emoticons. Oooops someone is a little high aren't they?
PS: I have attached my PNG of the icon I used for this bugger waaaaaay back....it's less generic and feel free to take it and abuse it and do as you please.
cmlx said:
Good news
Bug report, every time I open this program, this dialog pops up, after click OK, this program works well.
PS, aapt.exe is in the same dir with ApkSpy
Click to expand...
Click to collapse
Yes, I know of this one (and I've specifically wrote about it in the OP), it is NOT related to AAPT executable but to the way ADB is acting (sorry, out of my hands... :angel:
Explanation
The error comes from the application when trying to query the "ro.build.id" property via adb ('ADB shell getprop "ro.build.id" ') command.
I've came across this one but cannot determine the exact situation it is happening (as it can occur when first launching of the app, but after the app is loaded, clicking on refresh does not show this error)...
[ I've tried it on with the (only) two devices I own (1st dev. is stock (only the kernel is changed) 4.4.2 Nexus 4, 2nd dev. is S2-i9100 with customized RR ROM)and it seems to happen ONLY on the S2...]
It looks that in times, the getprop is being executed before the whole "build.prop" is being processed by ADB (This one I cannot control since it is happening on the ADB shell side [running on the device] -- unless MAYBE doing some [UGLY] delay after first initialization of ADB, which is, by far NOT best practice of process handling according to the literature)...
CyberianIce said:
I got this errors:
1:
2:
Error in property: [email protected]@usrdata
Click to expand...
Click to collapse
Which came first, the "SpkSpy spy stopped working" or the "Error in property" (if anyways related)?
Was it on the same run or two different runs?
As of the 1st one:
I do not have enough information from your post to check it up...
I'll post a new version which shows the exception details
As of the 2nd one:
Can you send me a copy of your /system/build.prop (so i'll be able to dig trough it and check it)?
It looks like my name-value splitter character exist as part of a given value in your build.prop .
Wooow, Long one! But it is nice to know people are using (trying) it!
Jarmezrocks said:
Hey dude,
I am not sure what you are doing wrong on your PC but it's certainly not the app as it works perfectly fine on my computer? Out of interest and for the sake or helping the new dev I thought I would raise a few points just to eliminate any finger pointing. There's a wishy-washy area when it comes to building/hacking things that were originally someone elses work...so yeah one can easily make great improvements yet open the door to bugs at the same time too. Anyway...thought I'd ask this:
Does aapt sit on your path? I know you said it is in the same directory, however just like a batch script in Windows it needs to "CD" or change directories to the %~dp0 if it is to understand what an executable is that happens to be sitting in the same directory as it's self. So this is is kinda directed at the new dev now. What I think is happening is that aapt is assumed to be in the system path when quite often it is not (i.e. those on XDA who have not yet played with the Android SDK properly). Put simply unless the application knows it is in the same directory as your executable it won't at all understand what aapt is. Does that make sense?
Click to expand...
Click to collapse
Hi
As I've replied to @clmx, This error is not related to AAPT (either executable [location or whatever] or results), but to the ADB command being used...
Jarmezrocks said:
@dmagician , I would make sure that the apkspy app can do a check (even if it is a string search for the first few lines returned from aapt.exe), a simple if statement before throwing that error ....actually it would likely be an 'if not' statement. I don't have any of the code in front of me atm but I can help you out if you like? I was hacking this app myself sometime ago when ido first released it just using reshacker.
Click to expand...
Click to collapse
Sorry I did not understand... Check for what?
Jarmezrocks said:
Note: If you are stuck and don't have source code you technically could write a full AutoIT wrapper for this app that could do all the checks and more and then bundle everything up into the one exe still. Check out the newer WinAPI stuff for AutoIT and in particular "Run binary" (yes that's correct you can just about run anything repackaged now and not need to deploy the original exe's or even libraries....they can all be stream fed to AutoIT @Compile time and need not be typically "installed" like you used to have to do. Anyway...I am waffling on shoot me a PM man.
Click to expand...
Click to collapse
I do not need the Auto-IT to wrap these files (although I am using it for other automation in windows), as I can do it right in the C# code (on one of my early versions these files was embedded...)
BTW, I know there are some antiviruses out in the wild that do not like the embedded executables -- but it can be done -- and probably will save some time to anyone using this app...
If it will be required / asked, I'll embed the 4 binaries (AAPT.EXE, ADB.EXE, and two DLL's AdbWinApi.dll and AdbWinUsbApi.dll [I'm not sure both are required]) needed by the application.
Jarmezrocks said:
@cmlx, to overcome your ApkSpy woes, and until dmagician can put his finger on what the cause is or what ido did when building it ages ago.....then you will firstly need to be patient (props to dmagician to figuring sh!t out so far) but till then where ever you have dumped the ApkSpy and aapt.exe on your system; just copy the address and put it on your system path. To do this 1) right click on My Computer or Computer if you are on Win 7 or 8. 2) Choose properties. 3) Advanced System settings and then at the bottom of tab you will see 'Environment Variables', click it and you will see some "User" and "System" options. Depending on your User access rights on the system you are running on (hopefully you are running as Admin surely?) then you can choose to edit your main system path or create a new variable in your user settings called 'path' Note User variables are always postfix to system variables but should always work anyhow.
Disclaimer: cmlx, if however you have already got an aapt.exe already existing on your system path but it is dodgy then you have to ensure that the good aapt.exe in your app directory is placed on path BEFORE the dodgy one....just sayin. Cause your system searches till it finds what it wants and then doesn't search anymore. Simple but can stuff people up quite often....and likely your case. Nowdays we tend to work from the known application location and not from a "Global environment path" when we know that there are going to be conflicts...and I can assure you that aapt is possibly the worst and most modified binary out there LOL. Hence this is also a note to the dev to ensure that ApkSpy reads from the current directory.....or like I am suggesting, wrap aapt up in the main application as well and that way there is no confusion EVER.
Click to expand...
Click to collapse
The application IS searching for AAPT and ADB executables; The order is
Application directory (where ApkSpy.exe resides)
PATH environment variable
Jarmezrocks said:
OK....so um the red boxes should explain everything. A picture says a thousand words (and yeah I needed at least 1 picture for this god damned long arsed post - sry). Um why in gods name would you remove the minimise and expand buttons? WTF?
Click to expand...
Click to collapse
Mostly I like it this way, otherwise - No specific reason...
It will be back in the next version...
Jarmezrocks said:
Anyway... it works but errrm yeah it doesn't wrap the text anymore? and it cuts the words off lol.
Click to expand...
Click to collapse
This Tab was NOT changed by me in any way... To be honest, I've thought of removing it completely -- But -- out of respect to Ido's work -- I've left it in.
I assume it is not wrapping due to Font size changed by me globally...
I'm seriously giving it second thoughts -- if it should stay at all (It was originally meant for batch rename of multiple APK's... I haven't used it even once...)...
I'm Really, REALLY, think of removing it completely (unless someone is / will be using it -- then I'll fix it all)...
Jarmezrocks said:
Other than that....I only really have one suggestion and it isn't even really a suggestion as I have kind of already made it so I can just give it to you if you want it? And that is that most people (well I can't say most as I am not speaking for everyone) tend not to like how apps take over their system. This isn't your fault at all in anyway as the first dev thought it was a good idea back then.....and back then hardly anything in Windows knew what a freakin apk was so it was a GOOD thing.....However now, every man and his dog wants to steel .apk extension for himself. I myself tend to be all over the shop with apks so I tend not to want to have any particular Windows app take it away from my control. I use WinZip as the main app for simple double click open as I want to see the contents of apks without needing to decompile them (great for theming) however I have apk shell extensions displaying the apks main icon to explorer, so if I set WinZip as default I get a nice lumping hunk of gold turd/box running rampet all over my Windoze bro ......so if you like I can show you my code that allows me to have default apps for specific tasks without interfering with anyones existing sh!t It looks neat too as you can right click any apk and just choose from a dropdown list what particular app you want at the time. If one has the need to use more apps then they need only put those apps in a list. There is nothing worse than double clicking an apk to find that Bluestacks or some other rubbish Windoze crApp has taken offf with your apk.
Click to expand...
Click to collapse
The application is NOT taking over anything, Unless you've clicked the asterisk ("*") button on the System Tab...
Was it registered for you without clicking this button?
If so, I'll recheck the code (may be it's some residue from the original code).
BTW
As the previous part of the answer I've wrote -- this one was left in as of respect to @ido's work...
2nd BTW
I'd like to see that explorer extension (and [preferable] the code of it - if you are willing to share it) you ware writing about...
Jarmezrocks said:
Lastly I thought I'd ask, Why no config file? Why store everything in memory? I know it's only small....but seeking for things everytime it is executed is a pain in the arse and not good practice. At the very least if you have no idea how to make an exe totally portable then you could reference a config file in the same directory....Or do as most do and write entries to the registry all neat and tucked away. If we get paranoid about "portable-ness" then we write to temporary space in the registry and make sure we clean up upon closing and/or inspect at runtime. simple!
Click to expand...
Click to collapse
Yep, I've thought of it... But... I was thinking, that (at least) everyone is as geeky as me dauuh , and the most are setting the path correctly...
It'll be added in next version (I hope... TIME, TIME!!!! :cyclops...
Jarmezrocks said:
I have plenty of AutoIT scripts that do exactly that too, so if you are stuck for ideas let me know. Anyway I have rambled enough, good luck and I will keep reporting bugs haha
Click to expand...
Click to collapse
I prefer writing my own code (sorry, I'm a developer in heart and soul...) then using automation like Auto-IT...
Jarmezrocks said:
Edit: That's waaaay too many emoticons. Oooops someone is a little high aren't they?
Click to expand...
Click to collapse
Jarmezrocks said:
PS: I have attached my PNG of the icon I used for this bugger waaaaaay back....it's less generic and feel free to take it and abuse it and do as you please.
Click to expand...
Click to collapse
(@Jarmezrocks please see my PM to you.)
PHEW...
Long Answer, BUT HEY, I'm not the only one writing longies... :angel: (and i like referencing each and every part separately)...
dmagician said:
PHEW...
Long Answer, BUT HEY, I'm not the only one writing longies... :angel: (and i like referencing each and every part separately)...
Click to expand...
Click to collapse
Ahh yes. I write long messages sometimes when my medication has kicked in and I am high....not my fault I kinda need to get all the info out of my head in one go while I am awake.....or else there would just be zeds on the response zzzzzzzzzzzzzzzzzzzzzz lol :laugh: (ref narcolepsy).
I commend you on your efforts at responding to such gibberish and making good sense of it! :highfive:
I have responded to your PM accordingly, and hopefully covered all you need? I have attached all info and sources etc.....well most of it...actually a fair bit of it you will have to workout your self but that is part the fun. Shoot me any questions if you need to...although I have a feeling that you will have mostly all of it covered as you are streets ahead of my knowledge already. I may have misjudged a little in my previous post (although hopefully not to make you feel any less than you actually are? please excuse me if I had said anything that may offended - being naive or what ever....you ARE definitely on the right track). As for the middle menu....I think you could easily remove it and not offend the original dev. It wasn't being used as you mention...and I think it could make way for more/better functionality don't you think? (discuss). However I would ensure all the things I mentioned in my PM first before going too deep and releasing on here.
Good move on bringing the buttons back. They were functional. But I DO like the single button close GUI myself on just about everything else....It looks clean. We have similar taste in that regard. It just isn't functional for me to pressing the task notification desktop link everytime I want to minimise the app LOL.
The rest I we can discuss via PM, this is pretty much only posted here as an open area for other forum members to provide input and opinion (or complaint....like how often it usually is, eh?).
CyberianIce said:
I got this errors:
1:
2:
Error in property: [email protected]@usrdata
Click to expand...
Click to collapse
I'd got the same error!
For me it helped to copy two files to the install dir
"adb.exe" and "AdbWinApi.dll"
Both are installed with the well known MyPhoneExplorer into "Program Files\MyPhoneExplorer\DLL"
Hope it helps!
Feature Request
I use this tool for testing new APK builds on a project I am working on it. It allows me to quickly verify the version number and push to the device. However, since I am usually installing another version of an existing installed APK, I must manually uninstall before using APKSPY. Would it be possible to add a check box that would uninstall any previous versions? It would be really helpful.
Nevermind - I didn't fully read the message presented when it fail. It say uninstall/update and it allows the installation. HOWEVER, that brings up a question... Does it uninstall or does it update? There is a difference as you know.
Thanks,
Jonathan
Hi, I try to run this on Mac via Wineskin Winery, but no luck. Do I need something like .Net, or something else to run ApkSpy?
Thank you.
Ja_som said:
Hi, I try to run this on Mac via Wineskin Winery, but no luck. Do I need something like .Net, or something else to run ApkSpy?
Thank you.
Click to expand...
Click to collapse
The only requirement is the Microsoft .Net 4.
(I'll add this to OP)
jmo said:
I use this tool for testing new APK builds on a project I am working on it. It allows me to quickly verify the version number and push to the device. However, since I am usually installing another version of an existing installed APK, I must manually uninstall before using APKSPY. Would it be possible to add a check box that would uninstall any previous versions? It would be really helpful.
Nevermind - I didn't fully read the message presented when it fail. It say uninstall/update and it allows the installation. HOWEVER, that brings up a question... Does it uninstall or does it update? There is a difference as you know.
Thanks,
Jonathan
Click to expand...
Click to collapse
Yes I know there is difference between the two (update vs uninstall and install again).
It is updating the application (like using "adb install -r apk_file_name.apk"), not doing remove and install
Removed unneeded tabs (System, Batch Rename, Log)
Click to expand...
Click to collapse
The unneeded Batch Rename tab was the only tab I needed really. :laugh: Luckily I found Ido's original version. It's ideal for renaming all those apk's I downloaded and still have the package name when I back them up to my PC.
I have an Asus Memo Pad 10 and an Asus Memo Pad 7 and neither are recognised by APKSpy. Not that it's a problem as I have no problem copying to and from them with Windows Exploder or Total Commander.
Other than that, it's been a handy little app for this tablet/smartphone virgin newbie.
Martin.
wolrik said:
The unneeded Batch Rename tab was the only tab I needed really. :laugh: Luckily I found Ido's original version. It's ideal for renaming all those apk's I downloaded and still have the package name when I back them up to my PC.
I have an Asus Memo Pad 10 and an Asus Memo Pad 7 and neither are recognised by APKSpy. Not that it's a problem as I have no problem copying to and from them with Windows Exploder or Total Commander.
Other than that, it's been a handy little app for this tablet/smartphone virgin newbie.
Martin.
Click to expand...
Click to collapse
Hello.
1st:
I can -- if requested - re-add the Batch rename.
2nd:
I don't know why these two devices are not being recognized -- unless not being recognized by ADB itself -- since I'm spawning devices by parsing the resulting text of "ADB devices" command, So unless being unrecognized by ADB, there should be NO PROBLEM detecting ANY android device with ADB on...
if you have any exception messages thrown by the application, please post them here.
dmagician said:
Hello.
1st:
I can -- if requested - re-add the Batch rename.
2nd:
I don't know why these two devices are not being recognized -- unless not being recognized by ADB itself -- since I'm spawning devices by parsing the resulting text of "ADB devices" command, So unless being unrecognized by ADB, there should be NO PROBLEM detecting ANY android device with ADB on...
if you have any exception messages thrown by the application, please post them here.
Click to expand...
Click to collapse
No need to re-add the tab just for me, but thanks for the offer. As I get to know my way around Android I'll probably need such things less and less.
Sorry, but I know nothing about ADB other than APKSpy needing it. As you can see from the attached pic, the Asus is recognised by Total Commander
Martin.
Hi dmagician,
Nice work, and a shout-out to Ido who originally created it.
I have a feature request:
Could you add the option to remove certain permission(s) and save the modified APK file?
There are many apps which I feel allow themselves way too much permissions, and this option could be very useful to tame them apps.
One more thing:
I noticed that APKSpy v1.8.2 doesn't work with the latest version of AAPT.exe (1432KB), from the Android SDK r24.
So I had to use a previous version of AAPT.exe (833KB), which worked.
Thanks,
Eric
Hey does anybody know where the name of the apk is in the XML files inside the apk?

Categories

Resources