Apps einzelne Permissions gezielt entziehen bzw. granten

  • Antworten:25
  • OffenNicht stickyNicht beantwortet
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

16.11.2010, 11:17:18 via Website

Diese Frage beschäftigt die Android-Community bereits seit längerem: Wie kann ich einer App gezielt bestimmte Permissions entziehen? Auch an das Android-Entwicklerteam wurde dieser Wunsch schon vermehrt herangetragen:

  • Issue 6266: manifest uses-permission to be optional
  • Issue 6600: Selectively allow specific permissions for an application.
  • und, noch viel früher: Issue 3778: Feature request: Application permissions should be individually grantable by the user

Letztgenanntes Issue existiert bereits seit über einem Jahr, und passiert ist genau - nichts. Jedenfalls seitens Google und des Android-Systems selbst. Heißt das jetzt: Nix geht? -- Ihr habt schon richtig geraten: Wenn dem so wäre, würde ich diesen Post hier nicht schreiben. Also, was gibt es?

Es gibt ein schönes - allerdings englisch-sprachiges - Android-Howto, welches (zum Zeitpunkt, da ich dieses schreibe) zumindest zwei Möglichkeiten nennt:

  • apktool (offensichtlich leider nicht im Market zu finden) kann "re-engeneer" Pakete - sie also umbauen, und dabei das Manifest (da wo die App die gewünschten/erforderlichen/geforderten Permissions deklariert) entsprechend anpassen
  • Permissions blocker (auch wieder nicht im Market erhältlich) kann die Permissions bereits installierter Apps verändern, was jedoch einen Reboot erforderlich macht

Letzteres wird wahrscheinlich so vorgehen, wie ich es vor einer Weile dem Autoren von aSpotCat - Permission Checker vorgeschlagen habe - und die entsprechende Systemdatei (da wo die Permissions vom System verwaltet werden) anpassen - das braucht nämlich einen Reboot, da die Änderungen sonst gleich wieder vom System überschrieben werden.

Ich habe mir beide Apps noch nicht angeschaut - werde das aber bestimmt bald tun, und dann hier berichten.


Für die unter Euch, die noch immer ein großes Fragezeichen auf der Stirn haben: Wozu das gut sein soll? Nun, stellt Euch vor, Ihr findet z.B. ein geniales Wallpaper - das aber als Permissions u.a. "Kontakte lesen" und "unbeschränkter Internetzugang" fordert (zugegeben, ein dummes Beispiel - da es hier ziemlich auf der Hand liegt, was der Autor eigentlich mit der App beabsichtigt. Aber genau deshalb begreift es vielleicht auch der letzte). Das Wallpaper wollt Ihr also gerne - aber dem Autoren desselben Euer ganzes Adressbuch zukommen lassen, wollt Ihr eher nicht. Also entzieht Ihr der App (mit einem der genannten Apps) einfach das Recht, auf Eure Kontakte zuzugreifen. Internet könnte das (Live-) Wallpaper ja auch für andere Dinge brauchen - und wo nicht, wird ihm dieses Recht eben auch entzogen...

Antworten
  • Forum-Beiträge: 2.545

16.11.2010, 19:41:59 via Website

Hm, da bin ich dann mal gespannt auf den Test...
Meiner Ansicht nach wird das Entziehen von Permissions in den meisten Fällen nur den Effekt haben, das die betreffende App danach nicht mehr funktioniert (abstürzt), weil das System eine Exception wirft, wenn eine App eine Aktion ohne zugehörige Permission versucht.

Antworten
  • Forum-Beiträge: 1.544

16.11.2010, 19:59:18 via App

Ja,
abstürzen wäre wohl nicht so gut.. Ich benutze im Moment [app]Droidwall (root required)[/app], da kann ich jeder App einzeln Internet erlauben.. Läuft für mich perfekt.. :grin:
Lg Ansgar

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

16.11.2010, 20:10:44 via Website

@Ansgar: Droidwall läuft leider nicht auf meinem Wildfire...

@and dev: Bei dieser Art von Lösung nicht auszuschließen. Würde es, wie im APEX Konzept vorgeschlagen, direkt vom Android System gehandelt, ließen sich derartige Probleme recht einfach umgehen:

  • Internet? Gerade keine Verbindung
  • SD-Karte? Die ist gerade "read only"
  • Adressbuch? Das ist leer ("hinzugefügtes" landet einfach im Nirwana)
  • Kalender? Siehe Adressbuch.

Und so weiter. Bei den meisten Dingen liefe es wohl auf ein Placebo (wie bei "Adressbuch schreiben" - so tun als ob, dann aber verwerfen) hinaus. Damit sollte eigentlich (fast) jede App klar kommen.

