Controlla facilmente le autorizzazioni delle app in un unico posto?


28

Esiste comunque un elenco di tutte le applicazioni installate sul telefono e le autorizzazioni necessarie in un'unica pagina o l'esportazione dell'elenco in modo che possa essere facilmente verificato?

Risposte:


14

Utilizzare applicazioni di mercato come watchdog delle autorizzazioni o autorizzazioni . Inoltre, ce ne sono molti altri.


Sfortunatamente, l'applicazione Market ha un bug (o funzionalità prevista?) Quando non tutte le autorizzazioni sono elencate durante l'installazione dell'applicazione. Potrebbe
trattarsi di

2
forse includere un commento nella tua risposta sarebbe più semplice.
bbaja42,

@Nikolaenko, apparentemente è apposta e cambiato ora: android.stackexchange.com/questions/605/…
BlackShift

@ BlackShift, cosa intendi con "cambiato ora"? Modificato dallo sviluppatore Android. squadra?
Denis Nikolaenko,

@Nikolaenko, penso di non essere chiaro perché non è chiaro per me. Sto eseguendo cyanogenmod 6, Android 2.2 e quasi tutte le app chiedono le autorizzazioni concesse implicitamente dal tuo link. Quindi non so chi abbia cambiato questo (cianogeno o squadra Android).
BlackShift il




0

Poiché nessuna domanda per Android è menzionata nella domanda, sto proponendo una risposta basata sulla riga di comando relativa alla versione 4.2.1 e successive di Android. Questa è idealmente una soluzione indipendente dal sistema operativo, OS su PC, cioè.

dipendenze

  • Richiede la configurazione di nel PC.
  • Richiede binario busybox . Se il dispositivo è rootato, installa l' app Busybox . Altrimenti, scarica il file binario busybox da una fonte ufficiale , rinomina il file binario in busybox , imposta l' autorizzazione eseguibile compatibile Linux su quel binario per tutti e spostalo nel dispositivo usando

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC
    
  • Richiede un binario aapt . Se stai eseguendo un CM o la sua ROM derivata, ignora questo requisito. Altrimenti, per Android 4.x, puoi considerare di scaricare il binario da qui , rinominare il binario in aapt , impostare l' autorizzazione eseguibile compatibile Linux su quel binario per tutti e spostarlo nel dispositivo usando

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC . 
    

    Per gli utenti di Android 5.x, chiedi assistenza a Google.

Ecco la mia piccola sceneggiatura che fa la magia:

#! / System / bin / sh

# Controlla se il binario busybox esiste in / data / local / tmp / o / system / xbin. Impostare il percorso del file binario rilevato nella variabile busybox o uscire se il file non esiste o l'autorizzazione eseguibile non è impostata
[[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "binario busybox non trovato o autorizzazione eseguibile non impostata. Exit \ n" && exit; }; }
# Controlla se il file binario di aapt esiste in / data / local / tmp o / system / bin o / system / xbin. Impostare il percorso del binario rilevato nella variabile aapt o exit se il file non esiste o l'autorizzazione eseguibile non è impostata
[[-x / data / local / tmp / aapt]] && aapt = / data / local / tmp / aapt || {[[-x / system / bin / aapt]] && aapt = / system / bin / aapt || {[[-x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf "aapt binary non trovato o autorizzazione eseguibile non impostata. Exit \ n" && exit; }; }; }

# Elenca il nome del pacchetto di tutte le app installate e salvale nel file pacchetti.txt in / sdcard
Elenco pacchetti pm | Pacchetto $ busybox sed 's / ^: // g' | $ busybox sort -o /sdcard/packages.txt

# Per ogni nome di pacchetto nell'output che abbiamo appena salvato, ottieni l'etichetta dell'app usando $ percorso e $ etichetta, stampa una riga e infine elenca le autorizzazioni concesse all'app 
mentre leggi la riga; fare
    percorso = $ (pm percorso $ linea | $ busybox sed 's / ^ pacchetto: // g'); 
    label = $ ($ aapt d badging $ path | $ busybox grep 'application: label =' | $ busybox cut -d "'" -f2);  
    $ busybox printf "Autorizzazioni per l'app $ label con nome pacchetto $ line \ n"; 
    pacchetto dumpsys $ line | $ busybox sed -e '1, / concessionePermissioni: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sort;
    $ busybox printf "\ n"; 
done </sdcard/packages.txt

Uscita demo:

Autorizzazioni per l'app DisableService con nome pacchetto cn.wq.disableservice
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE

Autorizzazioni per l'app Indecent Xposure con nome pacchetto co.vanir.indecentxposure
      android.permission.RECEIVE_BOOT_COMPLETED

Autorizzazioni per tag app con nome pacchetto com.android.apps.tag
      android.permission.CALL_PHONE
      android.permission.NFC
      android.permission.READ_CONTACTS
      android.permission.WAKE_LOCK
      android.permission.WRITE_SECURE_SETTINGS
...
...
Autorizzazioni per il provider di temi per app con nome pacchetto org.cyanogenmod.themes.provider
      android.permission.ACCESS_NOTIFICATIONS
      android.permission.ACCESS_THEME_MANAGER
      android.permission.INTERNET
      android.permission.READ_THEMES
      android.permission.WRITE_SECURE_SETTINGS
      android.permission.WRITE_SETTINGS
      android.permission.WRITE_THEMES

Salvare lo script nel PC in un file denominato perm_script.she spostarlo in / sdcard utilizzando

adb push LOCAL_FILE /sdcard/   # LOCAL_FILE is the  path where you saved that file into PC

Esegui quel file

adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE   # OUTPUT_FILE is the path where you want to save the final output

Maggiore è l'app installata nel sistema, maggiore sarà il tempo necessario al completamento dell'esecuzione del comando. Nel mio dispositivo, ci sono voluti circa tre minuti.

Correlati: esiste un modo nativo per trovare tutte le app installate che hanno accesso a una funzione del telefono?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.