This tool allows you to analyze various details about Android APK files. It can decompile binary xml files and resources.
Package name
versionCode
versionName
Supported ABIs
Native libraries
Minimal supported Android version
Target SDK
Used Technologies & Frameworks
Note: All APK processing is done on the client side. Your APK files won't be transferred to the server.
If you're an Android enthusiast or power user that likes to learn more about Android internals, I highly recommend to check out my Bugjaeger app. It allows you to connect 2 Android devices through USB OTG and perform many of the tasks that are normally only accessible from a developer machine via ADB directly from Android phone/tablet.
If you liked any of my apps on GooglePlay, please leave a review.
It would help me a lot 😊
Activities
Activities are the basic application components that provide an interface to the user - a single screen that can host UI elements. An application usually provides one or more activities and allows the user to navigate between each of them.
Services
Services are application components that are mostly used for background processing tasks, for example, playing music, downloading files, or performing some time consuming computation.
Broadcast Receivers
Broadcast receivers allow to exchange events between app components or even between different apps. With broadcast receivers, events can be delivered even to apps that aren't currently running (for example app can listen to system events). Android uses Intents to deliver these events to broadcast receivers.
Content Providers
Content providers allow an Android app to manage and share data. They provide a unified interface for managing app's data which allows to use an URI scheme to map URI to data items.
Requested Permissions
When an app wants to access resources or various device capabilities, it often has to request permissions from the user to do so. Some permissions are granted by the user when installing the app and some need to be additionally confirmed while an app is running. The requested permissions are declared in app's AndroidManifest.xml file.
AndroidManifest.xml
Android manifest contains important information about the app that is used by the development tools, Android system, and app stores. It contains app's package name, version information, declarations of app components, requested permissions, and other important things. It is serialized into a binary xml format and bundled inside app's APK file.
APK Signature
Valid Android APK files contain a signature which allows to identify the author of the APK file. This is especially useful when installing updates to already installed apps because it allows you to verify that the updated version comes from the same author.
You can find out who signed the APK and other signature/certificate information with my cert tool
sisik.eu/cert
64 Bit Architecture Support
Some APKs contain native C++ code which has to be compiled for each supported ABI (e.g. armeabi-v7a, x86, arm64-v8a, x86_64). This is usually done with Android NDK.
This tool allows you to check if the APK contains native C/C++ code and also if it supports 64 bit architectures. If your APK contains native code, there should be a "Supported ABIs" section at the top. If your APK also supports 64 bit architecture, there should be an ABI listed with a name containing the digit "64"(e.g. arm64-v8a or x86_64).
The native C/C++ libraries are located inside the lib
folder of the APK file. You can further analyze these shared .so libraries using my elf tool.
App Source Code
The code that developers write in Java or Kotlin is compiled and put into one or more classes.dex files, which are then packaged into the final APK file. If you're curious about the inner workings of the code, you can convert the compiled code into human readable form of dalvik bytecode. Use my apk-dump tool for this
sisik.eu/apk-dump
Android Partitions & Image Files
Android operating system uses multiple filesystem partitions to boot up and work. Google offers image files that contain these partitions for its own devices. If you want to learn more about Android filesystem partitions and image files, or you would like to extract files and resources from these partitions, use my aimg tool to do this
sisik.eu/aimg
You Want to Analyze Other File Formats (Not Only APK)
You can use my file tool to find more information about various binary formats
sisik.eu/file
You Want More Features or Something Is Not Working
If you would like to have some additional features or you're experiencing some issues with this app, don't hesitate to write directly to my email
roman@sisik.eu
Recommended Apps & Tools
For those of you who like to hack around Android and see more of its internals, I highly recommend to check out my Bugjaeger app
https://play.google.com/store/apps/details?id=eu.sisik.hackendebug
If you want to analyze APK files located directly on your Android device, you can try my Power Apk Android app
https://play.google.com/store/apps/details?id=eu.sisik.apktools
Android devices contain multiple partition types (boot, system, data). If you already have an .img file and you would like to extract other files and information from it, you should try my online tool for extracting Android image partitions
www.sisik.eu/aimg
I also created a more generic tool that can give you information about binary and textual file types. You can use it for example for getting ABIs of your native .so libraries
www.sisik.eu/file
Something is not working? Or you would like some additional features? You can contact me directly at my email roman@sisik.eu and write your requirements.
This tool uses parts of the Android Open Source Project that are licensed under Apache version 2.0 license.