Recover Android source and resources, including Unity game assets and script metadata.
Drag and drop your .apk file or click to browse.
Android code is decompiled, and Unity games receive dedicated asset and script analysis.
Explore source code, resources, Unity assets, scripts, and the manifest online.
APK stands for Android Package Kit. It is the file format used by the Android operating system to distribute and install mobile applications. Every app you download from Google Play or sideload onto your device comes as an APK file.
An APK file is essentially a ZIP archive with a specific structure. Inside you will find:
When an Android app is built, Java or Kotlin source code is compiled to Java bytecode, then converted to Dalvik bytecode (DEX format) optimized for the Android runtime. APK decompilation reverses this process, converting DEX bytecode back into human-readable Java source code.
The decompiler directly converts Dalvik bytecode to Java source without going through an intermediate representation, producing clean and readable output.
The decompilation process handles complex Java and Android features including generics, lambda expressions, enum types, inner classes, anonymous classes, try-with-resources, and multi-catch blocks. Binary XML resources are decoded back into readable XML format.
When an APK contains a Unity game, the decompiler also reads Unity serialized files and asset bundles — what comes back, and what Mono and IL2CPP builds differ on, is covered on the Unity APK decompiler page. Recoverable textures, sprites, audio clips, fonts, meshes, text assets, shaders, videos, and serialized behaviours appear in a separate unity/ folder alongside the normal Android output.
Mono-based games can contain managed Assembly-CSharp.dll code that decompiles back to C#. For IL2CPP games, Unity has already compiled the C# into native machine code. The result therefore contains best-effort class and method declarations, string tables, native addresses, and browsable C# type stubs—not the original method bodies or Unity project.
GameMaker Android builds store the actual game in assets/game.droid, outside the Java wrapper that a normal APK decompiler shows. The GameMaker decompiler detects that archive and adds recovered GML source and strings in a separate gamemaker/ folder beside the Java, resources and smali output. YYC builds are identified too, with an explanation when their GML was compiled to native machine code and no VM bytecode remains.
A Cocos game keeps its code in .jsc JavaScript or .luac Lua under assets/, XXTEA-encrypted with a key the studio chose at build time. The Cocos decompiler recovers that key statically, by trial-decrypting one small script with every string in the game's own native library, and writes the decrypted JavaScript and decompiled Lua into a cocos/ folder beside the normal Android output. XAPKs are searched split by split, because the scripts and the library holding their key are usually not in the same one.
A Xamarin or .NET MAUI app is written in C#, not Java: its DEX is a generated wrapper that starts the .NET runtime, which is why an ordinary APK decompiler shows almost nothing. The Xamarin and MAUI decompiler unpacks the app's assemblies.blob assembly store — including the XALZ LZ4 compression on each entry and the stub shared library that .NET 9 wraps the store in — and decompiles the recovered .NET assemblies to C# in a xamarin/ folder beside the usual Java, resources and smali output.
An APK extractor simply unzips the APK file, giving you the raw contents including compiled DEX files and binary XML. The code remains in bytecode form and is not human-readable. An APK decompiler like this tool goes further — it converts the bytecode back to Java source code and decodes binary resources, making everything readable and searchable.
An APK (Android Package Kit) file is the file format used by Android to distribute and install mobile applications. It is essentially a ZIP archive containing compiled code (DEX files), resources, assets, certificates, and the AndroidManifest.xml.
APK decompilation reverses the compilation process. The tool extracts DEX (Dalvik Executable) files from the APK, converts Dalvik bytecode back to Java source code, and decodes binary XML resources into readable format.
Decompilation for personal learning, security research, interoperability, or analyzing your own applications is generally permitted under fair use and laws like the EU Software Directive. However, redistributing decompiled code or using it to create competing products may violate copyright. Always respect software licenses.
The decompiler converts Dalvik bytecode back to readable Java source code and handles complex features like lambda expressions, generics, inner classes, and multi-catch blocks.
Yes — see the Unity APK decompiler. Detected Unity APKs receive a separate result containing recoverable game assets and script metadata. Mono scripts can be decompiled to C#, while IL2CPP results contain reconstructed declarations and native addresses because the original C# method bodies no longer exist in the APK.