jadx is a production-grade Android DEX/APK to Java source decompiler, providing both a command-line tool (jadx-cli) and a feature-rich Swing GUI (jadx-gui). The architecture is a multi-module Gradle project with a plugin system for input formats (DEX, Java class files, Smali, AAB, XAPK), decompilation passes, resource handling, and deobfuscation. The core decompilation pipeline uses a visitor pattern over a custom intermediate representation (IR) with type inference, SSA construction, region-based control flow, finally block extraction, and code generation. The codebase is actively maintained with a large test suite, but exhibits technical drift through deprecated APIs, complex state machines, and some unmaintained code paths. The plugin system and zip reader module are well-isolated and potentially reusable.
dpt-shell is a sophisticated Android application protection framework that implements a 'hollow shell' obfuscation technique. It functions as a two-part system: a Java-based CLI processor (dpt) that analyzes and modifies target APK/AAB files, and a native Android shell (shell) that is injected into the target application. The processor extracts method bytecode (CodeItem) from the original Dex files, encrypts them, and replaces the original code with NOP instructions. At runtime, the injected shell hooks Android's class loading mechanisms (DefineClass/LoadClass) using native libraries (Dobby, bhook), decrypts the stored bytecode, and patches the memory of the loaded Dex file to restore the original code before execution. This architecture provides runtime code integrity verification and anti-tampering capabilities. The codebase demonstrates high craftsmanship in both Java and C++. The Java processor utilizes smali/dexlib2 for bytecode manipulation and implements a robust rule-based exclusion system for framework classes. The C++ shell implements low-level memory management, ELF parsing, and dynamic hooking to intercept Android Runtime (ART) operations. It includes anti-debugging, anti-Frida, and signature verification features. The project targets very recent Android SDK versions (36) and build tools (Gradle 8.14), indicating active development and forward-looking compatibility.
python-for-android (p4a) is a build toolchain that packages Python applications into Android APK, AAB, and AAR binaries. It cross-compiles Python interpreters, native libraries, and Python packages for Android architectures (arm64-v8a, armeabi-v7a, x86_64, x86) using the Android NDK and SDK. The system is driven by a recipe system where each Python package or native library defines its download, patching, and build steps. A bootstrap system (SDL2, SDL3, webview, Qt, service-only) generates the Android project structure and Gradle build files. The tool is primarily used via CLI (`p4a` or `python-for-android`) or integrated with Buildozer. It resolves dependencies via a graph algorithm that handles conflicts, alternatives, and optional dependencies. The codebase is large and mature, with hundreds of recipes and extensive CI testing, but carries technical debt from version-specific patches and workarounds for Android's evolving ecosystem.
AppUpdater is a multi-module Android library that provides in-app update functionality: it checks a remote version, downloads the APK, shows progress via notification or dialog, and installs the APK across Android versions. The core `app-updater` module contains the update orchestration, download/install services, notification handling, and file/checksum utilities; the `app-dialog` module provides a ready-made update dialog; the `app` module is a sample. The main entry point is the `AppUpdater` builder/facade, which accepts an `UpdateConfig` and optional custom parser/strategy implementations, so consumers can plug in their own update-info JSON schema.
Apktool is a command-line tool for reverse engineering Android APK files. It decodes binary resources (resources.arsc, AndroidManifest.xml, 9-patch images) back to nearly original form, disassembles DEX bytecode into Smali assembly using baksmali, and provides a rebuild pipeline that reassembles and signs the APK via aapt2 and apksigner. The tool manages Android framework APK installations to resolve resource references during decoding. The architecture is a multi-module Gradle project: a core library (apktool-lib) exposing programmatic APIs (ApkDecoder, ApkBuilder, ResTable, Framework), and a CLI wrapper (apktool-cli) that provides commands like decode, build, install-framework, and list-frameworks. Supporting libraries (brut.j.util, brut.j.dir, brut.j.yaml, brut.j.xml) handle I/O, directory abstraction, YAML metadata, and XML serialization. External dependencies include Google's aapt2 binary (bundled per platform) and the smali/baksmali libraries for DEX compilation. The codebase demonstrates deep knowledge of Android binary formats, with custom parsers for chunked resource tables, binary XML, and resource qualifiers, and includes extensive regression tests covering edge cases and security vulnerabilities.
APKDeepLens is a Python-based CLI static analysis tool for Android APK security assessment. It decompiles APKs using bundled JADX, analyzes AndroidManifest.xml for misconfigurations, scans decompiled source code for OWASP Mobile Top 10 vulnerabilities, detects hardcoded secrets and insecure URLs, and generates reports in JSON/HTML/PDF/TXT formats. The architecture is monolithic with modular components for manifest analysis, code scanning, secret extraction, and report generation. Entry point is APKDeepLens.py with argparse CLI interface. External dependencies include JADX (bundled), xhtml2pdf for PDF generation, and python-bidi for PDF rendering.
EhViewer_CN_SXJ is an Android application for browsing, searching, and downloading content from E-Hentai (a manga/doujinshi platform). It provides a full-featured gallery viewer with offline download management, image caching, and archive extraction. The app integrates native C/C++ libraries (libjpeg-turbo, libpng, libwebp, giflib) via JNI for high-performance image decoding, and uses a custom OpenGL-based rendering framework (GLView) for smooth gallery navigation. The architecture is a monolith with a scene-based UI navigation system, a SQLite-backed persistence layer (greenDAO), and a custom HTTP client built on OkHttp with proxy and cookie management. The codebase is a mix of Java and Kotlin, with extensive native code for image processing and SIMD optimizations (SSE, NEON, MIPS). While the app is functional and actively maintained, it exhibits significant technical debt: tight coupling to E-Hentai's HTML structure, deprecated Android API usage, a forked Android-like environment, and heavy vendored native libraries that require ongoing security updates. The project demonstrates some reusable patterns (Conaco caching, UniFile abstraction, custom collections) but overall is a domain-specific application with limited generalizability.
This repository is a static asset dump of extracted Pokémon GO game files, not a software application. It contains 3D models (FBX/OBJ), textures (PNG), app icons, and text strings organized under top-level directories such as '3D Assets', 'Images', and 'Texts'. The assets are grouped by category (Pokémon, costumes, addressable assets) and by in-game event (e.g., Halloween 2021, New Years 2020/2021), with consistent naming conventions based on Pokémon IDs (pm####) and costume descriptors. There is no source code, ETL pipeline, or analytical schema; the repository serves as a raw data source for fan projects, 3D artists, and game data miners.