- foreground DetectorService: cgcap capture + on-device decode - framework CellInfo source: real serving+neighbor towers, signal, carrier name - FrameDecoder: 0x070F cell-info SIT decode - block-2G/3G + detection toggles via cgctl; libsu root bridge - silent status notification + edge-triggered alerts
1.3 KiB
1.3 KiB
Building CellGuard
Toolchain
| Component | Version |
|---|---|
| Gradle (wrapper) | 8.9 |
| Android Gradle Plugin | 8.5.2 |
| Kotlin | 1.9.23 |
| Compose compiler | 1.5.11 |
| JDK | 21 |
| compileSdk / targetSdk | 35 |
| minSdk | 33 |
| Build tools | 35.0.0 |
These versions are mutually compatible: AGP 8.5.2 requires Gradle 8.7+ and JDK 17+ (JDK 21 is fine), and Kotlin 1.9.23 pins the Compose compiler extension to 1.5.11.
Prerequisites
- JDK 21 installed at
/usr/lib/jvm/java-21-openjdk-arm64 - Android SDK at
/home/snake/Android/Sdkwith:platforms/android-35build-tools/35.0.0
- Network access for the first build (downloads AndroidX, Compose BOM 2024.06.00, and libsu 5.2.2 from Google, Maven Central, and JitPack).
Build command (debug APK)
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-arm64
export ANDROID_HOME=/home/snake/Android/Sdk
cd /home/snake/CellGuard-app && ./gradlew :app:assembleDebug
Output
The debug APK is written to:
/home/snake/CellGuard-app/app/build/outputs/apk/debug/app-debug.apk
For a release (unsigned) build, run ./gradlew :app:assembleRelease; the artifact
lands in app/build/outputs/apk/release/.