Permissions
Normalerweise sieht man eine Kurzbeschreibung der Permission (z. B. bei der Installation einer App). Die technische Bezeichnung taucht selten im Klartext für den Anwender auf – man kann aber z. B. auch einen Blick auf das Manifest werfen, und da stehen sie im Klartext.
Eine aktuelle Übersicht aller Permissions findet sich, in englischer Sprache, im Entwickler-Handbuch. Ein Wiki zum Thema, an dem sich jeder beteiligen kann, existiert ebenfalls, und zwar bei Stack Exchange (wiederum auf Englisch), eine weitere gute (englische) Übersicht mit zusätzlichen Sicherheits-Tipps findet sich bei OWASP. Bei Go2Android hat MaTT einen gut erklärten Artikel verfasst, der Teil der Serie "anDROID für Anfänger" ist.
Permission Groups
Zunächst einmal sind die Permissions in "Berechtigungs-Gruppen" eingeteilt. Besucht man die Playstore-Seite einer App, findet man diese "Permission Groups" als Überschriften bei den "Berechtigungen" wieder. Eine aktuelle Auflistung gibt es in der API Dokumentation; leider scheint diese Liste auch ständigem Wandel unterworfen. Da selbige in englischer Sprache gehalten sind, findet sich im Folgenden ein übersetzter (und mit Erklärungen ergänzter) "Abzug" – der „Wandel-bedingt“ nicht unbedingt aktuell ist. Das, worauf man wirklich achten muss, findet sich jedoch in den einzelnen Permissions.
Name | Bedeutung | Beschreibung |
---|---|---|
ACCESSIBILITY_FEATURES | Barrierefreiheit | Permissions für Features zur Barrierefreiheit. |
ACCOUNTS | Konten | Permissions für den direkten Zugriff auf vom Account Manager verwaltete Konten. |
AFFECTS_BATTERY | Auswirkungen auf den Akku | Permissions für direktem Hardware-Zugriff mit Auswirkungen auf den Akku-Verbrauch – Ruhezustand deaktivieren, Vibrator, Blitzlicht, u. ä. |
APP_INFO | App Informationen | Permissions mit Bezug auf andere installierte Apps; beispielsweise das Abrufen laufender Anwendungen, oder das Beenden von Hintergrund-Prozessen. |
AUDIO_SETTINGS | Audio Einstellungen | Permissions, die direkten Zugriff auf Lautstärke-Einstellungen ermöglichen. |
BLUETOOTH_NETWORK | Bluetooth | Zugriff auf andere Geräte via Bluetooth. |
BOOKMARKS | Lesezeichen | Permissions zur Verwaltung von Lesezeichen und Browserverlauf. |
CALENDAR | Kalender | Alles, was auf den Kalender zugreift. |
CAMERA | Kamera | Zugriff auf die im Gerät verbaute Kamera zum Aufnehmen von Fotos und Videos. Schließt auch Barcode-Reader mit ein. |
COST_MONEY | Kosten verursachen | Permissions, die ohne Zutun des Anwenders Kosten verursachen können – etwa indem sie SMS verschicken, Anrufe tätigen, etc. |
DEVELOPMENT_TOOLS | Entwicklerwerkzeuge | Diese Gruppe sollte eigentlich in Apps für Endanwender nicht auftauchen, hier gilt daher besondere Vorsicht. Jedoch lässt sich damit u. U. auch auf Dinge zugreifen, für die die passende Permission gar nicht angefordert wurde. |
DEVICE_ALARMS | Alarme | Alarme setzen, das Gerät aufwecken, Tasks zeitlich planen (a la Cron) |
DISPLAY | Anzeige | Permissions zur Manipulation von Display, Anzeige, UI. |
HARDWARE_CONTROLS | Direkter Hardware-Zugriff | Direkter Zugriff auf die Gerätehardware – einschließlich Audio, Kamera, Vibrator, etc. |
LOCATION | Standort | Alles, was für Zugriffe auf den aktuellen Standort benötigt wird. |
MESSAGES | Nachrichten | Empfangen, Abfangen, Lesen, Schreiben, und Versenden von SMS/MMS etc., auch ohne Zutun des Anwenders. |
MICROPHONE | Mikrofon | Zugriff auf das im Gerät verbaute Mikrofon. |
NETWORK | Netzwerk | Beinhaltet sowohl den Zugang zum Internet, als auch die Anpassung von Netzwerkeinstellungen, Erstellung/Löschung von Zugangspunkten, etc. |
PERSONAL_INFO | Personenbezogene Daten | Lesender und schreibender Zugriff auf Dinge wie Kontakte, Kalender, Profil-Informationen. |
PHONE | Telefonanrufe | Anrufe automatisch tätigen, abfangen, beantworten – aber auch abfragen des Telefonstatus sowie Zugriff auf Identifikationsdaten wie IMEI, IMSI, etc. |
SCREENLOCK | Bildschirm-Sperre | Permissions mit Bezug auf die Bildschirmsperre. |
SENSORS | Sensoren | Zugriff auf Sensoren, Sammeln von Sensordaten |
SOCIAL_INFO | Soziale Informationen | Permissions für den lesenden und schreibenden Zugriff auf Informationen im sozialen Umfeld: Kontakte, Anruf-Protokolle, etc. |
STATUS_BAR | Status-Bar | Permissions zum Verändern der Status-Bar. |
STORAGE | Speicher | Zugriff auf die SD-Karte, lesend und schreibend. |
SYNC_SETTINGS | Synchronisierungseinstellungen | Für alles, was mit Synchronisation zu tun hat – wie beispielsweise das Ein- und Ausschalten der Synchronisation. |
SYSTEM_CLOCK | Systemuhr | Zugriff auf die Systemuhr (Zeiteinstellung etc.) |
SYSTEM_TOOLS | System-Tools | Laut API Beschreibung als "ungefährlich" eingestuft ("das Meiste wird der Anwender ohnehin nicht verstehen, und sollte daher mit dem Protection-Level 'normal' versehen werden, damit es ihm nicht angezeigt wird", aha). Ändern von Systemeinstellungen beispielsweise. "Schädliche Apps können so die Systemkonfiguration beschädigen." |
USER_DICTIONARY | Benutzerwörterbuch | Für (Lese?) Zugriffe auf Benutzer-Wörterbücher. Tastaturen benötigen solches für die Auto-Korrektur. |
VOICEMAIL | Sprachmailbox | Zugriff auf die Sprachmailbox des Anwenders. |
WALLPAPER | Wallpaper | Festlegen von Hintergrundbildern u. ä. |
WRITE_USER_DICTIONARY | Benutzerwörterbücher schreiben | Schreibzugriff auf Benutzer-Wörterbücher. Tastaturen benötigen solches für die Auto-Korrektur, um neue Begriffe hinzuzufügen. |
Protection Level
Eine weitere Einteilung stellen die so genannten Protection Level dar (siehe Referenz zu Permission Element und protectionLevel). Vier verschiedene Ebenen legen dabei fest, wie mit den entsprechenden Permissions umgegangen wird (die Kürzel sind für die Referenz in der eigentlichen Permissions-Tabelle).
Der einer Permission zugewiesene Protection Level kann sich mit der Zeit ändern, und hängt nicht zuletzt von der verwendeten Android-Version ab.
Level | Kürzel | Beschreibung |
---|---|---|
normal | no | Niedriges Risko bzw. "Standard". Diese Permissions werden dem Anwender bei der Installation nicht extra "vorgeführt", sondern stillschweigend akzeptiert. |
dangerous | da | Höheres Risiko: Zugriff auf persönliche Daten, oder Kontrolle über das Gerät mit potentiellem negativen Impakt für den User. Das sind die Permissions, die bei der Installation vom Anwender explizit bestätigt werden müssen. |
signature | si | Der Herausgeber des Zertifikats muss mit dem des ROM-Zertifikats übereinstimmen. In der Regel heißt dies: Eine solche App muss vom gleichen Hersteller stammen. Derartige Apps sind meist bereits "vorinstalliert". |
signatureOrSystem | sy | Wie "Signature"; alternativ darf es aber auch eine beliebige "System-App" sein. Da man eine solche nur mit root-Rechten installieren kann, ist dies für "normale Anwender" eher uninteressant. |
development | dv | Das ROM muss mit einem Entwickler-Key signiert sein. Diese Permissions sind eigentlich nur für Entwickler/Entwicklung gedacht. I. d. R. scheinbar als "developmentOrSignatureOrSystem" zu verstehen. |
Protection Levels können zusätzliche Flags erhalten. Auf diese wird hier nicht näher eingegangen. Eine Auswahl:
Flag | Beschreibung |
---|---|
appop | diese Permission steht in engem Zusammenhang mit einer App op zur Zugangskontrolle. |
installer | diese Permission kann automatisch zugewiesen werden an System Apps, die Packages (Apps) installieren. |
instant | diese Permission kann an Instant Apps vergeben werden. |
pre23 | Diese Berechtigung kann automatisch für Anwendungen erteilt werden, die auf API-Ebenen unterhalb von Build.VERSION_CODES.M abzielen (bevor Laufzeitberechtigungen eingeführt wurden). |
preinstalled | Diese Berechtigung kann automatisch jeder Anwendung erteilt werden, die mit dem System vorinstalliert ist (nicht nur privilegierten Anwendungen). |
privileged | Diese Berechtigung kann auch für alle Anwendungen erteilt werden, die als privilegierte Anwendungen im System installiert sind. Dieses Berechtigungsflag wird für bestimmte spezielle Situationen verwendet, in denen mehrere Hersteller Anwendungen in ein Systemabbild eingebaut haben, die explizit bestimmte Funktionen gemeinsam nutzen müssen, weil sie zusammen gebaut werden. |
runtime | diese Permission kann nur von Apps verwendet werden, welche für „Runtime Permissions“ geschrieben wurden (Android 6 und neuer) |
vendorPrivileged | diese Berechtigung kann privilegierten Anwendungen in der Herstellerpartition („vendor partition“) gewährt werden. |
Die vollständige Liste findet sich in der Referenz für protectionLevel.
Permissions
Auch hier wieder ein Auszug einiger gerbäuchlicherer Kandidaten. Nochmals kurz zur Erklärung: "PL" bezeichnet den Protection Level. "Risk" steht für das mit der jeweiligen Permission verbundene Risiko:
- 0 = keins
- 1 = niedrig
- 2 = mittel
- 3 = hoch
- 4 = kritisch
- 5 = astronomisch
Dieses Risiko muss jedoch auch immer im Zusammenhang mit dem Protection Level gesehen werden: Von einer "kritischen Permission" ist der Normal-Anwender (ohne root) beispielsweise überhaupt nicht betroffen, wenn der Protection Level "Signature" bzw. "SignatureOrSystem" heißt. Gelegentlich ändert sich eine solche Zuordnung mit neueren Android-Versionen (Beispiel: READ_LOGS
wanderte ab Android 4.1 nach "sy"). Quelle für die Risiko-Klassen ist hier übrigens die bereits genannte Seite bei OWASP (Werte mit Bereichsangabe habe ich nach meiner groben Einschätzung bei einigen Berechtigungen ergänzt, die dort nicht aufgeführt sind), die meisten Protection-Level finden sich in einem Blog-Eintrag zugeordnet.
Ein weiterer Punkt ist der „Google Glue Level“ (Ǥ), der in den Hilfe-Seiten näher erklärt wird. Kurz gesagt beschreibt er, wie weit eine Permission die sie anfordernde App als von den Google Apps abhängig erkennbar macht: Gar nicht (0), eingeschränkte Funktionalität (1), oder gar Arbeitsverweigerung (2).
Name | Bedeutung | Gruppe | Lv | Ǥ | Risk | Beschreibung |
---|---|---|---|---|---|---|
ACCESS_ALL_DOWNLOADS | Auf alle System-Downloads zugreifen | Netzwerk | si | 0 | Ermöglicht einer App den Zugriff auf alle Downloads im System über die /all_downloads/ URIs. Derzeit nicht für Drittanbieter-Apps verfügbar, was jedoch in Zukunft gelockert werden könnte. |
|
ACCESS_ALL_EXTERNAL_STORAGE | Zugriff auf den externen Speicher aller User | Entwicklerwerkzeuge | da | 0 | Erlaubt der App den Zugriff auf den externen Speicher (SD-Karten) aller eingerichteten User. | |
ACCESS_BACKGROUND_LOCATION | Standortzugriff bei Ausführung im Hintergrund | Standort | da | 0 | 3 | Erlaubt einer App, auf Standortdaten zuzugreifen während sie im Hintergrund läuft. Sie benötigt dafür zusätzlich entweder ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION; hält sie keine dieser beiden, hat Background Location keine Auswirkungen. Diese Berechtigung wird ab Android 10 benötigt, wenn Standortzugriff bei Ausführung im Hintergrund gewünscht ist. Außerdem muss der Anwender explizit um seine Zustimmung angefragt werden; diese kann dann entweder verweigert, nur bei Vordergrund-Ausführung oder generell gewährt werden. Wird sie gewährt, erscheint bei Anforderungen aus dem Hintergrund eine Benachrichtigung, über die sich der Zugriff auch wieder unterbinden lässt. |
ACCESS_CHECKIN_PROPERTIES | Zugriff auf Checkin Daten | Standort | sy | 0 | Erlaubt Lese- und Schreibzugriff auf die "properties" Tabelle der (Unix-Security) Checkin-Datenbank, um Werte für den Upload zu ändern. | |
ACCESS_COARSE_LOCATION | Ungefährer (netzwerkbasierter) Standort | Standort | da | 0 | 2 | Apps mit dieser Berechtigung können auf Standortinformationen zugreifen, die durch WLANs und Mobilfunkmasten ermittelt werden. Dazu muss die Funktion „Standortdienste“ auf dem Smartphone aktiviert sein. Siehe auch ACCESS_FINE_LOCATION .Ab Android 10 kann eine App den den Standort nur noch abfragen, wenn sie im Vordergrund läuft – es sei denn ihr wurde zusätzlich vom User die Berechtigung ACCESS_BACKGROUND_LOCATION gewährt. |
ACCESS_DOWNLOAD_MANAGER | Zugriff auf den Download Manager | Netzwerk | sy | 0 | Erlaubt der App den Zugriff auf den Download Manager, sowie die Nutzung desselben zum Herunterladen von Dateien. Böswillige Apps könnten diese Berechtigung ausnutzen um Downloads zu unterbrechen und auf private Informationen zuzugreifen. Steht nur System-Apps zur Verfügung. |
|
ACCESS_DOWNLOAD_MANAGER_ADVANCED | Erweiterte Download-Manager Funktionen | Netzwerk | sy | 0 | Gibt der App Zugriff auf erweiterte Funktionen des Download-Managers. Böswillige Apps könnten dies nutzen, um Downloads abzubrechen und auf private Informationen zuzugreifen. | |
ACCESS_DRM | Auf DRM-Inhalt zugreifen | 0 | Ermöglicht einer Anwendung, auf DRM-geschützte Inhalte zuzugreifen. | |||
ACCESS_FINE_LOCATION | Genauer (GPS-) Standort | Standort | da | 0 | 3 | Apps mit dieser Berechtigung können auf die genauen Standortdaten zugreifen, die das Gerät mit Hilfe von GPS, Funkmasten und WLANs ermittelt. Dazu muss die Funktion „Standortdienste“ und GPS auf dem Smartphone aktiviert sein. Hauptsächlich gedacht für Apps zur Navigation, zum Versehen von Fotos mit Standortdaten (wo wurde das Foto aufgenommen?) u. ä., wird der Zugriff aber häufig auch zur Anzeige ortsbasierter Werbung von Anbietern wie Admob (Google) genutzt. Ebenso kann eine mit dieser Berechtigung ausgestattete App auch Bewegungsprofile erstellen und ggf. „in die Cloud“ hochladen. Ab Android 10 kann eine App den den Standort nur noch abfragen, wenn sie im Vordergrund läuft – es sei denn ihr wurde zusätzlich vom User die Berechtigung ACCESS_BACKGROUND_LOCATION gewährt.Diese Berechtigung wird übrigens bis Android 12 auch benötigt, um einen localen WLAN-Hotspot zu erstellen. |
ACCESS_LOCATION_EXTRA_COMMANDS | Zusätzliche Standort-Befehle verwenden | Standort | no | 0 | 2-3 | Die Dokumentation ist hier wieder nicht sehr aussagekräftig, doch offensichtlich sollen zusätzliche Daten zum Standort erlangt werden. Was Bücher aus derart mangelhafter Dokumentation machen, zeigt ein Beispiel aus Android application development: The Android documentation doesn’t tell us which location commands are “extra,” so we’ll ask for all of them. Einen Hinweis gibt die Dokumentation von Locus Map: Erlaubt das Deaktivieren des Status der A-GPS Daten und Erzwingen des Neuladens derselbigen. Das heißt Apps mit dieser Berechtigung könnten die Funktionsweise von GPS oder anderen Standortquellen beeinträchtigen. |
ACCESS_MEDIA_LOCATION | Standorte aus meiner Mediensammlung abrufen | Speicher | da | 0 | 2 | Wird ab Android 10 für den Zugriff auf Standort-Metadaten in Bilddateien („Exif Data“) benötigt. Hierbei handelt es sich nicht um eine „Runtime Permission“ – der Anwender wird also nicht gefragt: Jede App, die es verlangt, erhält die Berechtigung automatisch. Zumindest derzeit (9/2020) weist Google Play Store sie nicht einmal aus. Also besser vor der Installation prüfen – über die App-Listen hier, oder über Appbrain. |
ACCESS_MOCK_LOCATION | Falsche Standortquellen für Testzwecke | Standort | da | 0 | 2 | Fake Location (falsche Standortdaten vom System anfordern). Für Testzwecke gedacht (z. B. im Emulator); wird aber scheinbar auch benötigt, um ein externes GPS Gerät nutzen zu können. Erfordert die Aktivierung der Option "Falsche Standorte zulassen" in Einstellungen → Entwickleroptionen. |
ACCESS_NETWORK_STATE | Netzwerkstatus anzeigen | Netzwerk | no | 0 | 0 | Informationen über Netzwerke: Besteht eine Verbindung, und wenn ja zu welchem Netzwerk? Ist Roaming aktiv? Wenn die Verbindung fehlgeschlagen ist: warum? Guter Cop: Überprüfen der Verbindung, um größere Transfers auf WLAN zu beschränken. Böser Cop: Nur in Verbindung mit anderen Permissions (z. B. Datensammlung). Kann auch genutzt werden, um z. B. anhand der IP-Adresse den ungefähren Standort zu Ermitteln, ohne Standort-Berechtigungen anzufordern. |
ACCESS_NOTIFICATION_POLICY | Permission für Apps, welche auf die Notification Policy zugreifen wollen. | no | 0 | 0 | Ermöglicht einer App das Ändern der Notification Policy (Keine / Wichtig / Alle) – um z. B. auch im „Do not Disturb“ (bitte nicht stören) Modus „stören“ zu dürfen. Runtime Permission – d. h., muss mindestens einmal vom Anwender explizit bestätigt werden. | |
ACCESS_NOTIFICATIONS | Zugriff auf Benachrichtigungen | System-Tools | sy | 0 | 2 | Erlaubt einer App Benachrichtigungen zu empfangen, auszuwerten und zu entfernen – einschließlich der von anderen Apps erstellten Benachrichtigungen. Diese Permission ist System-Apps vorbehalten. Sie wurde mit Android 4.3 als Teil des neuen Notification Service eingeführt. |
ACCESS_SUPERUSER | Root-Privilegien nutzen | System-Tools | da | 0 | Eine mit dieser Permission ausgestattete App möchte root Privilegien nutzen. Diese bekommt sie (trotz der Permission) nicht automatisch zugeteilt. Jedoch lassen sich verschiedene "SuperUser Apps" derart konfigurieren, dass Apps ohne diese Permission generell keine root Privilegien zugeteilt bekommen. Bei allen anderen muss der Anwender dies zunächst "abnicken". Eine mit dieser Permission ausgestattete App erhält also nicht automatisch root-Rechte – sondern erst, wenn der Anwender dies in der "SuperUser App" explizit bestätigt. Warnung: Eine mit root-Rechten ausgestattete App darf so ziemlich alles. Man sollte also sicher sein, dem Entwickler (und der Installations-Quelle) vertrauen zu können. |
|
ACCESS_SURFACE_FLINGER | Zugriff auf die API des "Surface Flinger" | System-Tools | sy | 0 | SurfaceFlinger ist Teil des Medien-Frameworks unter Android: Es stellt einen systemweiten "Oberflächen-Kompositor" bereit, der sich um das Rendering in Framebuffer-Devices kümmert - also Grafik, Grafik-Beschleunigung und so. | |
ACCESS_WEATHERCLOCK_PROVIDER | Zugriff auf Huawei WeatherClock Daten | no | 0 | Diese Permission erlaubt den Zugriff auf die vom Huawei Content Provider für WeatherClock bereitgestellte Daten. Details finden sich bei Android.SE. | ||
ACCESS_WIFI_STATE | WLAN-Status anzeigen | Netzwerk | no | 0 | 3 | Informationen über WiFi-Netzwerke: besteht eine Verbindung, und wenn ja zu welchem Netzwerk (inkl. MAC-Adresse & IP)? Welche Netzwerke sind verfügbar? Apps können damit zum Beispiel die Funktion „Download nur im WLAN“ anbieten, um das mobile Datenvolumen zu schonen. Analog zu ACCESS_NETWORK_STATE. |
ACCESS_WIMAX_STATE | WIMAX-Status anzeigen | Netzwerk | no | 0 | Informationen über WIMAX-Netzwerke: besteht eine Verbindung, und wenn ja zu welchem Netzwerk? Welche Netzwerke sind verfügbar? Analog zu ACCESS_NETWORK_STATE. | |
ACCOUNT_MANAGER | Als Konto-Manager fungieren | Konten | sy | 0 | Berechtigt zur Interaktion mit Konto-Authentifizierern (für Systemanwendungen reserviert). Ein Account-Manager arbeitet im Hintergrund und sorgt dafür, das alles mit rechten Dingen zugeht. Detaillierter beschrieben ist dies in einem Artikel bei Stack Exchange: What does permission “MANAGE_ACCOUNTS” mean? |
|
ACTIVITY_RECOGNITION | Aktivitäts-Erkennung | Personenbezogene Daten | no | 1 | Erlaubt einer App, periodische Updates zu Bewegungs-Aktivitäten des Anwenders zu empfangen – z. B. ob dieser geht, fährt, oder sich “still verhält”. Bereitgestellt werden diese Daten vom ActivityRecognitionClient, der Bestandteil der Google Play Services ist. Die App erhält dabei (laut API Referenz) keine Koordinaten, sondern die ermittelte Aktivität – also etwa WALKING, RUNNING, oder STILL. |
|
AD_ID | Zugriff auf die Google Werbe-ID | Personenbezogene Daten | no | 1 | Die Werbe-ID (AD_ID ) ist eine eindeutige, vom Nutzer zurücksetzbare ID für Werbung, die von Google Play Services bereitgestellt wird. Im Rahmen der Aktualisierung der Google-Play-Dienste Ende 2021 wird die Werbe-ID entfernt, wenn ein Nutzer die Personalisierung über die Werbe-ID in den Android-Einstellungen abbestellt. Durch die Beantragung dieser Berechtigung können Entwickler benachrichtigt werden, wenn ein Nutzer die Personalisierung abgewählt hat. |
|
ADD_VOICEMAIL | Sprachnachrichten hinzufügen | Sprachmailbox | da | 0 | Erlaubt einer App, dem System Sprachnachrichten (Sprach-Mailbox) hinzuzufügen. | |
adm.permission.RECEIVE | Amazon Device Messaging Nachrichten empfangen | Netzwerk | 0 | Erlaubt den Empfang von "Cloud 2 Device" Nachrichten, die vom Service der App gesendet werden (Amazon Device Messaging – analog zu GoogleCloudMessaging). Die Nutzung dieses Service verursacht logischerweise Datentraffic. | ||
ANSWER_PHONE_CALLS | Automatisches Annehmen von Anrufen | Telefonanrufe | da | 0 | Erlaubt der App, eingehende Telefonanrufe automatisch anzunehmen – also ohne Zutun des Anwenders. Gedacht ist dies zum Beispiel für Apps, die einen besonderen Screen zeigen wollen, wenn Telefonanrufe eingehen. Dies ist eine Runtime-Permission; keine App erhält sie also, ohne dass der Anwender zuvor gefragt wurde. |
|
ANT | Mit ANT Sensoren verbinden | Netzwerk | 0 | Erlaubt das Verbinden mit ANT und ANT+ Sensoren. Details dazu finden sich bei Wikipedia, und auf der ANT Android Seite. | ||
ANT_ADMIN | Verbindungen zu ANT Sensoren verwalten | Netzwerk | 0 | Erlaubt das Verwalten von Verbindungen zu ANT und ANT+ Sensoren. Details dazu finden sich bei Wikipedia, und auf der ANT Android Seite. | ||
AUTHENTICATE_ACCOUNTS | Als Kontoauthentifizierer fungieren | Konten | da | 0 | Konto-Authentifizierungsfunktionen verwenden, Konten erstellen, Abrufen und Einstellen der zugehörigen Passwörter. In der Regel stellt eine solche App eine Schnittstelle zu einem neuen Dienst bereit, der nicht von Haus aus in Android integriert ist (Beispiel: Dropbox) – implementiert also die Art und Weise, wie bei diesem die Anmeldung funktioniert. Darüber hinaus kann die App u. U. auch einschränken, was eine aufrufende App mit dem Zugang anstellen darf. Weitere Details lassen sich u. a. diesem Artikel bei Stack Exchange entnehmen. | |
BACKUP | System-Backup und Restore kontrollieren | sy | 0 | Erlaubt es einer App, die Backups anderer Apps zu verwalten. Dies schließt beispielsweise ein, dem BackupManager mitzuteilen: dass sich Daten geändert haben (dataChanged() ), alle Backups der App gelöscht werden sollen (clearBackupData() ), oder dass Backups für die App (de-)aktiviert werden sollen. |
||
BACKUP_DATA | An System-Backup und Restore teilnehmen | sy | 0 | Dies scheint eine alte (und nicht mehr genutzte) Permission zu sein. Der ursprünglichen Beschreibung nach konnte keine App ohne diese Permission am Backup/Restore teilnehmen. Eine Commit-Message vom Februar 2010 schreibt dazu: Jede App kann nun am Backup/Restore Prozess teilnehmen, ohne dafür irgend eine Permission zu verlangen. | ||
badge.permission.READ | Notification Badges lesen | no | 0 | Die com.sec.android.provider.badge.* Permissions beziehen sich auf den sogenannten "Badge Provider", mithilfe dessen sich auf Home- und Lockscreen-Icons "Nummern" anzeigen lassen – etwa, wie viele ungelesene Nachrichten oder verpasste Anrufe auf einen warten. Nicht ganz klar ist, warum eine App diese lesen wollen sollte (könnte sie dem Service nicht einfach mitteilen: "2 mehr/weniger auf Icon X"?). Als Referenz sei auf diesen Artikel bei Stack Exchange verwiesen.Es könnte sich um eine Berechtigung handeln, die sich lediglich auf Samsung Touchwiz bezieht ("sec" dürfte dann auf den "seclauncher" verweisen). Wie immer, sind die Quellen leider dünn gesät … |
||
badge.permission.WRITE | Notification Badges schreiben | no | 0 | Ermöglicht es einer App, mittels des unter badge.permission.READ beschriebenem "Badge Service" Nummern auf Icons zu zaubern. | ||
BATTERY_STATS | Akku-Statistiken sammeln | System-Tools | sy | 0 | Erlaubt das Sammeln von (und den Zugriff auf) Akku-Statistiken. Akku-Widgets und andere Akku-Informations-Tools verwenden diese Permission. | |
BIND_ACCESSIBILITY_SERVICE | Service zur Barrierefreiheit auswählen | Barrierefreiheit | si | 0 | 3 | Muss von einem AccessibilityService angefordert werden, um sicherzustellen, dass er ausschließlich vom System verwendet werden kann. Dies geschieht mittels eines Dialog-Fensters, in dem der Zugriff (einmalig) bestätigt werden muss. Eine derart privilegierte App kann sodann das aktuelle Bildschirmfenster sehen und Eingaben in anderen Apps machen. Eigentlich dient diese Funktion der Barrierefreiheit, zum Beispiel, um vorzulesen, was gerade auf dem Bildschirm zu sehen ist, oder um Eingaben per Sprachbefehl durchzuführen. Allerdings nutzen auch Spionage-Apps, Kindersicherungen und Schadprogramme diese Funktion, um den Inhalt geöffneter Fenster auszulesen. |
BIND_APPWIDGET | Widgets auswählen | Personenbezogene Daten | sy | 0 | Erlaubt einer App dem AppWidget-Service mitzuteilen, welche App auf die AppWidget-Daten zugreifen darf. Mit dieser Berechtigung kann anderen Anwendungen Zugriff auf persönliche Daten gewährt werden. Laut API-Referenz sollten nur sehr wenige Apps diese Permission benötigen. | |
BIND_DEVICE_ADMIN | Bind Device Admin | System-Tools | si | 0 | Muss vom Receiver eines Geräteadministrators angefordert werden, um sicherzustellen, dass ausschließlich das System mit ihm interagieren kann. Für weitere Details, siehe auch: What permissions are granted to an app with device administration privileges? Apps mit dieser Berechtigung können den Bildschirm sperren, Muster oder Passwort ändern und das Gerät aus der Ferne auf Werkseinstellungen zurücksetzen. Solange eine App den Status „Geräteadministrator“ hat, kann sie zudem nicht deinstalliert werden. Den Zugriff brauchen zum Beispiel Sicherheits-Apps, mit deren Hilfe man sein Gerät im Verlustfall aus der Ferne löschen kann. Auch Apps zur Kindersicherung fragen nach der Berechtigung, um auf diese Weise den Bildschirm nach einer festgelegten Zeit zu sperren. Bösartige Apps können Euch mit dieser Berechtigung aus dem Gerät aussperren und sich vor Deinstallation schützen. Wurde ab Android 10 aufgeteilt und besteht in dieser Form nicht mehr. |
|
BIND_GET_INSTALL_REFERRER_SERVICE | Get Install Referrer Service | App Informationen | no | 0 | Lässt den Entwickler wissen, we die Installation der App empfohlen hat – wenn eine Website auf die App im Playstore verlinkt hat, der Anwender diesem Link folgte, und die App von dort über den „Installieren“ Button installiert hat. | |
BIND_INPUT_METHOD | Bind Input Method | System-Tools | si | 0 | Muss von einem InputMethodService angefordert werden, um sicherzustellen, dass ausschließlich das System mit ihm interagieren kann. | |
BIND_JOB_SERVICE | Anwendung im Hintergrund ausführen | System-Tools | si | 0 | Diese Permission gibt Zugriff auf den JobService und erlaubt dem Android system, die Anwendung auf Anfrage im Hintergrund auszuführen. | |
BIND_NFC_SERVICE | Bind NFC Service | System-Tools | si | 0 | Muss von einem HostApduService bzw. OffHostApduService angefordert werden, um sicherzustellen, dass sich ausschließlich das System mit ihm verbinden kann. | |
BIND_NOTIFICATION_LISTENER_SERVICE | Bind Notification Listener Service | System-Tools | si | 0 | Muss von einem NotificationListenerService angefordert werden, um sicherzustellen, dass nur das System sich mit ihm verbinden kann. | |
BIND_PRINT_SERVICE | Druckerdienste anbinden | System-Tools | si | 0 | Muss von einem PrintService angefordert werden, um sicherzustellen, dass nur das System sich mit ihm verbinden kann. | |
BIND_REMOTEVIEWS | Bind Remote-Views | System-Tools | sy | 0 | Muss von einem RemoteViewsService angefordert werden, um sicherzustellen, dass nur das System sich mit ihm verbinden kann. | |
BIND_TEXT_SERVICE | Bind Text-Service | System-Tools | si | 0 | Muss von einem Text-Service (z. B. Rechtschreib-Korrektur) angefordert werden, um sicherzustellen, dass nur das System sich mit ihm verbinden kann. | |
BIND_VPN_SERVICE | Bind VPN Service | System-Tools | si | 0 | Muss von einem VpnService angefordert werden, um sicherzustellen, dass nur das System sich mit ihm verbinden kann. | |
BIND_WALLPAPER | Bind Wallpaper | System-Tools | sy | 0 | Muss von einem WallpaperService angefordert werden, um sicherzustellen, dass nur das System sich mit ihm verbinden kann. | |
BLUETOOTH | Bluetooth-Verbindungen herstellen | Bluetooth | da | 0 | 1 | Zugriff auf bereits „autorisierte“ Bluetooth-Geräte. Apps, die typischerweise diese Permission benötigen. sind u. a. Sharing-Apps, Apps zur Dateiübertragung, sowie Apps zur Anbindung von Headsets, SmartWatches und drahtlosen Lautsprechern. |
BLUETOOTH_ADMIN | Bluetooth-Verwaltung | Bluetooth | da | 0 | 2 | Ermöglicht einer Anwendung, das lokale Bluetooth-Telefon zu konfigurieren, Remote-Geräte zu erkennen und eine Verbindung zu diesen herzustellen. Schließt u. a. auch das Autorisieren ("pairen") ein. Eine mit dieser Permission ausgestattete App darf also selbständig Bluetooth-Verbindungen aufbauen und etablieren – auch zu "wildfremden" Geräten. |
BLUETOOTH_ADVERTISE | Inhalte an Bluetooth-Geräte in der Nähe senden | Bluetooth | da | 0 | Erlaubt der App, Inhalte an Bluetooth-Geräte in der Nähe zu senden. Dies ist eine Runtime-Permission; die App muss also explizit die Erlaubnis des Anwenders einholen. | |
BLUETOOTH_CONNECT | Mit gekoppelten Bluetooth-Geräten verbinden | Bluetooth | da | 0 | Erlaubt der App, sich mit gekoppelten Bluetooth-Geräten zu verbinden. Dies ist eine Runtime-Permission; die App muss also explizit die Erlaubnis des Anwenders einholen. | |
BLUETOOTH_PRIVILEGED | Privilegierte Bluetooth-Rechte | Bluetooth | sy | 0 | 2 | Diese Permission erlaubt einer App das Pairen von Geräten ohne Interaktion mit dem Benutzer. Sie steht jedoch Drittanwendungen nicht zur Verfügung. |
BLUETOOTH_SCAN | Bluetooth-Geräte in der Nähe finden und koppeln | Bluetooth | da | 0 | Erlaubt der App, Bluetooth-Geräte in der Nähe zu finden und zu koppeln. Dies ist eine Runtime-Permission; die App muss also explizit die Erlaubnis des Anwenders einholen. Für potentielle Implikationen auf die Privatsphäre siehe auch NEARBY_WIFI_DEVICES . |
|
BODY_SENSORS | Körpersensoren (Pulsuhr etc.) | Personenbezogene Daten | no | 0 | 2 | Erlaubt der App den Zugriff auf Daten von zusätzlich ans Handy angeschlossenen Sensoren (hier sind nicht die im Handy fest verbauten Sensoren gemeint) um zu ermitteln, was im Körper passiert. Ein Beispiel wären Pulsuhren bzw. Herzfrequenzmesser. |
BRICK | Brick | System-Tools | si | 0 | Für Funktionalitäten, die das Gerät unbrauchbar machen können. Extrem gefährlich – zum Glück aber für System-Apps reserviert, die vom Hersteller signiert wurden – und anscheinend nirgendwo verwendet (siehe Warum verlangen manche Apps zu viele Permissions?. | |
BROADCAST_CLOSE_SYSTEM_DIALOGS | Broadcast zum Schließen offener Systemdialoge | System-Tools | sy | 0 | Erlaubt einer App den Intent ACTION_CLOSE_SYSTEM_DIALOGS zu broadcasten. Nicht für Drittanbieter-Apps gedacht. Wird bis Android 11 hauptsächlich genutzt, um einen ggf. offenen Benachrichtungsbereich („Notification Area“) zu schließen. Ab Android 12 deprecated. |
|
BROADCAST_DATA_MESSAGE | Broadcast von Datennachrichten an Apps | Netzwerk | sy | 0 | Kann aus dem Internet empfangene Daten-Nachrichten per Broadcast an Apps versenden, die dafür Listener registriert haben. Für System-Apps reserviert. | |
BROADCAST_PACKAGE_ADDED | Broadcast Package Added | System-Tools | si | 0 | Erlaubt einer App das Verschicken von Broadcast-Nachrichten, dass ein App-Package hinzugefügt (installiert) wurde. | |
BROADCAST_PACKAGE_REMOVED | Broadcast Package Removed | System-Tools | si | 0 | Erlaubt einer App das Verschicken von Broadcast-Nachrichten, dass ein App-Package entfernt wurde. | |
BROADCAST_SMS | Broadcast SMS-Eingang | Nachrichten | si | 0 | Erlaubt einer App, Broadcasts für SMS-Eingang zu senden. | |
BROADCAST_STICKY | Sticky Broadcasts senden | System-Tools | no | 0 | Erlaubt einer App, "Sticky Broadcasts" zu senden. Dies sind Broadcasts, die vom System gepuffert werden – so dass Clients diese Daten jederzeit abrufen können, ohne auf den nächsten Broadcast warten zu müssen. Bei dieser Permission geht es darum, wie sich Apps untereinander verständigen, indem sie Intents verwenden. Gegenwärtig sind keine bösartigen Ausnutzungen dieser Permission bekannt. |
|
BROADCAST_WAP_PUSH | Broadcast WAP-Push Empfang | Nachrichten | si | 0 | Erlaubt der App das Senden von Broadcasts über den Empfang einer WAP-Push Nachricht. Steht Drittanwendungen nicht zur Verfügung. |
|
c2dm.permission.RECEIVE | Daten vom Internet empfangen | Netzwerk | 1 | Erlaubt den Empfang von "Cloud 2 Device" Nachrichten, die vom Service der App gesendet werden (GoogleCloudMessaging). Die Nutzung dieses Service verursacht logischerweise Datentraffic. | ||
c2dm.permission.SEND | Daten ins Internet senden | Netzwerk | 1 | Erlaubt das Senden von "Cloud 2 Device" Nachrichten (GoogleCloudMessaging). Die Nutzung dieses Service verursacht logischerweise Datentraffic. | ||
CALL_COMPANION_APP | Anrufe durch das System einsehen und verwalten. | Telefonanrufe | no | 0 | Erlaubt den Zugriff auf Anruf-Details (während laufender Anrufe), aber auch, diese Anrufe zu „kontrollieren“. Da diese Berechtigung als „protection level: normal“ eingestuft ist, hat der Anwender kaum Einfluss darauf („normal“ wird i. d. R. nicht als „Runtime Permission“ eingesetzt, es erfolgt also keine separate Bestätigung). Laut einem Kommentar im zugehörigen Quellcode handelt es sich bei einem „Call Companion“ um eine App ohne eigene Benutzeroberfläche, die Informationen an eine andere „Oberfläche“ weiter gibt – etwa an eine Smartwatch. Gesteuert wird dies über eine Rolle (aka „Standard App“), die der Anwender gezielt festlegen kann. Im Gegensatz zu „Default Apps“ lässt sich die Rolle jedoch mehreren Apps zuweisen. | |
CALL_PHONE | Telefonnummern direkt anrufen | Telefonanrufe | da | 0 | 3 | Anruf ohne Bestätigung durch den Anwender tätigen. Wird z. B. für Kontakt-Widgets benötigt, wenn ein „Tapp“ auf selbige direkt einen Anruf auslösen soll – macht aber bei einer Mal-App herzlich wenig Sinn. Gilt nicht für Notruf-Nummern. Hier handelt es sich um eine kritische Permission: Eine damit ausgestattete App kann ohne das Wissen oder Zutun des Anwenders teure Premium-, Auslands- oder gar SAT-Nummern anrufen, und ihm so enorme Kosten verursachen. Jedoch scheint diese Praxis eher die absolute Ausnahme darzustellen (mir ist kein solcher Fall bekannt). Natürlich kann jede App auch ohne diese Permission den Dialer aufrufen, und das Nummernfeld entsprechend vorbelegen. Das Tätigen des eigentlichen Anrufs muss in diesem Fall jedoch der Anwender explizit per Button bestätigen. Diese Permission wird also nur benötigt, um den gesamten Prozess zu automatisieren. |
CALL_PRIVILEGED | Alle Telefonnummern direkt anrufen | Telefonanrufe | sy | 0 | Wie CALL_PHONE, aber inklusive Notruf-Nummern ("Hallo, Polizei – Anwender ist gerade in Bank eingebrochen… Bitte Fußboden reparieren…") | |
CAMERA | Fotos aufnehmen | Kamera | da | 0 | 4 | Vollzugriff auf die Kamera. Nebenwirkung: Diese App lässt sich nicht auf Geräten installieren, die über keine Kamera verfügen. Theoretisch könnte eine mit dieser und der INTERNET Permission ausgestattete App heimlich Fotos/Videos aufnehmen, und "irgendwo" hochladen. Diese Permission wird, völlig legitim, beispielsweise von Kamera-Apps und Barcode-Readern benötigt. |
CAPTURE_AUDIO_OUTPUT | Audio-Ausgabe abfangen | sy | 0 | 3 | Erlaubt das Abgreifen ausgegebener Audio-Streams (beispielsweise von Media-Playern). Steht Drittanwendungen nicht zur Verfügung. Wird u. a. von Google Play Services angefordert. |
|
CAPTURE_SECURE_VIDEO_OUTPUT | Capture Secure Video Output | sy | 0 | Erlaubt einer App, gesicherte Video-Ausgaben abzugreifen. Steht Drittanwendungen nicht zur Verfügung. Wird u. a. von Google Play Services angefordert. |
||
CAPTURE_VIDEO_OUTPUT | Capture Video Output | sy | 0 | Video-Ausgabe abfangen. Steht Drittanwendungen nicht zur Verfügung. Wird u. a. von Google Play Services angefordert. |
||
CHANGE_BACKGROUND_DATA_SETTING | Einstellungen für Hintergrunddaten ändern | Netzwerk | si | 0 | Erlaubt das Ändern der Einstellungen für Hintergrunddaten. | |
CHANGE_COMPONENT_ENABLED_STATE | Komponenten anderer Apps (de)aktivieren | System-Tools | sy | 0 | 2 | Erlaubt einer App festzulegen, ob eine Komponente einer anderen App aktiviert ist oder nicht. Eine böswillige App könnte dies missbrauchen, um wichtige Gerätefunktionen zu deaktivieren. |
CHANGE_CONFIGURATION | UI-Einstellungen ändern | Entwicklerwerkzeuge | dv | 0 | 2-3 | Änderungen an der Umgebung durchführen: Ermöglicht einer Anwendung, die aktuelle Konfiguration zu ändern, etwa das Gebietsschema oder die Schriftgröße. API-Ref nennt als Beispiel "Locale", also Ländereinstellungen wie Währung und Zeitformat. Diese Permission sollte von "gewöhnlichen Apps" nicht angefordert werden. Abgesehen von der explizit genannten "Locale" ist völlig unklar, welche Zugriffe sie ermöglicht. Hier sollte man daher besondere Vorsicht walten lassen. |
CHANGE_NETWORK_STATE | Netzwerkkonnektivität ändern | Netzwerk | da | 0 | Netzwerk-Status ändern (also z. B. Verbindung trennen oder herstellen). Guter Cop: Netzwerkverbindung im Sinne des Anwenders nur bei Bedarf herstellen. Böser Cop: Aus reiner Schadenfreude Kosten verursachen (insbesondere mit Roaming), in Verbindung mit INTERNET heimlich Daten verschicken. |
|
CHANGE_WIFI_MULTICAST_STATE | WLAN-Multicast-Empfang zulassen | Auswirkungen auf den Akku | da | 0 | WiFi MultiCast aktivieren. Damit können Datenpakete an mehrere Empfänger zeitgleich verschickt werden, ohne dass dies zusätzliche Bandbreite erfordert. Macht z. B. Sinn bei einem Streaming-Server, der mehrere Clients bedient ("Radio"). Gleichzeitig ermöglicht dies auch den Empfang von Netzwerk-Paketen, die nicht an das eigene Gerät gerichtet sind (Netzwerk-Sniffer). Diese Einstellung verbraucht mehr Energie als der Nicht-Multicast-Modus. |
|
CHANGE_WIFI_STATE | WLAN-Status ändern | Netzwerk | da | 0 | CHANGE_NETWORK_STATE für WiFi. Kann auch Änderungen an konfigurierten WLAN-Netzen vornehmen. | |
CHANGE_WIMAX_STATE | WIMAX-Status ändern | Netzwerk | da | 0 | CHANGE_NETWORK_STATE für WIMAX. Kann auch Änderungen an konfigurierten WIMAX-Netzen vornehmen. | |
CLEAR_APP_CACHE | Alle Cache-Daten der Anwendung löschen | System-Tools | da | 0 | 0 | Cache beliebiger/aller Anwendungen leeren. Klingt gefährlicher als es ist: Cache ist lediglich eine Art "Zwischenspeicher", in dem Daten für schnelleren (erneuten) Zugriff abgelegt werden. Das Leeren des Caches führt daher nicht zu einem "Datenverlust", kann aber oftmals Probleme beseitigen – etwa wenn im Cache fehlerhafte Daten enthalten sind. |
CLEAR_APP_USER_DATA | Alle Daten der Anwendung löschen | System-Tools | si | 0 | Benutzerdaten beliebiger/aller Apps löschen (siehe Einstellungen → Anwendungen verwalten, der Button "Daten löschen" bei jeder Anwendung). Für vom Hersteller signierte Apps reserviert. | |
COLLECT_METRICS | Nutzungsdaten sammeln | sy | 0 | Erlaubt einer App das Sammeln von Daten über deren Nutzung (customer metrics). Diese Permission ist an die Amazon Metrics Service Application (com.amazon.client.metrics ) gebunden, und wird daher nur bei deren Vorhandensein vergeben. |
||
CONFIGURE_SIP | Vollzugriff auf SIP Konten/Anrufe/Nachrichten | Telefonanrufe | da | 0 | 3 | SIP Konten und Einstellungen konfigurieren, auf SIP Inhalte (Anruflisten, Nachrichten) zugreifen, etc. Eine böswillige App kann damit zusätzliche Kosten verursachen, indem sie etwa einen kostenpflichtigen/teuren SIP account konfiguriert. |
CONNECTIVITY_INTERNAL | Nutzung privilegierter ConnectivityManager APIs | Netzwerk | sy | 0 | 2 | Erlaubt einem internen User die Benutzung privilegierter ConnectivityManager APIs. |
CONTROL_LOCATION_UPDATES | Control Location Updates | Standort | sy | 0 | Erlaubt das aktivieren/deaktivieren von Update-Notifications des Empfängers ("Radio"). Nicht für "normale" Anwendungen bestimmt. | |
dashclock.permission.READ_EXTENSION_DATA | Daten von DashClock-Erweiterungen laden | si | 0 | Lädt Daten von DashClock-Erweiterungen. | ||
DELETE_CACHE_FILES | Cache Dateien anderer Apps löschen | System-Tools | sy | 0 | (einzelne) Dateien aus dem Cache löschen. Steht Drittanwendungen nicht zur Verfügung. | |
DELETE_PACKAGES | Anwendungen löschen | System-Tools | sy | 0 | 1 | Apps entfernen/löschen/deinstallieren. Nicht für Drittanbieter-Apps gedacht. |
DEVICE_POWER | Eingriff in die Energieverwaltung | System-Tools | si | 0 | 1 | Tiefgreifender (low-level) Eingriff in die Energieverwaltung (Power Management). Hat nicht direkt etwas mit "Power Off" zu tun, könnte aber bei Missbrauch durchaus zu selbigem führen… Nicht für Drittanbieter-Apps freigegeben. |
DIAGNOSTIC | Diagnose-Elemente lesen und schreiben | System-Tools | si | 0 | Ermöglicht einer Anwendung, alle Elemente in der Diagnosegruppe zu lesen und zu bearbeiten, etwa Dateien in /dev . Dies könnte eine potenzielle Gefährdung für die Stabilität und Sicherheit des Systems darstellen und sollte NUR für Hardware-spezifische Diagnosen des Herstellers oder Netzbetreibers verwendet werden.Nicht für Drittanbieter-Apps gedacht. |
|
DISABLE_KEYGUARD | Tastensperre deaktivieren | Bildschirm-Sperre | da | 0 | 2-3 | Tastensperre (inkl. deren Passwort-Schutz, also den "Lock-Screen") deaktivieren, sodass der Bildschirm nicht mehr automatisch gesperrt wird. Sinnvoll z. B. bei Video-Apps und insbesondere bei Navis – und bei eingehenden Telefonaten. |
DOWNLOAD_WITHOUT_NOTIFICATION | Dateien ohne Benachrichtigung herunterladen | Netzwerk | no | 0 | 1 | Erlaubt es, Dateien zum Download in die Warteschlange einzufügen, ohne dass dem Anwender eine Benachrichtigung über den Download angezeigt wird. Guter Cop: Ein PodCast-Player kann so den gewünschten Content "zum Zwischenspeichern" herunterladen, ohne die Benachrichtigungsleiste "vollzuspammen". Böser Cop: Malware nachladen, ohne dass der Anwender es mitbekommt. |
DUMP | Internen System-Status auslesen | Entwicklerwerkzeuge | dv | 0 | 4 | Erlaubt den Zugriff auf den Status von System-Services. Nicht für Drittanbieter-Apps gedacht. Die mit dieser Permission zugänglichen Daten dürften in etwa denen des Tools dumpsys entsprechen. Schädliche Apps könnten hiermit Zugriff auf eine Vielzahl an privaten und geschützten Daten erhalten. |
email.ACCESS_PROVIDER | Auf Daten des E-Mail-Anbieters zugreifen | Nachrichten | si | 0 | Ermöglicht der App, auf Ihre E-Mail-Datenbank zuzugreifen, einschließlich erhaltener Nachrichten, gesendeter Nachrichten, Nutzernamen und Passwörtern. Nicht für Drittanbieter-Apps zugänglich. | |
EXPAND_STATUS_BAR | Statusleiste ein-/ausblenden | Status-Bar | no | 0 | 2-3 | Status-Bar erweitern/kollabieren. Wohl die Lite-Version von STATUS_BAR. Durch das Ausblenden der Statusleiste steht der App natürlich mehr Platz auf dem Screen zur Verfügung ("Fullscreen"); eine bösartige App könnte so aber auch dort auftauchende Hinweis-Icons vor dem Anwender verbergen. |
FACTORY_TEST | Factory Test | System-Tools | si | 0 | Als Test-App des Herstellers laufen. Eine solche App kann mit root Rechten laufen. Die Permission wird allerdings nur zugeteilt, wenn das Gerät im "Manufacturer Test Mode" (also im Test-Modus des Herstellers) betrieben wird – und steht für "normale Apps" ohnehin nicht zur Verfügung. | |
FLASHLIGHT | Blitzlicht | Auswirkungen auf den Akku | no | 0 | 0 | Zugriff zum Blitzlicht. Eine damit ausgestattete App kann auf einem damit ausgestatteten Gerät den LED-Blitz der Kamera ein- und ausschalten. Kein besonderes Risiko – außer vielleicht für die Akku-Laufzeit… |
FORCE_BACK | Vordergrund-Aktivitäten beenden | System-Tools | si | 0 | Erlaubt einer App, die gerade im Vordergrund laufenden Activity zu schließen. | |
FORCE_STOP_PACKAGES | Schließen anderer Apps erzwingen | System-Tools | si | 0 | Erlaubt einer App, das schließen einer anderen App zu erzwingen. Dies sollte eigentlich System-Apps vorbehalten sein. Malware könnte dies ausnutzen, um Schutzprogramme außer Gefecht zu setzen. | |
FOREGROUND_SERVICE | Vordergrund-Service | System-Tools | no | 0 | Wird von Apps benötigt, die für Android P oder höher erstellt wurden und einen Vordergrund-Service nutzen wollen. (Ein Vordergrund-Service führt eine Aktion aus, die für den Anwender wahrnehmbar ist (z.B. Abspielen eines Audio-Tracks). Er läuft auch weiter, wenn der Anwender nicht mehr mit ihm interagiert; muss jedoch ein Benachrichtigungs-Icon anzeigen.) |
|
FOREGROUND_SERVICE_SPECIAL_USE | Typ des Vordergrundservices übermitteln | System-Tools | no | 0 | Erlaubt einer App dem System mitzuteilen, welche Art von Vordergrund-Service sie verwendet. | |
FREEZE_SCREEN | Bildschirm einfrieren | System-Tools | si | 0 | Ermöglicht der App, den Bildschirm für einen Vollbild-Übergang vorübergehend einzufrieren. Diese Permission wird von Android selbst zur Verfügung gestellt, und steht Drittanbieter-Apps nicht zur Verfügung. | |
GALLERY_PROVIDER | GALLERY_PROVIDER | da | 0 | Mangels Dokumentation kann ich bei dieser Permission nur anhand der Apps, die sie verwenden, und deren Gemeinsamkeiten raten, dass sie für den Zugriff auf MultiMedia-Daten über den Content-Provider der Medien-Galerie benötigt wird. | ||
GET_ACCOUNTS | Bekannte Konten suchen | Konten | no | 0 | Liste konfigurierter Accounts abrufen (nur die Accounts, nicht die Zugangsdaten selber). Mit dieser Permission lässt sich lediglich feststellen, welche Accounts existieren. So kann beispielsweise eine App, die Dropbox verwenden möchte, feststellen, ob bereits ein passendes Zugangskonto eingerichtet ist. Eine böswillige App kann diese Informationen natürlich für "andere Zwecke" an "andere Stellen" weiterleiten. Um die gefundenen Accounts auch nutzen zu können, bedarf es übrigens der Permission USE_CREDENTIALS. |
|
GET_APP_OPS_STATS | App-Vorgangsstatistiken abrufen | System-Tools | dv | 0 | Ermöglicht der App, erfasste App-Vorgangsstatistiken abzurufen (zum Beispiel, wie oft und wie lange eine App genutzt wird). Kann nicht von normalen Apps verwendet werden. APP_OPS ist das Modul des Android Berechtigungs-Systems, über das sich ab Android 4.3 Berechtigungen der Apps auch im Nachhinein anpassen lassen. Es war bis einschließlich Android 4.4 jedoch nicht offiziell “freigeschaltet”. |
|
GET_PACKAGE_SIZE | Get package size | System-Tools | no | 0 | 1 | Erlaubt die Ermittlung des von einer anderen App belegten Speichers. |
GET_TASKS | Laufende Anwendungen abrufen | App Informationen | da | 0 | 1-3 | Informationen über laufende Anwendungen abrufen: Ein Thumbnail (des Screenshots), welche Aktivität gerade ausgeführt wird, etc. Wird natürlich von Task-Managern und -Killern, aber auch von Akku-Statistik-Apps benötigt. "Böse Apps" können dies nutzen um auszukundschaften, wo sich lohnende Daten zum Klauen finden lassen: Welche Apps nutzt der Anwender (und wie oft)? |
GET_TOP_ACTIVITY_INFO | Informationen der Vordergrund-Aktivität abrufen | App Informationen | si | 0 | Erlaubt das Abrufen privater Informationen der aktuellen Top-Activity (also der gerade im Vordergrund laufenden Aktivität). Nicht für Drittanbieter-Apps gedacht. | |
GLOBAL_SEARCH | Globale Suche | System-Tools | sy | 0 | Content Providern eine Schnittstelle für die Globale Suche zum lesenden Zugriff auf sonst geschützte Daten bereitstellen. Kann nicht von regulären Apps genutzt werden. | |
GLOBAL_SEARCH_CONTROL | Steuerung der Globalen Suche | System-Tools | si | 0 | Erlaubt der App, die Globale Suche zu kontrollieren. Steht Apps von Drittanbietern nicht zur Verfügung. | |
GOOGLE_AUTH | Konfigurierte Accounts anzeigen | Konten | no | 0 | Erlaubt einer App, die Benutzernamen (EMail-Adressen) der auf dem Gerät konfigurierten Google-Accounts aufzulisten. Guter Cop: Accounts für den Login zu Google-Diensten ermitteln, um sie dem User zur Nutzung anzubieten Böser Cop: Schnüffeln, ermitteln von "gültigen Mail-Adressen" für andere Zwecke (Spam u. a. m.) |
|
GOOGLE_AUTH.mail | Google Mail | Konten | da | 1 | Erlaubt einer App, sich mit den auf dem Android Gerät gespeicherten Accounts bei Google Mail anzumelden. Guter Cop: Automatische Anmeldung zur Nutzung der Google-Dienste im Sinne des Anwenders Böser Cop: Automatische Anmeldung ohne Wissen des Anwenders zur Versendung von Spam und/oder ausspionieren persönlicher Informationen |
|
GOOGLE_AUTH.wise | Google Spreadsheets | Konten | da | 1 | Erlaubt einer App, sich mit den auf dem Android Gerät gespeicherten Accounts bei Google Spreadsheets anzumelden. Guter Cop: Automatische Anmeldung zur Nutzung der Google-Dienste im Sinne des Anwenders Böser Cop: Automatische Anmeldung ohne Wissen des Anwenders zum ausspionieren persönlicher Informationen |
|
GOOGLE_AUTH.writely | Google Docs | Konten | da | 1 | Erlaubt einer App, sich mit den auf dem Android Gerät gespeicherten Accounts bei Google Docs anzumelden. Guter Cop: Automatische Anmeldung zur Nutzung der Google-Dienste im Sinne des Anwenders Böser Cop: Automatische Anmeldung ohne Wissen des Anwenders zum Ausspionieren persönlicher Informationen |
|
GOOGLE_PHOTOS | Auf bei G+ gespeicherte Fotos zugreifen | 1 | Diese Permission wird benötigt, um auf von der Google Photos App in die Cloud gesicherte Fotos zuzugreifen (siehe XDA). | |||
google.MAPS_RECEIVE | Kartenmaterial von Google Maps empfangen | Netzwerk | 2 | Apps, die Google Maps einbinden, brauchen diese Berechtigung (sowie zusätzlich READ_GSERVICES , INTERNET and WRITE_EXTERNAL_STORAGE ). In der Berechtigung muss der Name der zugreifenden App enthalten sein, da nur bei dem Google-Dienst registrierte Apps zugreifen dürfen. Diese Berechtigung sieht man nur in der Manifest-Datei, sie wird dem Nutzer nicht bei Installation angezeigt. |
||
GTALK_SERVICE | Google Talk Service | Nachrichten | da | 1 | Zu dieser Permission konnte ich keinerlei Dokumentation finden. Sie steht in Zusammenhang mit der Nutzung von Google Talk bzw. Google Hangouts. Der mit dieser Permission verbundene "Protection Level" scheint von Gerät zu Gerät verschieden. |
|
HARDWARE_TEST | Hardware Testen | Direkter Hardware-Zugriff | si | 0 | Ermöglicht einer Anwendung, verschiedene Peripherie-Geräte zu Hardware-Testzwecken zu steuern. | |
HIGH_SAMPLING_RATE_SENSORS | Zugriff auf Sensordaten mit einer Sampling-Rate größer als 200 Hz. | Sensoren | no | 0 | Erlaubt einer App, hochauflösende Sensordaten (größer 200 Hz, also mehr als 200 Datensätze pro Sekunde) zu erfassen. | |
im.permission.READ_ONLY | Chatnachrichten lesen | Nachrichten | da | 0 | 3 | Diese Permission bezieht sich auf das Lesen von "Instant Messages" (Chat Nachrichten), wie etwa denen von GoogleTalk. |
INJECT_EVENTS | Tasten und Steuerungstasten drücken | System-Tools | sy | 0 | "Generieren" und "ausführen" bestimmter Events, wie z. B. Benutzer-Eingaben. Die App kann also vermutlich andere Apps "fernbedienen" – für die eigene Anwendung wird diese Permission nicht benötigt. | |
INSTALL_DRM | DRM-Content installieren | System-Tools | no | 0 | 1-3 | Ermöglicht einer Anwendung, DRM-geschützte Inhalte zu installieren. DRM steht für Digital Rights Management (Digitale Rechteverwaltung), wird aber auch oft als "Digital Restriction Management" (Digitale Einschränkungs-Verwaltung) genannt. Damit soll kontrolliert werden, wer auf welche Medien wann Zugriff hat. Genutzt wird DRM beispielsweise von Google Books/Musik/Film oder Amazon‘s Kindle. |
INSTALL_LOCATION_PROVIDER | Location-Provider installieren | Standort | sy | 0 | Einen Location-Provider im Location Manager installieren. Für Systemanwendungen reserviert. | |
INSTALL_PACKAGES | Anwendungen direkt installieren | System-Tools | sy | 0 | 5 | Andere Apps installieren. Kann OK sein (App-Manager), muss aber nicht (Wallpaper etc. wollen vielleicht eher Schadsoft nachladen, wenn sie diese Permission anfordern). Ist aber ohnehin für System-Apps reserviert. |
INSTALL_SHORTCUT | Verknüpfungen auf dem Homescreen erstellen | da | 0 | 1-3 | Widgets, Shortcuts, App-Icons, etc. ohne Benutzer-Interaktion auf dem Homescreen erstellen. Malware nutzt dies, um unerwünschte Dinge dort abzulegen. Beispielsweise ein Icon, dass wie das vom Playstore aussieht – allerdings ganz woanders hinführt. | |
INTERACT_ACROSS_USERS | Interact Across Users | System-Tools | sy | 0 | 2 | Erlaubt einer App, Benutzer-Übergreifende Aktionen auf dem Gerät auszulösen. Nicht für Drittanbieter-Apps verfügbar. Eine damit ausgestattete App kann beispielsweise auf die zu ihr gehörigen Daten aller User (nicht nur des gerade aktiven) zugreifen. Ein Beispiel wäre der Sperrbildschirm, der auf die Profilbilder aller User zugreifen muss, um die GUI für den Benutzerwechsel anzuzeigen (siehe hier). |
INTERACT_ACROSS_USERS_FULL | Full license to interact across users | System-Tools | si | 0 | 3 | Vollständigere Form von INTERACT_ACROSS_USERS, welche zusätzliche Funktionalitäten verfügbar macht. Nicht für Drittanbieter-Apps verfügbar. |
INTERNAL_SYSTEM_WINDOW | Interne System-Fenster öffnen | System-Tools | si | 0 | 3 | Erlaubt das öffnen von Fenstern, die Teil des System-UI sind. Für System-Apps reserviert. |
INTERNET | Uneingeschränkter Internetzugriff | Netzwerk | da | 0 | Apps mit dieser Berechtigung können eine vorhandene Internetverbindung (WLAN oder Mobilfunk) nutzen, um Daten zu übertragen. Auch die WLAN-MAC-Adresse ist damit auslesbar. Alle Apps, die ohne Euer Zutun über das Internet mit einem Server Kontakt aufnehmen, brauchen diese Berechtigung. Wird insbesondere auch für Werbezwecke genutzt. In Verbindung mit anderen Permissions, die beispielsweise auf persönliche Daten (Kontakte, Kalender, etc.) Zugriff gewähren, ist jedoch besondere Vorsicht anzuraten. Die Internetverbindung selbst muss allerdings schon aufgebaut sein. (Dafür ist die Berechtigung CHANGE_WIFI_STATE oder CHANGE_NETWORK_STATE nötig.) Allerdings: Auch ohne diese Berechtigung können Apps Daten über das Internet versenden. Zum Beispiel, wenn sie Schnittstellen zur E-Mail-App, zur Browser-App oder zum Google Play-Store nutzen. Das geht in der Regel nur mit kleinen Datenmengen. |
|
k9.permission.DELETE_MESSAGES | K-9 Mail Nachrichten löschen | Nachrichten | 0 | 3 | Ermöglicht einer App, in K-9 Mail gespeicherte Mails zu löschen. | |
k9.permission.READ_ATTACHMENT | K-9 Mail Attachments lesen | Nachrichten | 0 | 2-3 | Bezieht sich auf Dateianhänge in K-9 Mail. Siehe auch READ_ATTACHMENT. | |
k9.permission.READ_MESSAGES | In K-9 Mail gespeicherte Mails lesen | Nachrichten | 0 | 2-3 | Ermöglicht einer App, in K-9 Mail gespeichter Mails zu lesen. Dabei kann es sich um sensible persönliche Informationen handeln, also Vorsicht! | |
KILL_BACKGROUND_PROCESSES | alle Anwendungen im Hintergrund schließen | System-Tools | no | 0 | 2-4 | Hintergrund-Prozesse "töten", also beenden. Dabei kann es sich um die eigenen Prozesse handeln (was dem Anwender die Möglichkeit gibt, das Programm tatsächlich zu beenden, statt es nur in den Hintergrund zu schieben) – es können aber eben so gut fremde Prozesse beendet werden; i. d. R. handelt es sich dann um einen Task-Manager oder Task-Killer. Eine böswillige App könnte dies jedoch auch nutzen, um Schutzmechanismen auszuhebeln (etwa eine Anti-Malware-App abzuschießen, bevor sie mit ihrem eigentlichen Unwesen beginnt). |
launcher.permission.UPDATE_COUNT | Benachrichtigungs-Zähler aktualisieren | no | 0 | 0 | Zugriff auf die Benachrichtigungs-API des Apex Launcher, siehe XDA Developers. Diese Permission ermöglicht einer App lediglich, den Launcher mit Aktualisierungen zu z. B. der Anzahl ungelesener Nachrichten (Mails u. a.) zu versorgen. Derzeit sind keinerlei Risiken bekannt. | |
launcher.READ_SETTINGS | Home Settings und Shortcuts lesen | System-Tools | no | 0 | Erlaubt der App die Konfigurationseinstellungen des Android Launchers (Homescreen) zu lesen, einschließlich der von Icons. | |
launcher.WRITE_SETTINGS | Home Settings und Shortcuts schreiben | System-Tools | no | 0 | Erlaubt der App die Konfigurationseinstellungen des Android Launchers (Homescreen) zu verändern, einschließlich der von Icons. Böswillige Apps könnten dies z. B. verwenden, um (irreführende) Icons auf dem Homescreen zu platzieren – etwa eines, welches dem des Playstore identisch ist – um den User zu Aktionen zu verleiten, die er andernfalls nicht ausführen würde. |
|
LOCATION_HARDWARE | Location Hardware nutzen | sy | 0 | 3 | Erlaubt die Nutzung von Hardware-basierten Ortungsdiensten, wie etwa die Geofencing API. | |
MANAGE_ACCOUNTS | Als Konto-Manager fungieren | Konten | da | 0 | Accounts/Zugangsdaten verwalten – also auch verändern. Die Doku ist leider wieder einmal sehr vage. Laut einem Post bei Stack Exchange heißt dies jedoch nur, dass die betreffende App ihre eigenen Konten (nicht aber andere) mit Unterstützung des (system-eigenen) Account-Managers verwalten darf. | |
MANAGE_APP_TOKENS | Manage App Tokens | Konten | si | 0 | Erlaubt das Verwalten (erstellen, zerstören, Z-Order) von App-Tokens im Fenstermanager. Nur für System-Apps. | |
MANAGE_DEVICE_ADMINS | DeviceAdmins hinzufügen oder entfernen | System-Tools | sy | 0 | Erlaubt der App, Geräte-Administratoren hinzuzufügen oder zu entfernen. Für System-Apps reserviert. | |
MANAGE_DOCUMENTS | Manage Documents | Speicher | sy | 0 | Erlaubt die Verwaltung des Zugriffs auf Dokumente, gewöhnlich als Teil eines Dateiauswahl-Dialogs. | |
MANAGE_EXTERNAL_STORAGE | Externen Speicher verwalten | Speicher | sy | 0 | 2-3 | Erlaubt einer App den nahezu vollständigen Zugriff auf externen Speicher bei Verwendung von „scoped storage“ (Android 10+). Gedacht ist dies für die Verwendung durch wenige Apps, die Dateien im Auftrag der Benutzer verwalten müssen, wie z. B. Dateimanager. Diese Berechtigung muss durch den Anwender explizit zugewiesen werden („appops“) – es sei denn die App ist auf dem Gerät vorinstalliert oder trägt die Signatur des ROMs. |
MANAGE_MTP | Manage MTP | Direkter Hardware-Zugriff | sy | 0 | Erlaubt den Zugriff auf den MTP USB Kernel-Treiber. Nur für die geräteseitige MTP-Implementierung gedacht, und somit auf System-Apps beschränkt. | |
MANAGE_OWN_CALLS | Anrufe durch das System routen | Telefonanrufe | no | 0 | Ermöglicht der App, Anrufe über das System durchzuführen, um die Anrufqualität zu verbessern. Hauptsächlich gedacht für stand-alone Telefon-Apps, die dafür nicht auf die Standard Telefon-App zurückgreifen, sondern Anruf- und Audio-Routing des Telekom-Frameworks direkt nutzen wollen. Android 8+. | |
MANAGE_USB | Einstellungen und Berechtigungen für USB-Geräte verwalten | Direkter Hardware-Zugriff | sy | 0 | Erlaubt das Verwalten der Einstellungen und Berechtigungen für USB-Geräte. Nur für System-Apps. | |
MANAGE_USERS | Benutzer verwalten | System-Tools | sy | 0 | 2 | Erlaubt Apps, die Benutzer (User) auf dem Gerät zu verwalten – einschließlich des Auflistens, der Erstellung neuer User, und dem Löschen bestehender User. Nicht für Drittanbieter-Apps verfügbar. |
MASTER_CLEAR | Master Clear | sy | 0 | 1 | Erlaubt die Initialisierung eines "Master Clear", besser bekannt als "Factory Reset" bzw. "Rücksetzen auf Werkseinstellungen". Reserviert für System-Apps. | |
MEDIA_CONTENT_CONTROL | Medienwiedergabe und Zugriff auf Metadaten steuern | sy | 0 | Zugriff auf Informationen zu wiedergegebenen Medien sowie Kontrolle der Wiedergabe. Aus Gründen der Privatsphäre des Medienkonsums (uff!) auf System-Apps eingeschränkt. | ||
MMS_SEND_OUTBOX_MSG | MMS Wakeup | Nachrichten | sy | 0 | Versenden aller in der Outbox befindlichen MMS. Reserviert für System-Apps. | |
MODIFY_AUDIO_SETTINGS | Audio-Einstellungen ändern | Direkter Hardware-Zugriff | da | 0 | 0 | Ermöglicht der Anwendung, Änderungen an allgemeinen Audioeinstellungen wie Lautstärke und Weiterleitung vorzunehmen. |
MODIFY_PHONE_STATE | Telefonstatus ändern | Telefonanrufe | sy | 0 | 2-4 | Status der Telefonie anpassen: Power, MMI-Codes (z. B. Rufumleitung (de)aktivieren, Rufnummernübermittlung ein/ausschalten) etc. – jedoch nicht Anrufe tätigen. Allerdings kann das Netzwerk (zu einem anderen Anbieter, Roaming) gewechselt oder die Mobilfunkverbindung ein- bzw. ausgeschaltet werden, ohne dass der Benutzer davon informiert wird. Auch können mit dieser Permission eingehende Anrufe abgefangen werden. |
MOUNT_FORMAT_FILESYSTEMS | Externen Speicher formatieren | System-Tools | sy | 0 | 1-3 | Externe Dateisysteme (SD-Karten etc.) formatieren (Vorsicht! Nach dem Formatieren ist das entsprechende Dateisystem leer, die (vorher) darauf befindlichen Daten sind weg!). Nix für Wallpaper, Spiele, etc.! |
MOUNT_UNMOUNT_FILESYSTEMS | Dateisysteme bereitstellen oder Bereitstellung aufheben | System-Tools | sy | 0 | 4 | Dateisysteme ein- und ausbinden. Toll für externe Festplatten am Telefon – gilt aber ebenso für SD-Karten. |
MOVE_PACKAGE | Anwendungsressourcen verschieben | System-Tools | sy | 0 | Ermöglicht der App, App-Ressourcen von internen auf externe Medien zu verschieben und umgekehrt. In anderen Worten: App2SD. | |
NEARBY_WIFI_DEVICES | Verfügbarkeit propagieren und eine Verbindung zu Geräten in der Nähe herstellen. | Netzwerk | da | 0 | Diese Berechtigung wird benötigt, um die eigene Verfügbarkeit von „Nearby WiFi" zu propagieren und eine Verbindung zu Geräten in der Nähe herstellen. Beispiel einer Privatsphäre-Implikation: Du gibst einer App (sagen wir Facebook) nur diese Berechtigung, nicht aber Zugriff auf den Standort. Die Person neben Dir verwendet die gleiche App und gibt Ihr Standortzugriff. Nun kann der Service hinter der App über den Standort der Person neben Dir auch auf Deinen schließen. |
|
NFC | NFC-Operationen ausführen | Netzwerk | da | 0 | 2 | Aktionen via NFC ausführen. NFC hat lediglich eine Reichweite von wenigen Zentimetern, sodass Gerät und Tag sich für eine Kommunikation fast berühren müssen. Daher geht von dieser Permission kaum eine Gefahr aus. Dennoch kann ein wenig Vorsicht nie schaden. |
PACKAGE_USAGE_STATS | Nutzungsstatistik der Komponente aktualisieren | System-Tools | si | 0 | 1 | Ermöglicht die Änderung von gesammelten Nutzungsstatistiken der Komponente. Nicht für normale Anwendungen vorgesehen. Dürfte sich auf App-Statistiken beziehen, etwa wie häufig eine App gestartet wurde. |
PERFORM_CDMA_PROVISIONING | CDMA Telefon Einstellungen starten | sy | 0 | Erlaubt einer App, die CDMA Services (eine Telefonie-Funktionalität) zu starten. Für Systemanwendungen reserviert. | ||
PERSISTENT_ACTIVITY | Persistente Aktivity | App Informationen | no | 0 | Erlaubt einer App, ihre Aktivities persistent zu machen. Mit API-Level 9 (Gingerbread) auf "deprecated" gesetzt; sollte also kaum noch in Verwendung sein. |
|
POST_NOTIFICATIONS | Benachrichtigungen senden | System-Tools | da | 0 | Dies ist eine Laufzeitberechtigung, die mit Android 13 eingeführt wurde und es einer App ermöglicht, Benachrichtigungen zu senden. Wenn Sie diese Berechtigung verweigern, kann die App keine Benachrichtigungen senden. Dies betrifft alle Apps, die auf Android 13 oder höher abzielen. | |
PREVENT_POWER_KEY | Verhalten des Power-Knopfes ändern | Direkter Hardware-Zugriff | da | 0 | Erlaubt einer App, das Standard-Verhalten für den Power-Knopf des Gerätes zu ändern. | |
PROCESS_OUTGOING_CALLS | Abgehende Anrufe abfangen | Telefonanrufe | da | 0 | 2-4 | Ausgehende Anrufe beobachten, verändern oder abbrechen. Hm, könnte das einen Anruf bei der Mailbox ins Ausland weiterleiten? Für eingehende Anrufe siehe MODIFY_PHONE_STATE. Diese Permission hat Spionage-Potential – kann mit ihr doch festgestellt werden, wann wohin angerufen wird (und mehr). Die Nutzung sollte daher weitgehend auf alternative Telefon-Apps sowie VoIP (Voice Over Internet Protocol) beschränkt sein. |
QUERY_ALL_PACKAGES | auf dem Gerät installierte Apps abfragen | System-Tools | no | 0 | 1-3 | Erlaubt einer App, eine Liste aller auf dem Gerät installierten Apps abzufragen. Diese Berechtigung wurde mit Android 11 eingeführt; für Android 11 oder später geschriebene Apps benötigen sie also für die genannte Aufgabe – andernfalls erhalten sie nur eine „gefilterte Liste“. Sie können jedoch stattdessen eine Liste von Apps definieren, deren Vorhandensein sie prüfen wollen. Weitere Details finden sich z. B. über StackOverflow: What does QUERY_ALL_PACKAGES permission do? Ein App-Manager wird diese Berechtigung brauchen – eine Taschenlampen-App hingegen nicht. Hinweis: Google Play weist diese Berechtigung scheinbar bei Apps nicht aus! |
RAISED_THREAD_PRIORITY | Erhöhen der Thread Priorität | System-Tools | 0 | Erlaubt der App, die Prioritäten ihrer Threads (im Vergleich zu denen anderer Apps) zu erhöhen. Dies macht beispielsweise für die Echtzeit-Wiedergabe von Audio/Video Streams Sinn (um Ruckler zu vermeiden). Eine böswillige App könnte damit allerdings auch das System ausbremsen. | ||
READ_APP_BADGE | Benachrichtigungs-Badges lesen | no | 0 | Ermöglicht es einer Anwendung, die auf Icons im Launcher angezeigten Benachrichtigungssymbole zu lesen. | ||
READ_ATTACHMENT | Attachments lesen | Personenbezogene Daten | da | 0 | 2-3 | Bezieht sich auf Dateianhänge in E-Mails der Stock-Mail-App (trifft also weder auf die GMail-App, noch auf K-9 Mail zu). Dateianhänge können sensible Informationen enthalten, die eine böswillige App an andere Stellen weiterleiten könnte. |
READ_CALENDAR | Kalenderdaten lesen | Personenbezogene Daten | da | 0 | 2 | Sollte klar sein: Alle Termine können damit gelesen werden. Man sollte hier bedenken, dass Kalendereinträge oft nicht nur persönlich sind, sondern auch Kontaktdaten u. ä. enthalten können – die man nicht unbedingt "in die freie Wildbahn" lassen möchte. |
READ_CALL_LOG | Anruflisten lesen | Personenbezogene Daten | da | 0 | 2 | Zugriff auf das Anruf-Protokoll. Apps mit dieser Berechtigung können die Anrufliste lesen. Wird von Apps verwendet, die eine Anrufeliste anzeigen wollen oder müssen (zum Beispiel Telefon-Apps). Die Anrufliste lässt viele Rückschlüsse auf Nutzer*innen zu. Wird implizit mit READ_CONTACTS erteilt, wenn eine App für ausschließlich Android 4.0 (ICS) und niedriger geschrieben wurde. |
READ_CLIPBOARD | Clipboard-Inhalt Lesen | System-Tools | 0 | 2-3 | Eine mit dieser Permission ausgestattete App kann lesend auf Inhalte der Zwischenablage („Clipboard“) zugreifen – also alles sehen, was man dorthin kopiert (einschließlich Passworte). Detaillierter Hintergrund und mögliche Schutzmaßnahmen finden sich u. a. bei den XDA-Developers im Artikel How to Stop Apps from Reading the Android Clipboard to Protect your Privacy (von 8/2017). | |
READ_CONTACTS | Kontaktdaten lesen | Personenbezogene Daten | da | 0 | 2 | Damit ist das Adressbuch fällig. Es lässt sich nicht nur einsehen, welche Kontakte es gibt und ihre Details, sondern auch wie oft man sie angerufen oder ihnen gemailt hat, etc. Sofern kein spezielles Feature der App den Zugriff auf die Kontakte erklären kann, sollte man von einer solchen App besser die Finger lassen. Legitime Anwendungen wären etwa alternative Telefon-Apps, Mail-Apps, SMS Apps. Bei anderen Apps kann durchaus das verwendete Werbe-Modul dahinterstehen, das gern das gesamte Adressbuch herunterladen möchte. Oder hoch, wie bei Facebook, WhatsApp & Co. |
READ_CONTENT_PROVIDER | Auf Mails zugreifen | Nachrichten | da | 0 | In erster Linie geht es hierbei um Informationen zu Inhalten von Gmail. Der damit verbundene "Content Provider" macht es u. a. möglich, dem Anwender "Label Informationen" anzuzeigen. | |
READ_EXTERNAL_STORAGE | Externe Speichermedien lesen | Speicher | no | 0 | 0 | Lesezugriff auf externe Speichermedien (gemeint ist hier i. d. R. die externe SD-Karte). Wurde bis einschließlich Android 4.3 allen Apps defaultmäßig zugeteilt. Mit Android 4.4 (Kitkat) hat sich dies geändert, die Permission muss nun explizit angefordert werden. Lediglich bei Anforderung der Berechtigung zum Schreibzugriff wird sie weiterhin implizit erteilt. Bis einschließlich Android 9 wird sie weiterhin für den Lesezugriff auf Mediendateien (z.B. Fotos in DCIM/ ) benötigt.Guter/Böser Cop: Eine MP3-Player App sollte natürlich auf die Musikdateien zugreifen können. Allerdings hat sie damit natürlich auch Zugriff auf alle anderen dort gespeicherten Inhalte. Sensible Informationen sollte man also nicht (unverschlüsselt) auf der SD-Karte speichern. |
READ_FRAME_BUFFER | Frame-Buffer Daten lesen | System-Tools | sy | 0 | 4 | Zugriff auf die Frame-Buffer Daten (vereinfacht gesagt: Den Inhalt des Bildschirms). Erlaubt u. a. das Erstellen von Screenshots. |
READ_GMAIL | Gmail lesen | Nachrichten | si | 1 | Der Protection-Level wurde zum Zeitpunkt des Gingerbread-Releases von "dangerous" auf "signature" angehoben (mit Gmail 2.3.5), siehe Android Census – und ist somit nicht (mehr) für Drittanbieter-Apps verfügbar. | |
READ_GMAIL_PROVIDER | Gmail lesen | Nachrichten | 1 | Siehe auch: READ_GMAIL. Eigentlich heißen beide Permissions READ_GMAIL . Da es sich bei der Gmail-App um "closed source" handelt, und offensichtlich wieder einmal keine Dokumentation zu finden war, konnte ich den Unterschied nicht herausfinden. Weiterhin werden beide Permissions in den Stores häufig einfach mit "Gmail lesen" wiedergegeben, sodass u. U. einge Apps hier "falsch getagged" sind (oder ohnehin beide Permissions verlangen). |
||
READ_GSERVICES | Google Service Konfiguration lesen | Konten | no | 1 | 1 | Erlaubt das Lesen der Google Services Map. Nicht für Drittanbieter-Apps bestimmt. Der zugewiesene "Protection Level" variiert von Gerät zu Gerät (normal/dangerous) – widerspricht aber generell der Beschreibung "nicht für Drittanbieter-Apps". Über Rückschlüsse von verwandten Permissions und Diskussion zu selbigen, kommt dieser Post bei Android.StackExchange.COM zu der Schlussfolgerung, dass es sich bei der Google Service Map um eine Art Index der auf dem Gerät verfügbaren Google Services handeln muss – und READ_GSERVICES somit vergleichbar wäre mit GET_ACCOUNTS: Auflisten, welche Google Services zur Nutzung bereitstehen. |
READ_HISTORY_BOOKMARKS | Lesezeichen und Browser-Chronik lesen | Personenbezogene Daten | da | 0 | 2-3 | Erlaubt lesenden Zugriff auf Lesezeichen und Browserverlauf (Chronik). Die Permission wird von Apps benötigt, welche beispielsweise Lesezeichen sichern (und wiederherstellen) sollen. Allerdings lassen sich mit dieser Berechtigung auch Surfgewohnheiten ausspionieren. |
READ_INPUT_STATE | Eingaben aufzeichnen | System-Tools | sy | 0 | 3-4 | Abrufen des aktuellen Status von Tasten und Schaltern, einschließlich der Erfassung von Eingaben (z. B. Passwörtern) in anderen Apps. Nur für System-Apps. |
READ_LOGS | System-Protokolldateien lesen | Entwicklerwerkzeuge | dv | 0 | 3 | Lesender Zugriff auf die Log-Dateien des Systems. Hier werden allgemeine Informationen zu durchgeführten Aktionen gespeichert, i. d. R. jedoch keine vertraulichen Informationen (es sei denn, ein Programmierer hat etwas verbockt). Ab Android 4.1 ist diese Permission System-Anwendungen vorbehalten; ab Android 7.1 unterliegt es dem Protection Level signature|privileged|development . |
READ_MEDIA_AUDIO | Ermöglicht es einer Anwendung, Audiodateien von einem externen Speicher zu lesen. | Speicher | da | 0 | Eine Runtime-Permission (der Anwender muss sie also bestätigen, damit die App sie benutzen kann). Eine App, die auf Android 13 oder höher abzielt und Audiodateien aus einem externen Speicher lesen muss, muss diese Berechtigung besitzen; READ_EXTERNAL_STORAGE ist nicht erforderlich. Für Apps, die auf Android 12.1 oder niedriger abzielen, wird stattdessen READ_EXTERNAL_STORAGE benötigt, um Audiodateien zu lesen. |
|
READ_MEDIA_IMAGES | Ermöglicht es einer Anwendung, Bilddateien von einem externen Speicher zu lesen. | Speicher | da | 0 | Eine App, die auf Android 13 oder höher abzielt und Bilddateien aus einem externen Speicher lesen muss, muss diese Berechtigung besitzen; READ_EXTERNAL_STORAGE ist nicht erforderlich. Für Apps, die auf Android 12.1 oder niedriger abzielen, wird stattdessen READ_EXTERNAL_STORAGE benötigt, um Grafikdateien (Bilder) zu lesen. |
|
READ_MEDIA_STORAGE | Inhalte des internen Medien-Speichers lesen | Speicher | 0 | Wie READ_EXTERNAL_STORAGE, jedoch für den "internen Speicher". | ||
READ_MEDIA_VIDEO | Ermöglicht es einer Anwendung, Videodateien von einem externen Speicher zu lesen. | Speicher | da | 0 | Eine App, die auf Android 13 oder höher abzielt und Audiodateien aus einem externen Speicher lesen muss, muss diese Berechtigung besitzen; READ_EXTERNAL_STORAGE ist nicht erforderlich. Für Apps, die auf Android 12.1 oder niedriger abzielen, wird stattdessen READ_EXTERNAL_STORAGE benötigt, um Videodateien zu lesen. |
|
READ_OWNER_DATA | Eigentümerdaten lesen | Personenbezogene Daten | da | 0 | Auslesen der auf dem Gerät gespeicherten Eigentümerdaten. Mangels Dokumentation lässt sich auch hier wieder nur "raten": Offensichtlich bezieht sich dies auf den "Me"/"Ich" Kontakt im Adressbuch. |
|
READ_PHONE_NUMBERS | Zugriff auf die Telefonnummer(n) des Gerätes. | Telefonanrufe | da | 0 | Erlaubt den Zugriff auf die Telefonnummer(n) des Gerätes. Die Dokumentation beschreibt es als ein „Sub-Set” von READ_PHONE_STATE, welches „Instant Apps” zur Verfügung gestellt wird. Daraus lässt sich schließen, dass es sich auf die eigenen, den SIM-Karten zugewiesenen Telefonnummern bezieht (und nicht etwa auf das Adressbuch). | |
READ_PHONE_STATE | Telefonstatus lesen und identifizieren | Telefonanrufe | da | 0 | Zugriff auf die Telefonfunktionen des Gerätes. Eine Anwendung erhält mit dieser Berechtigung unter anderem die Möglichkeit, die Telefon- und Seriennummer des Telefons zu ermitteln, feststellen, ob Anrufe eingehen und Gespräche geführt werden sowie die Telefonnummern der Anrufenden auslesen. Um festzustellen, ob ein Anruf aktiv ist,wird sie jedoch trotz gegenteiliger Behauptungen keineswegs benötigt, wie die App permission.READ_PHONE_STATE (nicht mehr im Playstore) zeigt; siehe auch hier. Bei Werbung (z. B. AdMob) wird dies häufig zum Auslesen der IMEI/IMSI genutzt um festzustellen, welche Werbung auf dem Gerät bereits angezeigt wurde (eindeutige Identifizierung, Tracking). Apps, die auch für Android 1.6 und früher kompatibel sein sollen, wird diese Permission automatisch gesetzt. | |
READ_PRIVILEGED_PHONE_STATE | Zugriff auf unveränderbare Identifier | Telefonanrufe | sy | 0 | 3 | Beginnend mit Android 10 benötigt eine App diese privilegierte Berechtigung für den Zugriff auf „unveränderbare Identifier“ wie z. B. IMEI und Serialnummer. Apps von Drittanbietern, die z. B. aus dem Play Store installiert werden, können diese Berechtigung nicht verwenden – sie ist vorinstallierten Systemanwendungen vorbehalten. |
READ_PROFILE | Das persönliche Profil des Anwenders lesen | Personenbezogene Daten | da | 0 | 2-3 | Bezieht sich auf den neuen "Me" Kontakt für das eigene Profil (beinhaltet in der Regel E-Mail-Adresse, Namen und Telefonnummer, und ist nicht identisch mit z. B. dem Google-Konto). Ist beispielsweise sinnvoll für Messenger-Apps, die den Diskussionsverlauf darstellen. |
READ_SECURE_SETTINGS | Systemeinstellungen lesen | Direkter Hardware-Zugriff | 0 | Lesezugriff auf Systemeinstellungen (u. a. Umschalter für die mobile Datenverbindung). Eigentlich dem System vorbehalten. | ||
READ_SMS | SMS oder MMS lesen | Nachrichten | da | 0 | 3 | Damit lassen sich bereits gespeicherte Kurznachrichten lesen. Darunter können natürlich auch vertrauliche Informationen (etwa mobileTANs) sein… Sinnvoll ist diese Permission natürlich für SMS Apps. Aber auch andere Apps können durchaus legitime Gründe haben: etwa um Freischalt-Codes ber SMS zu empfangen, oder (wie einige Anti-Theft-Apps) per SMS gesteuert zu werden. Die App permission.READ_SMS (nicht mehr im Play Store erhältlich) zeigt auf, welche Informationen mit dieser Permission zugänglich sind. |
READ_SOCIAL_STREAM | Den Social-Media-Stream lesen | Soziale Informationen | da | 0 | 2-3 | Diese Permission wurde mit Android 4.0 eingeführt. Eine damit ausgestattete App kann Status-Updates der sozialen Netzwerke lesen – sowohl eingehende, als auch ausgehende. |
READ_SYNC_SETTINGS | Synchronisierungseinstellungen lesen | Synchronisierungseinstellungen | no | 0 | Lesezugriff auf die Einstellungen der Synchronisation – etwa um festzustellen, ob selbige für Kontakte aktiviert ist. Ein gutes Zeichen: Die App möchte vielleicht wissen, ob der Anwender eine Datensynchronisation im Hintergrund erlaubt, und sich (hoffentlich) entsprechend verhalten. Diese Permission ermöglicht lediglich Zugriff auf die Einstellungen – nicht auf die synchronisierten Daten selbst. | |
READ_SYNC_STATS | Synchronisierungsstatistiken lesen | Synchronisierungseinstellungen | no | 0 | Beispielsweise den Verlauf bereits durchgeführter Synchronisationen einsehen. Steht in Verbindung zu READ_SYNC_SETTINGS, und bezieht sich hauptsächlich auf die Synchronisation von Kontakten und anderen Daten. Apps können aber auch ohne diese Funktion synchronisieren. Sie bietet lediglich ein Werkzeug, in dem typische Anforderungen wie Zeitsteuerung schon vorgefertigt sind. Apps, die mit der Sync-Funktion arbeiten, brauchen diese Berechtigung, um den Verlauf bereits durchgeführter Synchronisationen zu sehen. |
|
READ_USER_DICTIONARY | Benutzerwörterbuch lesen | Benutzerwörterbuch | da | 0 | Lesezugriff auf das Benutzerwörterbuch. Sollte nur von IME Apps wie Keyboards, bzw. Wörterbuch-Editoren angefordert werden. Diese Permission ermöglicht es u. a., zum Benutzerwörterbuch hinzugefügte Begriffe zu lesen. Meist sind dies Abkürzungen wie "LG" ("Liebe Grüße") oder "HDL" ("Hab dich lieb"), die man bei Kurznachrichten verwendet. Solange man keine persönlichen Informationen (oder Passwörter) zum Benutzerwörterbuch hinzufügt, geht von dieser Permission kaum ein Risiko aus. |
|
REAL_GET_TASKS | Laufende Anwendungen abrufen | App Informationen | sy | 0 | Informationen über laufende Anwendungen abrufen. Ersetzt ab API-Level 21 (Lollipop) GET_TASKS . |
|
REBOOT | Reboot | System-Tools | sy | 0 | Erlaubt den Neustart des Gerätes. Wie der Name es bereits andeutet: Diese App kann mal eben einen Reboot veranlassen. Nicht für Drittanbieter-Apps gedacht. | |
RECEIVE_BOOT_COMPLETED | Automatisch nach dem Booten starten | App Informationen | no | 0 | 0 | App möchte benachrichtigt werden, wenn der Bootvorgang abgeschlossen ist. i. d. R. heißt das: Sie möchte nach dem Booten automatisch gestartet werden. Auch wenn diese Permission kein Sicherheitsproblem darstellt, kann die Verwendung negative Auswirkungen auf die Nutzer-Experience haben: zahlreiche beim Gerätestart startenden Apps erhöhen die Zeit, bis das Gerät zur Nutzung zur Verfügung steht. Daher sollte die Verwendung dieser Permission stets so erklärt sein, dass der Nutzen sich dem Anwender erschließt. |
RECEIVE_EMERGENCY_BROADCAST | Emergency Broadcast empfangen | Nachrichten | sy | 0 | Ermöglicht einer App den Empfang von "Emergency Cell Broadcast Messages" zur Aufnahme oder Anzeige. Für System-Apps reserviert. | |
RECEIVE_MMS | MMS empfangen | Nachrichten | da | 0 | 3 | Eingehenden MMS abfangen – da möchte wohl jemand mitlesen. Kann aber durchaus OK sein, wenn die App auf MMS/SMS reagieren soll. Auf der anderen Seite kann man damit eingehende Nachrichten auch "im Nirvana" verschwinden lassen… Siehe auch RECEIVE_SMS . |
RECEIVE_SMS | SMS empfangen | Nachrichten | da | 0 | 3 | Eingehenden SMS abfangen – da möchte wohl jemand mitlesen. Kann aber durchaus OK sein, wenn die App auf MMS/SMS reagieren soll (natürlich kann sie den Inhalt der empfangenen Nachricht auch lesen). Auf der anderen Seite kann man damit eingehende Nachrichten auch „im Nirvana“ verschwinden lassen. Oder aber nach Erfassung des Inhalts „unbemerkt weiterreichen“ – besonders kritisch also im Hinblick auf etwa mobileTANs… OK für SMS Apps, aber auch andere Apps können legitime Gründe zum Anfordern dieser Berechtigung haben. Beispiele wären das Zusenden spezieller Codes (etwa zum Freischalten zusätzlicher Funktionen), oder das Auslösen bestimmter Aktionen bei einer Anti-Diebstahl-App. Weitere Details zu dieser Permission finden sich u. a. in diesem Post bei StackExchange, der auch auf Unterschiede des Handlings bei verschiedenen Android-Versionen eingeht. |
RECEIVE_USER_PRESENT | USER_PRESENT Broadcast empfangen | 0 | Für diese Permission konnte ich keinerlei Dokumentation finden – und weiß daher nicht einmal zu sagen, ob sie wirklich existiert. Tatsächlich gibt es jedoch einen Broadcast Intent android.intent.action.USER_PRESENT , der ausgelöst wird, wenn der Anwender (wahrscheinlich nach einer Pause) mit dem Gerät zu interagieren beginnt – z. B. indem er den Bildschirm entsperrt. Diese Permission könnte einer App erlauben, einen Empfänger für diesen Broadcast zu registrieren, um benachrichtigt zu werden. |
|||
RECEIVE_WAP_PUSH | WAP Push Nachrichten empfangen | Nachrichten | da | 0 | Erlaubt den Empfang eingehender WAP Push Nachrichten. WAP wird als Basistechnologie für MMS genutzt. Sowohl das Senden als auch das Empfangen einer Multimedia-Nachricht basiert auf WAP. Die Information, dass eine Multimedia-Nachricht zum Herunterladen bereitsteht, wird als WAP-Push an das Mobiltelefon gesendet. (Wikipedia) |
|
RECORD_AUDIO | Audio aufnehmen | Mikrofon | da | 0 | 3 | Tonaufnahmen erstellen. Das kann sowohl für ein "Diktaphon" genutzt werden – als auch zum Mitschneiden von Telefonaten. Ein Nebeneffekt ist typischerweise höherer Akku-Verbrauch. Böser Cop: In Verbindung mit INTERNET könnte der Anwender damit auch prima unbemerkt belauscht werden. |
REORDER_TASKS | Laufende Anwendungen neu ordnen | System-Tools | no | 0 | Ermöglicht einer Anwendung, Aufgaben in den Vorder- und Hintergrund zu verschieben. Schädliche Anwendungen können so ohne Ihr Zutun eine Anzeige im Vordergrund erzwingen. | |
REQUEST_DELETE_PACKAGES | Package Deinstallation anfordern | System-Tools | no | 0 | Erlaubt einer App, die Deinstallation (Löschung) von Packages (anderen Apps) anzufordern. Apps mit Target-APIs Build.VERSION_CODES.P (Android 9) oder größer müssen diese Permission anfordern, um Intent.ACTION_UNINSTALL_PACKAGE oder PackageInstaller.uninstall (VersionedPackage, IntentSender) ) nutzen zu können. Da diese Aktion den App-Installer aufrufen sollte, sollten Anwender zur Bestätigung jeder Installation aufgefordert werden. |
|
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | Ausschluss von Akku-Optimierung erfragen | Auswirkungen auf den Akku | no | 0 | Erlaubt einer App, um den Ausschluss aus der Akku-Optimierung (aka „Doze Modus“) zu ersuchen. Der Anwender muss dem jedoch zustimmen. | |
REQUEST_INSTALL_PACKAGES | Package Installation anfordern | System-Tools | si | 0 | Erlaubt einer App, die Installation von Packages anzufordern. Apps mit Target-APIs größer als 25 (Android 7/Nougat) müssen diese Permission anfordern, um ACTION_INSTALL_PACKAGE nutzen zu können. Da diese Aktion den App-Installer aufruft, sollten Anwender zur Bestätigung jeder Installation aufgefordert werden. | |
RESTART_PACKAGES | Anwendungen neu starten | System-Tools | no | 0 | 2-3 | Laufende Apps beenden und neu starten. Wird z. B. verwendet, um von selbigen ein Backup erstellen zu können. (In der API-Referenz mittlerweile auf "deprecated" gesetzt, sollte also in neueren Versionen nicht mehr genutzt werden) |
SCHEDULE_EXACT_ALARM | Erlaubt Apps die Verwendung der API für exakte Alarme. | Alarme | no | 0 | Das System löst einen exakten Alarm zu einem bestimmten Zeitpunkt in der Zukunft aus. Apps, die diese Berechtigung besitzen und API-Level 31 (Android 12) oder höher anstreben, bleiben immer im WORKING_SET oder einem niedrigeren Standby-Bucket. Apps, die auf die API-Stufe 30 (Android 11) oder darunter abzielen, benötigen diese Berechtigung nicht, um exakte Alarm-APIs zu verwenden.Exakte Alarme sollten nur für benutzerseitige Funktionen verwendet werden. Dies ist für Dinge wie Wecker und Kalenderereignisse gedacht. Einzelheiten finden sich [in der Entwicklerdokumentation] (https://developer.android.com/training/scheduling/alarms#exact). Die Verwendung von exakten Alarmen kann Auswirkungen auf den Akkuverbrauch haben. Anders als bei USE_EXACT_ALARM kann der Nutzer der App dieses Recht jederzeit entziehen – was dann aber auch zuvor damit gesetzte Alarme löscht. |
|
SEND_DOWNLOAD_COMPLETED_INTENTS | Send download notifications | Netzwerk | si | 0 | Ermöglicht der App, Benachrichtigungen über abgeschlossene Downloads zu senden. Schadprogramme können dadurch andere Apps, die Dateien herunterladen, beeinträchtigen. Steht nur System-Apps zur Verfügung. |
|
SEND_RESPOND_VIA_MESSAGE | Send Respond-via-Message | Nachrichten | sy | 0 | Erlaubt, einer anderen App eine Anforderung zur Verarbeitung der Respond-via-Message Aktion während eingehender Anrufe zu senden. Nicht für Drittanbieter-Apps gedacht. Dahinter verbergen dürfte sich die Möglichkeit, eingehende Anrufe mittels Kurznachricht abzuweisen. |
|
SEND_SMS | Kurznachrichten senden | Nachrichten | da | 0 | Kurznachrichten senden. Und zwar ohne Zutun des Benutzers, auch an richtig teure Premium-Dienste (womit klar ist, wozu "böse Apps" das gern hätten). Es gibt aber auch "gute" Gründe für diese Permission: Natürlich die SMS-Apps, aber teilweise auch In-App-Käufe, die nicht über Google Checkout abgewickelt werden. | |
SEND_SMS_NO_CONFIRMATION | SMS ohne Bestätigung senden | Nachrichten | sy | 0 | 3 | Erlaubt das Versenden von SMS über die SMS-App ohne Benutzer-Interaktion (bei bösartigen Apps kann das schnell teuer werden). Verwandt mit SEND_SMS, aber anders als jene für System-Apps reserviert. |
SET_ACTIVITY_WATCHER | Die Ausführung von Systemaktivitäten beobachten | System-Tools | sy | 0 | Wird meist für Debugging benutzt. Wenn es also keine Beta ist, hat der Entwickler vielleicht nur vergessen, das wieder raus zu nehmen. Bösartige Apps können mit dieser Permission das gesamte System kompromittieren! Allerdings wird sie nur System-Apps gewährt. |
|
SET_ALARM | Alarme einstellen | Alarme | no | 0 | 0 | Erlaubt das senden eines Broadcast, um für den Anwender einen Alarm zu erstellen. Der Alarm wird dabei nicht direkt gesetzt, sondern stattdessen lediglich die Wecker-App aufgerufen – wo der Benutzer den Alarm dann einstellen kann. |
SET_ALWAYS_FINISH | Hintergrundaktivitäten schließen | Entwicklerwerkzeuge | da | 0 | App kann sich selber beenden – also wirklich beenden, nicht nur in den Hintergrund gehen: Diese Permission erlaubt ihr festzulegen, was bei Verlassen der App mit ihren Aktivities passieren soll. | |
SET_ANIMATION_SCALE | Allgemeine Animationsgeschwindigkeit einstellen | System-Tools | dv | 0 | Anpassung der Animationsgeschwindigkeit (schnellere/langsamere Animationen). | |
SET_DEBUG_APP | Debug Modus aktivieren | Entwicklerwerkzeuge | dv | 0 | Eine App für Debugging konfigurieren. Nichts für Endanwender-Apps. Ermöglicht einer Anwendung, die Fehlerbeseitigung für eine andere Anwendung zu aktivieren. Schädliche Anwendungen können so andere Anwendungen löschen. |
|
SET_ORIENTATION | Bildschirmausrichtung festlegen | System-Tools | sy | 0 | Erlaubt das Festlegen der Ausrichtung (Rotation) des Bildschirms. Nicht für normale Apps gedacht. | |
SET_POINTER_SPEED | Pointer Speed anpassen | System-Tools | sy | 0 | Low-Level Zugriff auf die Pointer-Geschwindigkeit. Die API-Referenz erklärt leider nichts näheres – außer, dass diese Permission nicht für Drittanbieter-Apps gedacht ist. | |
SET_PREFERRED_APPLICATIONS | Bevorzugte Anwendungen festlegen | System-Tools | da | 0 | 1-2 | App kann jeder Aktivität eine Default-App zuweisen (etwa den Browser zum Öffnen einer URL). In neueren Android-Versionen ohne Auswirkung (deprecated). |
SET_PROCESS_LIMIT | Prozess-Limits einstellen | Entwicklerwerkzeuge | dv | 0 | Erlaubt das Festlegen der maximal laufenden (aber nicht benötigten) Prozesse einer App. Für Entwicklungszwecke gedacht; sollte in "normalen Anwendungen" nicht auftauchen. | |
SET_TIME | Systemzeit einstellen | Systemuhr | sy | 0 | Erlaubt das Einstellen der Systemzeit. Nicht für Drittanbieter-Apps. | |
SET_TIME_ZONE | Zeitzone festlegen | Systemuhr | da | 0 | Ermöglicht einer Anwendung, die Zeitzone des Telefons zu ändern. Sollte kein Risiko darstellen (außer, dass man evtl. zu spät zur Arbeit kommt). | |
SET_WALLPAPER | Hintergrundbild festlegen | Wallpaper | no | 0 | Ermöglicht der Anwendung, das System-Hintergrundbild festzulegen. Geringes Risiko (abgesehen von schockierenden Bildern, die man auf dem Gerät haben könnte). | |
SET_WALLPAPER_COMPONENT | Live-Wallpapers einstellen | System-Tools | sy | 0 | ||
SET_WALLPAPER_HINTS | Hinweise für Hintergrundbilder setzen | Wallpaper | no | 0 | Erlaubt das Setzen von Hinweisen für Hintergrundbilder. Was genau darunter zu verstehen ist, verrät die API-Referenz leider nicht. Anscheinend geht es hier um Einstellungen zu Größe und Position. | |
SHUTDOWN | Teilweises Herunterfahren | System-Tools | sy | 0 | Erlaubt einer App, den "Activity Manager" in den Status "Closed" zu versetzen (führt keinen vollständigen Shutdown durch). Für Systemanwendungen reserviert. | |
SIGNAL_PERSISTENT_PROCESSES | Signal an alle persistenten Prozesse senden | Entwicklerwerkzeuge | dv | 0 | Erlaubt das Senden eines Signals an alle persistenten Prozesse. Nicht für Drittanbieter-Apps. | |
STATUS_BAR | Statusleiste ein-/ausblenden | Status-Bar | sy | 0 | Kann die Status-Bar öffnen, schließen, und ausblenden. Meist will die App wohl letzteres, um einen "Vollbild-Modus" zu ermöglichen. | |
STATUS_BAR_SERVICE | Statusleiste | Status-Bar | si | 0 | Erlaubt einer App, die Statusleiste zu ersetzen (also selbst als Statusleiste zu fungieren). Für System-Apps reserviert. Nach StackOverflow (übersetzt): Die Permission STATUS_BAR_SERVICE wird von Apps verwendet, die selbst Statusleiste sein möchten. Es handelt sich hierbei um eine geschützte Permission; sofern die entsprechende App also nicht festes Bestandteil einer ROM werden soll, ist es wahrscheinlich nicht die gewünschte Permission." |
|
STOP_APP_SWITCHES | Anwendungswechsel verhindern | System-Tools | sy | 0 | Hindert den Nutzer daran, zu einer anderen Anwendung zu wechseln. Für System-Apps reserviert. | |
SUBSCRIBED_FEEDS_READ | Abonnierte Feeds lesen | System-Tools | no | 0 | 2 | Ermöglicht einer Anwendung, Details zu den zurzeit synchronisierten Feeds abzurufen. Dies gibt einer App Zugriff auf alle RSS Feeds, die der Anwender abonniert hat. Malware kann so persönliche Interessen und andere semi-persönliche Informationen erschnüffeln. |
SUBSCRIBED_FEEDS_WRITE | Abonnierte Feeds schreiben | System-Tools | da | 0 | 0-2 | Ermöglicht einer Anwendung, Änderungen an den kürzlich synchronisierten Feeds vorzunehmen. Schädliche Anwendungen könnten so synchronisierte RSS Feeds ändern. Siehe auch SUBSCRIBED_FEEDS_READ. |
SYSTEM_ALERT_WINDOW | Warnungen auf Systemebene anzeigen | Anzeige | da | 0 | 3 | Fenster mit Systemwarnungen einblenden. Eine böswillige App kann so den gesamten Bildschirm blockieren. Sollte eigentlich nicht benutzt werden, da dies für System-Meldungen gedacht ist. Erlaubt das anzeigen von "Alert Windows", d. h. Nachrichtenfenstern, die immer im Vordergrund angezeigt werden (also über dem aktuellen Bildschirminhalt). Malware könnte dies zur Anzeige von ziemlich nervender Werbung nutzen. Ein positives Beispiel für die Nutzung dieser Permission ist die Meldung bei niedrigem Akku-Stand. Siehe auch: Android.SE "Drawing over other apps" |
tasker.PERMISSION_RUN_TASKS | Tasker-Tasks starten | 0 | Ermöglicht einer App das Ausführen von Tasker Tasks – sowohl vom Entwickler vordefinierter, als auch vom Anwender erstellter – ggf. mit Parametern. Für Details, siehe die entsprechende Seite auf der Projekt-Website. | |||
TRANSMIT_IR | IR Sender benutzen | Auswirkungen auf den Akku | no | 0 | Erlaubt die Benutzung des IR-Transmitters, sofern vorhanden. Dürfte vor allem für Infrarot-Fernbedienungs-Apps interessant sein. | |
UNINSTALL_SHORTCUT | Verknüpfungen vom Homescreen entfernen | no | 0 | Erlaubt das Entfernen von Shortcuts vom Homescreen. Siehe INSTALL_SHORTCUT. | ||
UPDATE_APP_OPS_STATS | App-Vorgangsstatistiken ändern | System-Tools | sy | 0 | Ermöglicht der App, erfasste App-Vorgangsstatistiken zu ändern. Kann nicht von normalen Apps verwendet werden. Siehe auch: GET_APP_OPS_STATS. | |
UPDATE_DEVICE_STATS | Gerätestatistiken aktualisieren | System-Tools | sy | 0 | Erlaubt das Aktualisieren von Gerätestatistiken. Der API-Referenz sind hier keine weiteren Details zu entnehmen – außer, dass diese Permission nicht für Drittanbieter-Apps gedacht ist. | |
USE_BIOMETRIC | Biometrische Sensoren des Geräts nutzen | Sensoren | no | 0 | Ersetzt ab Android 9 USE_FINGERPRINT. Neben der Unterstützung zusätzlicher biometrischer Sensoren, sofern diese im Gerät vorhanden sind (etwa Gesichts- oder Iris-Scanner) bringt die zugehörige API auch die entsprechenden grafischen Dialoge mit. | |
USE_CREDENTIALS | Authentifizierungsinformationen eines Kontos verwenden | Konten | da | 0 | Möchte die konfigurierten Zugangsdaten verwenden. Das heißt nicht unbedingt, dass es sie "zu sehen bekommt" – aber die App kann sich quasi "im Namen des Anwenders" anmelden. Beim ersten Mal wird der Anwender jedoch vom Account Manager gefragt, ob er dies zulassen möchte. Details finden sich u. a. in diesem Post bei Stack Exchange. | |
USE_EXACT_ALARM | Ermöglicht es Anwendungen, exakte Alarme wie bei SCHEDULE_EXACT_ALARM zu verwenden, ohne dass diese Erlaubnis vom Benutzer angefordert werden muss. | Alarme | no | 0 | Dies ist nur für Anwendungen gedacht, die für ihre Kernfunktionalität auf exakte Alarme angewiesen sind. Andere Anwendungen sollten weiterhin SCHEDULE_EXACT_ALARM verwenden, wenn sie exakte Alarme für eine sekundäre Funktion benötigen, die Benutzer innerhalb der Anwendung verwenden können oder auch nicht.Verfügbar ab Android 13. |
|
USE_FINGERPRINT | Zugriff auf Fingerprint-Hardware | Sensoren | no | 0 | Erlaubt einer App die Nutzung von Fingerprint-Hardware – ermöglicht jedoch nicht gleichzeitig den Zugriff auf den administrativen Teil für das Enrollment zur Authentifikation. | |
USE_FULL_SCREEN_INTENT | Vollbild-Intents verwenden | Anzeige | no | 0 | Ab Android 10 sollen Apps nicht mehr die Möglichkeit haben, „aus dem Nichts kommend“ den gesamten Bildschirm zu belegen. Stattdessen sollen sie ihren Wunsch dem Anwender mitteilen – was über eine Benachrichtigung läuft, die der Anwender natürlich frei ist zu ignorieren. Versucht eine App dies ohne diese Berechtigung zu haben, wird das System das (bis auf eine entsprechende Fehlermeldung in den Logs) einfach ignorieren. | |
USE_SIP | Internet Telefonie | Telefonanrufe | da | 0 | 2-3 | App kann Internet-Telefonie nutzen (SIP ist das Protokoll dafür). |
USES_POLICY_FORCE_LOCK | Sofortige Aktivierung des Sperrbildschirms | Bildschirm-Sperre | 0 | Sofortiges Sperren des Bildschirms, als wäre der Timeout abgelaufen – aber auch die Festlegung der maximal möglichen Ablaufzeit. Der "POLICY" Bestandteil deutet auf einen Gerätemanager hin. | ||
vending.BILLING | In-App Einkäufe | Kosten verursachen | da | 1 | In-App Payment (in der App integrierte Bezahldienste, die über den Play Store abgewickelt werden). Dies ist keine Android-Permission, sondern sie wird von Google Play zur Verfügung gestellt. Sofern dort die entsprechenden "Einkaufs-Einstellungen" sicher getroffen wurden (z. B. Passwort-Abfrage bei jedem Einkauf), sollte von dieser Permission keine Gefahr ausgehen. |
|
vending.CHECK_LICENSE | Google Play-Lizenzprüfung | Netzwerk | no | 2 | 0 | Wird benötigt um die Applikation gegen den Android-Market (Google Play Store) auf eine gültige Lizenz zu prüfen. Sollte eigentlich nur bei im Playstore gekauften Apps zu finden sein. Kein Risiko erkennbar. Wird nicht von Android selbst, sondern von der Google Play Store App bereitgestellt. |
VIBRATE | Vibrationsalarm steuern | Auswirkungen auf den Akku | no | 0 | 0 | Wird gern genutzt, um beispielsweise auf die Beendigung (oder auch den Start) einer Aktivität hinzuweisen – oder generell, um die Aufmerksamkeit des Anwenders zu wecken. Laute Töne sind ja nicht immer erwünscht. „Vibrieren“ heißt: Lass das Gerät zittern und summen… |
WAKE_LOCK | Standby-Modus deaktivieren | Auswirkungen auf den Akku | no | 0 | 0 | App kann das System daran hindern, einen Ruhezustand einzunehmen (also den Bildschirm zu dimmen, die CPU "schlafen" zu lassen, etc.) Wäre doch blöd, wenn die Navi-App läuft und plötzlich der Bildschirm ausgeht. Hat natürlich nachhaltige Auswirkungen auf die Akku-Laufzeit, wenn davon zu stark Gebrauch gemacht wird. |
WRITE_APN_SETTINGS | Einstellungen für Zugriffspunktname schreiben | System-Tools | sy | 0 | App kann die Zugangsdaten zum Internet etc. verändern. Meist geht es der App nur darum, den Namen des APN zu ändern – um die Verwendung des mobilen Datenverkehrs zu steuern (Beispiel: APNDroid). Malware könnte dies theoretisch nutzen, um Verbindungen in Fremdnetze einzurichten. Der Quellcode spricht sogar von "Abfangen und Mitschneiden des Datenverkehrs". Nicht für Drittanbieter-Apps. |
|
WRITE_CALENDAR | Kalenderdaten schreiben | Personenbezogene Daten | da | 0 | 2 | Diese Permission erlaubt lediglich den Schreib-, nicht aber den Lesezugriff auf den Kalender. Die damit versehene App kann also Termine hinzufügen, nicht aber lesen oder ändern. So lange also nicht die Permission READ_CALENDAR gleichzeitig angefordert wird, ist das von dieser Permission ausgehende Risiko eher gering. Malware könnte dies jedoch ausnutzen, um Werbung im Kalender zu platzieren; die entsprechenden Termin-Warnungen dürften recht ärgerlich sein. |
WRITE_CALL_LOG | Anruflisten schreiben | Personenbezogene Daten | da | 0 | 2 | Erlaubt der App die Modifikation der Anrufliste, einschließlich der Daten über ein- und ausgehende Anrufe. Ist sicher sinnvoll für VoIP-Apps (damit die Anrufliste vollständig bleibt) und Backup-Apps. Andere Apps sollten hier jedoch nichts verloren haben. Bösartige Apps können mit dieser Berechtigung zum Beispiel heimliche Anrufe an Premiumnummern verbergen, indem sie den Anruf aus dem Protokoll löschen. |
WRITE_CONTACTS | Kontaktdaten schreiben | Personenbezogene Daten | da | 0 | 2 | Wie WRITE_CALENDAR, nur in Bezug auf die Kontaktdaten. Außerdem können damit auf dem Telefon gespeicherte Daten zu Kontakten geändert werden (etwa die Häufigkeit, mit der bestimmte Kontakte angerufen oder E-Mails an sie gesendet wurden). Sofern die Beschreibung einer App auf kein plausibles Feature dafür verweist, sollte sie keinen Grund haben, diese anzufordern. |
WRITE_EXTERNAL_STORAGE | SD-Karten-Inhalt ändern/löschen | Speicher | da | 0 | 2 | App darf beliebige Daten auf der (externen) SD-Karte lesen, schreiben, verändern und auch löschen – prinzipiell auch die Daten anderer Apps. Diese Permission ist aber beispielsweise essentiell für diverse Backup- und Kamera-Apps, die natürlich Daten auf der Karte manipulieren müssen. Warnung: Apps, die für Android 1.5 oder älter geschrieben wurden, erhalten diese Permission implizit! Bis einschließlich Android 9 wird sie weiterhin für den Schreibzugriff auf Mediendateien (z.B. Fotos in DCIM/ ) benötigt. Ab Android 10 gibt es dafür separate Berechtigungen (hier: WRITE_MEDIA_STORAGE ). |
WRITE_GMAIL | Gmail schreiben | Nachrichten | da | 1 | Ermöglicht dieser Anwendung, Ihre E-Mails in Google Mail zu ändern. Darunter fallen auch Sende- und Löschvorgänge. Der assoziierte "Protection Level" unterscheidet sich von Gerät zu Gerät (dangerous/signature) |
|
WRITE_GSERVICES | Google Services Konfiguration verändern | Konten | sy | 1 | Erlaubt das Verändern der Google Service Map. Über genaueres schweigt sich die API-Referenz aus. Diese Permission ist jedoch ohnehin System-Apps vorbehalten. Siehe auch READ_GSERVICES. |
|
WRITE_HISTORY_BOOKMARKS | Lesezeichen und Browser-Chronik schreiben | Personenbezogene Daten | da | 0 | 2-3 | Wie WRITE_CALENDAR, nur in Bezug auf Browser-History (Chronik) und Lesezeichen. Legitime Apps mit dieser Permission sind etwa solche für Backups oder Synchronisation – sowie natürlich Browser-Apps von Drittanbietern. |
WRITE_MEDIA_STORAGE | Inhalte des internen Medien-Speichers verändern | Speicher | sy | 0 | 0 | Erlaubt einer App das Schreiben im internen Medienspeicher. |
WRITE_OWNER_DATA | Eigentümerdaten schreiben | Personenbezogene Daten | da | 0 | Schreiben/verändern der auf dem Gerät gespeicherten Eigentümerdaten. Was genau sich dahinter verbirgt, lässt die API-Referenz nicht nur offen – sondern erwähnt die Permission nicht einmal. Eine Vermutung ist, dass sich dies auf die im Lockscreen hinterlegbaren Daten zum Eigentümer handelt. |
|
WRITE_PROFILE | Das persönliche Profil des Anwenders schreiben | Personenbezogene Daten | da | 0 | 1-3 | Gegenstück zu READ_PROFILE. |
WRITE_SECURE_SETTINGS | Gesicherte Systemeinstellungen ändern | Entwicklerwerkzeuge | dv | 0 | 4 | Lesen und Schreiben gesicherter Systemeinstellungen. "Secure Settings" können nur von Systemanwendungen (also solchen, die ins "ROM" integriert wurden) angefordert werden. |
WRITE_SETTINGS | Allgemeine Systemeinstellungen ändern | System-Tools | sy | 0 | 1-3 | Erlaubt das Lesen und Schreiben allgemeiner Systemeinstellungen. Dies kann sich auf alles mögliche beziehen, was sich im Menü Einstellungen befindet (z. B. Flugmodus an/aus, Klingeltöne). Wird häufig von Widgets und Tools verwendet. |
WRITE_SMS | SMS Nachrichten schreiben | Nachrichten | da | 0 | 3 | SMS Nachrichten schreiben (jedoch nicht senden). Eine böswillige App könnte darauf hoffen, dass der Anwender die "ungesendete Nachricht" dann doch noch auf den Weg bringt. |
WRITE_SOCIAL_STREAM | Den Social-Media-Stream schreiben | Soziale Informationen | da | 0 | Diese Permission wurde mit Android 4.0 eingeführt. Eine damit ausgestattete App kann Status-Updates der sozialen Netzwerke schreiben, jedoch nicht lesen. Malware könnte somit im Namen des Anwenders Mitteilungen auf den Weg bringen. | |
WRITE_SYNC_SETTINGS | Synchronisierungseinstellungen schreiben | Synchronisierungseinstellungen | da | 0 | 1-2 | Schreibzugriff auf die Einstellungen der Synchronisation. Eine mit dieser Permission ausgestattete App kann u. a. die Synchronisation von Kontakten und Kalendern aktivieren bzw. deaktivieren. Sinnvoll ist so etwas u. U. bei einer SMS Backup App; prinzipiell aber auch bei jeder App, die sich in den Sync-Mechanismus „einklinkt“, um ihre Daten zu synchronisieren. I. d. R. haben Apps der letztgenannten Gruppe einen Account assoziiert (z. B. Facebook o. ä.). |
WRITE_USER_DICTIONARY | Benutzerwörterbuch schreiben | Benutzerwörterbuch | no | 0 | Erlaubt den schreibenden Zugriff auf das Benutzerwörterbuch, um Begriffe hinzuzufügen. Siehe auch READ_USER_DICTIONARY. |
Quellen: Android Developers, OWASP, Github, Stack Exchange, RuperTrawnsley's Blog, Android Cross Reference, AndroidPermissions.COM, AOSP Perms & PermDescs, MobilSicher
Weitere interessante Quellen zum Thema:
- App-Zugriffsrechte entschlüsselt
(Eine ähnliche Übersicht bei MobilSicher.DE) - Use Permissions to Secure Your Private Data from Android Apps (7/2010, Update 10/2019)
erklärt Permissions, mit Beispielen für gute/böse Apps. Englisch. - What Can a Zero-Permissions Android App Do? (4/2012)
- Eine thematische Zusammenfassung bei Stack Exchange (4/2013)
- Android 4.1.1r1 Manifest
(XML derManifest
Datei von Android 4.1.1r1, mit Definition der dort bekannten Permissions) - API-Level 16
strings.xml
(Android 4.1/4.1.1; siehe API-Levels) strings.xml
der jeweils aktuellen Android-Version: DE | EN