Die Linux-Benutzer-IDs , mit denen Android Apps voneinander isoliert, stehen in keinem Zusammenhang mit Benutzerprofilen auf Android 4.2-Tablets.
In Android erhält jede App ein eigenes Verzeichnis zum Speichern von Daten. Das Linux-Benutzer-ID-System wird verwendet, um sicherzustellen, dass Apps die Daten der anderen Benutzer nicht lesen können. Alle diese Datenverzeichnisse befinden sich jedoch in einem Verzeichnis im Dateisystem /data/user/0
. Angenommen, der erste Benutzer heißt Abulurd und installiert die App Showr. Möglicherweise wird die Benutzer-ID 1004 und das Verzeichnis angegeben /data/user/0/com.shadowburst.showr
.
Angenommen, Sie erstellen ein neues Benutzerprofil für Beatrice. Sie bekommt ein neues Verzeichnis /data/user/1
, das leer beginnt. Wenn sie sich am Gerät anmeldet und Showr installiert, wird die App nicht erneut heruntergeladen (da das Android-App-Installationsprogramm weiß, dass sich die APK-Datei bereits auf dem Gerät befindet), es wird jedoch eine neue Benutzer-ID 1007 erstellt (z. B.). und ein neues Verzeichnis /data/user/1/com.shadowburst.showr
.
Android verwendet Linux-Dateisystemberechtigungen und die verschiedenen Linux-Benutzer-IDs, um nicht nur sicherzustellen, dass Abulurds Showr die Daten der anderen Apps von Abulurd nicht lesen kann, sondern auch, dass Abulurds Showr die Daten von Beatrices Showr nicht lesen kann. Die beiden Instanzen von Showr werden in unterschiedlichen Prozessen mit unterschiedlichen Benutzer-IDs ausgeführt.
Wenn Sie mit der Linux-Terminologie vertraut sind, ähnelt chroot
das Erstellen eines neuen Benutzerprofils der Verwendung auf dem Gerät, um einen isolierten Teil des Dateisystems zum Ausführen von Apps abzurufen.
Was ich beschrieben habe, ist der übliche Prozess, aber genau wie Apps geschrieben werden können, um ein Datenverzeichnis mit anderen Apps desselben Entwicklers (signiert mit demselben Schlüssel) zu teilen, bietet Android Apps die Möglichkeit, zu sagen, dass sie mit mehreren Benutzern arbeiten. Auf diese Weise kann eine App so geschrieben werden, dass sie einen Prozess für alle Benutzerprofile enthält, damit sie Daten gemeinsam nutzen oder eine spezielle Funktion ausführen können. Der Sperrbildschirm muss beispielsweise so funktionieren, weil alle Benutzerprofile eine Sperrbildschirm-App gemeinsam nutzen, die die Sperrbildschirmeinstellungen aller Benutzer lesen muss.