APK Info Viewer

Se vad ett Android-apppaket deklarerar — version, behörigheter, komponenter och signeringscertifikat — innan du installerar det.

Redo. Släpp en APK här för att granska den.

APK:n analyseras helt på din enhet: ingenting laddas upp, och filen läses endast — installeras eller körs aldrig.

Vanliga frågor

Vad kan jag lära mig om en APK utan att installera den?

Ganska mycket: appens paketnamn och version, de Android-versioner den kräver, alla behörigheter den begär, skärmar och bakgrundskomponenter den deklarerar, vilka processtyper den har inbyggd kod för samt certifikaten den signerades med.

Kan det här verktyget tala om för mig om en APK är skadlig kod?

Nej — och var skeptisk till verktyg som lovar ett utlåtande efter en snabbsökning. Det du får här är fakta: behörigheter, komponenter, signatörer och hashvärden. Jämför dem med vad utvecklaren publicerar och betrakta oväntade behörigheter eller en annan signatör än den officiella utgåvan som skäl att avstå.

Vilka filer stöds?

Enskilda APK-filer upp till 500 MB. Delade paket (XAPK, APKM) och Android App Bundles (.aab) är behållare eller publiceringsformat snarare än ett enskilt installerbart paket, så de avvisas med ett tydligt meddelande i stället för en förvirrande rapport.

Vad berättar signeringsdetaljerna för mig?

Varje Android-app är signerad, och certifikatet identifierar vem som publicerade den. Du ser vilka signeringsscheman paketet har (v1, v2, v3) samt varje signatörs ämne, giltighetsperiod och MD5-, SHA-1- och SHA-256-fingeravtryck. Två APK:er med matchande fingeravtryck kommer från samma utgivare — huruvida du litar på den utgivaren är upp till dig att bedöma.

Vad betyder märkningen “Dangerous” på en behörighet?

Det är Androids egen klassificering: farliga behörigheter kan nå privat data — plats, kontakter, kamera, mikrofon, lagring — så systemet frågar användaren innan de beviljas. Märkningen är ingen anklagelse; en kartapp som begär platsinformation är normalt. Den markerar helt enkelt de behörigheter som är värda att läsa en extra gång.

Anatomin bakom ett Android-apppaket (APK)

Ett Android-apppaket, mer känt som en APK-fil (Android Application Package), är i praktiken ett komprimerat arkiv som innehåller alla nödvändiga komponenter för att installera och köra en applikation på operativsystemet Android. När en utvecklare kompilerar en applikation paketeras programkod, resurser, tillgångar och metadata i denna enda fil.

För att förstå hur en applikation fungerar och vad den har tillgång till, är det avgörande att kunna tolka dess interna struktur. Den centrala komponenten i varje APK är filen AndroidManifest.xml. Denna XML-fil fungerar som applikationens deklaration och definierar dess paketnamn, vilka Android-versioner som stöds, vilka behörigheter som krävs samt vilka bakgrunds- och skärmkomponenter som appen innehåller. Utöver manifestet innehåller paketet även kompilerad programkod i form av DEX-filer (.dex), resurser som bilder och layouter, samt eventuella tillgångsfiler (assets) och inbyggd kod för specifika processorarkitekturer.

Det är viktigt att skilja en installerbar APK-fil från andra distributions- och publiceringsformat. Till exempel är en Android App Bundle (.aab) ett publiceringsformat som skickas till Google Play, men det kan inte installeras direkt på en enhet. På samma sätt är format som XAPK eller APKM så kallade delade paket (split packages) som fungerar som behållare för flera olika APK-filer.

Webbläsarbaserad lokal analys och integritet

APK Info Viewer är utformat för att utföra statisk analys av Android-apppaket direkt i användarens webbläsare. Verktyget kräver inga serveruppladdningar, vilket innebär att känslig information eller proprietär kod aldrig lämnar den lokala enheten.

All filläsning, kryptografisk hashberäkning och tolkning av paketets struktur sker lokalt via en Worker i webbläsaren. Denna arkitektur gör det möjligt att säkert och snabbt analysera stora filer på upp till 500 MB utan att belasta nätverksbandbredden eller riskera dataläckage. Eftersom verktyget endast läser och analyserar filens binära struktur, installeras eller körs applikationen aldrig på användarens enhet. Detta ger ett säkert isolerat utrymme för att inspektera okända eller potentiellt osäkra filer innan beslut tas om en eventuell installation.

SDK-versioner och systemkompatibilitet

