如何在安装 APK 之前查看 Android 应用程序权限

A smartphone showing a list of app permissions with a magnifying glass

当您从 Google Play 商店安装应用程序时,Android 会显示该应用程序可以访问的内容的简化摘要。从非 Play 源旁加载 APK,除非您自己阅读清单,否则您没有这样的安全网。 “壁纸应用程序真的需要短信和麦克风访问吗?” 正是本指南将帮助您回答的问题。

接下来是我们团队在分类不熟悉的 APK 时使用的相同工作流程:打开它,读取 uses-permission 条目,解码保护级别,并将应用程序 说 所需的内容与其类别通常需要的内容进行比较。我们的 在线 APK 信息工具 为您进行二进制 XML 解码,因此整个过程大约需要 10 秒。

阅读时间: 〜9分钟。 需要的工具: 浏览器;可选地 apksigner 和 aapt2 如果您想从终端执行相同的检查,请从 Android SDK 进行。 最后你将能够做什么: 阅读任何 APK 的完整权限列表,找出几乎总是表明有问题的四到五个“高影响力”请求,并在安装之前而不是之后决定是否安装。

为什么要费心审核权限?

恶意开发人员获取流行的免费应用程序,对其进行更改,然后在第三方网站上重新发布它们。虽然该应用程序的外观和功能可能正常,但其隐藏代码可能会复制您的联系人列表或录制背景音频。通过查看权限 预安装,您可以发现这些“权限蠕变”的危险信号。

如何审核任何 APK 文件(在线)

我们的 APK信息工具 完全在您的浏览器中读取您的文件清单;该文件永远不会上传到服务器,也不会执行任何代码。使用方法如下:

过程:

  1. 请前往并使用我们的 APK信息页面。
  2. 选择您的 .apk 文件。
  3. 等待分析完成(通常 5 秒)。
  4. 向下滚动到 权限部分。
  5. 查找高风险标志,例如:READ_SMS、PROCESS_OUTGOING_CALLS 或 ACCESS_FINE_LOCATION。

权限危险信号列表

如果 计算器 或 手电筒 应用程序要求 READ_CONTACTS 或 RECORD_AUDIO,请立即删除该文件。这些应用程序拥有该数据的合法理由为零。

了解 Android 权限级别

并非所有权限都是一样的。 Android 将它们分为三个级别:

手动方法(使用 ZIP 查看器)

如果您有一定的技术能力,您可以自己审核权限:

  1. 将 app.apk 重命名为 app.zip 并打开。
  2. 找到AndroidManifest.xml。 (注意:它是二进制格式,在文本编辑器中看起来像乱码)。
  3. 使用 XML打印机 等工具将其转换为可读文本。
  4. 搜索以 <uses-permission> 开头的标签。

建议:使用我们的 在线工具 会更快地为您立即解码。

立即审核您的应用程序

准确了解您的应用程序的要求。没有秘密,没有风险。

检查APK权限

AndroidManifest.xml 中实际存储的内容

清单是应用程序声明的每个权限、组件和功能的真实来源。在 APK 中,文件采用 二进制XML 形式,而不是您在源代码中看到的纯文本,因此无法使用普通文本编辑器读取。我们的 APK 信息工具可解码二进制 XML 并显示相关标签。最重要的是:

权限保护级别:备忘单

Android 为每个权限分配一个“保护级别”。了解请求属于哪个级别可以告诉您操作系统将如何认真地对待它。

防护等级 用户体验 示例
普通的 在安装时以静默方式授予。没有提示。 互联网、振动、访问网络状态、唤醒锁定
危险的 第一次使用该功能时会出现运行时提示。可在设置中撤销。 摄像机、录音音频、读取联系人、访问精细位置
签名 仅授予使用与授予应用程序或操作系统相同的证书签名的应用程序。 BIND_VPN_SERVICE、INSTALL_PACKAGES(仅限系统)
签名|特权 仅适用于系统映像的 priv-app 目录中预装的应用程序。 管理用户、读取日志
应用程序/角色 需要单独的设置流程才能启用。 SYSTEM_ALERT_WINDOW、BIND_ACCESSIBILITY_SERVICE、MANAGE_EXTERNAL_STORAGE

“隐藏”权限的实际含义是什么

一个常见的误解是某些权限是秘密的。它们不是:应用程序可能使用的每个权限都必须在 AndroidManifest.xml 中声明,并且操作系统拒绝授予此处未列出的任何权限。人们通常所说的“隐藏”是指以下两件事之一:

无论哪种方式,答案都是一样的:阅读清单,不要相信 Play 商店本身的描述。

工作示例:审核真实的 APK

假设您的下载文件夹中有 example.apk。这是确切的工作流程:

  1. 在浏览器中打开 APK信息工具。
  2. 将 APK 拖放到上传区域。处理发生在本地;该文件不会离开您的设备。
  3. 阅读 权限 部分。每个条目都显示常量名称 (android.permission.READ_CONTACTS 及其允许的简单语言描述)。
  4. 将列表与应用程序的类别进行比较。粗略地,预计:
    • 相机应用程序: CAMERA、RECORD_AUDIO(用于视频)、STORAGE/MEDIA 写入
    • 消息应用程序: INTERNET、READ_CONTACTS、SEND_SMS(仅基于短信)、RECORD_AUDIO(用于语音注释)、CAMERA(用于发送照片)
    • 游戏: INTERNET,有时RECORD_AUDIO(用于游戏内语音聊天),计费相关权限;很少有其他事情
    • 实用应用程序(计算器、手电筒、天气):INTERNET(用于广告)、ACCESS_NETWORK_STATE,可能是 LOCATION(仅天气)。除此之外的任何事情都是可疑的。
  5. 如果列表中的任何内容不符合该类别,请不要安装。计算器没有充分的理由需要短信访问。

无论文件是 APK、XAPK(我们在其中读取内部基础 APK)还是 APKS 捆绑包(在其中我们读取每个拆分的清单),都适用相同的逻辑。

从命令行执行此操作

如果您更喜欢终端路线,Android SDK 附带 aapt2,它以纯 XML 格式转储来自任何 APK 的清单:

aapt2 dump badging example.apk | grep "uses-permission"

或者同时使用apksigner来验证签名证书:

apksigner verify --print-certs example.apk

对于那些不想安装 SDK 只是为了检查单个文件的用户,浏览器工具可以执行相同的操作。

常见问题 (FAQ)

安装 APK 后可以拒绝权限吗?

是的。在 Android 6.0 及更高版本上,您可以转到 设置 > 应用程序 > [应用程序名称] > 权限 打开或关闭各个危险权限。

XAPK 文件是否有不同的权限?

一个 XAPK 包含一个或多个 APK。里面的每个 APK 都有自己的清单。我们的工具将分析捆绑包中的 主要APK 以向您显示相关权限。

为什么每个应用程序都要求“网络访问”?

几乎所有应用程序都需要访问互联网才能进行分析、错误报告或广告。虽然这很常见,但这也是将被盗数据发送到黑客服务器的方式。

在点击安装之前检查清单权限

你无法判断你看不到的东西。在旁加载之前花十秒 查看APK的权限 是了解应用程序可以达到的目标和只是希望它表现出来的区别。首先阅读列表,然后安装。

由 Shaefale 女士设计并记录 首席开发人员和 Android 包架构师 • 在 Android 12–15 上经过验证

Mst Shaefale 在 xapktoapk.com 维护客户端 XAPK/APKS 合并、二进制清单解析器和 APK v1+v2 签名工具。发现过时的命令或操作系统更改?发送编辑说明。