web-dev-qa-db-ja.com

APKファイルのMETA-INFフォルダー内のファイルの目的は何ですか?

MANIFEST.MFCERT.SFおよびCERT.RSAAndroid AP​​KのMETA-INFフォルダーにあるファイル。

11
Live Seven

Android APKファイルは実際にはjarファイル(Javaアーカイブ)であり、圧縮の有無にかかわらず単純なZipファイルです。 jarファイルはすべてのタイプのJavaアプリケーションで使用され、特定の構造を持っています。META-INFフォルダーには、jarファイルによって運ばれるJavaパッケージに関するマニフェスト情報とその他のメタデータが含まれています。

これらのファイルの目的は次のとおりです。

  1. MANIFEST.MF:jarファイルをロードするときにJavaランタイム環境で使用されるさまざまな情報が含まれています。たとえば、jarファイルから実行されるメインクラス、パッケージのバージョン、ビルド番号、作成者パッケージ、JavaアプレットおよびJava Webstartパッケージのセキュリティポリシー/権限、jar内のファイル名のリスト、およびそれらのSHA1ダイジェストなど.
  2. CERT.SF:これには、SHA-1ダイジェストとともにすべてのファイルのリストが含まれています。
  3. CERT.RSA:これには、CERT.SFファイルの署名済みコンテンツと、コンテンツの署名に使用される公開鍵の証明書チェーンが含まれています。

例として、サンプルのapkファイルを参照してください here 。 7Zipなどのファイル解凍プログラムを使用してこのファイルをダウンロードしてデスクトップに展開すると、これらのファイルのサンプルが表示されます。

抽出されたディレクトリで、サブディレクトリMETA-INFに移動し、manifest.mfファイルと* .sfファイルの内容を表示します。これらのファイルの最初の数行は次のとおりです。

MANIFEST.SFファイル:

Manifest-Version: 1.0
Created-By: 1.7.0_60 (Oracle Corporation)

Name: res/drawable-xxhdpi-v4/common_plus_signin_btn_text_dark_pressed.9.png
SHA1-Digest: Db3E0/I85K9Aik2yJ4X1dDP3Wq0=

Name: res/drawable-xhdpi-v4/opt_more_item_close_press.9.png
SHA1-Digest: Xxm9cr4gDbEEnnYvxRWfzcIXBEM=

Name: res/anim/accessibility_guide_translate_out.xml
SHA1-Digest: dp8PyrXMy2IBxgTz19x7DATpqz8=

MCTN.SFファイルには、MANIFEST.MFのファイルリストのダイジェストと空の行が含まれています。

Signature-Version: 1.0
SHA1-Digest-Manifest-Main-Attributes: Sen4TNWb3NQLczkzN1idKh81Rjc=
Created-By: 1.7.0_60 (Oracle Corporation)
SHA1-Digest-Manifest: NAWTDC05HK+hfNtQ91J4AoL9F7s=

Name: res/drawable-xxhdpi-v4/common_plus_signin_btn_text_dark_pressed.9.png
SHA1-Digest: pvIZkdVTEuilCdx8UkrlY6ufPlw=

Name: res/anim/accessibility_guide_translate_out.xml
SHA1-Digest: XeX9Q2w41PRm3KiZ5p07x3CY6hc=

MCTN.RSAファイルには、MCTN.SFファイルで生成されたbase64エンコードの署名が含まれています。

APKパッケージの署名を確認する方法の詳細については、このリファレンスを参照してください- http://theether.net/kb/100207

9