Android 6+ und Kontoberechtigungen: Wohin sind sie gegangen?

7

Ich habe gerade die Liste der Android-Entwicklerberechtigungen durchsucht und festgestellt, dass die meisten Kontoberechtigungen nicht mehr vorhanden sind - tatsächlich alles andere GET_ACCOUNTSals so , wie es scheint. Was bedeutet das, welche Auswirkungen hat es auf den Endbenutzer - und was wurde sonst noch durcheinander gebracht (abgesehen davon, dass es praktisch keine INTERNETErlaubnis mehr gibt)?

Wie üblich habe ich mein bestes Google-Fu ausprobiert, aber keine Antworten gefunden. Stattdessen einige unbeantwortete Fragen, die dasselbe stellen. Ich kann es nicht besser ausdrücken als diese :

Marshmallow hat mehrere Kontoberechtigungen gelöscht, einschließlich MANAGE_ACCOUNTS und USE_CREDENTIALS, aber GET_ACCOUNTS beibehalten. Ich habe jedoch nicht viel Dokumentation darüber gesehen, was dies für den Benutzer in der Praxis bedeutet. Ich gehe davon aus, dass die App, die ein Konto erstellt, es automatisch verwenden / verwalten kann. Wenn sich eine Drittanbieter-App jedoch mit einem Google / Facebook / etc-Konto anmelden möchte, das sie nicht erstellt hat:

  • Muss es immer noch meine Interaktion / Genehmigung anfordern, wenn jedes Konto zum ersten Mal aufgerufen / verwendet wird, oder kann es meine Konten jetzt einfach automatisch verwenden?
  • Kann die App mich trotzdem auffordern, mich mit einem Konto von meinem Nexus aus anzumelden, wenn ich die Berechtigung GET_ACCOUNTS verweigere? Oder muss ich der App die Berechtigung erteilen, alle meine Konten anzuzeigen, damit sie eines davon verwenden kann?

Außerdem: Wenn der Zugriff auf Konten noch geschützt ist (was ich hoffe!) - welche Berechtigung schützt ihn jetzt?


Verwandte Fragen (deren Antworten möglicherweise jetzt aktualisiert werden müssen):


Zusammenfassung der in den (bereinigten) Kommentaren gesammelten Informationen

Die folgenden Details wurden in den Kommentaren erwähnt. Sie beantworten meine Frage nicht, geben aber wertvolle Hinweise - weshalb ich sie in meine Frage einbeziehe (Credits an ihre Autoren):

  • "Es gibt praktisch keine INTERNETErlaubnis": Es ist immer noch da, wird aber automatisch jeder App gewährt. Keine Möglichkeit, es mit integrierten Tools / Einstellungen zu widerrufen. Aus welchem ​​Grund habe ich in Android 6 einen Link erstellt, um einer App die Berechtigung zum Zugriff auf das Netzwerk zu verweigern? über. Warum ist das wichtig? Siehe unten.
  • Dan Brown weist darauf hin, dass der Zugriff auf Konten jetzt an eine _CONTACTSErlaubnis gebunden ist . Wenn Sie eine App verwenden, um sich mit Google anzumelden, wird Folgendes angezeigt: "X darf auf Ihre Kontakte zugreifen?" Es ist nicht klar, ob Sie nur Lesezugriff (schlecht genug) oder sogar Schreibzugriff gewähren. Jetzt erhält sogar eine Cloud-Speicher-App (wie Dropbox, Mega usw.) Zugriff auf Ihre Kontakte - weshalb das Gewähren immer zu einem Albtraum für die Privatsphäre wird. Da es jetzt offensichtlich ist, dass dieser Teil der Kontoberechtigungen an Kontakte ging (ein großes Lob an Dan für den Zeiger!), Würde ich wirklich gerne einige Details dazu lesen: Wie wurde es geändert, warum wurde es geändert, was sind die Auswirkungen, Wie man damit umgeht. Aktualisieren:
    Kontaktzugriff
    INTERNET

    Da für die neueste Version der SE-App kein Zugriff mehr auf Kontakte erforderlich ist, hat Dan eine spezielle Frage zu dieser App in der Haupt-Meta erstellt, die möglicherweise überprüft werden sollte: Wie funktioniert das neue Anmeldesystem für die Android-App? Kurz gesagt, sie verwenden eine neue Version des "Google Sign In SDK", für die kein Kontaktzugriff mehr erforderlich ist. Da dies nur die Google-Anmeldung betrifft, wird meine Frage jedoch nicht beantwortet.
  • Dan wies auch darauf hin, dass Apps ihre eigenen Account Manager verwenden. Das war schon vor MM der Fall - und der Grund, warum es die MANAGE_ACCOUNTSErlaubnis gab (siehe oben): Sie haben ihren Dienst bei Android registriert, damit andere Apps ihn nutzen können.
  • Wie ich bereits mit meiner Frage erwähnt habe, GET_ACCOUNTSist dies die einzige überlebende Kontoerlaubnis. Es war bereits vor MM erforderlich und dient wahrscheinlich immer noch demselben Zweck: Um ein Konto verwenden zu können, muss unsere App zunächst wissen, dass es vorhanden ist. Daher muss zunächst eine Liste der verfügbaren Konten abgerufen werden. Wenn sich diesbezüglich etwas geändert hat, fügen Sie es bitte Ihren Antworten bei.
Izzy
quelle
1
@DeathMaskSalesman GET_ACCOUNTSwurde bereits zuvor benötigt (um auf ein Konto zuzugreifen, müssen Sie es zuerst finden). Aber jetzt, wie Dan Brown richtig betont hat, benötigt eine App die _CONTACTSErlaubnis (LESEN? SCHREIBEN?), Um ein Konto zu verwenden - wodurch meine Haare zu Berge stehen. Wenn die Leute immer noch mit den neuesten Android-Versionen streiten, wurde der Root-Zugriff immer veralteter, dies allein ist ein klares Gegenargument. Ich werde MM + definitiv nicht auf einem Gerät verwenden, das nicht gerootet ist, da der Schutz über Xprivacy & Co jetzt noch obligatorischer wird.
Izzy
1
@ Izzy Ich verstehe, ich verstehe. Das Lesen nach meinem letzten Rollback auf 5.1.1 macht meine Entscheidung nur fester.
Grimoire
Hinweis: Ein Teil der Kontenfrage wird hier inzwischen von Dan Browns Antwort abgedeckt .
Izzy

Antworten:

0

Die "gefährlichen" Berechtigungen sind in Tabelle 1 auf dieser Berechtigungsseite aufgeführt . Es gibt auch "normale" Berechtigungen, die hier aufgelistet sind . Normale Berechtigungen werden der App automatisch erteilt.

Die gefährlichen Berechtigungen sind in Gruppen unterteilt. Vor Android 6 zeigte der Android Store die Liste der Gruppen an (obwohl sie auch "normale" Berechtigungen enthielt), und Sie konnten entweder alle Berechtigungen herunterladen und akzeptieren oder nicht herunterladen. Mit Android 6 akzeptieren Sie die Berechtigung, wenn Sie die App ausführen, nicht, wenn Sie sie herunterladen. Anstatt einzelne Berechtigungen zu akzeptieren, akzeptieren oder verweigern Sie eine ganze Gruppe.

Wenn Sie die App ausführen und eine Berechtigung erteilen, bleibt die Berechtigung auf unbestimmte Zeit erteilt. Wenn Sie es widerrufen möchten, können Sie. Gehen Sie zu Android-Einstellungen> Apps> Ihre App> Berechtigungen. Klicken Sie dann auf den grünen Schieberegler für die Berechtigung, die Sie ändern möchten.

Was das Verhalten in der App betrifft, so ist die große Änderung aus Sicht des Entwicklers. Vor Android 6 musste die App nicht prüfen, ob eine Berechtigung erteilt wurde (alle wurden beim Herunterladen der App automatisch erteilt). Wenn der App unter Android 6 eine Berechtigung erteilt wurde, kann sie die zugehörige Aktion ausführen. Wenn nicht, stürzt es entweder ab oder, wenn der Entwickler zusätzlichen Code geschrieben hat, kann es etwas eleganteres tun.

Sie haben Bedenken hinsichtlich des Kontozugriffs. Ich bin mir nicht sicher, was ich sagen soll, außer dass die App mit Android 6 keine Kontoinformationen abrufen kann, ohne dass Sie den Zugriff auf Kontakte akzeptieren. Siehe die Tabelle.

Dies ist eine allgemeine Antwort, und Sie müssen häufig spezifischere Fragen stellen, um weitere Details zu erhalten. Hoffe das hilft.

Peri Hartman
quelle
Danke - aber meine Frage war nicht "wie das Berechtigungssystem im Allgemeinen funktioniert". Ich möchte lieber wissen, was mit Android 6 gemacht wurde, und insbesondere mit den Kontenberechtigungen. Meine Frage war ziemlich spezifisch - Ihre Antwort ist etwas allgemein gehalten. Und ja, ich habe bereits darauf hingewiesen, dass der Zugriff auf Konten jetzt offensichtlich Zugriff auf alle Kontakte erfordert (sicherlich eine Sicherheitsmaßnahme, da all diese Dinge an uns verkauft werden). "Dies ist eine allgemeine Antwort und Sie müssen viele spezifischere Fragen stellen, um weitere Details zu erhalten." ??? Nein, dies war eine bestimmte Frage, für die Sie möglicherweise bestimmte Antworten veröffentlichen müssen.
Izzy