android · 14
Android
Check Android release packages, signing fingerprints and 16 KB alignment; inspect APK code and resources with JADX, Apktool, ADB and REA workflows. Follow the release and troubleshooting guides for Play rejection reasons, AAB conversion, signing, native-library alignment and adb crash logs. Dedicated REA guides cover APK analysis, Flutter identification and a headless JADX MCP backend.
AAB to APK with bundletool, and How to Extract APK Assets
Convert an AAB to a universal APK with bundletool build-apks --mode=universal, extract device splits, then unzip the APK's assets. Real bundletool 1.18.3 output.
adb logcat Crash Logs and bugreport Tombstones: Debug Android Crashes
Read an Android crash with adb logcat -b crash -d, find the native tombstone in adb bugreport, and map frames to source with ndk-stack. Real emulator output.
Android APK Analysis with REA: Code, Resources, Device Pulls and Flutter
What REA's Android tools cover and where each one stops: JADX code search, Apktool string tables and locales, ADB split-APK pulls, and Flutter snapshot hashes.
Android Developer Verification: Get the SHA-256 Cert Fingerprint From Your APK
Android developer verification asks for your package name and signing certificate SHA-256. Read both from an APK, AAB or keystore, pick the right key, and see what applies from 2026-09-30.
App Isn't Compatible With Your Phone: targetSdk, ABI, minSdk
Fix 'App not installed as app isn't compatible with your phone' in your APK: get the real INSTALL_FAILED code, then check targetSdk, native ABIs and minSdk.
App Not Installed as Package Appears to Be Invalid: Fix Your APK
Fix 'App not installed as package appears to be invalid' in your own APK: get the real INSTALL_PARSE_FAILED code, then fix signing, resources.arsc or splits.
App Not Installed: Package Conflicts With an Existing Package
Fix 'App not installed as package conflicts with an existing package' in your app: compare signing certificate SHA-256, find the installed copy, keep your key.
Check an APK for 16 KB Page Size Compatibility (Flutter, React Native, NDK)
Check whether your APK or AAB is 16 KB page size compatible, including Flutter and React Native builds: ELF segment alignment, ZIP alignment of .so files, and 64-bit libraries, in the browser or with zipalign.
Deobfuscate Android Stack Traces with R8 mapping.txt and Retrace
Turn a crash like at a.c.b(r8-map-id-…:3) back into class, method and line: where R8 writes mapping.txt, how to read its ranges and inline groups, and retrace.
Flutter APK Reverse Engineering: Find the Flutter and Dart Version, Read libapp.so
Find which Flutter and Dart version built an APK and what is inside libapp.so: snapshot hash, bare Dart version string, engine build IDs and package URIs, checked with llvm-readelf.
Google Play App Rejection Reasons You Can Catch Before Upload
The Google Play rejection reasons hiding in your APK or AAB: target API, 64-bit and 16 KB libraries, debug signing, restricted permissions, foreground services.
How to Get the SHA-1 Fingerprint on Android: keytool -list, signingReport, apksigner
Get the SHA-1 (and SHA-256) fingerprint Firebase, Google Sign-In and assetlinks.json need: keytool -list -v on a JKS or PKCS#12, signingReport, or apksigner on an APK, plus the traps.
JADX MCP Server for Claude Code and Codex: Headless Setup and a Worked APK Example
Run JADX headless as an MCP server for Claude Code or Codex: JDK 17+, the jadx-headless-mcp 0.7.1 JAR, the env block, prompts, and a real Aegis APK walkthrough.
Play Protect Blocked Your App? How to Fix It and Appeal
Why Play Protect blocks a sideloaded app (SMS and accessibility permissions, old targetSdk, debug keys, bad ZIPs), how to fix each one, and what the Play Protect appeal form asks for.