Ich weiß, dass Google Play-Anwendungen nichts tun können, was nicht in ihnen angegeben ist, AndroidManifest.xml
und dafür gesperrt werden. Ich möchte wissen, ob Anwendungen, die nicht von Google Play stammen, mit derselben Sicherheitsmaßnahme gesperrt sind.
Wird Android mir vor der Installation mitteilen, welche Berechtigungen erforderlich sind, und Funktionen blockieren, die Berechtigungen verwenden, die nicht im Manifest von Nicht-Google Play-Apps angegeben sind? Denn Google sagt:
Falls eine Anwendung versucht, eine geschützte Funktion zu verwenden, die nicht im Manifest der Anwendung deklariert wurde, führt der Berechtigungsfehler normalerweise dazu, dass eine Sicherheitsausnahme an die Anwendung zurückgeworfen wird. Geschützte API-Berechtigungsprüfungen werden auf der niedrigstmöglichen Ebene erzwungen, um eine Umgehung zu verhindern. Ein Beispiel für die Benutzerbenachrichtigung, wenn eine Anwendung installiert wird, während Zugriff auf geschützte APIs angefordert wird, ist in Abbildung 2 dargestellt.
Gilt dies für Apps, die nicht von Google Play stammen?
Eine App muss alle ihre Berechtigungsanforderungen angeben, da sie ihr bei der Installation erteilt werden.
Siehe den Abschnitt „Verwenden von Berechtigungen“ hier: http://developer.android.com/guide/topics/security/permissions.html
Wird mir Android vor der Installation mitteilen, welche Berechtigungen erforderlich sind?
Im Allgemeinen ja. In den meisten (wenn nicht allen) Android-Geräten gibt es eine System-App namens „Package Installer“, die die Installation/Aktualisierung einer App übernimmt. Wenn Sie eine APK-Datei aus unbekannter Quelle installieren, wird diese App ausgeführt und zeigt alle Berechtigungen an, die die App anfordert, was so aussieht:
Paket-Installer auf KitKat
Blockiert Android Funktionen, die Berechtigungen verwenden, die nicht im Manifest von Nicht-Google Play-Apps angegeben sind?
Während der Installation überprüft/testet Android nicht, ob eine Funktion eine bestimmte Erlaubnis zum Ausführen erfordert. Mit anderen Worten, der Benutzer kann die App immer noch installieren. Die App löst jedoch aus SecurityException
(was je nach Handhabung abstürzen/unvorhersehbar verhalten/nichts tun kann), wenn die Funktion ausgeführt wird, die eine Berechtigung benötigt, aber nicht in der Manifestdatei deklariert ist. Dies gilt für alle Apps, unabhängig davon, wo sie installiert sind .
Beispiel : Wenn Sie einen Netzwerkbetrieb ohne Deklaration ausführen, <uses-permission android:name="android.permission.INTERNET" />
stürzt die App mit Stack-Trace ab:
E/AndroidRuntime(18698): Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
.
Munchstuhl