Hva er APK-filformatet?
En fil med filendelsen .apk inneholder et komprimert arkiv med en applikasjon, et spill eller fastvare for Android-systemet. APK-pakker er bygget på ZIP/JAR-beholderformatet, noe som betyr at ethvert standard arkivverktøy kan åpne og inspisere innholdet. Google Play påla opprinnelig en grense på 100 MB for .apk-nedlastinger, med opptil to utvidelsesfiler på opptil 2 GB hver for ytterligere ressurser; siden august 2021 krever Google Play at nye apper publiseres som .AAB (Android App Bundles), som genererer enhetsoptimaliserte splittede APK-er ved installasjonstidspunktet i stedet for å sende én enkelt monolitisk pakke.
Strukturen til en APK-fil
Strukturen til APK-filer er basert på JAR-arkivet - de kan inneholde følgende undermapper og filer:
res- med en beskrivelse av ressursene i en ukompilert form,lib- inneholder kompilerte kilder og applikasjonsbiblioteker, delt inn etter ulike dataplattformer (f.eks.arm64-v8a,x86_64),META-INF- med filer som inneholder informasjon om pakken, for eksempelMANIFEST.MF-filen eller sertifikater,assets- som inneholder ulike ressurser brukt av appen,classes.dex- kompilert Dalvik/ART-byttekode som kjøres av Android-runtimen,AndroidManifest.xml- binærkodet manifest som deklarerer appens tillatelser, komponenter og SDK-krav,resources.arsc- prekompilert ressurstabell som kobler ID-er til strenger, layouter og grafikk.
Android Package-filer brukes til å lage og distribuere programmer for mobile plattformer som opererer på Android-systemet. Innholdet i .apk-filer kan pakkes ut med de fleste dekomprimeringsprogrammer som støtter ZIP-komprimering, eller inspiseres ved å gi filen nytt navn til .zip. For å opprettholde integriteten er pakkene beskyttet av APK Signature Scheme v2/v3 (og v4 for inkrementelle oppdateringer), og installasjon avvises hvis signaturen ikke stemmer overens. Installasjon av .apk-pakker fra utsiden av Play Store er som standard ikke tillatt - brukere må aktivere tillatelsen Installer ukjente apper i Android-innstillingene, eller sende pakken via adb install app.apk. Apper som er for store for en enkelt .apk kan distribueres som .XAPK, som bunter en base-APK med en eller flere splittede APK-er i et enkelt arkiv.
Sikkerhet og trygghet
RISIKO: HIGHAPK er den største vektoren for skadevare på Android: «sideloading» går utenom skanning fra Google Play Protect. Sjekkliste for brukere: installer kun fra pålitelige kilder (Google Play, F-Droid, APKMirror - som verifiserer signaturer mot utviklerens), sjekk at forespurte tillatelser samsvarer med appens formål, installer aldri en APK som kom uoppfordret via chat/SMS («smishing»-kampanjer), og sammenlign appens signatur ved oppdatering. Trikset med å endre navn til .zip lar deg inspisere innholdet før installasjon.
Formatdetaljer
i et nøtteskallProgrammer som åpner APK-filer
Tekniske detaljer
dyp spesifikasjon| Koding | Binær |
| Bytterekkefølge | Little-endian |
| Beholder | ZIP-arkiv (også gyldig som JAR) |
| Komprimering | DEFLATE per oppføring; justeringssensitive oppføringer lagret ukomprimert (STORED-metode) og zipaligned |
| Signering / integritet | APK Signature Scheme v2/v3 (blokk satt inn før ZIP-sentralkatalog); v4 for inkrementelle oppdateringer på enheten; installasjon avvist ved signaturfeil |
| Magiske byte | 50 4B 03 04 - standard ZIP «PK» lokal filhode ved offset 0; skiller seg fra vanlig ZIP ved tilstedeværelse av AndroidManifest.xml og classes.dex |
| Interne filer | AndroidManifest.xml, classes.dex (+ classes2.dex …), resources.arsc, res/, lib/, assets/, META-INF/ |
| Byttekode | Dalvik Executable (DEX) i classes.dex - kompilert fra Java/Kotlin-kilde, kjørt av ART (Android Runtime) |
| Justering | zipalign håndhever 4-byte grense for ukomprimerte oppføringer; Android 15+ sikter mot 16 KB sidejustering |
| Manifestformat | Binærkodet XML (AXML) som deklarerer pakkenavn, tillatelser, Activity/Service/Provider-komponenter, minSdkVersion, targetSdkVersion |
| Native bibliotekoppsett | lib/<ABI>/ undermappe per arkitektur: arm64-v8a, armeabi-v7a, x86, x86_64 |
| Ressurstabell | resources.arsc - flat binærfil som kobler heltalls-ressurs-ID-er til strenger, layouter, grafikk og konfigurasjonsvarianter |
| Typisk størrelse | 2 MB - 1,5 GB; base-app APK-er vanligvis 5-100 MB; spill med buntede ressurser når det øvre området |
| MIME-type | application/vnd.android.package-archive |
| Plattform | Android (innfødt); kjørbar på Windows, Linux, macOS via emulatorer (BlueStacks, Android Studio AVD, Waydroid) |
| Utgitt | 2008 (Android 1.0) |
| Siste versjon | APK Signature Scheme v3 (Android 9, 2018); v4 incremental (Android 11, 2020) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | source.android.com |