Linux系統(tǒng)下安裝和配置ADB環(huán)境的完整步驟
引言
本文詳細(xì)介紹了在Linux系統(tǒng)下安裝和配置ADB環(huán)境的完整步驟。針對(duì)Ubuntu/Debian、Fedora/CentOS和Arch Linux等主流發(fā)行版提供了不同的安裝方法,重點(diǎn)講解了關(guān)鍵的USB權(quán)限配置(包括官方腳本和手動(dòng)規(guī)則設(shè)置兩種方式)。文章還包含連接驗(yàn)證、環(huán)境變量配置、常見故障排查(如權(quán)限問題、設(shè)備識(shí)別失敗等)以及無線調(diào)試方法。特別強(qiáng)調(diào)了Linux特有的權(quán)限設(shè)置要點(diǎn),幫助開發(fā)者快速搭建完整的Android調(diào)試環(huán)境。
在 Linux 系統(tǒng)下配置 ADB (Android Debug Bridge) 環(huán)境通常比 Windows 更簡(jiǎn)單,因?yàn)榇蠖鄶?shù)發(fā)行版都通過包管理器直接支持。
以下是針對(duì) Ubuntu/Debian、Fedora/CentOS 和 Arch Linux 的詳細(xì)安裝與配置指南,包含權(quán)限設(shè)置(這是 Linux 下最容易出錯(cuò)的地方)。
第一步:安裝 ADB 工具
根據(jù)你的 Linux 發(fā)行版選擇對(duì)應(yīng)的安裝命令。
1. Ubuntu / Debian / Linux Mint / Kali
使用 apt 包管理器:
sudo apt update sudo apt install adb fastboot
2. Fedora / CentOS / RHEL
使用 dnf 或 yum:
# Fedora sudo dnf install android-tools # CentOS/RHEL (可能需要啟用 EPEL 源) sudo yum install android-tools
3. Arch Linux / Manjaro / EndeavourOS
使用 pacman:
sudo pacman -S android-tools
4. 通用方法 (手動(dòng)下載最新版)
如果軟件源中的版本太老,可以手動(dòng)下載 Google 官方最新版:
# 1. 下載 wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip -O platform-tools.zip # 2. 解壓到用戶目錄 unzip platform-tools-latest-linux.zip -d ~ unzip platform-tools.zip -d ~ # 3. 配置環(huán)境變量 (永久生效) echo 'export PATH=$HOME/platform-tools:$PATH' >> ~/.bashrc # 如果是 zsh echo 'export PATH=$HOME/platform-tools:$PATH' >> ~/.zshrc # 4. 刷新配置 source ~/.bashrc # 或 source ~/.zshrc
第二步:配置 USB 權(quán)限規(guī)則 (關(guān)鍵步驟)
在 Linux 下,普通用戶默認(rèn)沒有權(quán)限直接訪問 USB 設(shè)備。如果不配置這一步,運(yùn)行 adb devices 時(shí)會(huì)顯示 ???????????? no permissions 或直接列表為空。
方法 A:使用官方提供的 udev 規(guī)則腳本 (推薦)
如果你是通過“通用方法”下載的官方包,里面包含了一個(gè)設(shè)置腳本:
# 進(jìn)入平臺(tái)工具目錄 cd ~/platform-tools # 運(yùn)行規(guī)則設(shè)置腳本 (需要 sudo) sudo ./udev/setup_android_sdk_rules.sh
運(yùn)行后需重新插拔手機(jī)或重啟 udev 服務(wù)。
方法 B:手動(dòng)創(chuàng)建規(guī)則文件 (適用于包管理器安裝)
如果上述腳本不存在,請(qǐng)手動(dòng)創(chuàng)建規(guī)則文件。
創(chuàng)建規(guī)則文件:
sudo nano /etc/udev/rules.d/51-android.rules
填入以下內(nèi)容 (涵蓋主流廠商):
# Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
# Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
# Xiaomi
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev"
# Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
# OnePlus
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
# Sony
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
# LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
# Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
# Generic
SUBSYSTEM=="usb", ATTR{idVendor}=="*", MODE="0666", GROUP="plugdev"
注:MODE="0666" 表示所有用戶可讀寫,最簡(jiǎn)單粗暴;更安全的方式是設(shè)置 GROUP="plugdev" 并將用戶加入該組。
重載規(guī)則并重啟服務(wù):
sudo udevadm control --reload-rules sudo service udev restart # 或者 sudo systemctl restart systemd-udevd
將當(dāng)前用戶加入 plugdev 組 (如果上面用了 GROUP):
sudo usermod -aG plugdev $USER
注意:加入組后需要注銷并重新登錄(或重啟電腦)才能生效。
第三步:基礎(chǔ)使用與驗(yàn)證
手機(jī)端設(shè)置:
- 進(jìn)入
設(shè)置->關(guān)于手機(jī)-> 連續(xù)點(diǎn)擊版本號(hào)開啟開發(fā)者模式。 - 進(jìn)入
開發(fā)者選項(xiàng)-> 開啟USB 調(diào)試。 - 用數(shù)據(jù)線連接電腦。
- 手機(jī)上彈出“允許 USB 調(diào)試?”時(shí),勾選“始終允許”并確認(rèn)。
電腦端測(cè)試:
adb devices
成功輸出:
List of devices attached XM12345678 device
- ? 失敗 (
no permissions):說明 udev 規(guī)則未生效。解決:檢查是否已重啟登錄,或嘗試拔掉重插 USB 線。 - ? 失敗 (列表為空):檢查數(shù)據(jù)線(是否僅充電)、USB 接口或手機(jī)是否開啟調(diào)試。
- 失敗輸出 (
no permissions):- 檢查是否執(zhí)行了第二步。
- 嘗試拔掉數(shù)據(jù)線重插。
- 運(yùn)行
sudo adb devices測(cè)試。如果sudo能識(shí)別但普通用戶不行,說明權(quán)限規(guī)則未生效或用戶未重新登錄組。
第四步:配置 Shell 環(huán)境變量 (可選)
如果你使用的是手動(dòng)下載的壓縮包,或者想添加自動(dòng)補(bǔ)全功能:
編輯配置文件:
nano ~/.bashrc # 如果是 zsh 則編輯 ~/.zshrc
添加路徑 (僅手動(dòng)安裝時(shí)需要):
export PATH=$PATH:$HOME/platform-tools
添加自動(dòng)補(bǔ)全 (提升體驗(yàn)):
Android SDK 通常自帶補(bǔ)全腳本。
# 查找補(bǔ)全腳本位置 (通常在 platform-tools 目錄下) # 假設(shè)在 ~/platform-tools/completion source ~/platform-tools/completion/adb.bash
將 source 命令也加入 ~/.bashrc。
生效:
source ~/.bashrc
第五步:常用故障排查 (Linux 特有)
1. 提示adb: command not found
- 確認(rèn)已安裝:
which adb。 - 如果是手動(dòng)安裝,確認(rèn)
PATH已導(dǎo)出并執(zhí)行了source。
2. 提示no permissions(最常見)
- 原因:udev 規(guī)則未加載或用戶組未更新。
- 解決:
- 檢查規(guī)則文件是否存在:
ls -l /etc/udev/rules.d/51-android.rules。 - 重新加載規(guī)則:
sudo udevadm trigger。 - 徹底重啟電腦(不僅僅是注銷),確保用戶組權(quán)限生效。
- 更換 USB 端口(有時(shí)前端面板供電不足或控制器不同)。
- 檢查規(guī)則文件是否存在:
3. 手機(jī)連接后沒有任何反應(yīng)
- 檢查數(shù)據(jù)線是否僅支持充電。
- 檢查手機(jī)連接模式:下拉通知欄,將 USB 模式從“僅充電”改為"文件傳輸 (MTP)“或"PTP”。有些手機(jī)在 PTP 模式下 ADB 識(shí)別率更高。
- 查看系統(tǒng)日志排查硬件識(shí)別問題:
dmesg | grep -i usb
- 觀察插入手機(jī)時(shí)的最新日志,看是否有設(shè)備被識(shí)別。
4. 多個(gè)用戶或權(quán)限沖突
- 如果你同時(shí)使用了 Snap 或 Flatpak 安裝的 Android Studio,它們可能有沙盒限制,無法訪問宿主的 USB 設(shè)備。建議直接使用系統(tǒng)包管理器安裝的
adb命令行工具。
5.???????????? no permissions
- 原因:權(quán)限規(guī)則未加載或用戶組未更新。
- 解決:
- 運(yùn)行
ls -l /dev/bus/usb/*/*查看設(shè)備權(quán)限,確認(rèn)是否有讀寫權(quán)限。 - 重新執(zhí)行
sudo usermod -aG plugdev $USER并徹底重啟電腦。 - 臨時(shí)測(cè)試:運(yùn)行
sudo adb devices。如果 sudo 能識(shí)別,說明純粹是權(quán)限問題。
- 運(yùn)行
6. 設(shè)備管理器中看不到手機(jī),或顯示QHSUSB_BULK
- 原因:手機(jī)進(jìn)入了緊急下載模式(常見于高通芯片手機(jī)刷機(jī)失敗),或驅(qū)動(dòng)沖突。
- 解決:
- 如果是正常連接:嘗試更換 USB 端口(優(yōu)先使用主板后置 USB 2.0 接口)。
- 如果是刷機(jī)變磚:需要安裝
qpst或qfil工具進(jìn)行救磚(Linux 下有開源替代工具edl)。
7.adb devices列表為空,但手機(jī)在充電
- 排查步驟:
- 數(shù)據(jù)線:換一根確認(rèn)能傳數(shù)據(jù)的線。
- USB 模式:下拉手機(jī)通知欄,將 USB 模式從“僅充電”改為 “文件傳輸 (MTP)” 或 “PTP”。有些手機(jī)在 PTP 模式下 ADB 兼容性更好。
- 系統(tǒng)日志:運(yùn)行
dmesg -w然后插入手機(jī),觀察是否有 USB 設(shè)備識(shí)別日志。如果沒有,可能是硬件接口問題。 - 沖突軟件:某些手機(jī)管家類軟件會(huì)獨(dú)占 ADB 端口,關(guān)閉它們。
8. 無線調(diào)試 (WiFi) 連接失敗
- Android 11+:支持純無線配對(duì)。
adb pair 192.168.1.5:37829 # 輸入手機(jī)顯示的配對(duì)碼 adb connect 192.168.1.5:5555
- 舊版本:必須先有線連接執(zhí)行
adb tcpip 5555才能切換無線。 - 防火墻:檢查 Linux 防火墻 (
ufw或firewalld) 是否攔截了 5555 端口。
第六步:無線調(diào)試 (無需 Root,無需特殊驅(qū)動(dòng))
在 Linux 上,一旦配置好有線連接,無線調(diào)試非常方便:
# 1. 有線連接狀態(tài)下,開啟 TCP 模式 adb tcpip 5555 # 2. 拔掉數(shù)據(jù)線,獲取手機(jī) IP (在 WiFi 設(shè)置里看,例如 192.168.1.5) adb connect 192.168.1.5:5555 # 3. 驗(yàn)證 adb devices
注:Android 11+ 支持純無線配對(duì),無需先插線,使用 adb pair 命令即可。
現(xiàn)在,你的 Linux 系統(tǒng)已經(jīng)完全配置好 ADB 環(huán)境,可以進(jìn)行開發(fā)、調(diào)試或刷機(jī)操作了!
以上就是Linux系統(tǒng)下安裝和配置ADB環(huán)境的完整步驟的詳細(xì)內(nèi)容,更多關(guān)于Linux安裝和配置ADB環(huán)境的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Ubuntu安裝java的最簡(jiǎn)單的命令行方式(推薦)
這篇文章主要介紹了Ubuntu安裝java的最簡(jiǎn)單的命令行方式的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
linux后臺(tái)執(zhí)行命令&和nohup的具體使用方法
這篇文章主要介紹了linux后臺(tái)執(zhí)行命令&和nohup的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
使用 bind 設(shè)置 DNS 服務(wù)器的方法
Bind9是一個(gè)強(qiáng)大的Linux下開放源代碼的DNS服務(wù)器軟件,這篇文章主要介紹了使用 bind 設(shè)置 DNS 服務(wù)器的方法,需要的朋友可以參考下2020-03-03
Linux CentOS下安裝Tomcat9及web項(xiàng)目的部署
本文講解在Linux CentOS下安裝Tomcat9,以及Web項(xiàng)目的部署發(fā)布過程,通過實(shí)例代碼相結(jié)合的形式給大家介紹的非常的詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07

