Festlegen benutzerdefinierter Berechtigungen pro Anwendung [Duplikat]

Ich möchte eine genauere Kontrolle über Berechtigungen. Ich bin damit einverstanden, dass Anwendungen einige Berechtigungen haben, aber ich möchte die Kontrolle behalten und eine genauere Kontrolle haben.

Kann man das auf Android machen? Ich weiß, dass iOS dies für einige Dinge wie Kontakte und Kalenderdaten hat. Der Benutzer wird aufgefordert, bevor die Anwendung Zugriff auf diese vertraulichen Datensätze erhält.

Technisch gesehen kann ich sehen, dass dies funktioniert, indem ich den API-Zugriff verweigere, wenn die Anwendung versucht, darauf zuzugreifen.

Sieht so aus, als wäre es in Android 4.3 verfügbar, obwohl es standardmäßig ausgeblendet ist. androidpolice.com/2013/07/25/…

Antworten (3)

Ergänzend zu Chahks Antwort : Ja, es stimmt, dass "native" Berechtigungen ein "Alles-oder-Nichts" sind. Vom „Standardbenutzer“ wird erwartet, dass er entweder alle von einer App angeforderten Berechtigungen akzeptiert – oder von der Installation absieht.

Und ja, es ist wahr: Mit einer App wie Permissions Denied , die einer App einfach bestimmte Berechtigungen "verweigert", können Apps das Schließen erzwingen, da sie dies nicht erwarten.

Aber es gibt noch einen dritten Weg, bei dem Apps einfach mit „Fake-Daten“ gefüttert werden. Dies geschieht zB durch LBE und PDroid (siehe Andere Apps zum Verwalten von Berechtigungen? und wie man meine persönlichen Daten fälscht für Details). App will die Kontakte? Hoppla, das Adressbuch ist leer. IMEI? OK, wie wäre es mit "1234567890"? Internet? Tut mir leid, aber wir befinden uns in einem Tunnel – weder WLAN noch mobile Daten verfügbar. Alle zurückgegebenen Daten machen also für die anfragende App Sinn: Sie bekommt keine einfache "Ausnahme", also stürzt sie nicht ab. Und was es aus den gefälschten Daten macht – wen interessiert das? :)

Unnötig zu sagen: Auch hier wird root benötigt...

Jede App zeigt eine Liste der Berechtigungen, die sie während der Installation verwendet, an welcher Stelle ein Benutzer diese entweder akzeptieren und die App installieren oder die Installation ablehnen und stoppen kann. Das Berechtigungsmodell in Android ist ein „Alles oder Nichts“, was bedeutet, dass Sie entweder alles akzeptieren, was die App verlangt, oder es nicht installieren.

Standardmäßig bietet Standard-Android nach dieser anfänglichen Annahme keine Möglichkeit für Benutzer, bestimmte Berechtigungen zu verweigern. Wenn Ihr Telefon jedoch gerootet ist, gibt es Apps von Drittanbietern , die diese Funktion ermöglichen. Einige benutzerdefinierte ROMs haben dies ebenfalls. Denken Sie daran, dass die überwiegende Mehrheit der Apps so codiert ist, dass alle erklärten Berechtigungen verfügbar sind (da Sie sie akzeptieren müssen, um diese App zu installieren). Daher werden sie sich nicht die Mühe machen, nach den Bedingungen zu suchen, unter denen Berechtigungen verweigert wurden über nicht standardisierte Methoden. Dies bedeutet, dass Apps höchstwahrscheinlich instabil werden und abstürzen oder hängen bleiben können.

Sie können bekommen, was Sie wollen, aber Sie müssen eine Aftermarket-Firmware auf Ihrem Gerät ändern oder flashen.

Es gibt das Berechtigungsmanagement von CyanogenMod 7, aber es kann nur Berechtigungen widerrufen. API-Anfragen schlagen dann fehl. Letztendlich ist dies dasselbe, als ob der Entwickler vergessen hätte, die Berechtigung überhaupt zu deklarieren, und Apps diese Bedingung häufig nicht überprüfen und fehlschlagen.

Dann gibt es das Privacy Droid (pdroid)-Erweiterungs-Patch-Set. Sie wurde ursprünglich für Android 2.3 entwickelt und besteht aus einer Closed Source ( Management App bei Google Play ) und einem Open Source Patch für die Firmware (siehe Link im Play Store).

Weil die Entwicklung ins Stocken geriet, portierten andere die Systempatches auf neuere Android-Versionen und es wurden auch Open-Source-Management-Apps geschrieben. Einige benutzerdefinierte Roms enthalten bereits alle notwendigen Änderungen, für diejenigen, die dies nicht tun (CM, et al.), gibt es das Autopatcher-Projekt, um Firmware-Images so zu ändern, dass sie alle erforderlichen Bits enthalten:

AutoPatcher-Thread auf XDA

Hinweis: Es gibt mittlerweile zwei Forks des ursprünglichen PDroid. Details finden Sie über die Links in meiner Antwort auf diese Frage. Einer der Forks ist sogar Open Source (OpenPDroid).