Google hat sowohl die Mehrbenutzerfunktion selbst als auch die zugehörige API dokumentiert , die zeigt, was eine Anwendung damit tun kann.
Hinter den Kulissen basiert die Mehrbenutzerfunktion auf dem mehrstufigen SELinux-System (MLS, auch bekannt als Multi-Categories), bei dem jeder Benutzer seiner eigenen SELinux-Kategorie zugeordnet ist (siehe NSA-Präsentation SELinux in Android Lollilop und Marshmallow als Referenz Folien 13 und 14). Dies bietet eine sehr robuste und zuverlässige Trennung zwischen Benutzern, die auf Kernel-Ebene von Android erzwungen und daher kaum umgangen werden kann.
In diesem Schema gibt es öffentliche und private Ressourcen. Öffentliche Ressourcen werden von allen Benutzern gemeinsam genutzt, während private Ressourcen das eigene Privateigentum jedes Benutzers sind und von anderen Benutzern nicht aufgerufen werden können.
- Zu den öffentlichen Ressourcen gehören hauptsächlich installierte Anwendungen und die globale Telefonkonfiguration. Beachten Sie, dass Sie die Verwendung des Geräts durch sekundäre Benutzer einschränken können. Beispielsweise kann verhindert werden, dass sekundäre Benutzer einen Anruf weiterleiten.
- Private Ressourcen umfassen hauptsächlich die Einstellungen des lokalen Benutzers, die lokale Anwendung und die Benutzerdaten.
Lassen Sie uns nun sehen, was die konkreten Konsequenzen dieser Aussagen sind (ich verwende Ihre Konvention von Benutzer Foo als primärem Benutzer und Benutzerleiste als sekundär).
Wenn ich einen sekundären Benutzer erstelle und eine App installiere, während ich das Telefon als dieser Benutzer verwende, werden die Berechtigungen für diese App für den primären Benutzer übertragen?
Installierte Anwendungen werden als öffentliche Ressourcen betrachtet. Wenn die Benutzerleiste eine Anwendung installiert, ist dieselbe Anwendung auch für Benutzer Foo verfügbar, selbst wenn der Benutzer Foo die angeforderten Berechtigungen der Anwendung nie explizit akzeptiert hat.
Die Benutzerleiste hat jedoch keine Möglichkeit, die Anwendung in das Profil von Foo auszuführen, und sie hat auch keinen Zugriff auf die privaten Daten von Foo. Darüber hinaus können sowohl Foo als auch Bar die Anwendung ausführen, außer im Fall einer stark fehlerhaften oder geradezu böswilligen Anwendung (dh einer Anwendung, die private Daten an einen gemeinsam genutzten Speicherort kopieren würde). Die privaten Daten von Foo und Bar bleiben sicher (sie können) Verwenden Sie es sogar gleichzeitig, wenn die Anwendung es unterstützt. Wenn dies nicht der Fall ist, wird es einfach nicht gestartet oder stürzt ab.
Angenommen, ich habe einen Hauptbenutzer, Foo, mit einem Google-Konto foo@gmail.com. Ich erstelle dann die Benutzerleiste mit dem Konto bar@gmail.com. Während ich das Telefon als Leiste verwende, installiere ich eine App mit der Berechtigung "Konten auf dem Gerät suchen".
Ermöglicht dies der App, die Konten anzuzeigen, die ich beim primären Konto registriert habe, z. B. foo@gmail.com?
Ich möchte nur warnen, dass die Berechtigung "Konten auf dem Gerät suchen" nicht mit der Mehrbenutzerfunktion verwechselt wird, die nichts damit zu tun hat . Jeder Benutzer verfügt über eine eigene Liste von Konten, die als private Informationen betrachtet und daher nicht an Benutzer anderer Geräte weitergegeben werden.
Wenn Bar die Anwendung ausführt, sind nur die Konten von Bar verfügbar, während bei der Ausführung von Foo nur die Konten von Foo verfügbar sind.
Wird es überhaupt in der Lage sein, den Hauptbenutzer zu finden, oder gibt es harte Grenzen zwischen den "Arbeitsbereichen" des Benutzers (mangels eines besseren Begriffs), und soweit die App dies erkennen kann, gibt es nur Bar und seine registrierten Konten auf dem Gerät ?
Die Benutzerliste scheint als öffentliche Information zu gelten, höchstwahrscheinlich als welthistorische Unix-Vererbung, da ich keinen technischen Grund dafür sehe. Persönlich hätte ich mich gefreut, wenn dies nicht der Fall wäre (dh Benutzer eher als transparente Sandboxen als Standard-Unix-Benutzer, zumindest solange Anwendungen keine spezielle Berechtigung erhalten).
Auf der Android API-Dokumentationsseite, die am Anfang dieses Beitrags verlinkt ist, sind die Methoden aufgeführt, mit denen eine Anwendung Informationen über aktuelle und andere Benutzer sammeln kann. Die meisten von ihnen scheinen keine spezielle Erlaubnis zu benötigen.
Ich beschäftige mich im Allgemeinen nur mit Apps, die Informationen zu meinen persönlichen Daten, Kontakten, E-Mails usw. erhalten, und möchte für jede App, die ich in dieser Hinsicht als feindlich betrachte, ein "Dummy" -Konto verwenden. Würde das funktionieren?
Ja, ich denke sogar, dass dies eine sehr gute Idee sein kann. Stellen Sie sicher, dass Sie sich beim Starten in Ihrem Dummy-Konto befinden, da dieselbe Anwendung möglicherweise auch für Ihren Hauptbenutzer verfügbar ist.
Hinweise zur Benutzerfreundlichkeit:
Die Mehrbenutzerfunktion in Android-Systemen scheint noch sehr jung und nicht sehr ausgereift zu sein. Dies bedeutet, dass sich Änderungen zwischen der Android-Version und Kompatibilitätsproblemen auswirken.
Zum Beispiel:
- Benutzertypen und Berechtigungsbehandlung: Wie der primäre Benutzer und / oder eine zentrale Unternehmensverwaltungsplattform für Unternehmen die Rechte von sekundären / eingeschränkten / Profil- / Gastbenutzern in Bezug auf Funktionen und Anwendungen definieren oder einschränken können, die sie möglicherweise verwenden oder installieren, unterliegt starken Änderungen zwischen Android Versionen und zugrunde liegende Geräte (während Android noch ausgeführt wird, bieten Tablets möglicherweise andere Optionen als Mobiltelefone).
- Gleiches gilt auch für die Art und Weise, wie Anwendungsinstallation, Berechtigungsanforderungen, Anwendungsfreigabe und Deinstallation verarbeitet werden (sie sind möglicherweise direkt verfügbar, werden möglicherweise angezeigt, sind jedoch als "Für diesen Benutzer nicht installiert" gekennzeichnet und werden möglicherweise noch nicht angezeigt, während sie noch verlassen werden die APK verfügbar usw.).
- Einige Funktionen können zwischen dem fehlerhaften und dem festen Status zwischen den Versionen wechseln (die Einstellung "Unbekannte Quellen zulassen" für sekundäre Benutzer war Berichten zufolge für 5.0 nicht verfügbar, behoben in 5.1, fehlerhaft in 6.0, erneut behoben in 6.0.1).
- Einige Anwendungen funktionieren möglicherweise nicht, wenn Sie einen sekundären Benutzer verwenden ( z. B. F-Droid ).
Es gibt immer noch Funktionen, die meiner Meinung nach fehlen, zum Beispiel gibt es keine richtige Möglichkeit für einen Benutzer , sich abzumelden .