前言¶
想在 DSH Go 手機版裏讓 AI 直接操作手機(查電量、截圖、模擬輸入、裝卸載應用),前提是本機 adbd 能連上。手工做這件事有幾處反覆勞動:先確認手機開了 TCP 調試,再猜端口號,adb connect 之後斷線了還要重連。dsh-go-adb-link 把這套動作收進插件裏:自動找到手機上的 ADB TCP 端口、用本機 adb 連上並保持,引擎啓動時自動重連。下面介紹它的能力邊界和接入步驟。
這是什麼¶
dsh-go-adb-link 是 DSH Go 的原生插件,維護者 edgy7493,倉庫地址 github.com/edgy7493/dsh-go-adb-link。按 package.json,當前版本 1.2.4,許可證 MIT;倉庫元數據顯示 1 star,JavaScript 編寫。
它解決的問題是:手機端通過 Stellar/Shizuku 的 TCP 通道或 adb tcpip 打開 adbd 後,插件自動發現端口並維護連接,使 DSH 的 bash 裏可以直接執行 adb shell …。
需要注意它只適用於 DSH Go 手機版(本機引擎)。插件跑在手機自己的 Ubuntu 環境裏,要能從該環境連到本機 adbd;裝到其他環境不適用。
核心功能¶
插件註冊了一個 composer strip 狀態條和一個 ADB 面板。狀態條有三種文案:ADB 已連接 · 3455、ADB 未連接、ADB 待授權。點狀態條打開面板,面板展示狀態、端口、設備、adb 客戶端、自動重連開關,並提供 連接、掃描端口、斷開、複製命令 四個按鈕。
連接維護分三層:
- 引擎啓動時自動重連。
- 掉線後自動重試,先試記住的端口和
3455、5555。 - 都不通且之前授權過,會在後臺重掃;10 分鐘最多一次。
端口掃描不看端口號,是全端口(1–65535)發 ADB 握手找 adbd,只認 CNXN/AUTH 應答,並過濾 TCP 自連造成的誤報。
1.2.3 引入了 AI 行爲提示:連接成功後向 AI 注入一段提示,需要系統級能力(appops/權限、安裝卸載、讀取受保護數據、截圖、模擬輸入、進程/電量查詢等)且 adb 更省事時,AI 會主動用 adb,而不是繞路或先問一句。1.2.4 在此基礎上新增面向 AI 的 adb 工具,原樣執行 adb 參數、自動確保連接、返回退出碼和輸出,並在 App 裏顯示成原生卡片。
另一個細節:adb 客戶端缺失時(例如運行時升級重置了 /usr),點「連接」會自動執行 apt-get install -y adb 補回。
安裝與啓用¶
插件已提交收錄,PR 審覈期間可以先用下面的方式安裝,效果一樣。
- npm 安裝:國內鏡像已同步,優先用這條。
dsh plugin --profile web add dsh-go-adb-link
提示找不到版本時加官方源:
dsh plugin --profile web add dsh-go-adb-link --registry=https://registry.npmjs.org/
- GitHub 直接裝:
dsh plugin --profile web add github:edgy7493/dsh-go-adb-link
- 離線 tarball:從 Releases 下載
dsh-go-adb-link-1.2.4.tgz放到手機,然後本地安裝:
dsh plugin --profile web add /sdcard/Download/dsh-go-adb-link-1.2.4.tgz
裝完到 App 的「引擎」頁重啓一次引擎,輸入框上方的狀態條纔會出現。裝完狀態條立即出現;後續改動 lib/ 代碼需要再次重啓引擎。
按 package.json 的要求,需要 dsh >=0.2.1-rc.2 <0.3.0-0、node >=22,dshGo 聲明的最低 App 版本爲 1.0.11。版本不滿足時安裝或啓用會失敗。
首次授權¶
第一次連接時手機會彈出「允許 USB 調試嗎」。點允許,並勾選「始終允許使用這臺計算機進行調試」。
勾了之後重連不再彈窗,插件才能全自動;沒勾的話每次重連都要再點一次。這一步只需做一次。
端口相關限制¶
README 裏明確寫了三件事:
- 同一個手機換了端口也能用,點「連接」會全端口掃描,不依賴
3455。 - 插件跑在哪臺手機的環境裏就找哪臺,不會去連別的設備的局域網端口。
- 只支持經典 ADB over TCP(
adb tcpip、Stellar 的 TCP 功能)。Android 11+ 原生「無線調試」是 TLS 配對端口,純 ADB 握手探測不到,需要改用其他方式。
數據與安全¶
運行記憶寫在 $DSH_HOME/dsh-go/adb-link/state.json,記錄端口、是否授權、是否自動重連;文件不在插件包內,卸載或升級不會帶走,也不會誤發。
插件會執行本機的 adb 程序,缺 adb 時調用 apt-get install -y adb。它聲明不讀取剪貼板、輸入框、對話內容,只連 127.0.0.1 上識別出的 adbd。本機 adb server(127.0.0.1:5037)與 bash 共享,插件連上後普通 adb 命令同樣可用。
典型用法¶
連接建立後,AI 可以在 DSH 的 bash 裏直接執行 adb 命令。例如查設備和用 adb 拉取信息(README 給出的用法形態是「在 DSH 的 bash 裏直接 adb shell …」,命令參數需按實際需要自行調整):
adb devices
adb shell getprop ro.build.version.release
面向 AI 的 adb 工具會讓模型直接調用,不必經過 bash 字符串拼接,輸出以原生卡片的形式展示在 App 裏。
適用場景與注意¶
適合 DSH Go 手機版的使用者:希望 AI 做系統級操作時不必手把手遞 adb 命令。對只跑在桌面環境、不使用手機本機引擎的場景,插件不適用。
接入前值得自己覈對的幾點:
- 插件以當前 dsh 進程權限運行,會執行本機
adb,缺失時會執行apt-get install -y adb。安裝前應讀一遍lib/源碼和 LICENSE(MIT),確認與你的環境兼容。 - 只覆蓋經典 ADB over TCP;Android 11+ 原生無線調試不在支持範圍內。
- 倉庫目前是 1 star 的個人項目,更新節奏和長期維護需自行判斷。
- 社區目錄站點與 DeepSeek、幻方無官方從屬關係,不要當作官方應用商店。
卸載¶
dsh plugin --profile web remove dsh-go-adb-link
也可以直接在 App 的插件詳情裏卸載。
參考鏈接¶
- 社區目錄頁:https://www.skillhub.cn/plugins/edgy7493/dsh-go-adb-link
- GitHub:https://github.com/edgy7493/dsh-go-adb-link
- Releases:https://github.com/edgy7493/dsh-go-adb-link/releases