APK文件的META-INF文件夹中的文件的用途是什么?

时间:2016-09-03 04:58:37

标签: android apk digital-signature

在android中的META-INF文件夹中 MANIFEST.MF CERT.SF CERT.RSA 文件的目的是什么? APK。

1 个答案:

答案 0 :(得分:7)

android APK文件实际上是一个jar文件(java档案),它只是一个带或不带压缩的普通zip文件。 Jar文件由所有类型的Java应用程序使用,它们具有特定的结构 - META-INF文件夹包含清单信息和有关jar文件携带的java包的其他元数据。

这些文件的目的如下:

  1. MANIFEST.MF:它包含java运行时环境在加载jar文件时使用的各种信息,例如哪个是从jar文件运行的主类,包的版本,内部版本号,创建者的包,java applet和java webstart包的安全策略/权限,jar中的文件名列表及其SHA1摘要等。
  2. CERT.SF:这包含所有文件的列表及其SHA-1摘要。
  3. CERT.RSA:它包含CERT.SF文件的签名内容以及用于签名内容的公钥的证书链。
  4. 例如,请参阅示例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