「APK情報ビュアー」は、Androidアプリケーションパッケージ(APK)ファイルをデバイスにインストールすることなく、その内部構造やメタデータをWebブラウザ上で直接検査できる無料のオンラインツールです。本ツールは、対象のAPKを実行・インストールすることなく、パッケージ名、バージョン、要求されるAndroid OSバージョン、パーミッション、画面およびバックグラウンドコンポーネント、対応プロセッサ、署名証明書、ファイルハッシュなどの技術的詳細を抽出して表示する静的解析ユーティリティとして機能します。これにより、開発者が公式にリリースした情報と手元のファイルを比較検証することが可能になります。
ブラウザ内ローカル処理とプライバシー保護
本ツールにおけるファイルの読み込み、ハッシュ計算、および解析処理は、すべてユーザーのWebブラウザ内に構築されたローカルのWorker上で完結します。アップロード処理によって外部サーバーにファイルやデータが送信されることは一切なく、対象のAPKがユーザーのデバイス上でインストールまたは実行されることもありません。
最大500 MBまでの単一の .apk ファイルを処理することができ、複数ファイルが提供された場合は「一度に処理できるのは1ファイルのみです。最初のファイルを検査します。」という注意書きとともに、最初のファイルのみが検査対象となります。
APKファイルの構造と解析可能なコンポーネント
APKはAndroidアプリの配布用パッケージ形式であり、内部には AndroidManifest.xml、DEX形式のコードファイル、アセット、リソースなどが格納されています。本ツールはこれらの内部データを解析し、以下のセクションに分類してレポートを出力します。
要件(Requirements)
アプリの動作互換性を定義するSDKバージョン情報を表示します。
- 最小 Android:
Android ‹version› (API ‹level›)またはAPI ‹level›の形式で表示。 - ターゲット Android:
Android ‹version› (API ‹level›)またはAPI ‹level›の形式で表示。 - 最大 SDK: 該当する場合、
最大 SDK ‹n›として表示。
パーミッション(Permissions)
アプリが要求する権限の一覧を表示します。Androidシステムによって個人データへのアクセスを伴うと分類された権限には「危険」バッジが付与され、このバッジを持つ権限がリストの最上部に優先してソートされます。
コンポーネント(Components)
アプリを構成する以下の4つの要素を分類表示します。各カテゴリの表示上限は100件であり、超過した場合は「他 ‹count› 件」と省略表記されます。外部アプリからの呼び出しが可能な要素には「エクスポート済み」ラベルが付与されます。
- Activity: 画面を構成するコンポーネント。
- Service: バックグラウンド処理を担うコンポーネント。
- Receiver: システムからのインテントを受信するコンポーネント。
- Provider: データの共有や提供を行うコンポーネント(プロバイダ権限、または該当がない場合は「なし」を表示)。
ネイティブコード(Native Code)
対応するプロセッサタイプ(ABI)および内包されるネイティブライブラリの数を表示します。
リソース(Resources)
パッケージに含まれるリソース情報を以下の項目で整理します。
- 画面密度、リソースファイル、アセットファイル、コードファイル (.dex)、パッケージ内のファイル。
【解析ステータスの遷移一覧】
1. 準備完了。APKをここにドロップして検査します。
2. {name} を読み込んでいます…
3. ファイルハッシュを計算中 — {percent}%
4. パッケージを解析中…
5. レポートの準備ができました。
コード署名スキームとファイルハッシュの検証
Androidアプリは、発行元の識別と改ざん防止のためにデジタル署名が施されています。本ツールは、v1 PKCS#7ブロックおよびAPK署名ブロック(v2、v3、v3.1スキーム)からX.509証明書を抽出し、以下のメタデータを表示します。
- 署名者番号(
署名者 ‹n›)、サブジェクト、発行者、シリアル番号、有効期間開始、有効期間終了、署名アルゴリズム、鍵アルゴリズム。 - 証明書のMD5、SHA-1、およびSHA-256フィンガープリント。
署名ブロックが検出されない場合は「認識可能な署名ブロックが見つかりませんでした。未署名か再パッケージされている可能性があります。」と表示されます。なお、本ツールは証明書メタデータの抽出のみを行い、暗号学的な署名整合性の検証、証明書信頼チェーンの検証、および発行者の実社会における実体確認までは行いません。
また、ファイル自体の同一性を検証するため、APKファイル全体のMD5、SHA-1、およびSHA-256ハッシュ値を計算して「ファイルハッシュ」セクションに表示します。
エラーハンドリングと制限事項
解析中に問題が発生した場合、ツールは以下のルールに従って具体的なエラーメッセージを出力します。
| 発生状況 | 表示されるエラーメッセージ |
|---|---|
| ファイルサイズが500 MBを超過 | 「このファイルは500 MBを超えているため、ブラウザタブで安全に検査できる大きさを超えています。」 |
| 分割パッケージ(XAPK、APKM)の入力 | 「これはXAPK分割パッケージであり、複数のAPKのコンテナです。ベースAPKを抽出して、そのファイルを検査してください。」 |
| Android App Bundle(.aab)の入力 | 「これはAndroid App Bundles(.aab)であり、公開用形式であってインストール可能なAPKではありません。ビルド済みのAPKを検査してください。」 |
| AndroidManifest.xmlが未検出 | 「これはAPKではないようです。内部に読み取り可能なAndroidManifest.xmlが見つかりませんでした。」 |
| ファイルの破損または途切れ | 「パッケージが破損しているか途中で切断されているため、内容を読み込めませんでした。」 |
| 一般的なファイル読み込み失敗 | 「ファイルを読み込めませんでした。もう一度選択してください。」 |
| その他の解析失敗 | 「検査に失敗しました。別のファイルを試してください。」 |
よくある質問(FAQ)
インストールせずにAPKからどのようなことが分かりますか?
アプリのパッケージ名やバージョン、必要なAndroidバージョン、要求するすべての権限、宣言されている画面やバックグラウンドコンポーネント、ネイティブコードに対応するプロセッサの種類、署名に使用された証明書など、多くの情報を確認できます。
このツールでAPKがマルウェアかどうかを判別できますか?
いいえ。簡単なスキャンだけで安全性を断言するツールには注意してください。ここでは、権限、コンポーネント、署名者、ハッシュなどの事実情報を提供します。開発者が公表している情報と比較し、予期しない権限の要求や公式リリースと異なる署名者が見つかった場合は、利用を見送る判断材料にしてください。
どのファイル形式がサポートされていますか?
最大500 MBまでの単一のAPKファイルに対応しています。分割パッケージ(XAPK、APKM)やAndroid App Bundles(.aab)は単一のインストール可能なパッケージではなくコンテナや公開形式であるため、混乱を招くレポートの代わりに分かりやすいメッセージを表示して処理を中止します。
署名情報からは何が分かりますか?
すべてのAndroidアプリには署名があり、証明書によって発行元が識別されます。パッケージが対応している署名スキーム(v1、v2、v3)や、各署名者の主体、有効期間、MD5、SHA-1、SHA-256のフィンガープリントが表示されます。フィンガープリントが一致する2つのAPKは同じ発行元からのものですが、その発行元を信用するかどうかはご自身で判断してください。
権限にある「危険(Dangerous)」バッジの意味は何ですか?
これはAndroid独自の分類であり、危険な権限は位置情報、連絡先、カメラ、マイク、ストレージなどのプライベートデータにアクセスできるため、システムは付与する前にユーザーに確認を行います。このバッジは告発的なものではなく、地図アプリが位置情報を求めるのは正常な動作です。単に、二度読みして確認すべき権限であることを示しています。