前言

开启 ADB WiFi 的配置是一个非常基础的功能,就如同自动开启 辅助功能(无障碍服务)一样,但是很多开发者都没有注意到,导致在使用过程中,每次都需要手动开启 ADB WiFi,非常麻烦。

在 Android 开发中,ADB WiFi 是一个非常有用的工具,它允许你在没有 USB 连接的情况下,通过 WiFi 连接到你的 Android 设备。然而,有时候你可能希望在设备开机时自动启动 ADB WiFi,以方便开发和调试。本文将介绍如何在 Android 设备上实现开机自启 ADB WiFi。

这是一个较为复杂的配置,如果你之前既没有用过 Termux 也没有用过 Tasker ,那么这篇文章可能不太适合你,因为你可能需要花费一些时间来了解这些工具的使用方法。

这个配置我用了2年的时间,经过不断优化才感觉比较满意,应该已经适合大多数人使用,如果你有更好的方法,欢迎留言交流。

原理

开启 ADB WiFi 的原理非常简单,就是通过扫描设备开启无限调试前后的网络端口来得到无线调试的端口,然后通过 adb tcpip 5555 命令开启5555端口,从而实现启动 ADB WiFi 的功能。

自动开启 ADB WiFi 是将开机或者监视器启动作为触发事件,来执行开机运行开启 ADB WiFi 的任务。

1. 下载并安装用于开启 ADB WiFi 的工具

  • 下载并安装 Termux 工具,这是一个强大的终端模拟器,可以让你在 Android 设备上运行命令行。
  • 下载并安装 Tasker 工具,这是一个强大的自动化工具,可以让你在设备满足特定条件时自动执行任务。

2. 设置 Termux 属性

  • 打开 Termux,输入以下命令:
1
nano ~/.termux/termux.properties
  • 打开文件后,在文件的最后添加以下内容:
1
allow-external-apps = true
  • 保存文件并退出文件编辑界面。

    1. Ctrl + O 保存文件

    2. Ctrl + X 退出文件编辑界面

或者直接在 Termux 中输入以下命令:

1
value="true"; key="allow-external-apps"; file="/data/data/com.termux/files/home/.termux/termux.properties"; mkdir -p "$(dirname "$file")"; chmod 700 "$(dirname "$file")"; if ! grep -E '^'"$key"'=.*' $file &>/dev/null; then [[ -s "$file" && ! -z "$(tail -c 1 "$file")" ]] && newline=$'\n' || newline=""; echo "$newline$key=$value" >> "$file"; else sed -i'' -E 's/^'"$key"'=.*/'"$key=$value"'/' $file; fi

这个属性是告诉 Termux 允许外部应用访问 Termux,这对于第三方应用调用 Termux 来说是必需的。

3. 在 Termux 中安装包文件

安装2个包,分别是 adbnmap

  • 打开 Termux,输入以下命令安装 ADB WiFi 工具:
1
pkg install android-tools
  • 输入以下命令安装nmap:
1
pkg install namp

注:namp 是一个网络扫描工具,可以用来扫描本机设备上开放的网络端口。

如果遇到错误提示 可能是需要先升级本地包,输入以下命令升级本地包:

1
pkg update && pkg upgrade -y

然后再次安装包文件。

安装完成后,输入以下命令测试是否安装成功:

1
2
adb version
nmap -v

如果出现版本信息,则说明安装成功。

4. 打开设备的无线调试

如果还没有开启设备的开发者模式,需要先开启设备的开发者模式,然后开启无线调试。

  1. 开启开发者模式的方法:

    1. 打开设备的设置,找到“关于手机”选项,点击进入。
    2. 在“关于手机”页面中,找到“版本号”或者“内部版本号”选项,点击进入。
    3. 连续点击“版本号”或者“内部版本号”选项7次,直到看到“您现在是开发者”的提示。
    4. 返回到“设置”页面。

开发者模式

  1. 开启无线调试的方法:

    1. 进入系统设置主界面,找到“开发者选项”选项,点击进入。
    2. 在“开发者选项”页面中,找到“无线调试”选项,点击进入。
    3. 在“无线调试”页面中,点击“开启无线调试”按钮,然后按照提示完成无线调试的设置。
    4. 记下无线调试的端口,后面要用到。

无线调试

5. 设置 Tasker 权限

  1. 打开Tasker,按照Tasker的引导开启最最基础的设置。
  2. 长按Tasker图标,打开Tasker设置,在设置中找到权限设置,将下列权限设置为允许。(我把Tasker的权限设置都设置为允许了,如果你不想设置那么多权限,可以只设置下列权限)
    • 后台弹出界面
    • 显示悬浮窗
    • 获取应用列表
  3. 打开 Termux,输入以下命令给Tasker设置权限:
    把下面的12345替换为前面记下的无线调试的端口。
1
2
3
4
5
adb connect 12345
adb shell pm grant net.dinglisch.android.taskerm com.termux.permission.RUN_COMMAND
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant net.dinglisch.android.taskerm android.permission.DUMP
adb shell pm grant net.dinglisch.android.taskerm android.permission.READ_LOGS

注:

  • 可以在电脑上操作(可参考<如何在PC端一次性开启Tasker的所有权限和服务>)。
  • 步骤1和步骤2可能有重复,但是为了确保所有权限都开启,建议都执行一遍。
  • 检查下开机自启的权限是否开启,如果没有开启,需要手动开启。
  • 检查下省电策略,一般需要设置为无限制。

6. 导入 Tasker 配置文件并初始化

  1. 下载并导入 Tasker 配置文件,这个文件包含了开启 ADB WiFi 的任务。
  2. 打开 Tasker,点击右上角的“+”号,选择“导入配置”。
  3. 在“导入配置”页面中,选择“从文件导入”,然后点击“选择文件”。
  4. 在文件选择页面中,选择你下载的 Tasker 配置文件,然后点击“打开”。
  5. 在“导入配置”页面中,点击“导入”按钮,然后等待 Tasker 完成配置文件的导入。
  6. 点击保存按钮✔️。
  7. 手动运行一次初始化任务。

微信公众号(taskerm)(android手机玩家)内回复 “ADB WiFi” 获取配置

注:

  • 这个配置文件是我在 Tasker 中编写的一个任务,它会在设备满足特定条件时自动执行开启 ADB WiFi 的任务。
  • 你可以在 Tasker 中编辑这个任务,以适应你的需求。毕竟这个配置至今仍然不是十分完善。

补充说明:

  1. 这个配置需要在连接WiFi网络的情况下才能运行成功,因为开启无线调试需要连接WiFi网络。
  2. 这个配置文件在开机时运行,所以需要Tasker和Termux都可以开机自启,否则无法运行。
  3. 开启ADB WiFi会导致设备有一个开放的端口,这个端口可能会被恶意软件利用,所以需要谨慎使用。一个较为安全但仍然存在隐患的办法是可以把5555端口改为其他的端口,但是需要修改配置文件中的端口。
  4. 请按照步骤顺序操作,否则可能失败。
  5. 这个教程会根据反馈再做修改。