[Q] Extracting source from APK - General Questions and Answers

Hi, I am trying to get the source code of the ToggleWidgets.apk that cames with my Motorola Defy+. I already read many things (since I am new user, I am not able to post outside links) but I was not succesful on doing it. What I did so far:
Copied the frame moto-res.apk, framework-res.apk, and blur-res.apk from my Rom.
Installed it on the apktool, apktool if ...
Runned apktool d ToggleWidgets.apk and it was correctly extracted into the dir ToggleWidgets
Now I was expecting to find a classes.dex file. But there is not, and I got stuck. If someone knows what should I do, or a link with things to clarify, I would be thankful.

I just renamed one of my apps with .zip and opened it, and the classes.dex file was in there. not sure if that helps or not.

@ronaldguilmet: It was the very first thing I tried. Interesting that in my case the file present. Thanks!

I guess the class files generated with the Android SDK uses obfuscation through Proguard. I think you cannot disassemble it.
PS: If you approved the previous answer please click on thanks.

thgramos said:
I guess the class files generated with the Android SDK uses obfuscation through Proguard. I think you cannot disassemble it.
PS: If you approved the previous answer please click on thanks.
Click to expand...
Click to collapse
I do not know why ToggleWidgets.apk does not include classes.dex file. But when I tried different applications, I could get the source code using dex2jar, and then jdgui.

eduardomucelli said:
I do not know why ToggleWidgets.apk does not include classes.dex file. But when I tried different applications, I could get the source code using dex2jar, and then jdgui.
Click to expand...
Click to collapse
did you manage to deodex it? if so, can you tell me how? I've tried differents methods with no success. My ultimate goal is to be able to use the Toggle Widgets in a custom ROM like CM9, I don't even know if this is possible without using the motoblur launcher. Could it be that you are trying to do the same thing? it's just that I like those widgets so much and I would like to keep them in a different ROM.

Related

Signing the update.zip in Mac OS X?