I rapporten under sektionen Krav visas kritiska parametrar som styr applikationens kompatibilitet med olika Android-versioner:

  • Lägsta Android (Lägsta Android): Anger den lägsta API-nivå som krävs för att köra applikationen. Om enhetens operativsystem är äldre än denna gräns kan appen inte installeras. Det visas i gränssnittet som antingen Android ‹version› (API ‹level›) eller enbart API ‹level›.
  • Mål-Android (Mål-Android): Anger den API-nivå som applikationen är optimerad för och testad mot. Detta värde informerar operativsystemet om vilka säkerhetsbeteenden och systemregler som ska tillämpas för appen.
  • max SDK ‹n› (max SDK ‹n›): Om tillämpligt anger detta den högsta API-nivå som applikationen är utformad för att köras på.

Genom att granska dessa värden kan administratörer och utvecklare verifiera att applikationen följer moderna säkerhetsstandarder och är kompatibel med målgruppens enheter.

Androids behörighetsmodell och riskbedömning

Under sektionen Behörigheter (secPermissions) listar verktyget alla behörigheter som applikationen deklarerar i sitt manifest. Android delar in behörigheter i olika kategorier baserat på den potentiella risken för användarens integritet och enhetens säkerhet.

Behörigheter som ger åtkomst till privat data – såsom geografisk plats, kontakter, kamera, mikrofon eller lokal lagring – klassificeras av Android som farliga. I verktygets rapport prioriteras dessa i listan och markeras med märkningen Farlig (lDangerous). Att en behörighet är markerad som farlig innebär inte automatiskt att applikationen är skadlig, utan indikerar att den begär åtkomst till känsliga systemresurser. En granskning av dessa behörigheter gör det möjligt att bedöma om de begärda rättigheterna är rimliga i förhållande till applikationens faktiska funktion.

Applikationskomponenter och inbyggd kod

Sektionen Komponenter (secComponents) ger en detaljerad översikt över applikationens interna struktur, uppdelat i fyra huvudkategorier:

  • Activities (groupActivities): De skärmar och användargränssnitt som användaren interagerar med.
  • Services (groupServices): Bakgrundsprocesser som körs utan ett direkt användargränssnitt.
  • Receivers (groupReceivers): Komponenter som lyssnar på och reagerar på systemomfattande händelser eller sändningar.
  • Providers (groupProviders): Gränssnitt för att hantera och dela data mellan olika applikationer.

Om en komponent är markerad som exporterad (lExported) innebär det att andra applikationer på enheten kan starta eller interagera med den, vilket kan utgöra en potentiell angreppsyta om komponenten inte är korrekt säkrad. För att hålla rapporten överskådlig visas maximalt 100 poster per kategori. Om antalet komponenter överskrider denna gräns visas etiketten +‹count› till (lMore).

Under Inbyggd kod (secNative) redovisas vilka processorarkitekturer (ABIs) som applikationen har kompilerade bibliotek för, tillsammans med antalet tillhörande binärfiler. Sektionen Resurser (secResources) sammanställer statistik över paketets innehåll, inklusive skärmdensiteter (lDensities), resursfiler (lResFiles), tillgångsfiler (lAssets), DEX-kodfiler (lDexFiles) samt det totala antalet filer i paketet (lEntries).

Kodsignering och filintegritet

