2016-09-03 13 views

答えて

5

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

目的は以下のとおりです。

  1. MANIFEST.MF:それはなるように、メインクラスであるかなどの、jarファイルをロードするときのJavaランタイム環境で使用されるさまざまな情報が含まれていますjarファイル、パッケージのバージョン、ビルド番号、パッケージの作成者、JavaアプレットおよびJava Webstartパッケージのセキュリティポリシー/許可、SHA1ダイジェストなどとともにjarファイル名のリストから実行します。
  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で生成されたベース64エンコーディングの署名が含まれています。

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

+0

あなたはCERT.SFは、ダイジェストの持っている含まれていることを述べました。自分自身をハッシュ値でダイジェストしていませんか? – Don

+0

あなたの質問を明確にするために編集されました。 –

+0

ええ、それについて知らなかった。 – Don

関連する問題