Come visualizzare le autorizzazioni dell'app Android prima di installare un APK
Quando installi un'app dal Google Play Store, Android mostra un riepilogo semplificato di ciò a cui l'app può accedere. Carica lateralmente un APK da una fonte non Play e non disponi di tale rete di sicurezza, a meno che tu non legga tu stesso il manifest. "Un'app per sfondi dovrebbe davvero aver bisogno dell'accesso agli SMS e al microfono?" è esattamente il tipo di domanda a cui questa guida ti aiuterà a rispondere.
Quello che segue è lo stesso flusso di lavoro utilizzato dal nostro team durante la valutazione di un APK sconosciuto: aprilo, leggi le voci uses-permission, decodifica i livelli di protezione e confronta ciò di cui ha bisogno l'app dice con ciò che solitamente richiede la sua categoria. Il nostro strumento online di informazioni sull'APK esegue la decodifica XML binario per te, quindi l'intero processo richiede circa dieci secondi.
Perché preoccuparsi delle autorizzazioni di controllo?
Gli sviluppatori dannosi prendono app gratuite popolari, le modificano e le rilasciano nuovamente su siti di terze parti. Sebbene l'app possa apparire e funzionare normalmente, il suo codice nascosto potrebbe copiare l'elenco dei contatti o registrare l'audio di sottofondo. Visualizzando i permessi preinstallazione, puoi individuare questi segnali di allarme di "permessi striscianti".
Come controllare qualsiasi file APK (online)
Il nostro Strumento Informazioni APK legge il manifest del tuo file interamente nel tuo browser; il file non viene mai caricato su un server e non viene eseguito alcun codice. Ecco come usarlo:
Processo:
- Vai allo Pagina Informazioni sull'APK.
- Seleziona il tuo file .apk.
- Attendere il completamento dell'analisi (solitamente 5 secondi).
- Scorri verso il basso fino a Sezione Autorizzazioni.
- Cerca bandiere ad alto rischio come: READ_SMS, PROCESS_OUTGOING_CALLS o ACCESS_FINE_LOCATION.
Elenco delle bandiere rosse di autorizzazione
Se un'app Calcolatrice o Torcia elettrica richiede READ_CONTACTS o RECORD_AUDIO, elimina immediatamente il file. Non esiste alcun motivo legittimo per cui queste app abbiano tali dati.
Comprensione dei livelli di autorizzazione Android
Non tutte le autorizzazioni sono uguali. Android li classifica in tre livelli:
- Normale: Autorizzazioni a basso rischio che non minacciano direttamente la privacy (ad esempio, SET_ALARM). Android li concede automaticamente.
- Pericoloso: Autorizzazioni ad alto rischio (Contatti, Posizione, Fotocamera). Questi dovere verranno confermati da te quando l'app viene eseguita.
- Firma/Sistema: Rischio estremamente elevato. Questi sono disponibili solo per le app firmate dal produttore del dispositivo o dal sistema operativo stesso.
Metodo manuale (utilizzando un visualizzatore ZIP)
Se hai qualche competenza tecnica, puoi controllare tu stesso le autorizzazioni:
- Rinomina app.apk in app.zip e aprilo.
- Trova AndroidManifest.xml. (Nota: è in formato binario e sembrerà senza senso in un editor di testo).
- Utilizza uno strumento come AXMLPrinter per convertirlo in testo leggibile.
- Cerca i tag che iniziano con <uses-permission>.
Raccomandazione: è molto più veloce utilizzare il nostro strumento in linea che lo decodifica istantaneamente.
Controlla le tue app adesso
Scopri esattamente cosa chiedono le tue app. Nessun segreto, nessun rischio.
Controlla le autorizzazioni dell'APKCosa è effettivamente archiviato in AndroidManifest.xml
Il manifest è la fonte di verità per ogni autorizzazione, componente e funzionalità dichiarata da un'app. All'interno di un APK, il file è in formato XML binario, non il testo semplice che vedi nel codice sorgente, quindi non può essere letto con un normale editor di testo. Il nostro strumento APK Info decodifica l'XML binario e mostra i tag pertinenti. I più importanti sono:
- <uses-permission android:name="..."/>: ogni autorizzazione che l'app potrebbe mai richiedere. L'elenco pieno è qui, inclusi quelli che l'app potrebbe non utilizzare mai in fase di esecuzione.
- <uses-permission-sdk-23 ... />: uguale, ma richiesto solo quando l'app funziona su Android 6 o versioni successive. I dispositivi meno recenti sono consentiti silenziosamente senza richiesta.
- <uses-feature android:name="..." android:required="true|false"/>: funzionalità hardware utilizzate dall'app (fotocamera, GPS, NFC). Se contrassegnato come necessario, Play Store nasconde l'app dai dispositivi privi di questa funzionalità.
- <application android:debuggable="true">: una bandiera rossa gigante in una versione APK. Un'app di cui è possibile eseguire il debug espone la propria memoria e lo stato del processo a chiunque abbia accesso ad ADB. Rifiutare.
- <activity android:exported="true"> su attività sensibili: consente ad altre app di avviare quella schermata. Per un'app per la privacy, questo spesso segnala una codifica sciatta.
Livelli di protezione delle autorizzazioni: il Cheat Sheet
Android assegna ad ogni autorizzazione un "livello di protezione". Sapere a quale livello appartiene una richiesta ti dice quanto seriamente il sistema operativo la tratterà.
| Livello di protezione | Esperienza dell'utente | Esempi |
|---|---|---|
| normale | Concesso in modalità silenziosa al momento dell'installazione. Nessun suggerimento. | INTERNET, VIBRAZIONE, ACCESS_NETWORK_STATE, WAKE_LOCK |
| pericoloso | Il runtime richiede la prima volta che si utilizza la funzionalità. Revocabile nelle Impostazioni. | FOTOCAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| firma | Concesso solo alle app firmate con lo stesso certificato dell'app concedente o del sistema operativo. | BIND_VPN_SERVICE, INSTALL_PACKAGES (solo sistema) |
| firma|privilegiato | Disponibile solo per le app preinstallate nella directory priv-app dell'immagine di sistema. | GESTISCI_UTENTI, LEGGI_LOGS |
| app/ruolo | Richiede un flusso Impostazioni separato per l'abilitazione. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (accesso speciale) |
Cosa significano effettivamente i permessi "nascosti"
Un malinteso comune è che alcune autorizzazioni siano segrete. Non lo sono: ogni autorizzazione che un'app potrebbe utilizzare deve essere dichiarata in AndroidManifest.xml e il sistema operativo rifiuta di concedere qualsiasi autorizzazione non elencata lì. Ciò che la gente di solito intende per "nascosto" è una delle due cose:
- Le autorizzazioni di livello normale sono silenziose. Vengono concessi al momento dell'installazione senza alcuna interazione da parte dell'utente. Il riepilogo del Play Store non ne mostra nemmeno alcuni. Sono "nascosti" nel senso di "facili da trascurare", non nel senso di "non rivelati".
- Le app Autorizzazioni personalizzate definite dall'app. possono dichiarare i propri tag <permission> e richiederli sui componenti interni. Questi esistono per la comunicazione tra app e non costituiscono di per sé un problema di privacy, ma possono essere abusati se un'app popolare dichiara un'autorizzazione personalizzata con il livello di protezione sbagliato e un'altra app la utilizza come backdoor.
In ogni caso, la risposta è la stessa: leggi il manifest, non fidarti della sola descrizione del Play Store.
Esempio funzionato: controllo di un APK reale
Supponiamo di avere example.apk nella cartella Download. Ecco il flusso di lavoro esatto:
- Apri Strumento Informazioni APK nel tuo browser.
- Rilascia l'APK nell'area di caricamento. L'elaborazione avviene localmente; il file non lascia il tuo dispositivo.
- Leggi la sezione Autorizzazioni. Ogni voce mostra il nome della costante (android.permission.READ_CONTACTS e una descrizione in linguaggio semplice di ciò che consente).
- Confronta l'elenco con la categoria dell'app. Approssimativamente aspettatevi:
- App della fotocamera: FOTOCAMERA, RECORD_AUDIO (per video), scrittura STORAGE/MEDIA
- App di messaggistica: INTERNET, READ_CONTACTS, SEND_SMS (solo se basato su SMS), RECORD_AUDIO (per note vocali), CAMERA (per invio foto)
- Giochi: INTERNET, a volte RECORD_AUDIO (per la chat vocale nel gioco), autorizzazioni relative alla fatturazione; raramente qualcos'altro
- App di utilità (calcolatrice, torcia elettrica, meteo): INTERNET (per annunci), ACCESS_NETWORK_STATE, possibilmente LOCATION (solo meteo). Tutto ciò che va oltre è sospetto.
- Se qualcosa nell'elenco non rientra nella categoria, non installarlo. Non esiste una buona ragione per cui una calcolatrice necessiti dell'accesso agli SMS.
La stessa logica si applica se il file è un APK, un XAPK (dove leggiamo l'APK di base interno) o un bundle APKS (dove leggiamo il manifest di ogni divisione).
Farlo dalla riga di comando
Se preferisci il percorso terminale, l'SDK di Android fornisce aapt2, che scarica un manifest da qualsiasi APK in semplice XML:
aapt2 dump badging example.apk | grep "uses-permission"
Oppure utilizza apksigner per verificare contemporaneamente il certificato di firma:
apksigner verify --print-certs example.apk
Lo strumento browser fa la stessa cosa per gli utenti che preferiscono non installare un SDK solo per controllare un singolo file.
Domande frequenti (FAQ)
Posso negare un'autorizzazione dopo aver installato un APK?
SÌ. Su Android 6.0 e versioni successive, puoi andare su Impostazioni > App > [Nome app] > Autorizzazioni per attivare o disattivare le singole autorizzazioni pericolose.
I file XAPK hanno permessi diversi?
Un XAPK contiene uno o più APK. Ogni APK all'interno ha il proprio manifest. Il nostro strumento analizzerà lo APK principale all'interno del pacchetto per mostrarti le autorizzazioni pertinenti.
Perché ogni app richiede "Accesso alla rete"?
Quasi tutte le app necessitano dell'accesso a Internet per analisi, segnalazione di bug o pubblicità. Sebbene sia comune, è anche il modo in cui i dati rubati vengono inviati al server di un hacker.
Ispezione delle autorizzazioni manifest prima di toccare Installa
Non puoi giudicare ciò che non puoi vedere. Trascorrere dieci secondi su visualizzare le autorizzazioni di un APK prima di eseguire il sideload è la differenza tra sapere cosa può raggiungere un'app e sperare semplicemente che si comporti bene. Leggi prima l'elenco e poi installa.