使用 Shizuku 或直接 Root 权限,为 Android 设备开启固定的 TCP ADB 调试端口。
项目地址:TG-Twilight/Any.ADB。
- 默认 5555,可自定义 1–65535 的整数端口。
- 检查 IPv4、IPv6、回环地址与其他网卡的 TCP 占用。冲突时拒绝修改,不结束占用进程。
- 通过 adbd 的 socket inode 确认实际监听;相同且有效的 ADB 端口可重复应用。
- 修改前再次检查,修改后验证监听;失败则恢复原端口属性并重启 adbd。
- Shizuku 必须以 root / UID 0 运行,兼容 Sui 模块,也可切换直接
su。普通无线调试启动的 Shizuku 权限不足。 - 可选开机恢复,默认关闭;重启并解锁后通过 JobScheduler 恢复,最多尝试三次。
- Compose Material 3 Expressive,系统动态色、亮暗主题、支持预测性返回的帮助面板。
- ReVia 风格的莫奈自适应桌面图标,以及 Android 13+ 单色主题图标。
- 默认每次打开应用自动检查更新,可关闭,也支持手动检查;发现新版后前往 GitHub Releases 更新。
从 GitHub Releases 下载 APK,或使用仓库中的 dist/AnyADB-1.1.0.apk。在应用中选择 Shizuku 或 Root 并授权,输入端口并点击开启。
电脑使用 Android SDK Platform Tools:
adb connect 100.107.249.32:5555
应用显示本机可用的网络地址,不把测试设备的 IP 写死。首次连接时,按设备的 ADB 授权弹窗确认。 退出应用后端口保持开启;需要重启后恢复时,打开“开机恢复”。关闭端口同时关闭开机恢复。请勿长时间开启远程调试。
可以搭配 Tailscale 连接设备与电脑,通过固定端口进行跨网络调试。
更换端口会重启 adbd,现有 ADB 连接会断开。系统无线调试 TLS 端口也可能变更或停止;请使用应用显示的固定端口重新连接。
应用保留 ro.adb.secure 等系统认证配置,不修改 ADB 授权密钥,不设置持久系统端口属性。
若系统使用 service.adb.listen_addrs 自定义监听,应用会拒绝操作并给出原因。
- Android 12 / API 31 及以上,targetSdk / compileSdk 36。
- 已获得 root 的设备,或以 root 启动的 Shizuku(兼容 Sui);普通 ADB 模式的 Shizuku 不满足 UID 0 要求。
- 电脑与手机需要网络可达;可通过 Tailscale 地址访问。
JDK 17+、Android SDK 36。配置 local.properties 的 sdk.dir,然后:
$env:JAVA_HOME='C:/Program Files/Android/Android Studio/jbr'
./gradlew.bat testDebugUnitTest assembleRelease lintReleaseGradle 8.14.3、AGP 8.13.1、Kotlin 2.2.21、Compose 1.9.4、Material3 1.5.0-alpha10、Shizuku API 13.1.5。 Material3 使用含 Expressive API 的 alpha 版本,版本已固定,未用普通 M3 冒充 M3E。
Release 启用 R8 与资源压缩、关闭 debuggable;使用本机开发证书签名以兼容已安装测试包,密钥不入库。 如需公开发行及跨机器维护,配置自己的长期发布签名;更换证书时需考虑原安装的签名兼容。
应用读取 https://raw.githubusercontent.com/TG-Twilight/Any.ADB/main/updates/latest.json。
更新源文件位于 GitHub main 分支的 updates/latest.json;应用通过该文件读取当前发布版本。
{
"schemaVersion": 1,
"versionCode": 2,
"versionName": "1.1.0",
"minSdk": 31,
"downloadUrl": "https://github.com/TG-Twilight/Any.ADB/releases/tag/v1.1.0",
"changelog": "本次更新内容"
}发布新版时,先增加 app/build.gradle.kts 的 versionCode / versionName,构建并上传同签名 APK 至对应 GitHub Release,再更新 JSON。
版本比较使用递增整数 versionCode;minSdk 不兼容时不会提示安装。下载链接只接受本仓库的 HTTPS Releases 地址。
更新检查只下载最多 64 KiB 的 JSON,不上传设备地址或 root 信息,不自动下载/安装 APK。
每次应用进入前台时检查,旋转屏幕不重复触发;关闭后不自动联网,仍可手动检查。
本地开发经验与设备记录写在 AGENTS.md;该文件被 Git 忽略,不上传 GitHub。
1.1.0:27 项 JVM 测试、5 项真机 UI 测试通过,包含更新版本解析、关闭/取消/重复检查、新版提示和 GitHub 跳转、开关保存、Shizuku 旧设置兼容、预测性返回及莫奈图标。 优化包另行验证了覆盖安装、Shizuku 状态读取和关闭更新检查后的冷启动保持;lint 0 errors / 30 warnings。 新版弹窗通过测试数据验证;更新源返回 404 时会提示“更新源尚未发布”。
1.0.0 初版验证记录:
2026-09-12,POCO X3 GT / Android 16,目标设备 100.107.249.32:
- 16 项 JVM 测试:输入边界、非法输入、TCP 端口占用、adbd 所有权、重复应用、失败回滚。
- 真机 Sui 与 Root:读取状态,拒绝 IPv4 / IPv6 被占用端口,拒绝越界端口,原连接保持,切换到 15555,关闭,再恢复 5555。见
evidence/device-validation.txt。 - UI Automator:帮助面板预测性返回取消与提交、莫奈图标动态色亮暗交换。
- JobScheduler:恢复已保存端口、报告占用错误。见
evidence/ui-validation.txt。 - 未实际重启手机;开机恢复验证的是接收器与系统任务执行流程。
- lint 为 0 errors;存在依赖版本更新、可选 KTX 写法及资源版本兼容等警告。
- 最终 R8 优化包另行完成保留数据覆盖安装、冷启动、Root / Sui 状态读取、Sui 修改到 15555 再恢复 5555、真实占用端口 44177 拒绝、系统返回手势关闭帮助面板。
设备测试会重启 adbd,勿在依赖该连接完成其他操作时运行。Instrumentation 测试均应在 Debug 安装包上运行;Debug 测试 APK 不能直接复用到 R8 Release(依赖类已优化重命名)。DeviceAdbTest 异步启动并将结果写入应用私有目录的 files/device-validation.txt,结束时恢复 5555。
- Shizuku / Sui 官方 API:权限申请、UserService 和 UID 检查。
- Android Material3 发布说明:Expressive API 版本。
- Android 预测性返回:系统返回与 Material 组件。
- AOSP adbd:TCP 端口属性的解释与监听行为。
- 本机
D:/Project/CodeX/Mod/ReVia/work/Via_7.3.0_private/res/values-v31/colors.xml和values-night-v31/colors.xml:莫奈图标配色规则。Any ADB 的终端图案为本项目新建矢量。