Wat is het ARSC-bestandsformaat?
Een .arsc-bestand is een gecompileerde Android resourcetabel. .arsc-bestanden worden door ontwikkelaars gebruikt om applicatieresources op te slaan in een compacte binaire vorm die het besturingssysteem tijdens runtime efficiënt kan lezen. .arsc-resourcebestanden bevatten statische gegevens - strings, afmetingen, kleuren, stijlen en lay-outconfiguratiewaarden - die niet veranderen tijdens het uitvoeringsproces van de applicatie. In tegenstelling tot ruwe bronbestanden bevat een .arsc-bestand geen afbeeldingen rechtstreeks; binaire drawables worden als afzonderlijke items elders in het pakket opgeslagen. Broncode en resourcebestanden worden door aapt2 gecompileerd tot één installeerbaar .apk-pakket. Het resulterende bestand kan vervolgens worden gebruikt om de betreffende applicatie op een Android-apparaat te installeren.
Binnen een .apk (of .aab) heet de gecompileerde tabel altijd resources.arsc en wordt deze ongecomprimeerd opgeslagen - sinds Android 11 mapt de runtime het direct in het geheugen in plaats van het te decompresseren, dus het moet op 4-byte zijn uitgelijnd. Alle softwareontwikkelomgevingen gebruiken een soort resourcebestanden, maar alleen Android gebruikt het .arsc-resourcetabelformaat. Resourcebestanden zijn ontworpen om overal in het project toegankelijk te zijn - resources kunnen in de hele broncode worden aangeroepen via R.*-constanten zoals R.string.app_name. Een dergelijke aanpak maakt het mogelijk om de codebase aan te passen zonder elke regel te wijzigen waar naar een bepaalde resource wordt verwezen. De gecompileerde tabel kan ook worden gedecodeerd uit een verpakte applicatie met behulp van tools zoals apktool of de APK Analyzer die in Android Studio is ingebouwd.
Beveiliging & veiligheid
RISICO: LOWresources.arsc bevat inerte gegevens - geen code, geen macro's - dus het bestand zelf is ongevaarlijk om te inspecteren. De enige echte zorg is de APK waar het vandaan komt: het decompileren van een app kan in strijd zijn met de licentie, en het handmatig bewerken van de tabel en vervolgens opnieuw ondertekenen van een APK is hoe malware soms wordt herverpakt, dus behandel aangepaste APK's van onbetrouwbare bronnen met argwaan.
Formaatdetails
in een notendopProgramma's die ARSC-bestanden openen
Technische details
diepe specificaties| Bestandscodering | Binair, little-endian |
| Magic bytes | 02 00 0C 00 op offset 0 (ResChunk_header: type=0x0002 RES_TABLE_TYPE, headergrootte=0x000C) |
| MIME-type | application/octet-stream |
| Container | Ongecomprimeerd opgeslagen (ZIP STORED-methode, niet DEFLATE) binnen een APK- of AAB-archief |
| Typische bestandsgrootte | 10 KB - 5 MB, afhankelijk van het aantal talen, schermdichtheden en de grootte van de string-pool |
| Interne bestandsnaam | resources.arsc (vaste naam binnen de APK/AAB ZIP) |
| Resource-ID formaat | 32-bits waarde 0xPPTTEEEE: 8-bits pakket, 8-bits type, 16-bits item; ondersteunt tot 255 types en 65.535 items per type |
| Top-level structuur | RES_TABLE chunk met een globale string-pool plus één pakket-chunk per app, elk met type-spec en type sub-chunks |
| Configuratie-dimensies | Koppelt elke resource-ID aan waarden over meerdere apparaatconfiguraties: taal/regio, schermdichtheid, oriëntatie, kleinste breedte, API-niveau en meer |
| Sparse codering | Standaard klassieke dichte type-item tabel; optionele sparse codering beschikbaar sinds Android 14 (SDK 34, 2023) om de grootte te beperken |
| Runtime toegang | In het geheugen gemapt (mmap) tijdens runtime sinds Android 11; moet op 4-byte zijn uitgelijnd en ongecomprimeerd zijn opgeslagen voor zero-copy toegang |
| Integriteitsbescherming | Geen ingebouwde checksum; het omsluitende APK v2/v3-handtekeningblok dekt het gehele archief inclusief resources.arsc |
| Compiler toolchain | Gegenereerd door aapt (verouderd) of aapt2 (huidige Android build-tools) vanuit res/values XML-bronbestanden |
| Bijbehorend platform | Alleen Android; niet gebruikt door iOS, Windows of andere mobiele platforms |
| Ontwikkelaar | Google / Android Open Source Project (AOSP) |
| Uitgebracht | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| Laatste versie | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| Open standaard | Ja · royaltyvrij |
| Specificatie | android.googlesource.com |
ARSC conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over ARSC-bestanden.