Repository navigation
DROIDLESS v0.1.0 — interactive APK preview
DROIDLESS runs Android application DEX without Android. This experimental milestone executes the original KasCalc 1.0 APK in a native macOS window: button clicks reach its own bytecode, 7 + 5 displays 12.0, and native close runs pause/stop/destroy with exit status 0.
The Rust runtime includes bounded APK/binary XML/DEX/resource parsing, a register interpreter and managed heap, Activity lifecycle, basic layouts/widgets, native mouse/text/key callbacks, catchable Java faults, interface/array assignability and persistent failed-class initialization.
Locally validated commit: bb4912d8f382c948aa2eef7a0e34234c4872dc9d. Formatting, check, 14 Rust tests, warning-free clippy, release build, 4,096 seeded parser mutations and ten headless KasCalc scenarios passed. Native Counter text/key callbacks and clean close were observed. The packaged CLI passed a clean extracted-consumer APK/callback check. CI runs locally only; source GitHub Actions are disabled.
Build from source:
git clone https://github.com/OthmaneBlial/droidless.git
cd droidless
git checkout v0.1.0
cargo build --release --locked
sh tools/fetch-kascalc.sh
target/release/droidless artifacts/apks/KasCalc.apkThe macOS ARM64 archive contains the CLI, Apache-2.0 license, authored Counter fixture and hash-checking upstream fetch helper. It excludes the third-party calculator. Tested on macOS 26.6; the binary has no Apple developer signature or notarization. Verify the archive with the attached SHA256SUMS.
This is a limited traditional Java/Android API subset, not broad APK compatibility or an audited security sandbox. Use trusted APKs. Storage, Intents, timers, networking, AndroidX, Compose, JNI and JIT are not implemented. Full focus/IME/paste and Linux build/UI validation remain open.
Project site · Documentation · Changelog · Compatibility · Security boundaries