Antworten
  • Forum-Beiträge: 1.527

16.11.2010, 20:36:00 via App

Tragisch ist, dass manche Apps tatsächlich so schlecht programmiert sind, dass sie abschmieren, wenn die Internetverbindung unterbrochen wird.
Gehen diese beiden Apps ohne Root?

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

16.11.2010, 20:53:23 via Website

Das zweite definitiv nicht (für die Änderung einer Systemdatei braucht man root) - beim ersten bin ich nicht sicher (das Umbauen einer "Datei" ließe sich sicher auch ohne root bewerkstelligen). Und wenn eine App derart schlecht programmiert ist, wie Du beschreibst - dann gibt es hoffentlich eine alternative App, die die Wunsch-Funktionen abdeckt... Andernfalls kann da nur der Entwickler selbst Abhilfe schaffen, indem er/sie mal vernünftig programmieren lernt - und die Ergebnisse dieser Lehre in die App einfließen lässt...

He, lest Ihr eigentlich auch mal alles, bevor Ihr antwortet? :P Einfach mal den Links folgen, das hätte die Fragen beantwortet:

  • apktool läuft nicht auf dem Handy - sondern auf dem PC
  • für den Permission-Blocker muss man sich aus verlinktem Post erstmal die richtige URL baseln

Fette Warnung bei der (zweiten) App - wenn's Dir die permissions.xml zerlegt, biste hin. Also gutes Backup machen vorher - und sicherstellen, dass auch alles drin ist. Also am besten ein ROM-Backup (Nandroid)...

Antworten
  • Forum-Beiträge: 1.527

16.11.2010, 21:19:23 via App

Ich lese alles, aber folge nicht jedem Links, weil diese teilweise nicht wirklich brauchbar sind auf dem kleinen Display.
Speziell die Links zu den Apps habe ich mir abgewöhnt und sie stattdessen immer unter den Apps gesucht.

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

16.11.2010, 23:01:39 via Website

Also nachdem ich die Details gelesen habe, weiß ich nicht, ob ich mir den Stress wirklich antun will:

Variante 1: *.apk umpacken mit apktool

Hier installierst Du Dir apktool auf Deinen PC (Win/Linux/Mac). Dem wirfst Du dann das *.apk vor - und heraus kommt etwas "unsigniertes". Vermutlich musst Du das dann wieder signieren, um es installieren zu können - brauchst also das komplette Android SDK ebenfalls. Für den durchschnittlichen Android-User also eher nix.

Variante 2: Permissions revoken mit "Permissions blocker"

Das erfordert root auf Deinem Phone. Die App manipuliert dann eine Systemdatei (permissions.xml), woraufhin Du Dein Phone booten musst (sonst werden Deine Änderungen wieder überschrieben). Vertut sich die App dabei irgendwie, und zerlegt Dir die Datei... wei-o-wei (Backup musst Du derzeit noch manuell machen). Und allein schon wegen root auch wieder nix für den "normalen Anwender".

Zack. Schöne Ansätze - aber richtig was werden tut das erst, wenn es richtig ins System eingebettet ist - ich sag da nur: APEX. Und ob (und wenn, dann wann) das kommt... Wohl kaum vor 2012, wenn überhaupt. Trotz massivem Protest von Anwendern (siehe erster Post) scheint Google das ja herzlich wenig zu kümmern. Wahrscheinlich muss wirklich erst was passieren - nur was? Wenn dann was passiert, ist eh der User Schuld - der hätte das "böse Programm" halt nicht installieren dürfen. So einfach ist das...

Antworten
Gelöschter Account
  • Forum-Beiträge: 616

17.11.2010, 08:44:20 via Website

Es gibt immer noch Variante 3: "Die App nicht installieren."
Allerdings fällt dies scheinbar dem Großteil der Anwender sehr schwer.

Viele würden doch einfach nur gerne den Internet-Zugriff von Apps und damit die Werbung blocken.

Ich bezweifel stark, das ein nachträgliches Entziehen der Rechte oder eine interne Firewall eine Lösung für die Mehrheit der User ist.
Wie viel Prozent der Anwender verstehen eigentlich die Rechte-Abfrage bei der Installation? Ich tippe auf unter 10%.

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

17.11.2010, 11:02:35 via Website

Hartmut, ich stimme Dir in allen Punkten zu. Ich beschrieb ja in meinem letzten Task auch bereits, dass die beiden hier vorgestellten Ansätze für die Mehrheit der Android-Nutzer unpraktikabel sein dürfte. Aber allein, dass sich Leute Gedanken darum machen und entsprechende Apps erstellen, zeigt doch den Bedarf.

