A new launcher app for the MF800B router
  • Java 74.2%
  • Python 25.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-19 07:38:21 +02:00
app Initial commit 2026-09-19 07:38:21 +02:00
tools Initial commit 2026-09-19 07:38:21 +02:00
.gitignore Initial commit 2026-09-19 07:38:21 +02:00
build.gradle Initial commit 2026-09-19 07:38:21 +02:00
CREATING_A_LAUNCHER.md Initial commit 2026-09-19 07:38:21 +02:00
gradle.properties Initial commit 2026-09-19 07:38:21 +02:00
README.md Initial commit 2026-09-19 07:38:21 +02:00
settings.gradle Initial commit 2026-09-19 07:38:21 +02:00

MF800B Launcher Replacement

Clean-room replacement for the MF800B's on-device HOME launcher (128×128px display). Shows 13 live metrics: Rayhunter status, battery, RSSI, connectivity generation, SIM state, Wi-Fi clients, Wi-Fi/LTE Rx/Tx (cumulative bytes), CPU/memory, LTE IP, IMSI, IMEI.

Icons: 12×12 pixel art, generated with tools/gen_icons.py (requires Pillow).

Installation

The launcher replaces the vendor's default launcher without modifying /system:

# Build
export ANDROID_HOME=~/Android/Sdk
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
~/gradle-dist/gradle-8.5/bin/gradle assembleDebug

# Install on device
adb install app/build/outputs/apk/debug/app-debug.apk

# Make it the default launcher (disables vendor launcher)
adb shell pm disable-user --user 0 com.himilink.HiMILauncher2
adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME

# To revert to vendor launcher:
adb uninstall com.dangerzone.mf800blauncher
adb shell pm enable com.himilink.HiMILauncher2

Building

Prerequisites

  • Android SDK at ~/Android/Sdk
  • Gradle 8.5 at ~/gradle-dist/gradle-8.5/bin/gradle
  • Java 21 (JAVA_HOME must point to JDK 21, not 26+)

Build command

export ANDROID_HOME=~/Android/Sdk
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
~/gradle-dist/gradle-8.5/bin/gradle assembleDebug

Output: app/build/outputs/apk/debug/app-debug.apk

Version History

  • v1: Vendor panel clone
  • v2: Dark dashboard, 13 metrics, pixel icons
  • v3: Rayhunter status row added
  • v4: Battery % + charging state
  • v5: Operator name, uptime, alert count, cumulative bytes
  • v6–v13: refinements (icons, fonts, column widths)

See CREATING_A_LAUNCHER.md for detailed changelog.

Cleaning

Remove build artifacts:

rm -rf app/build/ .gradle/

Generate Gradle wrapper (optional):

export ANDROID_HOME=~/Android/Sdk
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
~/gradle-dist/gradle-8.5/bin/gradle wrapper

Then use ./gradlew instead of the full Gradle path.