I'm sure this has been asked before but after prolific searching of the forums and our friend Google I turn to you guys for help. As the title says I'm using OS X and I need a solution (that isn't dual booting to use XP) to signing the update.zip so that I can customise aspects of my ROM, I'm very eager to learn how to do this and this so far seems to be quite an annoying problem.
Thanks for your time in advance
tristyB said:
I'm sure this has been asked before but after prolific searching of the forums and our friend Google I turn to you guys for help. As the title says I'm using OS X and I need a solution (that isn't dual booting to use XP) to signing the update.zip so that I can customise aspects of my ROM, I'm very eager to learn how to do this and this so far seems to be quite an annoying problem.
Thanks for your time in advance
Click to expand...
Click to collapse
pm me............
korndub said:
pm me............
Click to expand...
Click to collapse
Hi korndub,
Cannot you post the answer here so everybody that uses OS X can also sign?
I'm also having problems signing full roms (update.zip files) with signapk.jar
Any help is appreciated
rommelin said:
Hi korndub,
Cannot you post the answer here so everybody that uses OS X can also sign?
I'm also having problems signing full roms (update.zip files) with signapk.jar
Any help is appreciated
Click to expand...
Click to collapse
i have a folder on the desktop which contains the signapk.jar and both sets of keys...put the Archive.zip that you have created and want to sign in this folder, then open terminal
in terminal, you type
$cd FOLDER-containing-files
$java -jar signapk.jar testkeys.x509.pem testkey.pk8 Inputfile.zip outputfile.zip
the outputfile.zip is your update which is signed....
OK, I do all that I think.
Heres my process.
Download ROM
Extract downloaded zip to folder eg update
Make changes to files
Compress folder back to zip eg update1.zip
java -jar signapk.jar testkeys.x509.pem testkey.pk8 update1.zip update_signed.zip
rename and copy the signed file to sd
reboot recovery
wipe and apply update
It doesn't moan about the signing (so I assume its ok) but I get an update script not found error and it doesn't install.
I haven't changed the update scripts, only the boot.img and one or two scripts in system.
Does every file I change have to be resigned as well? I muct be missing something here
on OSX 10.5
Signing has nothing to do with that error. Make sure that the update-script is in the correct path.
META-INF/com/google/android/update-script
it is, is a normal update.zip (ie cyanogen rom), and the only file I've changed is boot.img and a2sd in system/bin
i have a folder on the desktop which contains the signapk.jar and both sets of keys...put the Archive.zip that you have created and want to sign in this folder, then open terminal
in terminal, you type
$cd FOLDER-containing-files
$java -jar signapk.jar testkeys.x509.pem testkey.pk8 Inputfile.zip outputfile.zip
the outputfile.zip is your update which is signed....
Click to expand...
Click to collapse
Thank you so much, this works for me, I might try and build it into an automator workflow
Edit: I spoke too soon, I get the update script error also
Edit Again: my update-script is in the same place as it should be also
Wonder if this is a specific OSX problem? We do have apples 'interpretation' of java don't we?
dazcox5181 said:
Wonder if this is a specific OSX problem? We do have apples 'interpretation' of java don't we?
Click to expand...
Click to collapse
haha, yeah that's right, those crazy cats at Apple. but I assume that korndub also has Apples 'interptretation' so something else could be the problem also
perhaps the way we zip the archive?
dazcox5181 said:
perhaps the way we zip the archive?
Click to expand...
Click to collapse
sadly not, I just used a application that zips in a PC format (without mac hidden files) and no joy. Good idea though.
Edit: Just tried archiving the zip but not compressing. Thought I was on to something. I wasn't.
Another update, I have tried the same in Fedora 11 and again, getting the update script error message when I flash.
I signed modified update for 3 different builds on my Mac, everything worked w/o problems every time. I did everything like described in readme and several times here. So, it's not a global OS X problem.
BTW, I used muCommander to directly modify all zips.
neuro159 said:
I signed modified update for 3 different builds on my Mac, everything worked w/o problems every time. I did everything like described in readme and several times here. So, it's not a global OS X problem.
BTW, I used muCommander to directly modify all zips.
Click to expand...
Click to collapse
When I find the time later on I will give the muCommander a go. Fingers crossed.
dazcox5181 said:
OK, I do all that I think.
Heres my process.
Download ROM
Extract downloaded zip to folder eg update
Make changes to files
Compress folder back to zip eg update1.zip
java -jar signapk.jar testkeys.x509.pem testkey.pk8 update1.zip update_signed.zip
rename and copy the signed file to sd
reboot recovery
wipe and apply update
It doesn't moan about the signing (so I assume its ok) but I get an update script not found error and it doesn't install.
I haven't changed the update scripts, only the boot.img and one or two scripts in system.
Does every file I change have to be resigned as well? I muct be missing something here
on OSX 10.5
Click to expand...
Click to collapse
you dont archive (zip) the folder, this is where you are having the issue... say you extracted the rom to ROMFOLDER, what you need to do is go into that folder, select all, then right click or two finger click and choose Compress - you will end up with an archive that contains all sub folders, if you zip the folder then you have a folder within a folder and that is where all goes south..
korndub said:
you dont archive (zip) the folder, this is where you are having the issue... say you extracted the rom to ROMFOLDER, what you need to do is go into that folder, select all, then right click or two finger click and choose Compress - you will end up with an archive that contains all sub folders, if you zip the folder then you have a folder within a folder and that is where all goes south..
Click to expand...
Click to collapse
Oh my god, you're right. And I think I actually read that somewhere before now you've reminded me. Damn. Thanks though! Thanks a lot!
Awesome, knew it was me being stupid.
sure thing guys! glad i could help...
Always something stupid...

[Q] I Need Help Compiling apk's to use with CM7 theme chooser

Hi,
I'm having issues compiling a new apk to use with the tmobile theme chooser and could really use some help.
I started by creating a new project in eclipse using the information from the Cyanbread theme to get the right androidManifest.xml, package format, and xml files. The problem I've run into is that, when I try to apply the theme (through CM7 emulator or my own phone), I get an error saying the package is improperly compiled and cannot be applied.
I looked into the source code for the theme chooser and found that "DIALOG_MISSING_THEME_PACKAGE_SCOPE" is what generates that text string. I found tmobile's theme wiki at hxxp://code.google.com/p/tmobile-themes/wiki/NewGlobalThemeEngineDesign (sorry, I cannot post links yet). On that page, I found this:
Resources are generated in the 0x0a package scope. This is designed to separate them in the AssetManager's ResTable. The framework currently uses 0x01 while application packages normally use 0x7f. The aapt tool was modified to support assigning arbitrary package scopes and so you must use the aapt tool found in the themes tree for building your own themes.
Click to expand...
Click to collapse
I installed the repository on my system and found the aapt at ~/prebuilt/sdk/tools/linux/aapt. I tried renaming my "standard" aapt to aapt.old in my android sdk platform-tools folder and putting the modified aapt in its place. I deleted my gen folder in eclipse and made it rebuild it using the modified aapt.
Having done all that, I still get the same error saying the package is improperly compiled. This is all pretty new, and I haven't been able to find any info here on xda or elsewhere that helps. Any help that anyone can give would be really appreciated. Thanks!
UPDATE:
A guide was just posted at forum.xda-developers.com/showthread.php?t=942203 that gave me all the other info I needed to make this happy. If your searching and found this thread, hopefully the guide can help you.
UpwardSpiral said:
UPDATE:
A guide was just posted at forum.xda-developers.com/showthread.php?t=942203 that gave me all the other info I needed to make this happy. If your searching and found this thread, hopefully the guide can help you.
Click to expand...
Click to collapse
Thanks a lot! I've been having the same problem

[Q] Find core/java/android/view/Surface.java

Hello,
I would like to know, how its is possible to find, for example the file core/java/android/view/Surface.java .
Sorry for that noob question, but I am really interested in Android Software Developement and when I look at the github-profiles of others I always find those directories and files, I do not find on my system.
I tried using the baksmali tool and baksmalied my framework.jar . Then I found the file /framework/android/view/surface.smali but there are mostly completely different commands, so I think, there must be another tool that can edit the framework.jar in another way.
I would be very thankful for help.
AFAIK, what your looking for is in source, so once a build is compiled, you will not find that file(or folder structure). When you decompile framework.jar, you will find mostly smali files, which makes looking at the code give me headaches...
What are you trying to do? Is this for ICS or GB? and have you looked into setting up a repo on your computer? If you set one up, you will then find all the java source files you are looking for, but then you must compile the files you edit.
netwokz said:
AFAIK, what your looking for is in source, so once a build is compiled, you will not find that file(or folder structure). When you decompile framework.jar, you will find mostly smali files, which makes looking at the code give me headaches...
What are you trying to do? Is this for ICS or GB? and have you looked into setting up a repo on your computer? If you set one up, you will then find all the java source files you are looking for, but then you must compile the files you edit.
Click to expand...
Click to collapse
what i am trying to do, is to add some features like the rotation animation for motorola milestone 2.1 . what i already have managed, is to add ics animations and 4-way-reboot, by editiong the framework-res and framework.jar .

Editing APK files

Hi i have read a few posts about editing apk files but most are only about editing the image files. i need to edit the classes.dex file inside the apk i have done this but when i try and install the apk it doesnt work is this possible to do? thanks
this is not to do anything illegal it is simply to make an android app i use equal to the iphone equivalent (there are less servers for the android app) so i basically want to change the url from the apk to the iphone url)
Cheers
morgs640 said:
Hi i have read a few posts about editing apk files but most are only about editing the image files. i need to edit the classes.dex file inside the apk i have done this but when i try and install the apk it doesnt work is this possible to do? thanks
this is not to do anything illegal it is simply to make an android app i use equal to the iphone equivalent (there are less servers for the android app) so i basically want to change the url from the apk to the iphone url)
Cheers
Click to expand...
Click to collapse
Tried signing the file after modding it?
Sent from my GT-S5360 using xda premium
Hi thanks for your reply, yes i have and it still doesnt work unfortunately
Use apktool to extract the APK, you'll get .smali files instead of classes.dex (this is the decompiled version). Edit these files appropriately, then repack the APK with apktool and sign it. Should work.
Does apktool require command line? if so it is too complicated for me
Yes, it does. If command line is too difficult, it's probably unlikely you'll be able to get this working I'm afraid. You could try this: http://forum.xda-developers.com/showthread.php?t=1619473
It's an IDE for editing APKs, might help. But honestly, the command line part is the easy bit
Just never had any luck with any command line stuff for android never works for me and i hate all the extra crap you have to install to use it. Thanks anyway ill see how i go.
morgs640 said:
Just never had any luck with any command line stuff for android never works for me and i hate all the extra crap you have to install to use it. Thanks anyway ill see how i go.
Click to expand...
Click to collapse
If you wanna do basic stuff wid apktool then its a reaaly easy tool.. The commands are really very small!
Apktool d xxxx.apk for decompile
Apktool b xxxx for compiling n ur done!
Even the complex ones arent difficult! Only the installing of apktool takes time and its the hardest thing in the whole procedure
Sent from my GT-S5360 using XDA
in theory apktool is faily simple. but if you compile for android 4.0 better prepare yourself for huge headaches and a couple of white hairs as this thing wont work. i know two solutions, one consists of a really stupid juggling with two versions, one old which you can barely find, and one new, decompile with the old one, compile with the new one. some guy made a mod though and it finally ends the trouble, but i haven't seen it officially pronounced, which made it so damn hard to find it, hidden in some internet forums. another problem was that aapt needs to be present in the same directory, error codes will just spew out a bunch of gibbersish and you will never know whats wrong so all thats left is trying. but once you got it working it is as easy as pie.
molesarecoming said:
some guy made a mod though and it finally ends the trouble, but i haven't seen it officially pronounced, which made it so damn hard to find it, hidden in some internet forums. but once you got it working it is as easy as pie.
Click to expand...
Click to collapse
You mean this: http://forum.xda-developers.com/showthread.php?t=1551236 ? (It was about two threads below this one at the time I posted this )
nice! i made myself little batch files for this. i just go "apkd skype" to decompile skype.apk and apkb skype for building it, zipping it, signing it. didnt even know theres a guy out there now.
SifJar said:
Yes, it does. If command line is too difficult, it's probably unlikely you'll be able to get this working I'm afraid. You could try this: http://forum.xda-developers.com/showthread.php?t=1619473
It's an IDE for editing APKs, might help. But honestly, the command line part is the easy bit
Click to expand...
Click to collapse
This program worked perfectly thank you so much

