冻结后丢权限问题的说明
丢权限问题仅会出现在部分国内 ROM + 小黑屋(冰箱)无 Root 模式(或 Android 5.0-6.0 的麦克斯韦妖模式)。
Android 系统有一个 bug,执行“pm hide”指令后对应的应用会丢失 app ops 设置。(具体请见:https://issuetracker.google.com/issues/64826165 )。
小黑屋(冰箱)的无 Root 模式和 Android 7 以下的麦克斯韦妖模式本质上与调用“pm hide”无异,因此使用这两个模式会导致被冻结的应用丢掉 app ops 设置。
app ops 和我们大家理解的“权限管理”并不是一个东西,Android 官方也从未开放过 app ops 管理入口。因此用户一般无法感知到被解冻的应用丢失了 app ops 设置。
那么为什么在 MIUI/Smartisan 等 ROM 上使用小黑屋打开被冻结的应用后会弹框要求用户重新授权权限呢?这个问题很简单,是因为这些 ROM 阉割了我们说的“权限管理”,贴心的将 app ops 设置作为对用户开放的“权限管理”入口。(具体请见:https://www.coolapk.com/feed/10233611?shareKey=N2VkOWU4OTA2ZDZkNWM3MjljYjI~&shareUid=598248&shareFrom=com.coolapk.market_9.0.2 )。
让我们重新梳理一下线索。
①无 Root 模式会丢掉 app ops 设置;②很多厂商将 app ops 作为“权限管理”的入口;③打开被冻结的应用需要重新授权权限。
真相大白于天下。
说了这么多,如何规避这个问题?
适用于任何手机的解决方案:刷机;或使用其它冻结模式:Shizuku 等模式。如果你正在 Android 6.0 机器上使用麦克斯韦妖模式,建议更新系统。
MIUI:在开发者选项中关闭 MIUI 优化。会导致被冻结的应用丢掉 app ops 设置。