1 points par coderred 2026-04-09 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Bonjour.

En travaillant sur un projet qui exécute un espace utilisateur Ubuntu arm64 sur Android, le principal goulot d’étranglement était, sans surprise, le surcoût de ptrace dans proot. En particulier, sur des charges de travail comme Node.js ou Chromium, le coût des changements de contexte à chaque syscall se faisait fortement sentir.

J’essaie donc de créer proroot, qui suit une direction proche de proot mais fonctionne sans ptrace. L’objectif est de fournir, sans accès root, la traduction de chemins et l’isolation de l’environnement d’exécution, tout en traitant l’interception des syscalls à l’intérieur du processus afin de réduire le surcoût.

Pour le moment, l’implémentation combine LD_PRELOAD et du patching binaire, et j’ai testé les éléments ci-dessous dans un environnement arm64.

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

L’implémentation fonctionne globalement de la manière suivante.

  • interception PLT des fonctions glibc (openat, stat, execve, dlopen, etc.)
  • scan ELF au chargement puis patch des points de syscall en appels trampoline
  • ajustements du gestionnaire de signaux pour les particularités seccomp d’Android et la compatibilité avec Chrome

L’usage a été rendu aussi proche que possible de proot, si bien qu’il est actuellement possible d’utiliser tels quels des flags CLI comme -r, -w et --link2symlink.

Pour l’instant, c’est réservé à arm64, et avant de publier l’ensemble des sources, il faut encore un peu plus de tests et de stabilisation ; la distribution se fait donc provisoirement uniquement sous forme binaire. J’ai jugé préférable de valider davantage la compatibilité et la stabilité sur de vraies charges de travail avant de nettoyer puis publier le code, plutôt que de rendre public trop tôt un code encore à moitié désorganisé.

Si certains d’entre vous se sont déjà posé les mêmes questions à cause des performances de proot sur Android, je serais ravi d’avoir vos avis ou retours.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.