Selbst wenn es, wie bei APEX beschrieben, direkt ins System integriert wäre, würden (geschätzte) 80% es wahrscheinlich vollständig (oder zumindest in den meisten Fällen) ignorieren. Doch wir hätten zumindest die Möglichkeit, auf den "Erweitert" Link zu klicken, und einzelne ("gefährliche") Permissions zu deaktivieren. Dies würden zumindest die verbleibenden 20% sehr begrüßen.

Antworten
  • Forum-Beiträge: 11.132

21.06.2011, 20:12:27 via Website

Ich wärme das mal etwas auf. Bezüglich der ersten Variante habe ich heute das in deutsch gefunden, ohne SDK, "umpacken" ja aber sonst ganz simpel. Text + Beschreibung, kann ja jeder selber lesen, gleich hier der Link zur Info: http://www.mobiflip.de/2011/06/auch-fuer-anfaenger-und-ohne-root-android-apps-die-rechte-entziehen/

Natürlicher Verstand kann fast jeden Grad von Bildung ersetzen, aber keine Bildung den natürlichen Verstand. Arthur Schopenhauer App Reviews nach Einsatzzweck und hier noch das: Das-AndroidPITiden-Buch

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

21.06.2011, 20:25:38 via Website

Jaja. Aber nicht vergessen, dass anschließend die erstellte APK nicht als Update geeignet ist (soweit ich mich erinnere). Da sich die Signatur ändert, werden die Daten dann nicht übernommen. Berichtigt mich bitte, wenn ich da was falsches im Kopf habe...

Antworten
  • Forum-Beiträge: 11.132

21.06.2011, 20:44:18 via Website

Da alles noch zu neu ist um an dem Punkt mitzureden, gleich noch ne Frage. Gibt es denn bei Android so was wie bei Symbian, das man sich ein Zertifakat besorgt und dann die unsignierten Programme wieder signiert?

Natürlicher Verstand kann fast jeden Grad von Bildung ersetzen, aber keine Bildung den natürlichen Verstand. Arthur Schopenhauer App Reviews nach Einsatzzweck und hier noch das: Das-AndroidPITiden-Buch

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

21.06.2011, 21:02:35 via Website

Es gibt in der Tat auch bei Android ähnliche Zertifikate. Aber das gleiche Zertifikat, mit welchem die App vorher signiert war, bekommst Du wohl nur in Ausnahmefällen. Die Frage beantwortet aber besser ein Entwickler, da sind meine Kenttnisse zu beschränkt...

Antworten
  • Forum-Beiträge: 9

15.07.2011, 15:11:57 via Website

tom_cat
Ich wärme das mal etwas auf. Bezüglich der ersten Variante habe ich heute das in deutsch gefunden, ohne SDK, "umpacken" ja aber sonst ganz simpel. Text + Beschreibung, kann ja jeder selber lesen, gleich hier der Link zur Info: http://www.mobiflip.de/2011/06/auch-fuer-anfaenger-und-ohne-root-android-apps-die-rechte-entziehen/

Diese Methode hat zumindest bei mir mit der [app]Facebook for Android[/app] geklappt, ohne Probleme. FB kann keine SMS/MMS mehr lesen und schreiben geschweige denn Versenden !!

Guter Tipp

Edit by Mod tom_cat: Da es sich um eine geschützte App handelt, die auch noch modifizert ist, habe ich den Link entfernt.

— geändert am 15.07.2011, 21:42:50 durch Moderator

tom_cat

Antworten
  • Forum-Beiträge: 11.132

15.07.2011, 16:05:14 via Website

Das wird ja eine Leute hier sehr freuen, das man das abschalten kann und die wichtigen Grundfunktionen trotzdem gehen. Danke schön fürs probieren und posten!

Natürlicher Verstand kann fast jeden Grad von Bildung ersetzen, aber keine Bildung den natürlichen Verstand. Arthur Schopenhauer App Reviews nach Einsatzzweck und hier noch das: Das-AndroidPITiden-Buch

Antworten
Izzy
  • Blogger
  • Forum-Beiträge: 6.929

13.02.2012, 11:29:54 via Website

Hi Sukati, dafür hast Du aber einen recht alten Thread erwischt -- da gibt es bereits neuere:
Die von Dir genannte App ist dort auch bereits beschrieben, vielleicht magst Du ja mal reinschauen. Natürlich freuen wir uns dort auch über Erfahrungsberichte einzelner :P

Antworten
  • Forum-Beiträge: 10

19.03.2012, 07:32:48 via Website

vielleicht ist das ja den meisten nun bekannt, aber mit der App LBE Privacy Guard klappt das einzelne entziehen von Berechtigungen ziemlich gut. Benötigt Root. Market

Antworten

Empfohlene Artikel