赶在每年 3 月首个开发者预览版之前,国外开发者社区 XDA 成功在一台 Pixel 3 上偷跑了 Android Q 的早期预览版本。这个版本基于尚未公布的 AOSP 源码,虽然缺少必要的 GMS 组件,实际体验和预计将在下月放出的开发者预览版肯定也会有不小的差别,但通过对这个早期偷跑版本的挖掘,XDA 还是公布了不少令人激动的新特性。

全局暗色模式、内建主题引擎、人脸信息生物识别接口……这些让人眼馋的更新中,权限管理尤其值得一提。

Android Q 的权限管理改进

从 XDA 的上手视频来看,Android Q 对权限管理的改动幅度不亚于此前版本对通知系统的改进。具体而言,Android Q 对权限管理交互、权限管理方式和权限管理机制都进行了优化。

交互方面,Android Q 将应用权限管理放在了新增的 隐私 设置项之下,这个设置项和 Android 9 加入的 数字健康 一样,入口都位于系统设置下的一级界面,可以轻松找到;具体到单个权限的管理,Android Q 也将原本的「应用列表+勾选菜单」改成了按照「允许/拒绝」进行分类的呈现形式,看上去更加直观;点击权限列表中的应用,Android Q 还会在接下来的详情界面中为开发者预留一个用于解释权限申请原因的文本位置。

隐私设置入口 | 图:XDA

权限管理方式目前看来则是 Android Q 最有亮点的更新之一。

在 Android Q 中,特定权限申请除了允许和拒绝以外,还像 iOS 那样加入了「仅使用时允许」这一选项,不仅能够避免后台应用利用权限许可获取不必要的隐私信息,还能在某种程度上减少后台资源消耗,提升手机的续航表现。另外在 XDA 的上手视频中我们还可以看到,权限使用状态在 Android Q 中也将作为状态栏的一部分展示在首次下拉通知栏后电池图标的左侧,无论是排查还是管理都直观且方便了不少:

暗色模式和更直观的权限管理方式 | 图:XDA

当然,Android Q 在权限管理机制上的改变也值得一提。XDA 在对偷跑版 Android Q 的拆包分析中发现,Android Q 的权限管理还将迎来两项重要变化:

  1. 禁止后台读取系统剪贴板
  2. 引入新的存储空间读写权限

这两项变化对国内安卓生态而言可以说有着相当大的约束力。

实时权限使用情况 | 图:XDA

在当前主流版本的 Android 操作系统中,Google 并没有针对剪贴板开放可供用户决定的运行时权限申请,这也就导致几乎所有应用都可以在后台默默收集甚至编辑 Android 系统剪贴板中所存储的内容(「复制这条 X 口令到 X 宝客户端」就是这么来的);另一方面,一旦一款应用被授予存储空间读写权限,它也就同时被授予了访问存储空间中所有文件内容的许可,明文向其他应用分享隐私信息、随意创建垃圾文件等等问题也随之产生。

像 Android Q 那样搞定国内应用的权限管理问题

1 月 25 日,腾讯社会研究中心与 DCCI 互联网数据中心联合发布的《2018年度网络隐私及网络欺诈行为研究分析报告》指出,几乎所有的安卓端手机 App 都会获取手机隐私权限,其中九成左右 App 试图获取读写存储设备及获取应用列表权限,过半 App 申请读取联系人权限。

虽然报告同样还给出了权限申请「越界」行为有所好转的判断,但它显然没有强调,很多安卓用户还得面对不给权限不给用、后台悄悄读取剪贴板这类权限霸凌现象。

图:DCCI 互联网数据研究中心

这是为什么我认为权限管理或将成为 Android Q 的一大亮点更新的原因所在:支持临时授权、提供更为直观的管理和排查手段同时进一步完善敏感权限的授予机制……这些权限管理思路即便在原生 Android 已经有些「水土不服」的国内生态下,依然也有非常重要的借鉴意义。

在 Android Q 到来之前,我们有什么办法可以贯彻上述权限管理思路呢?

首先要推荐的是我们的老朋友 App Ops。作为一款能够免 root 进行权限管理的系统工具替代品,少数派曾多次推荐大家使用这款「神器」,而结合个人使用经验,我认为 App Ops 的核心亮点有二:

首先,作为 Android 内建权限管理机制 App Ops 的增强版本,它可以将应用可能会用到的所有权限原原本本地呈现在我们眼前,比如针对上面提到的、Android 系统并不提供运行时权限弹窗的剪贴板,我们就可以借助 App Ops 来轻松进行管理。

使用 App Ops 管理剪贴板读取权限

其次,App Ops 独特的独立于 Android 操作系统运行时权限弹窗的权限授予机制,给了我们一个对付「权限流氓」的机会。只要我们通过 App Ops 拒绝了某应用的某项权限请求,即便我们在应用弹窗提醒要求授予权限时选择「允许」,这款应用能够获取到的权限信息也是无效的。这也就解决了「不给权限不给用」的问题。

「最终结果会是拒绝」

App Ops 还有很多实用功能,比如方便的权限管理模板、应用权限行为检测等等,关于它的更多介绍,你可以阅读我们之前的推荐。

使用 App Ops 进行权限管理在 Android 玩机圈是老生常谈的技巧了,Android Q 在临时授权(仅应用运行时授权)问题上的改进方法在 Android 平台上其实也不算新鲜——天气时间线Flamingo 的开发者 Sam Ruston 就推出过一款与这种权限管理思路有着异曲同工之妙的工具应用 Bouncer。

Bouncer 首次运行时会提示重制已经授予过的权限

Bouncer 是一款非常讨巧的应用。它无需 root,更无需 ADB 指令开启,借助 Android 系统自带的无障碍功能,Bouncer 会在应用请求权限的同时通过通知询问我们是否保留授权许可,若选择移除,我们在退出这款应用的同时,刚刚授予的权限都会被 Bouncer 自动撤销掉。

临时授予敏感权限

除了退出应用时移除权限许可,我们甚至还可以借助 Bouncer 的 Schedule 功能设置有时限的权限授予,自定义程度甚至比 Android Q 的权限管理机制还要高。在 Android Q 到来之前,App Ops + Bouncer 也许就是我们管好应用权限的最佳搭配了。

你可以在 Play 应用商店和酷安下载 App Ops,Bouncer 需要付费购买,售价 0.99 美元。



关联阅读:

> 下载少数派 客户端、关注 少数派公众号 ,掌握使用 Android 设备正确姿势 📱

> 特惠、好用的硬件产品,尽在 少数派 Pi Store 商店 🛒