Added in v1.1.0
Hardware Self-Test + Device Certificate
v1.1.0 is the first "big" release since v1.0.4: a 15-check hardware self-test alongside
Trust / Health / IP, a shareable Device Certificate (PNG + PDF), and full network info —
all generated on-device, nothing uploaded.
v1.1.0 · P0 · new
Hardware Self-Test — 15 CIT-style checks
Screen dead pixels, touch, sensors, camera, mic, fingerprint — a factory-test suite as a Dashboard entry.
Modeled on Android's CIT (factory test) suite, made a first-class Dashboard card alongside Trust / Health / IP. Each check guides the user to a manual pass/fail verdict and persists into the certificate. Display & touch: solid-color dead-pixel scan, touch and multi-touch trails. Sensors: accelerometer, gyroscope, proximity, light, magnetometer with live raw values. Others: vibration motor, flashlight, volume keys, charging detection (live power source), camera (CameraX live preview + front/back swap), fingerprint / biometric (BiometricPrompt). Audio: speaker, microphone (record-and-play, purely local and ephemeral). The Dashboard badge shows Passed/Total (e.g. 12/15), turning red the moment any check fails.
- 15 guided checks, results persist and feed the certificate
- Dashboard badge: 'passed / total', red on any failure
- Camera + fingerprint via CameraX 1.4.1 + BiometricPrompt (no images stored or transmitted)
- Mic self-test is record-and-play, purely local, discarded on exit
v1.1.0 · P0 · new
Device Authenticity Certificate (PNG + PDF)
One shareable image that says 'this phone is real, and here's the receipt'.
One-tap generates a light-theme document consolidating authenticity verdict / hardware-trust / health / IP authenticity / self-test results, plus device fingerprint / performance / network — all rendered at 2× for crispness. Fixed light-document look so it reads consistently on any platform. Saves as PNG to Photos and PDF (A4 width) to Downloads via MediaStore on API 29+ (no write permission needed). Shared via FileProvider so system share sheets show a proper preview. Fully offline: generation, rendering, save and share all happen on-device — the certificate contains your device fingerprint and IP, so it's kept strictly local. In v1.1.1 the body was massively expanded (see above).
- PNG + PDF, both at 2× rendering
- MediaStore save flow (no WRITE_EXTERNAL_STORAGE on API 29+)
- 100% on-device — the certificate is never uploaded
- Serial-numbered with a timestamp for spot-checking authenticity
v1.1.0 · P0 · new
Full network info — zero-permission
The Device Info → Network section went from 3 lines to a real network profile.
Now surfaces: connection type, VPN presence, metered network, Wi-Fi standard (Wi-Fi 6/7 detected), band, link speed, signal, MAC vendor tag, IPv4 / IPv6, DNS, gateway, carrier, roaming, Bluetooth (state + LE), power source, USB. Certificate carries a condensed one-line network summary. Everything readable without location/phone permissions — SSID / BSSID / cell type / tower info would need dangerous permissions, so we deliberately don't collect them. Real Wi-Fi and Bluetooth MACs have returned faked values since Android 6 (02:00…), so those aren't shown either — no false precision.
- Wi-Fi 6/7 detection via WifiManager.getWifiStandard
- IPv4 + IPv6 + DNS + gateway (from NetworkCapabilities + LinkProperties)
- Bluetooth state + LE support
- Zero dangerous permissions added
v1.1.0 · P0
Reliability round: HyperOS, insets, USB, CameraX 16KB
Xiaomi HyperOS vibration, edge-to-edge insets on target-SDK 36, USB-C PD false-negatives, and Android 15 page-size alignment — all fixed.
Vibration self-test was crashing on release builds because VIBRATE was missing from the manifest, and HyperOS's touch-feedback layer silently drops USAGE_UNKNOWN vibrations (ignored_for_settings); switched to USAGE_ALARM + max amplitude + VibratorManager for reliable playback. Self-test screen no longer overlaps status and nav bars on SDK 35+. Dashboard self-test badge counts 'passed' rather than 'tested' so failures aren't quietly marked done. USB-C PD fast-charge, which the system labels 'AC', no longer trips a false 'Disconnected' — power-source is now read from USB gadget state + wired supply and shown as a dedicated AC / USB / Wireless / None field. CameraX bumped 1.3.4 → 1.4.1 for the 16KB native alignment Play now enforces on Android 15+.
- VIBRATE permission + USAGE_ALARM on Xiaomi HyperOS
- Edge-to-edge safe insets on target-SDK 36
- Real power source: AC / USB / Wireless / None
- CameraX 1.4.1 — 16KB page-aligned for Android 15+