Varje legitim Android-applikation måste vara digitalt signerad av utvecklaren innan den kan installeras. Under sektionen Signaturer (secSignatures) extraherar verktyget metadata från X.509-certifikat i v1-block (PKCS#7) samt APK-signeringsblock (v2, v3 och v3.1). För varje identifierad signerare (lSigner) visas följande information:

  • Ämne (lSubject): Certifikatets ägare och identifieringsuppgifter.
  • Utfärdat av (lIssuer): Den enhet som har utfärdat certifikatet.
  • Serienummer (lSerial): Certifikatets unika identifierare.
  • Giltig från (lValidFrom) och Giltig till (lValidTo): Certifikatets giltighetsperiod.
  • Signaturalgoritm (lSigAlg) och Nyckelalgoritm (lKeyAlg): De kryptografiska metoder som använts.
  • Fingeravtryck: Kryptografiska hashvärden (MD5, SHA-1 och SHA-256) för själva certifikatet.

Om inget giltigt signaturblock hittas visas meddelandet: "Inget igenkänt signaturblock hittades – paketet kan vara osignerat eller ompackat." (unsigned). Det är viktigt att notera att verktyget endast extraherar och visar denna metadata; det utför inte en kryptografisk verifiering av signaturernas integritet, validerar inte certifikatkedjan och bekräftar inte utgivarens verkliga identitet.

För att verifiera själva filens integritet beräknar verktyget även hashvärden för hela APK-filen under sektionen Filhashar (secHashes). Här visas MD5-, SHA-1- och SHA-256-hashvärden för den analyserade filen, vilka kan jämföras direkt mot utvecklarens officiellt publicerade hashvärden för att säkerställa att filen inte har modifierats.

Statisk kontra dynamisk analys

Att inspektera en APK-fil med APK Info Viewer är en form av statisk analys. Det innebär att man undersöker filens deklarerade egenskaper, resurser och struktur utan att faktiskt köra koden. Detta är ett effektivt sätt att snabbt identifiera uppenbara avvikelser, såsom oväntade bakgrundsmottagare, felaktiga målnivåer för SDK eller obehöriga ändringar i certifikatsignaturer.

Statisk analys kan dock inte ersätta dynamisk analys eller fullständiga antivirussökningar. Dynamisk analys innebär att applikationen körs i en kontrollerad sandlådemiljö för att övervaka dess faktiska beteende under körning, nätverksanrop och interaktion med operativsystemet. Statisk analys ger fakta om vad appen deklarerar att den kan göra, medan dynamisk analys visar vad den faktiskt gör när den körs.

Hantering av fel och begränsningar

Verktyget har strikta regler för att säkerställa stabilitet och korrekt hantering av olika filtyper:

Scenario / Feltyp Systemets beteende och felmeddelande
Filstorlek överstiger 500 MB Avvisas med: "Den här filen är över 500 MB — större än en webbläsarflik kan granska på ett säkert sätt."
Delade paket (XAPK, APKM) Avvisas med: "Det här är ett delat XAPK-paket — en behållare med flera APK:er. Extrahera bas-APK:n och granska den filen i stället."
Android App Bundles (.aab) Avvisas med: "Det här är en Android App Bundle (.aab) — ett publiceringsformat, inte en installerbar APK. Granska den kompilerade APK:n i stället."
Icke-APK eller saknat manifest Avvisas med: "Det här ser inte ut som en APK: ingen läsbar AndroidManifest.xml hittades inuti."
Skadad eller trunkerad fil Avvisas med: "Paketet ser skadat eller ofullständigt ut, så dess innehåll kunde inte läsas."
Allmänt läsfel Visar: "Filen kunde inte läsas. Välj den igen."
Övriga granskningsfel Visar: "Granskningen misslyckades. Prova med en annan fil."
Flera filer laddas upp samtidigt Endast den första filen bearbetas. Systemet visar meddelandet: "En fil i taget — granskar den första."

Vanliga frågor

Vad kan jag lära mig om en APK utan att installera den?

Ganska mycket: appens paketnamn och version, de Android-versioner den kräver, alla behörigheter den begär, skärmar och bakgrundskomponenter den deklarerar, vilka processtyper den har inbyggd kod för samt certifikaten den signerades med.

Kan det här verktyget tala om för mig om en APK är skadlig kod?

Nej — och var skeptisk till verktyg som lovar ett utlåtande efter en snabbsökning. Det du får här är fakta: behörigheter, komponenter, signatörer och hashvärden. Jämför dem med vad utvecklaren publicerar och betrakta oväntade behörigheter eller en annan signatör än den officiella utgåvan som skäl att avstå.

Vilka filer stöds?

Enskilda APK-filer upp till 500 MB. Delade paket (XAPK, APKM) och Android App Bundles (.aab) är behållare eller publiceringsformat snarare än ett enskilt installerbart paket, så de avvisas med ett tydligt meddelande i stället för en förvirrande rapport.

Vad berättar signeringsdetaljerna för mig?

Varje Android-app är signerad, och certifikatet identifierar vem som publicerade den. Du ser vilka signeringsscheman paketet har (v1, v2, v3) samt varje signatörs ämne, giltighetsperiod och MD5-, SHA-1- och SHA-256-fingeravtryck. Två APK:er med matchande fingeravtryck kommer från samma utgivare — huruvida du litar på den utgivaren är upp till dig att bedöma.

Vad betyder märkningen “Dangerous” på en behörighet?

Det är Androids egen klassificering: farliga behörigheter kan nå privat data — plats, kontakter, kamera, mikrofon, lagring — så systemet frågar användaren innan de beviljas. Märkningen är ingen anklagelse; en kartapp som begär platsinformation är normalt. Den markerar helt enkelt de behörigheter som är värda att läsa en extra gång.