1 puan yazan coderred 2026-04-09 | Henüz yorum yok. | WhatsApp'ta paylaş

Merhaba.

Android'de Ubuntu arm64 kullanıcı alanını çalıştıran bir proje üzerinde çalışırken, en büyük darboğazın yine proot'un ptrace ek yükü olduğunu gördüm. Özellikle Node.js veya Chromium gibi iş yüklerinde, her syscall için oluşan context switch maliyeti oldukça belirgin hissediliyordu.

Bu yüzden, proot'a benzer bir yaklaşımı olan ama ptrace olmadan çalışan proroot üzerinde çalışıyorum. Amaç, root gerektirmeden yol dönüşümü ve çalıştırma ortamı izolasyonu sağlarken, syscall interception işlemlerini süreç içinde ele alarak ek yükü azaltmak.

Şu anda bunu LD_PRELOAD ile ikili dosya patching'ini birleştiren bir yöntemle uyguluyorum ve arm64 ortamında aşağıdaki bileşenleri test ettim.

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

Uygulama kabaca şu şekilde çalışıyor.

  • glibc işlevleri (openat, stat, execve, dlopen vb.) için PLT interception
  • Yükleme anında ELF taraması yapıp syscall noktalarını trampoline çağrısı olacak şekilde patch etme
  • Android seccomp tuhaflıkları ve Chrome uyumluluğu için signal handler iyileştirmeleri

Kullanım biçimini proot'a mümkün olduğunca benzer tuttum; bu yüzden şu anda -r, -w, --link2symlink gibi CLI bayraklarını aynen kullanabiliyor.

Henüz yalnızca arm64'e özel ve tüm kaynak kodu açmadan önce biraz daha test ve stabilizasyon gerekiyor; bu nedenle bir süre daha sadece ikili dosya biçiminde dağıtıyorum. Yarı düzenlenmemiş kodu önce yayımlamaktansa, gerçek iş yüklerinde uyumluluk ve kararlılığı biraz daha doğrulayıp düzenledikten sonra paylaşmanın daha iyi olacağına karar verdim.

Android'de proot performansı nedeniyle benzer dertleri yaşamış olan varsa, görüş veya geri bildirimlerinizi duymak isterim.

Henüz yorum yok.

Henüz yorum yok.