Che cos'è il formato di file ARSC?
Un file .arsc è una tabella delle risorse Android compilata. I file .arsc sono utilizzati dagli sviluppatori per memorizzare le risorse dell'applicazione in una forma binaria compatta che il sistema operativo può leggere in modo efficiente durante l'esecuzione. I file di risorse .arsc contengono dati statici - stringhe, dimensioni, colori, stili e valori di configurazione del layout - che non cambiano durante il processo di esecuzione dell'applicazione. A differenza degli asset sorgente grezzi, un file .arsc non incorpora direttamente le immagini; i drawable binari sono memorizzati come voci separate altrove nel pacchetto. Il codice sorgente e i file di risorse vengono compilati da aapt2 in un unico pacchetto .apk installabile. Il file risultante può quindi essere utilizzato per installare l'applicazione su un dispositivo Android.
All'interno di un .apk (o .aab), la tabella compilata è sempre denominata resources.arsc e memorizzata non compressa - a partire da Android 11, il runtime la mappa direttamente in memoria (memory-map) invece di decomprimerla, quindi deve essere allineata a 4 byte. Tutti gli ambienti di sviluppo software utilizzano qualche tipo di file di risorse, ma solo Android utilizza il formato della tabella delle risorse .arsc. I file di risorse sono progettati per essere accessibili ovunque nel progetto - le risorse possono essere richiamate in tutto il codice sorgente tramite costanti R.* come R.string.app_name. Tale approccio consente di modificare la base di codice senza cambiare ogni riga in cui viene citata una determinata risorsa. La tabella compilata può anche essere decodificata da un'applicazione pacchettizzata utilizzando strumenti come apktool o l'APK Analyzer integrato in Android Studio.
Sicurezza e incolumità
RISCHIO: LOWresources.arsc contiene dati inerti - nessun codice, nessuna macro - quindi il file stesso è innocuo da ispezionare. L'unica vera preoccupazione è l'APK da cui proviene: la decompilazione di un'app potrebbe violare la sua licenza, e la modifica manuale della tabella seguita dalla nuova firma di un APK è il modo in cui a volte vengono riconfezionati i malware, quindi tratta gli APK modificati da fonti non attendibili con sospetto.
Dettagli del formato
in sintesiProgrammi che aprono file ARSC
Dettagli tecnici
specifiche approfondite| Codifica del file | Binario, little-endian |
| Magic bytes | 02 00 0C 00 all'offset 0 (ResChunk_header: type=0x0002 RES_TABLE_TYPE, header size=0x000C) |
| Tipo MIME | application/octet-stream |
| Contenitore | Memorizzato non compresso (metodo ZIP STORED, non DEFLATE) all'interno di un archivio APK o AAB |
| Dimensione tipica del file | 10 KB - 5 MB, a seconda del numero di lingue, densità dello schermo e dimensione del pool di stringhe |
| Nome file interno | resources.arsc (nome fisso all'interno dello ZIP APK/AAB) |
| Formato ID risorsa | Valore a 32 bit 0xPPTTEEEE: pacchetto a 8 bit, tipo a 8 bit, voce a 16 bit; supporta fino a 255 tipi e 65.535 voci per tipo |
| Struttura di alto livello | Chunk RES_TABLE contenente un pool di stringhe globale più un chunk di pacchetto per app, ciascuno contenente sottosezioni type-spec e type |
| Dimensioni di configurazione | Mappa ogni ID risorsa a valori attraverso molteplici configurazioni del dispositivo: lingua/località, densità dello schermo, orientamento, larghezza minima, livello API e altro |
| Codifica sparse | Tabella tipo-voce densa classica per impostazione predefinita; codifica sparse opzionale disponibile da Android 14 (SDK 34, 2023) per ridurre le dimensioni |
| Accesso in runtime | Mappato in memoria (mmap) all'esecuzione da Android 11; deve essere allineato a 4 byte e memorizzato non compresso per consentire l'accesso zero-copy |
| Protezione dell'integrità | Nessun checksum integrato; il blocco della firma APK v2/v3 racchiudente copre l'intero archivio, incluso resources.arsc |
| Toolchain del compilatore | Generato da aapt (legacy) o aapt2 (attuali strumenti di compilazione Android) dai file sorgente XML res/values |
| Piattaforma associata | Solo Android; non utilizzato da iOS, Windows o altre piattaforme mobili |
| Sviluppatore | Google / Android Open Source Project (AOSP) |
| Rilasciato | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| Ultima versione | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| Standard aperto | Sì · royalty-free |
| Specifica | android.googlesource.com |
Conversioni ARSC
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file ARSC.