PRoot is a user-space implementation of chroot, mount --bind, and binfmt_misc
zuletzt bearbeitet: Sun, 31 Oct 2021 04:09:13 +0000
How does UserLAnd App work, how was this solution realized? german: Wie funktioniert UserLAnd App, wie wurde diese Lösung realsiert?
Artikel ansehen
Zusammenfassung ansehen
How does UserLAnd App work, how was this solution realized?
german: Wie funktioniert UserLAnd App, wie wurde diese Lösung realsiert?
PRoot ist eine User-Space-Implementierung von chroot , mount --bind und binfmt_misc . Dies bedeutet, dass Benutzer keine Berechtigungen oder Einstellungen benötigen, um beispielsweise ein beliebiges Verzeichnis als neues Root-Dateisystem zu verwenden, Dateien an anderer Stelle in der Dateisystemhierarchie zugänglich zu machen oder Programme transparent auszuführen, die für eine andere CPU-Architektur erstellt wurden, über den QEMU-Benutzermodus . Außerdem können Entwickler PROot dank seines Erweiterungsmechanismus als generische Linux-Prozessinstrumentierungs-Engine verwenden, siehe CARE für ein Beispiel. Technisch basiert PROot auf ptrace , einem unprivilegierten Systemaufruf, der in jedem Linux-Kernel verfügbar ist.
Wie der Tooltip vermuten lässt, handelt es sich um eine Android-App, mit der Benutzer ein grundlegendes Linux-System installieren können, ohne dass „root“ erforderlich ist. Daher mountet es das scheinbare, lokale Linux-Dateisystem mit
[...]
Eine der Möglichkeiten, auf die UserLAnd die Dinge anders macht als 'echtes Linux', besteht darin, dass UserLAnd mehrere Bibliotheken überschreibt , mit Bibliotheken, die über Android bereitgestellt und schreibgeschützt in das Gastsystem eingehängt werden. Diese Bibliotheken stellen manchmal keine Symbole bereit, die die echten Linux-Bibliotheken bieten, sondern nur, weil die überlagerten Bibliotheken zuerst verlinkt werden.
[...]
Was UserLANd tut, ist den Benutzernamen, der mit der numerischen Form seiner eigenen Benutzerkennung verbunden ist, zu korrigieren, so dass zumindest dieser als etwas erkennbar gedruckt wird.
Der Benutzer soll den einen freigegebenen Ordner verwenden, den ich in meinen Screenshots gezeigt habe, der unter Linux folgenden Pfadnamen hat:
Es wird dem folgenden Ordner unter Android zugeordnet:
[...]
Android versucht, durchzusetzen, dass jede App eine eigene Benutzer-ID haben soll, was ein wichtiger Unterschied zwischen Android und Linux ist. Daher erhält die App, die Sie verwenden, um auf UserLANd-Daten zuzugreifen, möglicherweise eine andere Benutzer-ID als UserLANd und kann nicht auf die Daten zugreifen.
Ich hatte schon immer das Glück, dass Android diese Datei-Eigentümer-Probleme manchmal im Hintergrund behebt, nachdem ich UserLANd für einen Tag oder so nicht mehr benutzt habe.
Below the original English text from the sources [1] and [2] is placed in each case with deepl.com created translation in German.
Unter dem englischen Originaltext aus den Quellen [1] und [2] ist jeweils mit deepl.com erstellte Übersetzung in Deutsch platziert.
= Weiterführende Quellen =
[1] https://proot-me.github.io
[2] Revisiting the Android, UserLAnd app - https://dirkmittler.homeip.net/blog/archives/9434
[3] What are the differences between Termux, PRoot, Userland, Linux Deploy, AnLinux and Alpine? 26.04.2020 - https://superuser.com/questions/1546024/what-are-the-differences-between-termux-proot-userland-linux-deploy-anlinux
[4] "UserLAnd: verwendet Proot" - https://wiki.debian.org/ChrootOnAndroid
[5] GNURoot vs UserLAnd detailed comparison as of 2021 - https://www.slant.co/versus/17405/30338/~gnuroot_vs_userland
[6] Chroot - https://de.wikipedia.org/wiki/Chroot
[7] Waydroid, 10.10.2021 - https://realtime.fyi/hq/b64.aHR0cHM6Ly9zb2NpYWwuYy1yLXQudGsvaXRlbS9lNTc0MjU3NS04NWFhLTRkOWYtOWRmZi0wNGNmZTg3NmYzOTk
#PRoot #chroot #bind #bindLinux #userspace #UserLand #mount #binfmtmisc #binfmt #ptrace #systemcall #systeminterrupt #systembreak #Kernel #LinuxKernel #dirkmittler #chroot #sandbox #Waydroid #Termux
german: Wie funktioniert UserLAnd App, wie wurde diese Lösung realsiert?
PRoot is a user-space implementation of chroot, mount --bind, and binfmt_misc. This means that users don't need any privileges or setup to do things like using an arbitrary directory as the new root filesystem, making files accessible somewhere else in the filesystem hierarchy, or executing programs built for another CPU architecture transparently through QEMU user-mode. Also, developers can use PRoot as a generic Linux process instrumentation engine thanks to its extension mechanism, see CARE for an example. Technically PRoot relies on ptrace, an unprivileged system-call available in every Linux kernel.more / Weiter lesen --> https://proot-me.github.io/
PRoot ist eine User-Space-Implementierung von chroot , mount --bind und binfmt_misc . Dies bedeutet, dass Benutzer keine Berechtigungen oder Einstellungen benötigen, um beispielsweise ein beliebiges Verzeichnis als neues Root-Dateisystem zu verwenden, Dateien an anderer Stelle in der Dateisystemhierarchie zugänglich zu machen oder Programme transparent auszuführen, die für eine andere CPU-Architektur erstellt wurden, über den QEMU-Benutzermodus . Außerdem können Entwickler PROot dank seines Erweiterungsmechanismus als generische Linux-Prozessinstrumentierungs-Engine verwenden, siehe CARE für ein Beispiel. Technisch basiert PROot auf ptrace , einem unprivilegierten Systemaufruf, der in jedem Linux-Kernel verfügbar ist.
As the tooltip suggests, this is an Android app that will allow people to install a basic Linux system, without requiring ‘root’. Therefore, it mounts the apparent, local Linux file system with ‘proot’ – which is similar in how it works to ‘chroot’, except that ‘proot’ does not require root by the host system to set up – and any attempts to obtain root within this Linux system really fail to change the userid, of the app that the files belong to, or of the processes running. Yet, becoming root within this sandboxed version of Linux will convince Linux, for the purpose of installing or removing packages via ‘apt-get’.[...]
One of the ways in which UserLAnd does things differently from how ‘real Linux’ does them, is that UserLAnd overrides several libraries, with libraries that are supplied via Android, and which are mounted into the Guest System in a read-only way. These libraries sometimes fail to provide symbols, that the real Linux libraries do provide, but just because the overlaid libraries are linked to first.[...]
What UserLANd will do, is to fix the username, that is associated with the numerical form of its own userid, so that at least that will print as something recognizable.[...]
The user is supposed to use the one shared folder which I showed in my screen-shots, that has the following path-name under Linux:/storage/internal
It will map to the following folder under Android:root > sdcard > Android > data > tech.ula > files > storage
Android trying to enforce, that each app is supposed to have its own userid, which is one key way in which Android differs from Linux. Hence, the app that you’re using to try to access UserLANd data, may be given a different uiserid from UserLANd, and unable to access the data.Revisiting the Android, UserLAnd app - https://dirkmittler.homeip.net/blog/archives/9434
I have always had the fortune, that Android would sometimes fix these file-ownership issues in the background, after I was no longer using UserLANd for a day or so.
Wie der Tooltip vermuten lässt, handelt es sich um eine Android-App, mit der Benutzer ein grundlegendes Linux-System installieren können, ohne dass „root“ erforderlich ist. Daher mountet es das scheinbare, lokale Linux-Dateisystem mit
'proot'
– das in seiner Funktionsweise ähnlich wie 'chroot' ist, außer dass 'proot' kein Root durch das Hostsystem erfordert, um es einzurichten – und alle Versuche, es zu erhalten root innerhalb dieses Linux-Systems kann wirklich nicht die Benutzer-ID, der App, zu der die Dateien gehören, oder der laufenden Prozesse ändern. Dennoch wird es Linux überzeugen, in dieser Sandbox-Version von Linux Root zu werden, um Pakete über 'apt-get' zu installieren oder zu entfernen.[...]
Eine der Möglichkeiten, auf die UserLAnd die Dinge anders macht als 'echtes Linux', besteht darin, dass UserLAnd mehrere Bibliotheken überschreibt , mit Bibliotheken, die über Android bereitgestellt und schreibgeschützt in das Gastsystem eingehängt werden. Diese Bibliotheken stellen manchmal keine Symbole bereit, die die echten Linux-Bibliotheken bieten, sondern nur, weil die überlagerten Bibliotheken zuerst verlinkt werden.
[...]
Was UserLANd tut, ist den Benutzernamen, der mit der numerischen Form seiner eigenen Benutzerkennung verbunden ist, zu korrigieren, so dass zumindest dieser als etwas erkennbar gedruckt wird.
Der Benutzer soll den einen freigegebenen Ordner verwenden, den ich in meinen Screenshots gezeigt habe, der unter Linux folgenden Pfadnamen hat:
/storage/internal
Es wird dem folgenden Ordner unter Android zugeordnet:
root > sdcard > Android > data > tech.ula > files > storage
[...]
Android versucht, durchzusetzen, dass jede App eine eigene Benutzer-ID haben soll, was ein wichtiger Unterschied zwischen Android und Linux ist. Daher erhält die App, die Sie verwenden, um auf UserLANd-Daten zuzugreifen, möglicherweise eine andere Benutzer-ID als UserLANd und kann nicht auf die Daten zugreifen.
Ich hatte schon immer das Glück, dass Android diese Datei-Eigentümer-Probleme manchmal im Hintergrund behebt, nachdem ich UserLANd für einen Tag oder so nicht mehr benutzt habe.
Below the original English text from the sources [1] and [2] is placed in each case with deepl.com created translation in German.
Unter dem englischen Originaltext aus den Quellen [1] und [2] ist jeweils mit deepl.com erstellte Übersetzung in Deutsch platziert.
= Weiterführende Quellen =
[1] https://proot-me.github.io
[2] Revisiting the Android, UserLAnd app - https://dirkmittler.homeip.net/blog/archives/9434
[3] What are the differences between Termux, PRoot, Userland, Linux Deploy, AnLinux and Alpine? 26.04.2020 - https://superuser.com/questions/1546024/what-are-the-differences-between-termux-proot-userland-linux-deploy-anlinux
[4] "UserLAnd: verwendet Proot" - https://wiki.debian.org/ChrootOnAndroid
[5] GNURoot vs UserLAnd detailed comparison as of 2021 - https://www.slant.co/versus/17405/30338/~gnuroot_vs_userland
[6] Chroot - https://de.wikipedia.org/wiki/Chroot
[7] Waydroid, 10.10.2021 - https://realtime.fyi/hq/b64.aHR0cHM6Ly9zb2NpYWwuYy1yLXQudGsvaXRlbS9lNTc0MjU3NS04NWFhLTRkOWYtOWRmZi0wNGNmZTg3NmYzOTk
#PRoot #chroot #bind #bindLinux #userspace #UserLand #mount #binfmtmisc #binfmt #ptrace #systemcall #systeminterrupt #systembreak #Kernel #LinuxKernel #dirkmittler #chroot #sandbox #Waydroid #Termux