APK 信息查看器

在安装前查看 Android 应用包声明的内容——版本、权限、组件和签名证书。

就绪。拖入 APK 即可开始检查。

APK 完全在您的设备上解析:不会上传任何内容,文件仅被读取——绝不进行安装或运行。

常见问题

在不安装 APK 的情况下,我可以了解什么?

可以了解很多内容:应用的包名和版本、所需的 Android 版本、请求的所有权限、声明的界面及后台组件、包含原生代码的处理器类型,以及签署该应用的证书。

此工具能告诉我 APK 是否包含恶意软件吗?

不能——并且请对任何声称通过快速扫描就能给出结论的工具保持怀疑。这里为您提供的是客观事实:权限、组件、签名者和哈希值。将其与开发者公开的信息进行比对,若发现异常权限或与官方发布版本不同的签名者,请谨慎选择。

支持哪些文件?

最大 500 MB 的单体 APK 文件。拆分包(XAPK、APKM)和 Android App Bundles (.aab) 属于容器或发布格式,而非单个可安装包,因此工具会拒绝并给出明确提示,而不是生成令人费解的报告。

签名详情能告诉我什么?

每个 Android 应用都经过签名,证书可识别其发布者。您可以查看包所采用的签名方案(v1、v2、v3)以及每个签名者的主体、有效期和 MD5、SHA-1、SHA-256 指纹。指纹相同的两个 APK 来自同一发布者——至于您是否信任该发布者,仍需由您自行判断。

权限上的“危险”徽标是什么意思?

这是 Android 自身的分类:危险权限可以访问隐私数据——如位置、联系人、相机、麦克风、存储空间——因此系统会在授予权限前征求用户同意。该徽标并非指控;地图应用请求定位是正常的。它只是标记出那些值得您仔细阅读的权限。

APK 文件的内部结构与解析原理

Android 应用包(APK)本质上是一个 ZIP 格式的压缩归档文件,其中包含了 Android 运行系统所需的所有组件、资源和元数据。在不安装或运行应用的情况下,通过静态分析手段提取其内部的关键声明,是评估应用安全性和合规性的重要步骤。

“APK 信息查看器”在本地浏览器中直接解析 APK 的核心结构:

  • AndroidManifest.xml:这是每个 APK 的核心清单文件。它定义了应用的包名、版本号、运行要求、请求的权限,以及所有的四大组件(Activity、Service、Receiver、Provider)。
  • DEX 文件(.dex):包含编译后的 Dalvik 字节码,即应用的可执行代码。
  • 资源与资产(资源 & Assets):包括图片、布局文件、语言包以及打包在 assets/ 目录下的原始数据文件。
  • 签名块(Signature Block):位于 ZIP 归档的特定区域,用于验证应用的完整性和发布者身份。

通过解析这些结构,工具能够提取出完整的应用画像,帮助安全人员、开发者和系统管理员在部署前掌握应用的真实技术细节。


运行要求与 Android SDK 版本机制

在 Android 生态中,SDK 版本号决定了应用的兼容性边界和安全行为。在“APK 信息查看器”的“运行要求”部分,展示了以下三个关键指标:

指标名称 界面标签 格式示例 技术意义
最低 SDK 最低 Android Android ‹version› (API ‹level›)API ‹level› 应用能够运行的最低 Android 系统版本。低于此版本的设备将无法安装该应用。
目标 SDK 目标 Android Android ‹version› (API ‹level›)API ‹level› 开发者测试该应用时所针对的 SDK 版本。它决定了应用在现代 Android 系统上运行时,是否启用特定的隐私和安全向后兼容行为。
最高 SDK 最高 SDK ‹n› 最高 SDK ‹n› (若适用)应用限制运行的最高系统版本。

权限声明与“危险”权限识别

Android 应用必须在清单文件中声明其需要访问的系统资源和数据权限。在“APK 信息查看器”的“权限”列表中,所有请求的权限都会被完整列出。

为了帮助用户快速识别潜在的隐私风险,工具会对权限进行排序,将带有“危险”徽标的权限置于列表顶部。根据 Android 的安全模型,被归类为“危险”的权限通常涉及访问用户的私有数据或敏感硬件(例如读取联系人、获取精准定位、调用相机或麦克风)。在实际设备上,这些权限必须在运行时获得用户的明确授权。通过在安装前审查这些高风险声明,用户可以评估应用的权限请求是否与其宣称的功能相符。


