1 Punkte von coderred 2026-04-09 | Noch keine Kommentare. | Auf WhatsApp teilen

Hallo.

Während ich an einem Projekt gearbeitet habe, bei dem ein Ubuntu-arm64-Userspace auf Android betrieben wird, war der größte Flaschenhals erwartungsgemäß der ptrace-Overhead von proot. Besonders bei Workloads wie Node.js oder Chromium machte sich die durch jeden Syscall entstehende Context-Switch-Kosten deutlich bemerkbar.

Deshalb entwickle ich mit proroot etwas, das eine ähnliche Zielsetzung wie proot hat, aber ohne ptrace arbeitet. Das Ziel ist, ohne Root Pfadumsetzung und Isolierung der Ausführungsumgebung bereitzustellen und dabei die Syscall-Interception innerhalb des Prozesses zu verarbeiten, um den Overhead zu reduzieren.

Aktuell ist es als Kombination aus LD_PRELOAD und Binary-Patching umgesetzt, und in einer arm64-Umgebung habe ich die folgenden Punkte getestet.

  • Node.js 24 / npm
  • Python 3.12
  • Git 2.43
  • curl, jq, OpenSSL
  • Chromium headless_shell 131 (Playwright)

Die Implementierung funktioniert grob nach folgendem Prinzip.

  • PLT-Interception für glibc-Funktionen (openat, stat, execve, dlopen usw.)
  • Scannen von ELF-Dateien beim Laden und anschließendes Patchen der Syscall-Stellen auf Trampoline-Aufrufe
  • Ergänzungen am Signal-Handler für Android-seccomp-Eigenheiten und Chrome-Kompatibilität

Die Nutzung ist so weit wie möglich an proot angelehnt, daher können derzeit CLI-Flags wie -r, -w und --link2symlink unverändert verwendet werden.

Noch ist es ausschließlich für arm64 gedacht, und vor der vollständigen Veröffentlichung des Sourcecodes sind noch etwas mehr Tests und Stabilisierung nötig, daher verteile ich es vorerst nur in Binärform. Statt halbfertig aufgeräumten Code vorab zu veröffentlichen, halte ich es für besser, Kompatibilität und Stabilität zunächst mit realen Workloads weiter zu verifizieren und es danach aufbereitet zu veröffentlichen.

Falls jemand auf Android wegen der proot-Performance ähnliche Überlegungen hatte, freue ich mich über Meinungen oder Feedback.

Noch keine Kommentare.

Noch keine Kommentare.