Permission Blocker

  • 75 Antworten
  • Letztes Antwortdatum
Fr4gg0r

Fr4gg0r

App-Anbieter (Werbung)
465
Hi,
ich habe mich mal hingesetzt und eine App entworfen, mit der man die Permissions anderer Apps blocken/ aus dem System entfernen (und natürlich wiederherstellen) kann.

Der Haken: momentan ist ein reboot notwendig, bis die Änderung Wirkung zeigt. >_<

Bugs: Es werden upgedatete System Apps aufgelistet (mit 0 Permissions).

Funktionsweise:
in der Liste ein Item kurz berühren um deren Permissions anzuzeigen, lange berühren um zum Edit Menü zu gelangen.
Habt ihr neue Apps installiert, in der Liste im Menü Rescan auswählen.
Das Programm modifiziert die packages.xml, theoretisch könnte es diese zerschießen sodass euer Phone nicht mehr bootet,
dann hilft nur noch fixen im recovery modus oder neuflashen. Bisher ist kein solcher Fall gemeldet worden.

Erster Start dauert etwas länger, da zuerst eure packages.xml lokalisiert werden muss. ;)
 

Anhänge

  • permblocker1.png
    permblocker1.png
    19,5 KB · Aufrufe: 5.385
  • permblocker2.png
    permblocker2.png
    19,7 KB · Aufrufe: 4.976
  • permissionBlocker.apk
    28,7 KB · Aufrufe: 2.432
Zuletzt bearbeitet:
  • Danke
Reaktionen: johannsen, Manu-1, Technikjunkie und 12 andere
Und was passiert, wenn die App die Aktion durchführen will?

Exception, wie wenn man sie in der Manifest Datei vergessen hat, oder?
 
joa
 
Die Idee ist top!
Kannst du noch verraten wo/wie man die *.apk findet? Weder im Market noch AppBrain noch androidpit zu finden :confused2:
Hab nach "Permission Blocker" und "permBlocker" gesucht...
 
Gibts auch nicht im Market.
Habe bis jetzt vergeblich eine Möglichkeit gesucht, dass die Änderungen ohne Reboot wirksam werden, leider. :(
 
Jear, da hat einer Ahnung vom programmieren! Respekt für das Programm!

Hätte mal ein paar Fragen:
Wirst du den Source Code des Programmes öffentlich machen? Ich gehe davon aus, dass du die packages.xml veränderst, oder? Gibt es da einen besonderen Trick um die Änderungen irgendwie "permanent" zu machen? Wenn ich bei mir an der packages.xml etwas geändert hatte, hat er es mir bei jedem Neustart wieder überschrieben :confused: Kannst mir auch per PM antworten wenn du möchtest ^^

Dafür kann ich dir vielleicht auch etwas helfen. Der Source Code für das Parsen der installierten Packages geschieht hier: android.git.kernel.org Git - platform/frameworks/base.git/blob - services/java/com/android/server/PackageManagerService.java
Du benötigst einen Neustart, da der PackageManagerService nach dem Start des Handys das was in der packages.xml steht im Speicher hat und deshalb Änderungen zur Laufzeit an der xml Datei, nicht direkt die App beeinflussen. Sollte sehr schwierig werden an den PackageManagerService ran zu kommen um Variablen im Speicher zu verändern um dadurch auf den Neustart verzichten zu können.
 
sebastian schrieb:
Jear, da hat einer Ahnung vom programmieren! Respekt für das Programm!

Hätte mal ein paar Fragen:
Wirst du den Source Code des Programmes öffentlich machen? Ich gehe davon aus, dass du die packages.xml veränderst, oder? Gibt es da einen besonderen Trick um die Änderungen irgendwie "permanent" zu machen? Wenn ich bei mir an der packages.xml etwas geändert hatte, hat er es mir bei jedem Neustart wieder überschrieben :confused: Kannst mir auch per PM antworten wenn du möchtest ^^

Dafür kann ich dir vielleicht auch etwas helfen. Der Source Code für das Parsen der installierten Packages geschieht hier: android.git.kernel.org Git - platform/frameworks/base.git/blob - services/java/com/android/server/PackageManagerService.java
Du benötigst einen Neustart, da der PackageManagerService nach dem Start des Handys das was in der packages.xml steht im Speicher hat und deshalb Änderungen zur Laufzeit an der xml Datei, nicht direkt die App beeinflussen. Sollte sehr schwierig werden an den PackageManagerService ran zu kommen um Variablen im Speicher zu verändern um dadurch auf den Neustart verzichten zu können.

Vollkommen korrekt, ich verändere die packages.xml.
Bei mir werden die Änderungen jedoch nicht wieder vom System überschrieben.

Ich hatte es bereits mit dem PackageManagerService versucht; diesen per Reflection instanziiert; dem Logcat Output zu urteilen, scannt er framework, sysem apps, und bei den Apps in /data stürzt er irgendwo ab. :D

Desweiteren hab ich versucht, als su system broadcast intents zu verschicken (PACKAGE_CHANGED, replaced etc), hat auch nichts gebracht.
 
Fr4gg0r schrieb:
Desweiteren hab ich versucht, als su system broadcast intents zu verschicken (PACKAGE_CHANGED, replaced etc), hat auch nichts gebracht.
Das ist ne gute Idee, bist du dir sicher dass die Broadcasts versendet wurden? Habe schon die Erfahrung gemacht, dass es einen Unterschied macht ob man su oder im System Prozess "hockt" ;) Das ginge aber nur über ne sharedUserId und dann brauchste noch das selbe Zertifikat wie das Framework :D

