Hoe u de machtigingen van Android-apps kunt bekijken voordat u een APK installeert

A smartphone showing a list of app permissions with a magnifying glass

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.

Leestijd: ~9 minuten. Benodigd gereedschap: een browser; optioneel apksigner En aapt2 vanuit de Android SDK als u dezelfde controles vanaf een terminal wilt uitvoeren. Wat kun je uiteindelijk doen: lees de volledige toestemmingslijst van een APK, zoek de vier of vijf "high-impact" -verzoeken op die bijna altijd op problemen duiden, en beslis of u wilt installeren vóór de installatie, en niet erna.

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:

  1. Ga naar de APK-infopagina.
  2. Selecteer uw .apk-bestand.
  3. Wacht tot de analyse is voltooid (meestal 5 seconden).
  4. Scroll naar beneden naar de Sectie Machtigingen.
  5. 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:

Handmatige methode (met behulp van een ZIP-viewer)

Als u over enige technische vaardigheden beschikt, kunt u de machtigingen zelf controleren:

  1. Hernoem app.apk naar app.zip en open het.
  2. Zoek AndroidManifest.xml. (Opmerking: het is in binair formaat en ziet er uit als wartaal in een teksteditor).
  3. Gebruik een tool als AXMLPrinter om het naar leesbare tekst te converteren.
  4. 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-machtigingen

Wat 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:

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:

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:

  1. Open de APK-infotool in uw browser.
  2. Zet de APK neer in het uploadgebied. De verwerking gebeurt lokaal; het bestand verlaat uw apparaat niet.
  3. 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).
  4. 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.
  5. 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.

Ontwikkeld en gedocumenteerd door Mst Shaefale Hoofdontwikkelaar en Android-pakketarchitect • Geverifieerd op Android 12–15

Mst Shaefale onderhoudt de XAPK/APKS-fusie aan de clientzijde, de parser voor binaire manifesten en de APK v1+v2-ondertekentools op xapktoapk.com. Ontdekt u een verouderde opdracht of een wijziging in het besturingssysteem? Stuur een redactionele opmerking.