由于最近需要写脚本,控制 cmd 执行 adb 指令,但是 Android 环境是 magisk root 的 Android 10,所以直接在 cmd 无法用 adb 执行需要 root 权限的指令(adbd cannot run as root in production builds),试了改 ro.debuggable 和 ro.secure 都不行,于是找到了如下解决方案。实现 __python 脚本在 cmd 执行 adb 那些需要 root 的指令的方法__。
法1 脚本在 cmd 执行 adb 普通指令
如,直接脚本运行 adb shell logcat | grep xxx 会报错 grep,可以借助
1 | import os |
法2 脚本在 cmd 执行 adb root 指令
上述有些指令需要 adb root,但是 adb shell 只能在进入后依靠 su
进入 root,要靠如下指令实现
1 | import os |
法3 脚本在 cmd 执行多行 adb 指令/进入 adb shell
有时执行一条指令不够
法3.1
通过 && 连接多个 cmd 语句,从而达到执行多行 adb 语句
1 | adbCmd = 'adb shell "logcat | grep xxx" && adb shell "su -c am start -n xxx/.xActivity"' |
法3.2
靠脚本控制 cmd 进入 adb shell,体验感与直接在 cmd 进入 adb shell 最相似的方案
1 | import subprocess |