QPython ADB模式 配置教程

cooolr 于 2021-03-23 发布

cofface_adb_arm_v7.1.zip

# 打开QPython终端,输入quit(1)进入shell模式
>>> quit(1)
$ cd $PYTHONHOME
$ cd bin
$ cp /sdcard/qpython/adb ./
$ chmod 755 adb
>>> quit(1)
$ cd $PYTHONHOME
$ cp -a files /sdcard/qpython/
# 手机开启usb调试,电脑下载adb工具,连接手机进入adb shell
> adb shell
$ cd /data/local/tmp
$ cp -a /sdcard/qpython/files ./
$ chmod 755 -R files

init.sh

$ cp /data/local/tmp/files/bin/init.sh /sdcard/init.sh
# 替换/data/user/0/org.qpython.qpy/ 为 /data/local/tmp/
# 此教程基于QPython OL修改,QPython OH版替换的是/data/user/0/com.hipipal.qpyplus/
# 或直接用我上传的init.sh(直接在电脑push到/data/local/tmp/files/bin/init.sh)
win> adb push init.sh /data/local/tmp/files/bin/init.sh

qpython3-android5.sh

# 打开QPython终端,输入quit(1)进入shell模式
>>> quit(1)
$ cd $PYTHONHOME
$ cd bin
$ cp qpython3-android5.sh /sdcard/qpython/
# 修改qpython3-android5.sh以arm-adb shell模式启动/data/local/tmp/files目录下的python
# 来达到高权限运行python的目的,支持模拟点击,adb截图录屏等adb功能
# 或直接用我上传的qpython3-android5.sh (先在电脑push到手机,再在QPython终端移动在bin目录)
win> adb push qpython3-android5.sh /sdcard/qpython/qpython3-android5.sh
$ cp /sdcard/qpython/qpython3-android5.sh ./

# 上面已经完成了/data/local/tmp/files目录 和 qpython更目录的配置,接下来是配置adb网络调试
# 手机连接电脑端开启adb网络调试, 不要用默认端口5555,我这里用55228,配置文件也写死了55228
> adb tcpip 55228
# 这时打开QPython终端或者运行文件,已经是以adb shell的方式和权限运行了, 可以检验一下
>>> import os
>>> os.system("id")
uid=2000(shell) gid=2000(shell)...
# 成功!

# 需要恢复的话,只需在设置里来回切换一下python2和python3就可以了
# 1. 酷安下载Shizuku 和 Anywhere-
# 2. 手机开发者选项打开adb无线调试和Shizuku匹配[只需一次],然后开启Shizuku的adb权限
# 3. Shizuku授权Anywhere-获取adb权限
# 4. Anywhere-新建Shell卡片,输入以下命令运行
setprop service.adb.tcp.port 55228
# 5. 手机开发者选项重启USB调试
# 6. 打开QPython开启终端,已经进入adb模式,失败的话多开一次终端就可以了

# 总的过程就是手机重启后连接wifi在开发者选项打开一次usb无线调试, 然后启动Shizuku服务
# 在通过Shizuku授权的Anywhere-运行Shell卡片开启usb网络调试,再重启开发者选项usb调试
# 全程无需连接电脑,即可使用QPython ADB模式
# 特色是依然支持sl4a, 也支持adb shell命令,模拟点击,输入等功能

# 遗憾的是jupyter notebook模式并没有支持到

# bug就是在qpypi安装库页面异常,不能输入pip3 install安装,手动安装就好了
python3-android5 -m pip install rpyc