探索 APK 文件的内部:了解 Android 应用程序的组织结构 |
您所在的位置:网站首页 › 程序结构组成部分 › 探索 APK 文件的内部:了解 Android 应用程序的组织结构 |
I. 什么是 APK 文件
APK (Android application package) 是构建和发布 Android 应用程序的关键组成部分,APK 文件是应用程序的打包格式,它将应用程序的代码、资源和清单信息组合在一起,以便在设备上进行安装和运行。 简称 ”安装包“,其本质上就是一个 zip 压缩包。 II. APK 文件的组成部分常见的文件组成如下,可能还有其他的文件、目录等。 assets 目录用于存放应用程序的原始静态文件,如音频文件、视频文件、HTML 文件等。 lib:库lib 目录是应用程序的本地库目录,用于存放与特定硬件架构相关的本地库文件。 META-INF:签名META-INF 目录存放与 APK 文件的完整性和签名相关的信息。这些文件在 APK 的构建和签名过程中自动生成,其作用主要涉及应用程序的安全性和验证。 有些 APK 解压后看不到 META-INF 目录,有可能是使用的 V2 的签名。V2 的签名信息,则插入在 APk 压缩包的文件结构里(数据区和中央目录中间),所以不会被解压出来。 APK 的签名方式就不在本篇叙述了,Android v1、v2、v3签名详解 这篇文章讲解的不错。 该目录下包含文件: 1. MANIFEST.MF (Manifest File) MANIFEST.MF 是 APK 文件的主清单文件。它包含了与 APK 文件相关的元数据信息,如创建时间、修改时间、版本号等。主清单文件记录了 APK 文件中包含的其他清单文件的名称和哈希值,用于确保 APK 文件的完整性。 2. CERT.RSA (RSA Certificate) CERT.RSA 文件包含 APK 文件的数字签名信息。在 APK 构建过程中,开发者会使用数字证书对 APK 文件进行签名。数字签名是一种保证 APK 文件来源和完整性的机制,它防止 APK 在发布过程中被篡改或恶意修改。Android 设备在安装应用程序时会验证 CERT.RSA 文件中的签名信息,确保 APK 文件是由合法开发者签名的。注意:直接解压得到的 CERT.RSA 是使用 RSA 加密了的,需要用 openssl 等工具查看。 openssl pkcs7 -inform DER -in CERT.RSA -text -noout -print_certs注意:直接解压 APK 得到的 AndroidManifest.xml 是压缩过的,直接打开将看到乱码,可以通过相关工具(AndroidStudio,jadx 等)将其解压。 APK文件结构 Android v1、v2、v3签名详解 Android 官方介绍签名 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |