PROJECT / 01 / README LINKED NODE / PROCESSLENS STATUS / SHIPPED
processlens
A process observatory for Android that refuses to make things up — live processes, threads, CPU, memory, wake locks, network and battery, recorded into an investigation you can scrub back through.
Project documentation
root@dream:~# fetch processlens/README.md --background
DOCUMENT CHANNEL OPEN / PAGE INTERFACE READYThe idea
Every system monitor on Android runs into the same wall. Since Android 7 an app can no longer read /proc for processes it does not own, and each release since has closed more of what was left. Most apps respond by guessing. ProcessLens does not — a value it cannot source, it does not show.
Architecture
Everything observable is expressed as Observed<T>, a sealed interface that makes provenance part of the type. A reading is Live, Derived, Elevated or Unavailable, and the UI cannot render one without stating which it got. SystemObserver resolves each capability through three tiers in order — public API, then Shizuku/ADB elevation, then root — and reports the tier that actually answered.
sealed interface Observed<out T> {
data class Live<T>(val value: T, val at: Long) : Observed<T>
data class Derived<T>(val value: T, val from: String) : Observed<T>
data class Elevated<T>(val value: T, val tier: Tier) : Observed<T>
data object Unavailable : Observed<Nothing>
}
Scope
- 19 feature screens covering 37 capabilities across 9 capability groups.
- Recorded investigations — scrub back through a captured window rather than watching live only.
- No INTERNET permission is declared, so nothing can leave the device.
- 396 unit tests passing, focused on the observation and provenance layer.
- KOTLIN
- 2.0.21
- UI
- JETPACK COMPOSE / MATERIAL 3
- DI
- HILT + KSP
- TESTS
- 396 PASSING