Hoe u de machtigingen van Android-apps kunt bekijken voordat u een APK installeert
Wanneer u een app uit de Google Play Store installeert, toont Android een vereenvoudigd overzicht van waartoe de app toegang heeft. Sideload een APK van een niet-Play-bron en je hebt niet zo'n vangnet, tenzij je het manifest zelf leest. "Moet een wallpaper-app echt sms- en microfoontoegang nodig hebben?" is precies het soort vraag dat deze gids u zal helpen beantwoorden.
Wat volgt is dezelfde workflow die ons team gebruikt bij het beoordelen van een onbekende APK: open deze, lees de uses-permission-vermeldingen, decodeer de beveiligingsniveaus en vergelijk wat de app zegt nodig heeft met wat de categorie gewoonlijk vereist. Onze online APK-infotool doet de binaire XML-decodering voor u, dus het hele proces duurt ongeveer tien seconden.
Waarom moeite doen met het controleren van machtigingen?
Kwaadwillende ontwikkelaars nemen populaire gratis apps over, passen deze aan en brengen ze opnieuw uit op sites van derden. Hoewel de app er normaal uitziet en functioneert, kan de verborgen code uw contactenlijst kopiëren of uw achtergrondaudio opnemen. Door de machtigingen pre-installatie te bekijken, kunt u deze waarschuwingssignalen van 'permission creep' herkennen.
Hoe u een APK-bestand kunt controleren (online)
Onze APK-infotool leest het manifest van uw bestand volledig in uw browser; het bestand wordt nooit naar een server geüpload en er wordt geen code uitgevoerd. Hier ziet u hoe u het kunt gebruiken:
Proces:
- Ga naar de APK-infopagina.
- Selecteer uw .apk-bestand.
- Wacht tot de analyse is voltooid (meestal 5 seconden).
- Scroll naar beneden naar de Sectie Machtigingen.
- Zoek naar vlaggen met een hoog risico, zoals: READ_SMS, PROCESS_OUTGOING_CALLS of ACCESS_FINE_LOCATION.
Toestemming Rode Vlag Lijst
Als een Rekenmachine- of Zaklamp-app om READ_CONTACTS of RECORD_AUDIO vraagt, verwijdert u het bestand onmiddellijk. Er is geen enkele legitieme reden waarom deze apps over die gegevens beschikken.
Android-toestemmingsniveaus begrijpen
Niet alle machtigingen zijn gelijk. Android categoriseert ze in drie niveaus:
- Normaal: Machtigingen met een laag risico die de privacy niet direct bedreigen (bijvoorbeeld SET_ALARM). Android kent deze automatisch toe.
- Gevaarlijk: Rechten met een hoog risico (contacten, locatie, camera). Deze moeten worden door u bevestigd wanneer de app draait.
- Handtekening/systeem: Extreem hoog risico. Deze zijn alleen beschikbaar voor apps die zijn ondertekend door de fabrikant van het apparaat of het besturingssysteem zelf.
Handmatige methode (met behulp van een ZIP-viewer)
Als u over enige technische vaardigheden beschikt, kunt u de machtigingen zelf controleren:
- Hernoem app.apk naar app.zip en open het.
- Zoek AndroidManifest.xml. (Opmerking: het is in binair formaat en ziet er uit als wartaal in een teksteditor).
- Gebruik een tool als AXMLPrinter om het naar leesbare tekst te converteren.
- Zoek naar tags die beginnen met <uses-permission>.
Aanbeveling: het is veel sneller om onze online hulpmiddel te gebruiken, die dit onmiddellijk voor u decodeert.
Controleer nu uw apps
Weet precies waar uw apps om vragen. Geen geheimen, geen risico's.
Controleer APK-machtigingenWat wordt er feitelijk opgeslagen in AndroidManifest.xml
Het manifest is de bron van waarheid voor elke toestemming, component en functie die een app declareert. Binnen een APK heeft het bestand de vorm binaire XML, niet de platte tekst die u in de broncode ziet, en kan dus niet worden gelezen met een normale teksteditor. Onze APK-infotool decodeert de binaire XML en geeft de relevante tags weer. De belangrijkste zijn:
- <uses-permission android:name="..."/>: elke toestemming die de app ooit zou kunnen vragen. De vol-lijst is hier, inclusief de lijst die de app mogelijk nooit daadwerkelijk gebruikt tijdens runtime.
- <uses-permission-sdk-23 ... />: idem, maar alleen aangevraagd als de app op Android 6 of hoger draait. Oudere apparaten zijn stil toegestaan zonder dat u hierom wordt gevraagd.
- <uses-feature android:name="..." android:required="true|false"/>: hardwarefuncties die de app gebruikt (camera, GPS, NFC). Wanneer gemarkeerd als vereist, verbergt Play Store de app voor apparaten waarop deze functie ontbreekt.
- <application android:debuggable="true">: een gigantische rode vlag in een release-APK. Een app die fouten kan opsporen, stelt zijn geheugen en processtatus bloot aan iedereen met ADB-toegang. Afwijzen.
- <activity android:exported="true"> bij gevoelige activiteiten: laat andere apps dat scherm openen. Voor een privacy-app duidt dit vaak op slordige codering.
Toestemmingsbeschermingsniveaus: het spiekbriefje
Android kent aan elke toestemming een "beschermingsniveau" toe. Als u weet tot welk niveau een verzoek behoort, weet u hoe serieus het besturingssysteem het zal behandelen.
| Beschermingsniveau | Gebruikerservaring | Voorbeelden |
|---|---|---|
| normaal | Stil verleend tijdens de installatie. Geen prompt. | INTERNET, TRILLEN, ACCESS_NETWORK_STATE, WAKE_LOCK |
| gevaarlijk | Runtime-prompt de eerste keer dat de functie wordt gebruikt. Herroepbaar via Instellingen. | CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| handtekening | Alleen verleend aan apps die zijn ondertekend met hetzelfde certificaat als de verlenende app of het besturingssysteem. | BIND_VPN_SERVICE, INSTALL_PACKAGES (alleen systeem) |
| handtekening|bevoorrecht | Alleen beschikbaar voor vooraf geïnstalleerde apps in de priv-app-map van de systeemimage. | BEHEER_USERS, LEES_LOGS |
| app / rol | Vereist een afzonderlijke stroom Instellingen om in te schakelen. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (speciale toegang) |
Wat "verborgen" machtigingen eigenlijk betekenen
Een veel voorkomende misvatting is dat sommige machtigingen geheim zijn. Dat is niet het geval: elke toestemming die een app zou kunnen gebruiken, moet worden gedeclareerd in AndroidManifest.xml, en het besturingssysteem weigert toestemming te verlenen die daar niet wordt vermeld. Wat mensen gewoonlijk bedoelen met ‘verborgen’ is een van twee dingen:
- Machtigingen op normaal niveau zijn stil. Ze worden toegekend tijdens de installatie, zonder enige gebruikersinteractie. Het Play Store-overzicht laat sommige ervan niet eens zien. Ze zijn ‘verborgen’ in de zin van ‘gemakkelijk over het hoofd te zien’, niet in de zin van ‘niet openbaar gemaakt’.
- Door de app gedefinieerde aangepaste machtigingen.-apps kunnen hun eigen <permission>-tags declareren en deze op interne componenten vereisen. Deze zijn bedoeld voor communicatie tussen apps en vormen op zichzelf geen privacyprobleem, maar ze kunnen wel worden misbruikt als een populaire app een aangepaste toestemming met het verkeerde beschermingsniveau aangeeft en een andere app deze vervolgens als achterdeur gebruikt.
Hoe dan ook, het antwoord is hetzelfde: lees het manifest, vertrouw niet alleen op een Play Store-beschrijving.
Uitgewerkt voorbeeld: een echte APK controleren
Stel dat u example.apk in uw map Downloads hebt staan. Hier is de exacte workflow:
- Open de APK-infotool in uw browser.
- Zet de APK neer in het uploadgebied. De verwerking gebeurt lokaal; het bestand verlaat uw apparaat niet.
- Lees de sectie Machtigingen. Bij elk item wordt de naam van de constante (android.permission.READ_CONTACTS weergegeven en een beschrijving in duidelijke taal van wat deze toestaat).
- Vergelijk de lijst met de categorie van de app. Verwacht grofweg:
- Camera-apps: CAMERA, RECORD_AUDIO (voor video), OPSLAG/MEDIA schrijven
- Berichten-apps: INTERNET, READ_CONTACTS, SEND_SMS (alleen indien op SMS gebaseerd), RECORD_AUDIO (voor spraaknotities), CAMERA (voor het verzenden van foto's)
- Spellen: INTERNET, soms RECORD_AUDIO (voor in-game voicechat), factureringsgerelateerde rechten; zelden iets anders
- Hulpprogramma's (rekenmachine, zaklamp, weer): INTERNET (voor advertenties), ACCESS_NETWORK_STATE, mogelijk LOCATION (alleen weer). Alles daarbuiten is verdacht.
- Als iets in de lijst niet in de categorie past, installeer het dan niet. Er is geen goede reden waarom een rekenmachine sms-toegang nodig heeft.
Dezelfde logica is van toepassing, ongeacht of het bestand een APK is, een XAPK (waarbij we de binnenste basis-APK lezen) of een APKS-bundel (waar we het manifest van elke splitsing lezen).
Doe het vanaf de opdrachtregel
Als je de voorkeur geeft aan de terminalroute, verzendt de Android SDK aapt2, die een manifest van elke APK in gewone XML dumpt:
aapt2 dump badging example.apk | grep "uses-permission"
Of gebruik apksigner om tegelijkertijd het handtekeningcertificaat te verifiëren:
apksigner verify --print-certs example.apk
De browsertool doet hetzelfde voor gebruikers die liever geen SDK installeren om slechts één bestand te controleren.
Veelgestelde vragen (FAQ)
Kan ik een toestemming weigeren na het installeren van een APK?
Ja. Op Android 6.0 en hoger kun je naar Instellingen > Apps > [App-naam] > Machtigingen gaan om individuele gevaarlijke machtigingen in of uit te schakelen.
Hebben XAPK-bestanden verschillende machtigingen?
Een XAPK bevat een of meer APK's. Elke APK binnenin heeft zijn eigen manifest. Onze tool analyseert de Belangrijkste APK binnen de bundel om u de relevante rechten te tonen.
Waarom vraagt elke app om "Netwerktoegang"?
Bijna alle apps hebben internettoegang nodig voor analyses, bugrapportage of advertenties. Hoewel dit gebruikelijk is, is het ook de manier waarop gestolen gegevens naar de server van een hacker worden verzonden.
Kennelijke machtigingen inspecteren voordat u op Installeren tikt
Je kunt niet beoordelen wat je niet kunt zien. Tien seconden besteden aan de rechten van een APK bekijken voordat je het sideload, is het verschil tussen weten wat een app kan bereiken en simpelweg hopen dat de app zich gedraagt. Lees eerst de lijst en installeer vervolgens.