应用组件与导出状态分析

Android 应用由四大组件构成,它们在“组件”部分进行分组展示:

  • Activity:应用的交互界面。
  • Service:在后台执行长生命周期操作的组件。
  • Receiver:接收并处理系统或应用间广播事件的广播接收器。
  • Provider:在应用间共享数据的内容提供者。

对于每个组件,工具会特别标注其是否处于“已导出”状态。一个被导出的组件意味着它可以被设备上的其他外部应用调用。如果敏感组件被意外导出且缺乏适当的权限保护,可能会带来安全漏洞。

为了保证界面浏览的流畅性,工具对每个组件类别设置了 100 项的显示上限。超出此限制时,将通过 另有 ‹count› 项(显示为“另有 ‹count› 项”)进行折叠展示。


代码签名方案与证书指纹

代码签名是 Android 安全架构的基石,用于确保应用自发布以来未被篡改,并确立发布者的唯一身份。

“APK 信息查看器”能够从 v1 方案(PKCS#7 块)以及 v2、v3、v3.1 方案(APK 签名块)中提取 X.509 证书元数据,并在“签名”区域展示以下信息:

  • 签名者序号
  • 主题颁发者
  • 序列号
  • 有效期生效时间失效时间
  • 算法信息签名算法密钥算法
  • 证书指纹(MD5、SHA-1、SHA-256)

如果 APK 未经过签名或签名块已被破坏,系统则会提示:“未找到可识别的签名块——该安装包可能未签名或已被重新打包。”。

需要注意的是,该工具仅提取并展示证书的声明元数据,并不对签名进行实时的密码学完整性验证,亦不验证证书信任链或发布者的真实世界法定身份。


浏览器本地安全解析机制

“APK 信息查看器”采用完全本地化的处理机制,所有文件读取、哈希计算和数据解析均在用户浏览器的一个本地 Worker 中完成。

  1. 无服务器上传:APK 文件不会被上传到任何外部服务器,确保了商业机密和个人隐私的安全。
  2. 无安装运行:工具仅对文件进行静态读取,绝不会在用户的设备上安装或执行该 APK。
  3. 大文件支持:得益于现代浏览器技术,工具支持解析最大 500 MB 的单个 APK 文件。

在解析过程中,界面会实时更新状态:

  • 拖入文件时显示:“正在读取 ‹name›…”。
  • 计算哈希时显示:“正在计算文件哈希值 — ‹percent›%”。
  • 解析清单时显示:“正在解析应用包…”。
  • 解析完成后显示:“报告已就绪。”。

常见问题解答

在不安装 APK 的情况下,我可以了解什么?

可以了解很多内容:应用的包名和版本、所需的 Android 版本、请求的所有权限、声明的界面及后台组件、包含原生代码的处理器类型,以及签署该应用的证书。

此工具能告诉我 APK 是否包含恶意软件吗?

不能——并且请对任何声称通过快速扫描就能给出结论的工具保持怀疑。这里为您提供的是客观事实:权限、组件、签名者和哈希值。将其与开发者公开的信息进行比对,若发现异常权限或与官方发布版本不同的签名者,请谨慎选择。

支持哪些文件?

最大 500 MB 的单体 APK 文件。拆分包(XAPK、APKM)和 Android App Bundles (.aab) 属于容器或发布格式,而非单个可安装包,因此工具会拒绝并给出明确提示,而不是生成令人费解的报告。

签名详情能告诉我什么?

每个 Android 应用都经过签名,证书可识别其发布者。您可以查看包所采用的签名方案(v1、v2、v3)以及每个签名者的主体、有效期和 MD5、SHA-1、SHA-256 指纹。指纹相同的两个 APK 来自同一发布者——至于您是否信任该发布者,仍需由您自行判断。

权限上的“危险”徽标是什么意思?

这是 Android 自身的分类:危险权限可以访问隐私数据——如位置、联系人、相机、麦克风、存储空间——因此系统会在授予权限前征求用户同意。该徽标并非指控;地图应用请求定位是正常的。它只是标记出那些值得您仔细阅读的权限。