One phone. A month of operating it.
A retired phone,
run like a server.
PocketFabric is an experiment in using a rooted Android phone as personal computing infrastructure. The hard parts were service control, recovery, isolation and getting the GPU result right.
OnePlus 9
including the pre-study
6 refused or interrupted
recorded in the study
Historical observations through 29 October 2026. This page is an illustrated account of that work, not a live status page. Research §§3–4 ↗
01 / The record
Getting it to run was the beginning.
A terminal experiment grew into a host for web applications and coding-agent sessions. Select a point to see what changed.
10 October
Move into chroot
Debian 13 was built beside the old installation. Services moved in stages, with the old userland retained for rollback. Magisk started the supervisor at boot. A mount cleanup incident required a reboot.
Research §§5.2–5.3 · migration and incident ↗02 / The migration
Change the userland. Keep a way back.
PRoot ran a Linux userland through system-call translation. With root access, chroot gave it a different filesystem root while still sharing Android’s kernel. The move happened in stages on 10 October.
PRoot / Termux
The earlier installation
- Verb
- LanguageOps
- AdGuard
- cloudflared
- SSH
Debian chroot
Magisk → runit → services
Build and check first
Keep a rollback
Archive the node state and build Debian 13 beside the existing PRoot installation. The old service environment stays available.
Research §5.2 ↗Binary replacement
Write, then rename.
Copying over the running binary caused SIGBUS crashes. Replacing it through a new file and rename avoided that failure.
Supervision
Check the process that matters.
The PRoot wrapper and the real service process needed different handling. A successful wrapper command did not prove that a restart had replaced the service.
03 / The failure
A copy of /dev was still connected.
A chroot does not automatically isolate mount operations. This cleanup reached Android’s own device mounts. Step through the incident.
Bind the device tree
A test bound /dev into the chroot. The mount copies remained in a shared propagation group.
Research §5.3 ↗04 / The boundary
The kernel set the ceiling.
This vendor build lacked user and PID namespaces. Separate Linux accounts and controlled launch paths supplied a limited boundary; the public deployment did not have per-session container isolation.
Application server
Private state and the public service
Terminal sessions
Tools, launch limits and resource budgets
Power policy
The process lived. Its network did not.
Android’s Doze policy blocked network access for Linux accounts used by the candidate agent boundary. Service health needed to include reachability and recovery.
Research §5.3 ↗Idle cost
A missing interface had a CPU bill.
The vendor build omitted a procfs child-process interface. The original supervisor consumed 0.44 CPU cores per idle terminal until its process tracking was redesigned.
Research §5.4 ↗05 / The GPU
Compute worked. The defaults failed the test.
The Adreno 660 ran Vulkan compute through Turnip. Exact integer addition passed. Embedding output needed a separate comparison against fixed numerical criteria.
Change the precision path
F16 means 16-bit floating point. Compare the GPU results against the same cosine threshold.
Choose what the clock counts
The GPU’s compute counter was lower. Starting a fresh process changed the result.
06 / The reports
Read the evidence and the loose ends.
The research report explains the experiments. The validation report checks a specific release and records what remained unresolved.
What this establishes
A single-device study with a pre-study on a second phone. Raw operational logs are private; the public supplements support the reported figures and ledger. The work does not establish long-term availability, energy savings or results across other devices.
The 31 October validation includes failed checks and open findings. Local console fixes had separate test evidence and were not certified as deployed. The latest state belongs in that report, rather than in a green status illustration here. Validation report ↗
Personal work by Shailesh Rawat, self-funded, with no external funding or endorsement. The reports disclose substantial AI assistance. Both are CC BY 4.0 preprints and have not undergone journal peer review.
Adapted from the author’s interactive PocketFabric account. The separate meaning-similarity experiment is outside these two reports and is not presented as a result here.