ARSC ファイル形式とは?
.arsc ファイルは、コンパイルされた Androidリソーステーブル です。.arsc ファイルは、実行時にOSが効率的に読み取れるコンパクトなバイナリ形式でアプリケーションリソースを保存するために、開発者によって使用されます。.arsc リソースファイルには、アプリケーションの実行プロセス中に変更されない静的データ(文字列、ディメンション、色、スタイル、レイアウト構成値)が含まれています。生のソースアセットとは異なり、.arsc ファイルは画像を直接埋め込むことはありません。バイナリのドローアブルは、パッケージ内の別の場所に個別のエントリとして保存されます。ソースコードとリソースファイルは aapt2 によって単一のインストール可能な .apk パッケージにコンパイルされます。生成されたファイルは、特定のAndroidデバイスにアプリケーションをインストールするために使用されます。
.apk(または .aab)の内部では、コンパイルされたテーブルは常に resources.arsc という名前で、非圧縮で保存されます。Android 11以降、ランタイムはこれを解凍するのではなく直接メモリマップするため、4バイト境界にアラインされている必要があります。すべてのソフトウェア開発環境は何らかのリソースファイルを使用しますが、Androidのみが .arsc リソーステーブル形式を使用します。リソースファイルはプロジェクト内のどこからでもアクセスできるように設計されており、リソースはソースコード全体で R.string.app_name などの R.* 定数を介して参照できます。このようなアプローチにより、特定のリソースが参照されているすべての行を変更することなく、コードベースを修正できます。コンパイルされたテーブルは、apktool や Android Studio に組み込まれている APK Analyzer などのツールを使用して、パッケージ化されたアプリケーションからデコードすることも可能です。
セキュリティと安全性
リスク: LOWresources.arsc は不活性なデータであり、コードやマクロは含まれていないため、ファイル自体の検査は無害です。唯一の懸念は、そのファイルが含まれていた APK です。アプリのデコンパイルはライセンス違反になる可能性があり、テーブルを手動で編集して APK を再署名することはマルウェアの再パッケージ化の手口でもあるため、信頼できないソースからの修正済み APK は慎重に扱ってください。
形式の詳細
概要ARSC ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルエンコーディング | バイナリ、リトルエンディアン |
| マジックバイト | オフセット0に 02 00 0C 00 (ResChunk_header: type=0x0002 RES_TABLE_TYPE, header size=0x000C) |
| MIMEタイプ | application/octet-stream |
| コンテナ | APKまたはAABアーカイブ内に非圧縮(ZIP STOREDメソッド、DEFLATEではない)で保存 |
| 典型的なファイルサイズ | 10 KB - 5 MB(ロケール数、画面密度、文字列プールのサイズに依存) |
| 内部ファイル名 | resources.arsc (APK/AAB ZIP内での固定名) |
| リソースID形式 | 32ビット値 0xPPTTEEEE: 8ビットパッケージ、8ビットタイプ、16ビットエントリ。最大255タイプ、タイプあたり65,535エントリをサポート |
| トップレベル構造 | グローバル文字列プールを含む RES_TABLE チャンクと、アプリごとのパッケージチャンク(各パッケージに type-spec と type サブチャンクを保持) |
| 構成ディメンション | 各リソースIDを、言語/ロケール、画面密度、向き、最小幅、APIレベルなどの複数のデバイス構成にわたる値にマッピング |
| スパースエンコーディング | デフォルトは従来の密なタイプエントリテーブル。サイズ削減のため、Android 14 (SDK 34, 2023) 以降でオプションのスパースエンコーディングが利用可能 |
| ランタイムアクセス | Android 11以降、実行時にメモリマップ(mmap)される。ゼロコピーアクセスを可能にするため、4バイトアラインかつ非圧縮で保存される必要がある |
| 整合性保護 | 組み込みのチェックサムはなし。囲んでいる APK v2/v3 署名ブロックが resources.arsc を含むアーカイブ全体をカバー |
| コンパイラツールチェーン | res/values XMLソースファイルから aapt (レガシー) または aapt2 (現在の Android ビルドツール) によって生成 |
| 関連プラットフォーム | Android のみ。iOS、Windows、その他のモバイルプラットフォームでは使用されない |
| 開発元 | Google / Android Open Source Project (AOSP) |
| リリース日 | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| 最新バージョン | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | android.googlesource.com |
ARSC の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。ARSC ファイルについて最初の質問をしてみましょう。