Was ist das ARSC-Dateiformat?
Eine .arsc-Datei ist eine kompilierte Android-Ressourcentabelle. .arsc-Dateien werden von Entwicklern verwendet, um Anwendungsressourcen in kompakter Binärform zu speichern, die das Betriebssystem zur Laufzeit effizient auslesen kann. .arsc-Ressourcendateien enthalten statische Daten - Zeichenketten, Abmessungen, Farben, Stile und Layout-Konfigurationswerte - die sich während der Ausführung der Anwendung nicht ändern. Im Gegensatz zu rohen Quell-Assets bettet eine .arsc-Datei keine Bilder direkt ein; binäre Drawables werden als separate Einträge an anderer Stelle im Paket gespeichert. Quellcode und Ressourcendateien werden von aapt2 zu einem einzigen installierbaren .apk-Paket kompiliert. Die resultierende Datei kann dann verwendet werden, um die Anwendung auf einem Android-Gerät zu installieren.
Innerhalb einer .apk (oder .aab) heißt die kompilierte Tabelle stets resources.arsc und wird unkomprimiert gespeichert - seit Android 11 mappt das Laufzeitsystem sie direkt über Memory-Mapping statt sie zu dekomprimieren, weshalb sie auf 4 Byte ausgerichtet sein muss. Alle Softwareentwicklungsumgebungen verwenden irgendeine Art von Ressourcendateien, aber nur Android nutzt das .arsc-Ressourcentabellenformat. Ressourcendateien sind so konzipiert, dass sie überall im Projekt zugänglich sind - Ressourcen können im gesamten Quellcode über R.*-Konstanten wie R.string.app_name referenziert werden. Dieser Ansatz ermöglicht es, die Codebasis zu ändern, ohne jede Zeile anpassen zu müssen, in der eine bestimmte Ressource referenziert wird. Die kompilierte Tabelle kann auch aus einer gepackten Anwendung mit Tools wie apktool oder dem APK Analyzer in Android Studio extrahiert werden.
Sicherheit
RISIKO: LOWresources.arsc sind inerte Daten - kein Code, keine Makros - sodass das Inspizieren der Datei selbst harmlos ist. Die eigentliche Gefahr liegt in der APK, aus der sie stammt: Das Dekompilieren einer App kann gegen ihre Lizenzbedingungen verstoßen, und das manuelle Bearbeiten der Tabelle mit anschließendem Neusignieren einer APK ist eine Methode, mit der Malware manchmal neu verpackt wird - behandle modifizierte APKs aus nicht vertrauenswürdigen Quellen daher mit Vorsicht.
Formatdetails
kurz gefasstProgramme zum Öffnen von ARSC-Dateien
Technische Details
technische Spezifikation| Dateikodierung | Binär, Little-Endian |
| Magic Bytes | 02 00 0C 00 bei Offset 0 (ResChunk_header: type=0x0002 RES_TABLE_TYPE, header size=0x000C) |
| MIME-Typ | application/octet-stream |
| Container | Unkomprimiert (ZIP STORED-Methode, kein DEFLATE) in einer APK- oder AAB-Archivdatei gespeichert |
| Typische Dateigröße | 10 KB - 5 MB, abhängig von der Anzahl der Spracheinstellungen, Bildschirmdichten und der Größe des String-Pools |
| Interner Dateiname | resources.arsc (fester Name innerhalb der APK/AAB ZIP) |
| Ressourcen-ID-Format | 32-Bit-Wert 0xPPTTEEEE: 8-Bit-Paket, 8-Bit-Typ, 16-Bit-Eintrag; unterstützt bis zu 255 Typen und 65.535 Einträge pro Typ |
| Übergeordnete Struktur | RES_TABLE-Chunk mit einem globalen String-Pool und einem Package-Chunk pro App, der jeweils Typ-Spec- und Typ-Unterchunks enthält |
| Konfigurationsdimensionen | Ordnet jede Ressourcen-ID Werten für mehrere Gerätekonfigurationen zu: Sprache/Gebietsschema, Bildschirmdichte, Ausrichtung, kleinste Breite, API-Level und mehr |
| Sparse-Kodierung | Standardmäßig dichte Typ-Eintrags-Tabelle; optionale Sparse-Kodierung seit Android 14 (SDK 34, 2023) zur Größenreduzierung verfügbar |
| Laufzeitzugriff | Memory-Mapped (mmap) zur Laufzeit seit Android 11; muss 4-Byte-ausgerichtet und unkomprimiert gespeichert sein, um Zero-Copy-Zugriff zu ermöglichen |
| Integritätsschutz | Keine eingebaute Prüfsumme; der APK v2/v3-Signaturblock der übergeordneten APK umfasst das gesamte Archiv einschließlich resources.arsc |
| Compiler-Toolchain | Wird von aapt (veraltet) oder aapt2 (aktuelles Android-Build-Tool) aus res/values-XML-Quelldateien erzeugt |
| Zugehörige Plattform | Nur Android; nicht auf iOS, Windows oder anderen mobilen Plattformen verwendet |
| Entwickler | Google / Android Open Source Project (AOSP) |
| Veröffentlicht | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| Neueste Version | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | android.googlesource.com |
ARSC-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu ARSC-Dateien.