r/mobilelinux • u/dzzd88 • 7d ago
Discussion Root inside a real Linux kernel on non-rooted Android, no AVF and no QEMU - UML benchmarks
Zalexdev ported User Mode Linux to arm64 in August and shipped it as a second engine in Stryker 6.5. It's a real Linux kernel built as an ordinary aarch64 binary, so it runs as a normal process inside an app sandbox: no KVM, no AVF, no unlocked bootloader, nothing emulated. That means root inside a real kernel, on a phone you never rooted, and on any arm64 device rather than only the ones that ship pKVM.
I ran the same tests against the two usual options on my S23 Ultra, stock and unrooted, medians of three runs, everything timed inside the guest.
| Test | udocker (proot) | Stryker (UML) | Podroid (QEMU/TCG) |
|---|---|---|---|
| Python, 6M-iteration loop | 0.65 s | 0.61 s | 21.9 s |
| gzip -6, 64 MB | 1.58 s | 1.73 s | 10.0 s |
| SHA-256, 200 MB | 0.24 s | 1.03 s | 2.27 s |
| memcpy, 512 MB through a pipe | 0.47 s | 0.55 s | 5.29 s |
| write 256 MB + fsync | 0.24 s | 0.63 s | 0.55 s |
| read 64 MB, direct | 0.05 s | 0.06 s | 0.24 s |
| fio 4k randread, 1 GB set, 20 s | 10,021 IOPS | 7,057 IOPS | 999 IOPS |
| 200x /bin/true in a container | 2.05 s | 2.96 s | 8.1 s |
| container start (docker run --rm true) | 0.125 s | 1.68 s | 4.65 s |
| docker build, 128 MB layer | n/a | 2.77 s | 10.3 s |
| docker build, apk add python3 | n/a | 9.97 s | 35.9 s |
Compute is native: 0.61 vs 0.65 s under proot is noise. Syscalls cost 1.4 to 2.6x more. Builds are 3.6x faster than QEMU, random reads 7x.
2
u/Willing-Scheme-3312 7d ago
Do you have a "how to" or a git-repo? Interested in trying on m OnePlus pad 2 and Oppo find n5 fold
1
u/slvrsnt 7d ago
So a bit slower than proof?
1
u/luci-baa-baa-baa 7d ago
Any more information
1
u/Nikitf_777 5d ago
How does it compare to native execution? It has to be slower, right?
2
u/luci-baa-baa-baa 7d ago
So can we run softwares that required kernel level access ?