Gibt es Code Injection nicht in Java irgendwie auch?! :biggrin:
 
nö sicher bin ich mir nicht...denn schließlich funktioniert mein broadcast-receiver auf dem galaxy auch nicht -.-
 
Falls du noch weitere Ideen hast her damit :p
 
Fr4gg0r schrieb:
nö sicher bin ich mir nicht...denn schließlich funktioniert mein broadcast-receiver auf dem galaxy auch nicht -.-
Hast ihn kaputt gemacht? :D

Fr4gg0r schrieb:
Falls du noch weitere Ideen hast her damit :p
Wie hast du deinen Broadcast Receiver implementiert? Im Manifest? Wenn ja, solltest du es mal über registerReceiver versuchen. Einige Broadcasts kann man nur über so empfangen.
 
sebastian schrieb:
Hast ihn kaputt gemacht? :D


Wie hast du deinen Broadcast Receiver implementiert? Im Manifest? Wenn ja, solltest du es mal über registerReceiver versuchen. Einige Broadcasts kann man nur über so empfangen.

Jo übers Manifest.
Wenn ich diesen dynamisch registriere, empfange ich den intent ja nur wenn meine App gerade läuft... Services mag ich nicht. :D
 
Fr4gg0r schrieb:
Jo übers Manifest.
Wenn ich diesen dynamisch registriere, empfange ich den intent ja nur wenn meine App gerade läuft... Services mag ich nicht. :D
Probieren kannst es ja mal :thumbup: Aber sollte es nicht so sein, dass wenn du solche einen Broadcast sendest, das Package neu gescannt wird und dann die Permission neu in packages.xml geschrieben wird?
 
Wahrscheinlich schon
 
Hi,

gibt es schon irgendwo einen Download ? Würde ich gerne mal testen... :)

Oder ist es noch nicht soweit (nehme auch gerne Beta-Version) ?


Gruß

Mike
 
Ich versthe noch immer nicht den Sinn der App.

Wenn ich einer Applikation eine benötigte Permission weg nehme, kommt beim Zugriff auf die Funktion eine Exception. Somit ist das veränderte Programm nicht mehr lauffähig und auch nicht vewendbar.
 
GalaxyS_User schrieb:
Ich versthe noch immer nicht den Sinn der App.

Wenn ich einer Applikation eine benötigte Permission weg nehme, kommt beim Zugriff auf die Funktion eine Exception. Somit ist das veränderte Programm nicht mehr lauffähig und auch nicht vewendbar.
Damit kann man "auf Nummer sicher gehen". Wenn du z.B. ne Kalender-App installierst und dich wunderst warum die die Rechte für das Versenden von SMS braucht, dann kannst du somit nur genau das zulassen was du für richtig hältst. Es tauchen immer wieder Apps auf, die mehr Rechte einfordern als sie benötigen.
 
Das ist schon klar. Ich denke er meint, dass die App dann nicht mehr läuft. Angenommen du blockst die Rechte, dass die App deinen Standort feststellen kann. Dann kann die das nicht mehr tun, stürzt aber ab wenn sie versucht deinen Standort festzustellen. Somit hilft dir das Geblocke dann auch nichts weil du das Programm nicht mehr benutzen kannst. Hätte den gleichen Effekt wie eine Deinstallation.
Ich hoffe ich habe keinen Mist geschrieben, so lese ich das aus dem Post raus. Keine Ahnung ob eine App läuft wenn man ihr Berechtigungen wegnimmt, die sie eigentlich hätte...
 
eelay schrieb:
Das ist schon klar. Ich denke er meint, dass die App dann nicht mehr läuft. Angenommen du blockst die Rechte, dass die App deinen Standort feststellen kann. Dann kann die das nicht mehr tun, stürzt aber ab wenn sie versucht deinen Standort festzustellen. Somit hilft dir das Geblocke dann auch nichts weil du das Programm nicht mehr benutzen kannst. Hätte den gleichen Effekt wie eine Deinstallation.
Genau das dachte ich, als ich den Thread gelesen habe. Die App ist ja von der Idee her ganz nett, nur macht sie andere Apps dadurch unbrauchbar. Aber ’ne nette Machbarkeitsstudie.
 
@eelay
Genau so war es gemeint.

@mr green
das wäre sogar ein Beispiel wo sie fliegen darf. Ausser sie verschickt immer eine SMS dann wäre sie nicht mehr verwendbar.


Aber häufiger ist ja, dass eine App Rechte zum ermitteln der Postion und Internetzugriff einfordert, obwohl sie diese eigentlich gar nicht braucht.

Meistens werden diese Funktionen aber auch tatsächlich benötig um Libs a la Flurry & Co zu bedienen.
 

Ähnliche Themen

cska133
Antworten
12
Aufrufe
519
cska133
cska133
G
Antworten
11
Aufrufe
3.089
BOotnoOB
BOotnoOB
G
  • goofy goof
Antworten
0
Aufrufe
517
goofy goof
G
Zurück
Oben Unten