whatisgithub

What is kern-android?

odudex/kern-android — explained in plain English

Analysis updated 2026-05-18

1CAudience · developerComplexity · 4/5LicenseSetup · hard

In one sentence

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.

Mindmap

mindmap
  root((kern android))
    What it does
      Simulates Kern wallet UI
      Educational only
      Camera-based QR scan
      Entropy capture
    Tech stack
      C
      Kotlin
      LVGL
      JNI
    Use cases
      Learning hardware wallet UX
      Embedded UI exploration
    Audience
      Bitcoin developers
      Embedded systems learners

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Explore how an air-gapped Bitcoin signing device's UI works without owning the hardware.

USE CASE 2

Learn how JNI bridges Kotlin Android code to a C-based embedded UI library.

USE CASE 3

Test QR code scanning and entropy capture flows using a phone's camera.

USE CASE 4

Study LVGL-based embedded interfaces rendered inside an Android SurfaceView.

What is it built with?

CKotlinLVGLAndroid NDKJNI

How does it compare?

odudex/kern-androidadroxz1122/injected-host-enumerationalantsev/ds4
Stars111
LanguageCCC
Setup difficultyhardmoderatehard
Complexity4/53/55/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires Android SDK with specific pinned NDK and CMake versions to build.

MIT license and MIT/Apache-2.0 dependencies, use freely including commercially, keep the copyright notice.

So what is it?

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.

Copy-paste prompts

Prompt 1
Explain how the JNI bridge in this project connects Kotlin Android code to the C-based Kern simulator.
Prompt 2
Walk me through building this APK, including the pinned NDK and CMake versions I need.
Prompt 3
How does this app render an LVGL interface inside an Android SurfaceView?
Prompt 4
Why does the README say this simulator should never be used with real seed phrases or funds?

Frequently asked questions

What is kern-android?

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.

What language is kern-android written in?

Mainly C. The stack also includes C, Kotlin, LVGL.

What license does kern-android use?

MIT license and MIT/Apache-2.0 dependencies, use freely including commercially, keep the copyright notice.

How hard is kern-android to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is kern-android for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.