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?
Angenommen, ich habe einen Hauptbenutzer, Foo, mit einem Google-Konto [email protected]. Ich erstelle dann die Benutzerleiste mit dem Konto [email protected]. 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. [email protected]? 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 ?
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?
Ich habe ein Nexus 5X mit Android 6.0.1.
Antworten:
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.
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).
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.
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.
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.
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:
Es gibt immer noch Funktionen, die meiner Meinung nach fehlen, zum Beispiel gibt es keine richtige Möglichkeit für einen Benutzer , sich abzumelden .
quelle
Die beiden Konten sollten sowohl hinsichtlich der Daten als auch hinsichtlich der Berechtigungen getrennt sein.
Von Ars Technica :
Und aus dem Android Developer Guide :
quelle