O que é o formato de ficheiro ARSC?
Um arquivo .arsc é uma tabela de recursos do Android compilada. Arquivos .arsc são usados por desenvolvedores para armazenar recursos de aplicativos em uma forma binária compacta que o sistema operacional pode ler de forma eficiente em tempo de execução. Arquivos de recursos .arsc contêm dados estáticos - strings, dimensões, cores, estilos e valores de configuração de layout - que não mudam durante o processo de execução do aplicativo. Ao contrário de ativos de origem brutos, um arquivo .arsc não incorpora imagens diretamente; drawables binários são armazenados como entradas separadas em outro lugar no pacote. O código-fonte e os arquivos de recursos são compilados pelo aapt2 em um único pacote .apk instalável. O arquivo resultante pode então ser usado para instalar o aplicativo em um dispositivo Android.
Dentro de um .apk (ou .aab), a tabela compilada é sempre chamada resources.arsc e armazenada sem compactação - desde o Android 11, o tempo de execução faz o mapeamento de memória (memory-map) diretamente em vez de descompactá-lo, portanto, ele deve estar alinhado em 4 bytes. Todos os ambientes de desenvolvimento de software usam algum tipo de arquivo de recurso, mas apenas o Android usa o formato de tabela de recursos .arsc. Os arquivos de recursos são projetados para serem acessados em qualquer lugar do projeto - os recursos podem ser referenciados em todo o código-fonte por meio de constantes R.*, como R.string.app_name. Tal abordagem permite que a base de código seja modificada sem alterar cada linha onde um determinado recurso é referenciado. A tabela compilada também pode ser decodificada de um aplicativo empacotado usando ferramentas como apktool ou o APK Analyzer integrado ao Android Studio.
Segurança e proteção
RISCO: LOWO resources.arsc contém dados inertes - sem código, sem macros - portanto, o arquivo em si é inofensivo para inspeção. A única preocupação real é o APK de onde ele veio: descompilar um aplicativo pode ser contra sua licença, e editar manualmente a tabela e depois assinar novamente um APK é como malwares são às vezes reempacotados, portanto, trate APKs modificados de fontes não confiáveis com suspeita.
Detalhes do formato
em resumoProgramas que abrem arquivos ARSC
Detalhes técnicos
especificação profunda| Codificação de arquivo | Binário, little-endian |
| Assinatura do arquivo (magic bytes) | 02 00 0C 00 no deslocamento 0 (ResChunk_header: type=0x0002 RES_TABLE_TYPE, tamanho do cabeçalho=0x000C) |
| Tipo MIME | application/octet-stream |
| Contêiner | Armazenado sem compactação (método ZIP STORED, não DEFLATE) dentro de um arquivo APK ou AAB |
| Tamanho de arquivo típico | 10 KB - 5 MB, dependendo do número de localidades, densidades de tela e tamanho do pool de strings |
| Nome de arquivo interno | resources.arsc (nome fixo dentro do ZIP do APK/AAB) |
| Formato do ID de recurso | Valor de 32 bits 0xPPTTEEEE: pacote de 8 bits, tipo de 8 bits, entrada de 16 bits; suporta até 255 tipos e 65.535 entradas por tipo |
| Estrutura de alto nível | Chunk RES_TABLE contendo um pool de strings global mais um chunk de pacote por aplicativo, cada um contendo sub-chunks de especificação de tipo e tipo |
| Dimensões de configuração | Mapeia cada ID de recurso para valores em várias configurações de dispositivo: idioma/localidade, densidade de tela, orientação, largura mínima, nível de API e mais |
| Codificação esparsa | Tabela de entrada de tipo densa clássica por padrão; codificação esparsa opcional disponível desde o Android 14 (SDK 34, 2023) para reduzir o tamanho |
| Acesso em tempo de execução | Mapeado em memória (mmap) em tempo de execução desde o Android 11; deve estar alinhado em 4 bytes e armazenado sem compactação para permitir acesso de cópia zero |
| Proteção de integridade | Nenhum checksum integrado; o bloco de assinatura APK v2/v3 abrangente cobre todo o arquivo, incluindo o resources.arsc |
| Cadeia de ferramentas do compilador | Gerado pelo aapt (legado) ou aapt2 (ferramentas de compilação atuais do Android) a partir de arquivos de origem XML em res/values |
| Plataforma associada | Apenas Android; não utilizado por iOS, Windows ou outras plataformas móveis |
| Desenvolvedor | Google / Android Open Source Project (AOSP) |
| Lançado | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| Versão mais recente | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| Padrão aberto | Sim · livre de royalties |
| Especificação | android.googlesource.com |
Conversões de ARSC
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos ARSC.