簡體   English   中英

使用 WSL2 為空的 ADB 設備列表

[英]ADB device list empty using WSL2

我正在嘗試使用 WSL2 (Ubuntu) 調試/連接設備進行開發。 我已經按照這篇文章https://stackoverflow.com/a/58229368/21061上的步驟操作,它使用相同的 ADB 版本在 Windows 和 Linux 上設置 ADB。

但是,一旦我這樣做了,我會在 Ubuntu 終端中得到一個空的設備列表。 我已經嘗試從 Windows 命令行殺死並重新啟動 ADB 服務器,但這似乎沒有任何區別。 這在 WSL2 中是不可能的,還是我遺漏了什么?

這個答案對我使用 WSL 2 有用:

在 Windows 上:

adb tcpip 5555

然后在 WSL 2 上:

adb connect [ip device]:5555

如果這是第一次,它會在您的手機中詢問您的權限,請務必選中復選框以始終授予權限。 然后重新啟動 adb 並再次連接:

adb kill-server
adb connect [ip device]:5555

您可以從以下位置獲取您的 [ip 設備]:設置 > 關於設備 > 狀態。 它的形式如下:170.100.100.100

豪爾赫的回答很好,但像我這樣的初學者可能需要更多細節。

[ip 設備] 是[YOUR_PHONE_IP]地址。 要獲取手機的 IP 地址,請轉到“設置 -> 關於手機 -> 狀態 -> IP 地址”。 它可能類似於 192.168.xy

我沒有將 adb 添加到我的 PATH 變量中——在 Windows 和 Linux/WSL2 中都沒有。 相反,我只是使用以下鏈接下載了兩個操作系統的最新版本:

https://dl.google.com/android/repository/platform-tools-latest-linux.zip https://dl.google.com/android/repository/platform-tools-latest-windows.zip

解壓縮平台工具后,我必須將目錄更改為 PowerShell 和 WSL2 中的解壓縮文件夾 ( cd platform-tools )。

然后在 Windows 上的 PowerShell 中,我在platform-tools文件夾中運行.\adb tcpip 5555

在 WSL2 終端中,我運行./adb connect 192.168.2.199:5555 (其中 192.168.2.199 是我的 PHONE_IP 地址)。

首次使用[YOUR_PHONE_IP]地址連接時,系統會提示您確認連接。 adb 在等待確認時可能會說連接失敗。 如果是這樣,請在 WSL2 終端中運行./adb kill-server ,然后再次運行./adb connect [YOUR_PHONE_IP]:5555

您可以通過 PowerShell 中的.\adb devices./adb devices顯示連接的設備列表。

就這些。 現在您應該可以使用 WSL2 調試您的手機了。

我們可以在WSL2上更輕松地做到這一點

如果我們在 windows 中安裝 adb 並且路徑是/mnt/c/platform-tools/adb.exe

WSL2 adb 安裝在/usr/bin/adb

adb更改為adb_bk並設置ln -s鏈接adb.exe

sudo mv /usr/bin/adb /usr/bin/adb_bk

sudo ln -s /mnt/c/platform-tools/adb.exe /usr/bin/adb

現在我們可以使用 adb 並使用 bash 腳本

試試看

我自己嘗試用這個來讓 WSl2 工作,但我沒有找到任何快速的方法來做到這一點,這很容易,而且對於想要解決問題的每個人來說都是安全的:
printf '\n%s\n%s\n' \
'### Alias  for Android Debugging in WSL2' \
'alias adb="/mnt/c/Program\ Files\ \(x86\)/adb/adb.exe"' \ 
 >> ~/.bashrc

source ~/.bashrc
現在我們可以在 WSL1/WSL2 shell 中隨心所欲地工作了:
C:\> adb devices
List of devices attached
P1CN21AKXAZ     device

如果 windows 中的 adb.exe 會找到您的 android 設備,那么 wsl 中的 adb 也會。 我寫這篇文章是因為我不建議任何人使用adb tcpip (在我見過的少數地方推薦),但不知道它會帶來什么風險。 我通過從使用adb tcpip命令的設備復制和粘貼來鏈接我的腳本以在 1-3 秒內入侵任何 android 設備而不理解后果,我想指出我寫這篇文章是為了宣布提供建議是多么危險不等於給出建議,當你完成后,盡快關閉它!

對於使用 over tcpip 並完成任務的人,執行:

adb disconnect
當然,如果願意,您也可以在 /usr/bin 中創建一個符號鏈接,以便在系統范圍內使用它。
 ln -s "/mnt/c/Program\ Files\ \(x86\)/adb/adb.exe" /usr/bin/adb

https://pastebin.com/raw/DtFSMBsF

在 WSL2 中

sudo mv /usr/bin/adb /usr/bin/adb_bk

sudo ln -s /mnt/c/platform-tools/adb.exe /usr/bin/adb

亞行設備

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM