Frage zu Android-Laufzeitberechtigungen. AFAIK, Android gewähren gefährliche Erlaubnis zur Laufzeit. Ich setze mein Telefon zurück, dann adb pull /data/system/users/0/runtime-permissions.xml, ich fand android.ui.system hat bereits viele gefährliche Berechtigungen gewährt. kann mir jemand sagen, wie es geht?Android-Laufzeitberechtigung für System-Apps
Antwort
Der Mechanismus zum Einfügen der Runtime-Berechtigung in den Dateibestätigungsdialog /data/system/users/0/runtime-permissions.xml
für Gefährliche Berechtigungsstufe gilt für Anwendungen von Drittanbietern. Dies ist für integrierte Anwendungen nicht relevant.
Für eingebaut/Systemanwendungen und Framework-Komponenten, die alle Berechtigungen werden standardmäßig gewährt, wenn ein neuer Benutzer angelegt wird oder Gerät bootet und systemReady Ereignis wird gebrannt.
Sie können die AndroidManifest.xml von AOSP sehen, wo alle Arten von erforderlichen Berechtigungen für Systemkomponenten geschrieben werden.
Bei Apps von Drittanbietern, wenn der Benutzer Laufzeitberechtigungen erteilt, wird er in die Datei /data/system/users/0/runtime-permissions.xml hinzugefügt und entfernt, wenn Sie die Genehmigung einer Drittanbieter-App widerrufen. während nach dem Zurücksetzen auf die Werkseinstellungen die Laufzeitberechtigung aller Apps von Drittanbietern entfernt wird, da /data/system/users/0/runtime-permissions.xml gelöscht wird (Datenpartitionswipe).
Aber auch nach dem Zurücksetzen auf die Werkseinstellungen enthält /data/system/users/0/runtime-permissions.xml
Laufzeitberechtigungen (sogar gefährliche Stufe) für Systemanwendungen, siehe Standardberechtigungen: runtime-permissions.xml.
Und es geschieht, weil:
die alle Standardberechtigungen erteilt werden aus
PackageManagerService
, über diese beiden Methoden:newUserCreated() //this get called when new user is created systemReady() //this get called when device is booted
und über Methoden intern aufruft:
DefaultPermissionPolicy.grantDefaultPermissions();
Have a look at How DefaultPermissionPolicy triggers
Und wenn Sie DefaultPermissionPolicy's implementation sehen, es enthält alle relevanten Verfahren alle Arten von Berechtigungen für Systemkomponenten zu laden.
Insbesondere
DefaultPermissionPolicy.grantDefaultPermissions()
ruft interngrantPermissionsToSysComponentsAndPrivApps(userId); grantDefaultSystemHandlerPermissions(userId);
und intern sie gibt Anrufe
grantRuntimePermissionsLPw()
Methode, which performs all the remaining work.
Danke shridutt kothari. In der b eginning, no runtime-permissions.xml, dann wurde PackageManagerService gestartet und generiert runtime-permissions.xml. Um dies deutlicher zu verstehen, können Sie aufzeigen, wo die Laufzeitberechtigungen für android.uid.system erteilt wurden, wie in der Datei runtime-permissions.xml zu sehen ist. – user1890874
Ich fand unten Code in der RuntimePermissionPersistence-Klasse. aber ich habe nicht gefunden, wo PermissionState für android.uid.system als gewährt festgelegt wurde. – user1890874
final int sharedUserCount = BerechtigungenForSharedUser.size(); für (int i = 0; i
- 1. Scala für() vs für {}
- 2. Verbindungszeichenfolge für Informix für .NET
- 3. Mindestanforderungen für Unity für Android?
- 4. Gruppe für Monat für Anwesenheitsliste
- 5. Modul für OneSignal für Appcelerator
- 6. Vorschlag für Vorlagenbuch für C++?
- 7. Alternative für BtsMSITask für BizTalk
- 8. Elmah für WCF für Ausnahmebehandlung
- 9. Beispiel für den Domain-Namen für mailgun be für nodejs?
- 10. Einstellung für Ländereinstellung für Java-Überschreibung für bestimmtes Gebietsschema
- 11. Implementieren von Bedingungsvariablen für CRITICAL_SECTIONs für WinThreads für XP
- 12. Alternative für ‚in‘ Operator für verschachtelte Listen
- 13. Validierung für TextBox für ein Benutzerformular
- 14. Jeder Ersatz für Bugsense für ACRA
- 15. "für" Schleife in einem anderen "für" Schleife
- 16. Empfehlung für Bildschirm-Video-Capture für Demos
- 17. istream für die Kommandozeileneingabe für C++/Poco
- 18. Zeitbedingung für Überprüfer für GCM Zweck
- 19. Swift: Verschlüsselte Eingabe für UITextField für Kartendetails
- 20. Relativer Pfad für Asset-Funktion für Laravel
- 21. Chrome für iOS: „Immer erlauben“ für Plätzchen
- 22. Spline-Interpolation für Werte für die Zeit
- 23. Beispiel für Akka EventBus für Java
- 24. Syntax für reguläre Ausdrücke für "Nichts anpassen"?
- 25. Admob Unterstützung für Kivy (Python für Android)
- 26. Sitzungsbehandlung für in WCF für ASP.net-Client
- 27. Pfad für die Installation Binärdateien für Kabale
- 28. Hilfe für EC2-api-Tools für Ubuntu
- 29. Ersatz für veralteten Facebook-Code für Android
- 30. Alternative für ssl_requirement Plugin für Rails 3?
gibt es einige Berechtigungen, die braucht hier nicht gewährt werden, siehe für Details: - http://coderzpassion.com/android-new-runtime-permissions/ –
danke Jagjit. Dies ist Teil von runtime-permissions.xml, –
user1890874
Wie Sie sehen können, sind diese Berechtigungen gefährliche Berechtigungen, sie sollten zur Laufzeit gewährt werden, aber sie wurden beim ersten Start gewährt, es ist verwirrt. – user1890874