Help to find a "clean" SystemUI file

Hi. I own a Uniwa A19S phone which runs Android 6. I just found out it came out of the factory with an infected SystemUI.apk file (a trojan is injected into the file).
Since the trojan can NOT be removed I badly need a clean copy of this file.
The version I'm looking for is: 6.0-1602570800 code 23 (about 5 Mb in size, other versions won't work). I searched around the net with no luck so far, therefore any help is greatly appreciated.
Thank you
Mike
1) how do you know it's infected?
2) why do you think there exist clean version of it?
Thanks alecxs for taking the time to reply.
My Eset antivirus detected this malware. I sent the file for further inspection to the ESET Malware Response Team which promptly replied with this:
Detection is correct. This malware is serving advertisements.
It has ability to download another applications and install them directly into the phone
In fact I found other applications and my phone was even hijacked and 6 calls were made to Tunisia and Morocco (but the phone company reimbursed me).
Luckily I was able to remove SystemUI.apk from the phone but as a result the phone is now crippled although functional. I was hoping to find someone with the same version of my systmeUI.apk file to restore the full functionality. Because, as you may imagine, a factory reset restores the trojan.
Mike
wallace108 said:
Hi. I own a Uniwa A19S phone which runs Android 6. I just found out it came out of the factory with an infected SystemUI.apk file (a trojan is injected into the file).
Since the trojan can NOT be removed I badly need a clean copy of this file.
The version I'm looking for is: 6.0-1602570800 code 23 (about 5 Mb in size, other versions won't work). I searched around the net with no luck so far, therefore any help is greatly appreciated.
Thank you
Mike
Click to expand...
Click to collapse
Use APKtool to unsign and decompile the apk then remove the trojan from the apk then recompile and re-sign the apk. Then replace the infected apk with your modified apk then reboot the device.
Droidriven said:
Use APKtool to unsign and decompile the apk then remove the trojan from the apk then recompile and re-sign the apk. Then replace the infected apk with your modified apk then reboot the device.
Click to expand...
Click to collapse
Thanks Droidriven for the instructions. I've never decompiled an apk file, this is new territory for me. But I'll look into it and will do my best.
Cheers
Mike
So I installed APKtool, and managed to decompile the apk. However, since I'm no expert here, I really don't know how to go about locating the viral payload and properly remove it without affecting the legitimate code during the process .... hmmmm ... I'm winging it here ....
wallace108 said:
So I installed APKtool, and managed to decompile the apk. However, since I'm no expert here, I really don't know how to go about locating the viral payload and properly remove it without affecting the legitimate code during the process .... hmmmm ... I'm winging it here ....
Click to expand...
Click to collapse
check the META-INF for permissions and apk data
Please bear with me because I'm confused. I really don't know what to look for.

Categories

Resources