在没有ROOT权限的限制下使用小米

在等待解锁Bootloader的时候,尝试在没有获得ROOT权限的情况下使用手机。这里记录下尝试过程。

想要使用的App

App Ops

Fluid Navigation Gestures

Storage Isolation

WADB

小黑屋

尝试 Shizuku 绕过ROOT权限

通过Shizuku可以使其他应用调用高权限的 API。启动Shizuku看介绍可以通过ADB命令来实现,可以不依赖系统的root

Shizuku下载页面提供了4中下载方式:

  • Google Play在没有安装代理的情况下受网络影响不行
  • GitHub Release尝试了,同样因为网络的原因不行
  • Coolapk页面原本是提供apk文件的下载的,现在需要通过应用扫码才能下载,不行
  • 剩下的就是IzzyOnDroid F-Droid Repository,幸好可以直接下载。

接下来是运行Shizuku,提供了3种方式:

  • ROOT首先被排除,有ROOT权限也就没有这篇blog
  • Wireless debugging因为MIUI没有提供这个选项,虽然是基于Android 10
  • 剩下的选择就是使用ADB
  1. 开启开发者选项:在设置->我的设备->全部参数页面上连续点击MIUI 版本就会进入开发者模式
  2. 开启ADB选项:在设置->更多设置->开发者选项->调试页面打开USB 调试USB 调试(安全设置)
  3. 数据线连接手机和PC,在弹出的USB 的用途弹框中,从仅限充电修改为传输文件(MTP)。否则可能会连接失败
  4. 在PC上开终端输入adb devices检查有没有出现目标设备
  5. 输入命令启动Shizuku

adb shell sh /data/user_de/0/moe.shizuku.privileged.api/start.sh

一开始的时候连着线显示:Shizuku正在运行,拔掉线后就停止运行了。参考用户指南最后的方法

你可以尝试打开网络 adb(使用指令adb tcpip 5555)后再启动 Shizuku。

使用这个方法后的确可以保持Shizuku运行,但是在运行App Ops请求相关权限的时候发现没用。然后才看到了在用户指南上的说明

对于 MIUI 11 及以上版本,你必须在 Shizuku 内授予使用者应用权限。这是因为自定义权限功能被破坏,参见 Shizuku #45android-in-china/Compatibility #16

到这里,我放弃了使用Shizuku

使用Google服务

MIUI设置->帐号与同步->谷歌基础服务提供了一个开关。具体有什么作用不清楚,但是我还是先打开了。

在自带应用商店中可以搜索Google可以看到Google Play 商店

代理用的是v2rayNG,网上找了几个都是在国内不能正常访问的,最后还是使用奶牛快传传了apk到手机中,手动安装。

这样基本就可以使用Google服务了。

使用管理员模式绕过root

App Ops中看到还有一个托管设备管理员模式就尝试用这个。
参考小黑屋免 Root 模式使用配置方法来操作。

  1. 开启ADB,手机上记得开启USB 调试(安全设置)
  2. 注销所有登录的账户,包括小米账户
  3. 如果您之前设置过访客模式、应用双开或是多用户设置等,也需要一并关闭或删除
  4. 在电脑上执行命令:

adb shell dpm set-device-owner web1n.stopapp/.receiver.AdminReceiver

现在小黑屋App Ops都可以运行了。

FNG在隐藏导航键的时候需要高权限,需要用到ADB

adb shell pm grant com.fb.fluid android.permission.WRITE_SECURE_SETTINGS

Storage IsolationWADB都确切要求ROOT权限,无解。

在没有获取ROOT权限情况下,能做就到这里了。之后在解锁Bootloader前还有更多的使用,我也会更新在这里。