DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →Skip to content

Hid 烧录 ​

Pro 的 Hid 走蓝牙。自己买一块带 USB 的 ESP32-C3(一般 10 元左右),用下面的脚本烧录。烧好后手机配对,脚本里就可以点击和滑动。

当前固件只支持 ESP32-C3。ESP32、S2、S3 不能用这份脚本。

原理 ​

  1. 手机蓝牙连上这块板。
  2. 脚本里初始化并连接,见 Hid 方法。
  3. Pro 把指令发给板子。
  4. 板子再以 Hid 把点击、滑动、按键发回手机。
  5. 系统执行这些操作。

Android 12 及以上先申请蓝牙权限,见 权限。

准备 ​

电脑上需要:

macOS 可以这样装:

bash
brew install arduino-cli esptool
arduino-cli config add board_manager.additional_urls https://espressif.github.io/arduino-esp32/package_esp32_index.json
arduino-cli core update-index
arduino-cli core install esp32:esp32
arduino-cli lib install "NimBLE-Arduino"

用 USB 把板子接到电脑,直接运行下面的烧录命令。这块 ESP32-C3 不用按板上的 BOOT 或 RST,脚本会自己通过串口让板子进入下载。新板、以及已经烧过其他程序的板子,再次烧录都不用按任何按键。烧录时不要去按这两个键,烧完也不用再按 RST。

只有命令一直停在等待下载、串口也连不上时,才按住 BOOT、点一下 RST、再松开 BOOT,然后重新执行烧录。

Windows 用 Git Bash 执行下面的命令。arduino-cli、esptool、python3 要能在 Git Bash 里直接运行。

烧录 ​

先克隆固件仓库。

bash
git clone https://github.com/DeekeScript/ESP32-C3.git
cd ESP32-C3

名称是 DeekeScript- 加 4 位,例如 DeekeScript-0001。只写数字时会补零,1 会变成 0001。

bash
# 名称写成 DeekeScript-0001
./flash.sh DeekeScript-0001

# 只写后缀也可以,脚本会补上 DeekeScript-
./flash.sh 0001

# 不写名称时,用 DeekeScript- 加芯片 MAC 后 4 位
./flash.sh

串口会自动找。macOS 找 /dev/cu.usbmodem*,Linux 找 /dev/ttyACM* 或 /dev/ttyUSB*,Windows 的 Git Bash 找乐鑫原生 USB 串口(设备号 VID_303A)。

多块板同时插着时,指定其中一个。Windows 上如果板子走的是 CH340 这类外接串口芯片,也要自己写 PORT。

bash
# macOS
PORT=/dev/cu.usbmodem101 ./flash.sh DeekeScript-0001

# Windows
PORT=COM3 ./flash.sh DeekeScript-0001

烧录结束会打印 烧录完成: DeekeScript-0001。

Flash 按 DIO 接线。脚本里已经按 DIO 编译,不要改成 QIO,否则板子读不到分区表。

手机上配对 ​

  1. 打开手机蓝牙,搜索烧录时用的名称,例如 DeekeScript-0001。
  2. 配对。第一次可能要点允许。
  3. 脚本里连接。坐标会按当前屏幕设好,不用再 setXY。
javascript
if (!Access.hasBluetoothConnectionPermission()) {
    Access.requestBluetoothConnectionPermission();
    System.exit();
}

Hid.initBluetooth();
// 第二个参数是设备索引,从 0 开始。这里连接索引为 0 的板子。
// 同时配对了多个蓝牙时,改成要连接的那一块的索引。
if (Hid.connectAndWait(true, 0)) {
    Hid.tap(500, 800);
}

connectAndWait 的第二个参数就是这块板的索引。上面连的是索引为 0 的板子,只配对一块时用这个即可。手机里同时配对了多个蓝牙时,按要连的那一块改这个数。

改过固件里的触摸或按键描述后,要在系统蓝牙里取消配对,再配对一次,手机才会用新的描述。换过板子或改了蓝牙名时也一样:取消旧名称,只保留当前这块板。

接下来 ​

配对完成后按 Hid 方法 发点击和滑动。

AutoJS文档 Released under the ISC License.