There are two useful tools which will generate Java code (rough but good enough) from an unknown APK file.
- Download dex2jar tool from dex2jar.
- Use the tool to convert the APK file to JAR: Windows:
$ d2j-dex2jar.bat demo.apk dex2jar demo.apk -> ./demo-dex2jar.jar
MacOS / Linux:$ d2j-dex2jar.sh -f demo.apk -o demo.jar
- Once the JAR file is generated, use JD-GUI to open the JAR file. You will see the Java files.
The output will be similar to:
Then you can use other tools to retrieve the AndroidManifest.xml and resource files (like images, translations, etc…) from the APK file.
- Apktool
$ java -jar apktool.jar -q decode -f demo.apk -o outputDir
- AXMLParser
$ apkinfo demo.apk
- NinjaDroid
$ ninjadroid demo.apk --all --extract
Related Posts:
- Is there a way to get the source code from an APK file?
- Install an apk file from command prompt?
- Install an apk file from command prompt?
- How to install APK from PC?
- Session ‘app’: Error Installing APK
- Application Installation Failed in Android Studio
- What is INSTALL_PARSE_FAILED_NO_CERTIFICATES error?
- How to decompile an android app from the google play store
- INSTALL_FAILED_NO_MATCHING_ABIS when install apk
- Emulator: ERROR: x86 emulation currently requires hardware acceleration
- Emulator: ERROR: x86 emulation currently requires hardware acceleration
- How to use navigateUp to close the application
- “unable to locate adb” using Android Studio [duplicate]
- “unable to locate adb” using Android Studio [duplicate]
- Differences between arm64 and aarch64
- My users get “net::err_name_not_resolved”
- Error: No toolchains found in the NDK toolchains folder for ABI with prefix: llvm
- Solving “adb server version doesn’t match this client” error [duplicate]
- Can’t create handler inside thread that has not called Looper.prepare()
- What are the possible reasons for NFC Service to become dead after some time?
- Simple Android RecyclerView example
- What is ‘Context’ on Android?
- android image button
- What causes signal ‘SIGILL’?
- adb server is out of date. killing
- Change project name on Android Studio
- react-native: command not found
- How to use putExtra() and getExtra() for string data
- Android – setOnClickListener vs OnClickListener vs View.OnClickListener
- Is there an equivalent to iOS’s Keychain for user credentials on Android?
- How to: Install Plugin in Android Studio
- No matching client found for package name (Google Analytics) – multiple productFlavors & buildTypes
- What’s LazyList?
- No Network Security Config specified, using platform default – Android Log
- Why is Android Studio reporting “URI is not registered”?
- getBluetoothService called with no BluetoothManagerCallback
- Getting error “The package appears to be corrupt” while installing apk file
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
- Error inflating class fragment
- How to pause / sleep thread or process in Android?
- com.android.ide.common.process.ProcessException: Failed to execute aapt! What can I do?
- Could not find com.android.tools.build:gradle:3.0.1
- Error message ‘java.net.SocketException: socket failed: EACCES (Permission denied)’
- How to use su command over adb shell?
- Sending an Intent to browser to open specific URL
- Picasso v/s Imageloader v/s Fresco vs Glide vs Coil
- Save bitmap to location
- onActivityResult() not called
- How to resolve the “ADB server didn’t ACK” error?
- Custom Adapter for List View
- findViewByID returns null
- Android Intent Cannot resolve constructor
- Android Studio 1.2.1.1 – Failed to find style ‘textViewStyle’
- Java syntax explanation – getMenuInflater()
- Get Value of a Edit Text field
- Android Studio doesn’t see device
- Static way to get ‘Context’ in Android?
- What are the differences between LinearLayout, RelativeLayout, and AbsoluteLayout?
- Android: adb: Permission Denied
- Android Studio : Failed to set EGL_SWAP_BEHAVIOR on surface
- How to install Google Play Services in a Genymotion VM (with no drag and drop support)?
- Running Node.Js on Android
- Running Node.Js on Android
- Android Device not recognized by adb
- emulator: incompatible HAX module version 3 requirs minimum version 4
- How do you change text to bold in Android?
- admob getting an ad response. ErrorCode: 0 Failed to load ad:0
- Android Studio – Company Domain Name
- What exactly does fitsSystemWindows do?
- Installing ADB on macOS [duplicate]
- What can com.sec.android.app.launcher be used for?
- How to create custom button in Android using XML Styles
- Android SDK path not specified
- Failed to connect to camera service
- How to create a file in Android?
- Cannot resolve method getApplicationContext()
- Change Orientation of Bluestack : portrait/landscape mode
- How to use ADB Shell when Multiple Devices are connected? Fails with “error: more than one device and emulator”
- Can I underline text in an Android layout?
- This Activity already has an action bar supplied by the window decor
- getResources().getColor() is deprecated
- What’s the console.log() of java?
- Get JSON Data from URL Using Android?
- Android Drawing Separator/Divider Line in Layout?
- Re-enable “component tree” in Android Studio
- XML has empty body?
- “Gradle Version 2.10 is required.” Error
- Singleton in Android
- Android getResources().getDrawable() deprecated API 22
- How to hide popping up Google Play’s unlocked achievement programatically?
- Error during installing HAXM, VT-X not working
- Error: fix the version conflict (google-services plugin)
- User Operation is waiting for “Building Workspace”
- Android Studio – ADB Error – “…device unauthorized. Please check the confirmation dialog on your device.”
- Failed to find style ‘coordinatorLayoutStyle’ in current theme
- What is android:ems attribute in Edit Text? [duplicate]
- Android scale animation on view
- How to change spinner text size and text color?
- Android Device not recognized by adb
- How can I give access to WordPress site using an Android application ?