Qu'est-ce que le format de fichier ARSC ?
Un fichier .arsc est une table de ressources Android compilée. Les fichiers .arsc sont utilisés par les développeurs pour stocker les ressources d'application sous une forme binaire compacte que le système d'exploitation peut lire efficacement au moment de l'exécution. Les fichiers de ressources .arsc contiennent des données statiques - chaînes de caractères, dimensions, couleurs, styles et valeurs de configuration de mise en page - qui ne changent pas pendant le processus d'exécution de l'application. Contrairement aux actifs sources bruts, un fichier .arsc n'intègre pas directement les images ; les drawables binaires sont stockés comme des entrées séparées ailleurs dans le paquet. Le code source et les fichiers de ressources sont compilés par aapt2 en un seul paquet .apk installable. Le fichier résultant peut ensuite être utilisé pour installer l'application donnée sur un appareil Android.
À l'intérieur d'un .apk (ou .aab), la table compilée est toujours nommée resources.arsc et stockée sans compression - depuis Android 11, l'environnement d'exécution la mappe directement en mémoire plutôt que de la décompresser, elle doit donc être alignée sur 4 octets. Tous les environnements de développement logiciel utilisent un type de fichiers de ressources, mais seul Android utilise le format de table de ressources .arsc. Les fichiers de ressources sont conçus pour être accessibles n'importe où dans le projet - les ressources peuvent être référencées tout au long du code source via des constantes R.* telles que R.string.app_name. Une telle approche permet de modifier la base de code sans changer chaque ligne où une ressource donnée est référencée. La table compilée peut également être décodée à partir d'une application packagée à l'aide d'outils tels que apktool ou l'APK Analyzer intégré à Android Studio.
Sécurité et sûreté
RISQUE : LOWresources.arsc contient des données inertes - pas de code, pas de macros - le fichier lui-même est donc sans danger à inspecter. La seule préoccupation réelle est l'APK dont il provient : la décompilation d'une application peut être contraire à sa licence, et la modification manuelle de la table suivie d'une nouvelle signature de l'APK est la manière dont les logiciels malveillants sont parfois reconditionnés, traitez donc les APK modifiés provenant de sources non fiables avec suspicion.
Détails du format
en brefProgrammes qui ouvrent les fichiers ARSC
Détails techniques
spécifications approfondies| Encodage du fichier | Binaire, little-endian |
| Octets magiques | 02 00 0C 00 à l'offset 0 (ResChunk_header : type=0x0002 RES_TABLE_TYPE, taille d'en-tête=0x000C) |
| Type MIME | application/octet-stream |
| Conteneur | Stocké non compressé (méthode ZIP STORED, pas DEFLATE) à l'intérieur d'une archive APK ou AAB |
| Taille de fichier typique | 10 Ko - 5 Mo, selon le nombre de langues, les densités d'écran et la taille du pool de chaînes |
| Nom de fichier interne | resources.arsc (nom fixe au sein du ZIP APK/AAB) |
| Format d'ID de ressource | Valeur 32 bits 0xPPTTEEEE : paquet 8 bits, type 8 bits, entrée 16 bits ; supporte jusqu'à 255 types et 65 535 entrées par type |
| Structure de haut niveau | Bloc RES_TABLE contenant un pool de chaînes global plus un bloc de paquet par application, chacun contenant des sous-blocs de spécification de type et de type |
| Dimensions de configuration | Fait correspondre chaque ID de ressource à des valeurs à travers plusieurs configurations d'appareils : langue/locale, densité d'écran, orientation, largeur minimale, niveau d'API, et plus encore |
| Encodage clairsemé (sparse) | Table d'entrées de type dense classique par défaut ; encodage clairsemé optionnel disponible depuis Android 14 (SDK 34, 2023) pour réduire la taille |
| Accès à l'exécution | Mappé en mémoire (mmap) à l'exécution depuis Android 11 ; doit être aligné sur 4 octets et stocké non compressé pour permettre un accès sans copie |
| Protection de l'intégrité | Pas de somme de contrôle intégrée ; le bloc de signature APK v2/v3 englobant couvre l'ensemble de l'archive, y compris resources.arsc |
| Chaîne d'outils de compilation | Généré par aapt (obsolète) ou aapt2 (outils de construction Android actuels) à partir des fichiers sources XML res/values |
| Plateforme associée | Android uniquement ; non utilisé par iOS, Windows ou d'autres plateformes mobiles |
| Développeur | Google / Android Open Source Project (AOSP) |
| Publié | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| Dernière version | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| Standard ouvert | Oui · libre de droits |
| Spécification | android.googlesource.com |
Conversions ARSC
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers ARSC.