众所周知,小米限制了 ADB 中部分命令的使用。这在进行投屏等操作的时候将是一个严重的障碍。

具体来说,包括这些:

adb shell input
adb shell monkey
adb shell appops
adb shell pm grant
adb shell pm revoke
adb shell pm reset-permissions
adb shell pm clear
adb shell settings
adb shell getevent
adb shell sendevent​
adb shell uiautomator

而重新启用它们的办法是在开发者选项中打开 “USB 安装” 和 “USB 调试(安全设置)”。
2022-11-09T05:52:23.png

然而,这些选项的打开,目前(至少 MIUI 12)均强制要求联网并登录小米账号,且插入 SIM 卡

因本人的 LG V30 移植版本 MIUI 不能登录小米账号,本人搜索得出如下方法,于 MIUI 12 测试有效。

该方法要求已经打开了基本的 ADB 调试,且设备已经取得 Root

  1. 进入 Root Shell,执行如下命令,设置 Prop 值:
    setprop persist.security.adbinstall 1
    setprop persist.security.adbinput 1
    完成后可以执行 getprop 检查。
  2. 取出 /data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml 文件,在合理位置插入如下内容:

    <boolean name="permcenter_install_intercept_enabled" value="false" />
    <boolean name="security_adb_install_enable" value="true" />

    2022-11-09T06:00:14.png
    类似这样。之后保存更改。

  3. 一切大功告成。你应该可以在开发者设置看到两个选项均已成功打开,并且 scrcpy 等投屏软件均已经可以使用。