使用root跳过小米USB安装应用确认(续)
最近又抓来一台小米手机当测试机,部署环境时候发现了新的 usb 相关功能的修改方式。
一、背景和结论
众所周知,小米手机开启 USB 安装功能,需要插入 SIM 卡登陆、需要登小米账号。我这台手机已root,懒得登陆了,就准备通过修改文件的方式来开启相关功能,还真做到了。 关键词:root,无需 xposed,无需 frida。 测试环境:miui9、miui10、miui11、miui12。
二、无需 SIM卡和小米账号,开启USB相关功能
方法:编辑配置文件和 SystemProperties,使用下方的对照表。 使用 root编辑
/data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml
,修改或者插入
1 | <boolean name="security_adb_install_enable" value="true" /> |
用于【开发者选项】——【USB 安装,允许通过 USB 安装应用】的开关。
【感谢提醒,之前错写成了 presist】
1 | root@virgo:/ # setprop persist.security.adbinput 1 |
用于【开发者选项】——【USB 调试(安全设置),允许通过 USB 调试修改权限或者模拟点击】
【感谢提醒,之前错写成了 presist】
1 | root@virgo:/ # setprop persist.fastboot.enable 1 |
用于【开发者选项】——【FASTBOOT 刷机模式,允许电脑通过 USB 刷机】
分析过程
搜 com.android.settings 找到一个类,点进去看到和 usb 相关的功能,搜关键词adb,找到了这两个功能。
三、绕过 USB 安装时的弹框
方法:编辑配置文件,使用下方的对照表。 使用 root编辑 /data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml
,修改或者插入
1 | <boolean name="permcenter_install_intercept_enabled" value="false" /> |
分析过程:回到我们上次提供的方法,对 SecurityCenter 的 AdbInstallActivity 的某个字段的 isEnabled 方法进行 hook,让它的返回值返回 false。我们对比一下 miui9 和 miui11 的代码,发现它们一模一样,都是访问 permcenter_install_intercept_enabled,在配置文件里没有,我们主动添加这一项即可。