How can one pull the (private) data of one's own Android app?
adb backup will write an Android-specific archive:
adb backup -f myAndroidBackup.ab com.corp.appName
This archive can be converted to tar format using:
dd if=myAndroidBackup.ab bs=4K iflag=skip_bytes skip=24 | openssl zlib -d > myAndroidBackup.tar
Reference:
http://nelenkov.blogspot.ca/2012/06/unpacking-android-backups.html
Search for "Update" at that link.
Alternatively, use Android backup extractor to extract files from the Android backup (.ab
) file.
How can one pull the (private) data of one's own Android app?
adb backup will write an Android-specific archive:
adb backup -f myAndroidBackup.ab com.corp.appName
This archive can be converted to tar format using:
dd if=myAndroidBackup.ab bs=4K iflag=skip_bytes skip=24 | openssl zlib -d > myAndroidBackup.tar
Reference:
http://nelenkov.blogspot.ca/2012/06/unpacking-android-backups.html
Search for "Update" at that link.
Alternatively, use Android backup extractor to extract files from the Android backup (.ab
) file.
Is there a way to get the source code from an APK file?
Simplest way: use the online tool Decompiler, upload the apk and get the source code.
Procedure for decoding .apk files, step-by-step method:
Step 1:
Make a new folder and copy over the .apk file that you want to decode.
Now rename the extension of this .apk file to .zip (rename from filename.apk to filename.zip) and save it. Now you can access the classes.dex files. At this stage, you are able to see drawables, but not the .xml and .java files.
Step 2:
Now extract this .zip file in the same folder or a new folder.
Download dex2jar (Don't download the code, click on the releases button that's on the right, then download the file named
dex2jar-X.X.zip
) and extract it to the same folder or a new folder.Move the classes.dex file into the dex2jar folder.
Now open Command Prompt and change the directory to that folder. Then write
d2j-dex2jar classes.dex
(for Mac or Ubuntu write./d2j-dex2jar.sh classes.dex
) and press enter. You now have the classes.dex.dex2jar file in the same folder.Download java decompiler, Right click on jd-gui, click on Open File, and open classes.dex.dex2jar file from that folder: Now you get the class files.
Save all of these class files (In jd-gui, click File -> Save All Sources) by src name. At this stage, you get the Java code but the .xml files are still unreadable.
Step 3:
Now open another new folder
Put in the .apk file which you want to decode
Download the latest version of apktool AND apktool install window (both can be downloaded from the same link) and place them in the same folder
Open the Command Prompt
Now run command
apktool if framework-res.apk
(if you don't have it get it here)and nextapktool d myApp.apk
(myApp.apk denotes the filename that you want to decode)
Now you get a file folder in that folder and can easily read the .xml files.
Step 4:
It's not any step, just copy the contents of both folders (both new folders) to the single one
AND ENJOY THE SOURCE CODE!
Related Topics
How to Detect If Any of My Activity Is Front-Most and Visible to User
Mpandroidchart - Adding Labels to Bar Chart
Speed Up 'Navigation Drawer' Animation Speed on Closing
What's the Purpose of Item-Id's in Android Listview Adapter
What Is the Real World Accuracy of Phone Accelerometers When Used for Positioning
Retrieve Contact Phone Number from Uri in Android
Limitation on Texture Size? Android Open Gl Es 2.0
Android Emulator Not Receiving Push Notifications
Android - Margins Specified in Custom Style Not Taking Effect
Read Contents of a Url in Android
Cordova - Error: Failed to Fetch Platform Android
How to Detect App Removed from the Recent List
Android Options Menu Icon Won't Display
Android 2.1 View's Getdrawingcache() Method Always Returns Null
Compatiblity of Material Design to Versions Below Android 5.0