Explore how an air-gapped Bitcoin signing device's UI works without owning the hardware.
Learn how JNI bridges Kotlin Android code to a C-based embedded UI library.
Test QR code scanning and entropy capture flows using a phone's camera.
Study LVGL-based embedded interfaces rendered inside an Android SurfaceView.
| odudex/kern-android | adroxz1122/injected-host-enumeration | alantsev/ds4 | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | C | C | C |
| Setup difficulty | hard | moderate | hard |
| Complexity | 4/5 | 3/5 | 5/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Android SDK with specific pinned NDK and CMake versions to build.
Kern Android is a simulator app that runs the Kern hardware wallet interface on an Android phone or emulator. Kern is a UI built with LVGL, a graphics library for embedded devices, designed for an air-gapped Bitcoin signing device, meaning one that never connects to the internet. This Android app simulates that device for learning and exploration. The README emphasizes clearly that this is for educational use only: phones cannot fully isolate cryptographic keys from the operating system, installed libraries, or hardware peripherals, so the app should not be used to manage real funds or real seed phrases. A warning dialog appears on every launch to remind users of this. The app works by running the actual Kern simulator code through a JNI bridge, which is a way for Android apps written in Kotlin to call code written in C. It uses the same LVGL display driver from the Kern project and renders the interface into an Android SurfaceView, scaled to fit the screen. The QR scanner and entropy capture features use the phone's real rear camera through the Android Camera2 API, with a mock camera fallback used when running on an emulator without a camera. Building the app requires the Android SDK with specific pinned versions of the NDK and CMake. The build produces an APK that can be installed on a real phone or run in an Android emulator. It targets both arm64-v8a for real phones and x86_64 for emulators by default. The project is MIT licensed, its bundled Kern and LVGL dependencies are also MIT, and mbedtls, the cryptography library it uses, is Apache 2.0.
Kern Android is an educational simulator that runs the Kern air-gapped Bitcoin signing device UI on an Android phone, not for real fund management.
Mainly C. The stack also includes C, Kotlin, LVGL.
MIT license and MIT/Apache-2.0 dependencies, use freely including commercially, keep the copyright notice.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.