1. 什么是ADB?😂
ADB,全稱Android Debug Bridge,即安卓調試橋,是一個通用的命令行工具,允許我們在PC上與Android模擬器實例或連接到PC的 Android 設備進行通信,並實現各種便利的、高權限的操作。
ADB工作在服務器-客戶端模式,一個ADB程序分為三個部分,分別是:
| 部分 | 功能 |
|---|---|
| 客戶端 | 在用於開發和調試的計算機上運行,用於發送命令 |
| 后台程序 | 在Android設備上運行命令,作為后台程序運行 |
| 后服務器 | 管理客戶端和后台程序的通信,在用於開發或調試的計算機上作為后台程序運行 |
ADB可在Android開發者平台,Android Developers的官方網站下載。
2. ADB的使用
2.1 ADB的安裝
下載的ADB工具包是文件名形如platform-tools_r28.0.1-windows的壓縮包,將其解壓縮至任意英文目錄下,然后使用管理員權限打開Window命令提示符cmd。
帶有管理員權限的cmd默認的工作路徑為
C:\WINDOWS\system32>
由於其默認的盤符在C:,若剛剛解壓縮的文件不在C:,則需要先更改工作盤符。
輸入剛剛解壓到的盤符
X:
隨后輸入新的工作目錄路徑
cd X:\your own directory\platform-tools_r28.0.1-windows\platform-tools
這樣我們就已經正確安裝ADB工具,並且可以正常開始使用了。
2.2 使用前的准備
首先將我們的Android設備用USB線連接電腦,然后從開發者選項中打開USB調試功能。
如果你使用的是Android 4.2及以上版本的設備,且之前沒有打開過開發者選項,那么可能需要先在設置 > 關於手機里,連續點擊版本號7次,就可以在設置中找到開發者選項了。但由於國內的Android定制ROM過於混亂,有可能版本號選項位置會根據設備不同而有所變化。
需要注意的是,幾乎所有的國內的手機助手類軟件,都會使用ADB提供的功能和權限在實現USB安裝等功能,所以在使用ADB工具包時,請先確認自己電腦上的國內的手機助手類軟件均已經被卸載或完全關閉,以免其和ADB產生沖突,導致后續無法使用。
2.3 查看當前的連接狀態
在開始使用ADB時,首先查看設備的連接狀態是一個良好的習慣。我們可以使用devices命令來查詢。
adb devices
如果沒有設備被正確連接,則List of devices attached的列表里不會顯示任何設備信息。
如果正確連接了設備,則會顯示adb針對當前實例的唯一的標識信息。
- 序列號——一個由ADB生成的字符串,用於通過其控制台端口號唯一地標識模擬器/設備。序列號的格式為
type-consoleport - 狀態——模擬器/設備的鏈接狀態可以分為以下三個部分
offineline—模擬器/設備未連接到ADB或未響應device—模擬器/設備已連接到ADBno device— 未連接模擬器/設備
以下是當有3個設備被正確連接時的效果
X:\platform-tools_r28.0.1-windows\platform-tools>adb devices
List of devices attached
XGC4C16513010507 device
de160f3c device
emulator-5554 device
2.4 在Fastboot模式下查看設備
和在正常狀態時類似,輸入命令fastboot devices,若有設備在fastboot模式下被正確連接,則會顯示連接的設備信息。
2.5 常用的簡單的命令
由於以下命令較為簡單,且在進行多設備操作時,只需在adb后輸入-s SerialNumber,即可對指定的設備/模擬器進行操作,所以以下內容我們全部采用只有一台設備連接的情況。
- 開關機
- 重新啟動—
adb reboot - 關機—
adb shutdown
- 重新啟動—
- 進入recover或fastboot模式
- 進入recovery—
adb reboot recovery - 進入fastboot—
adb reboot bootloader
- 進入recovery—
- 安裝/卸載應用
- 安裝App—
adb install your-own-app-path - 覆蓋安裝App—
adb install -r your-own-app-path - 卸載App—
adb uninstall apk-package-name
以上三條命令執行完成后,會顯示成功信息Success
- 安裝App—
- 文件操作
- 從計算機發送文件到Android設備—
adb push file-path destination-path - 從Android設備拷貝出文件到計算機—
adb pull file-path destination-path
以上兩條命令執行完成后會顯示速度,所用時間等參數
- 從計算機發送文件到Android設備—
2.6 進行刷機 時可能用到的操作
2.6.1 解鎖bootloader
首先確保擁有正確的解鎖碼,各設備的解鎖密碼(一般為16位)可從設備制造商處申請獲得,如小米等。
然后輸入命令使設備進入fastboot模式
adb reboot bootloader
隨后再輸入命令進行解鎖
fastboot oem unlock ****************
其中****************是16位的解鎖密碼。
待解鎖完成后,設備將自動重新啟動並恢復出廠設置
此時可通過fastboot oem get-bootinfo命令來查看解鎖狀態
若顯示Bootloader Lock State : UNLOCKED,則說明設備已成功解鎖
若顯示Bootloader Lock State : LOCKED,則說明設備未解鎖
值得注意的是,目前由一些國內的制造商已經停止提供解鎖渠道,如華為等,還有部分國內制造商從未開放過解鎖權限,如VIVO,OPPO等。
2.6.2 刷入第三方recovery
注意:在刷入第三方recovery之前,一定要要確保設備已經正確解鎖 bootloader,並使用適合當前設備的recovery,否則可能導致設備損壞
注意:在刷入第三方recovery之前,一定要要確保設備已經正確解鎖 bootloader,並使用適合當前設備的recovery,否則可能導致設備損壞
注意:在刷入第三方recovery之前,一定要要確保設備已經正確解鎖 bootloader,並使用適合當前設備的recovery,否則可能導致設備損壞
在確認設備已經解鎖bootloader后,下載適合自己設備的第三方recovery文件,一般其文件名為recovery.img
使用命令adb reboot bootloader使設備進入fastboot模式后,輸入命令刷入recovery
fastboot flash recovery X:\xxx\xxx\recovery.img
完成這些步驟后,你就有了一台解鎖了bootloader,且刷入了第三方recovery的Android設備了,現在你可以愉快的刷入第三方ROM了。
2.7 原生/類原生Android ROM的優化
如果你的設備采用的是Google原生的Android系統,如Google Pixel 3等,或刷入了第三方類原生ROM,如Pixel Experience,LineageOS等,或是外國生產的銷售的Android設備,如港台版、日版、歐版、美版設備等,那么在使用過程中我們不難發現,屏幕右上角顯示WiFi和移動網絡的圖標處總是顯示有”❌“的符號。
這是因為在當前的Android系統中,Google引入了檢測網絡連通性的機制,會在設備聯網后,檢測網絡的可用性,而這一服務由Google的服務器提供。
由於眾所周知的原因,Google的服務器在我國大陸地區無法正常訪問,所以Android會認為當前的網絡沒有連接到Internet,因此狀態欄上的WiFi和移動網絡圖標就會顯示”❌“。
我們同樣可以通過ADB來解決這一問題。以下分別是兩種方法
- 關閉檢測
通過輸入命令關閉這一檢測
adb shell settings put global captive_portal_mode 0
- 替換檢測的地址
修改檢測服務器的地址為國內可以訪問的即可,連接檢測服務器時使用http協議和https協議使用不同的設置,需分別修改- 修改https協議
adb shell settings put global captive_portal_https_url https://captive.v2ex.co/generate_204
+ 修改http協議
adb shell settings put global captive_portal_http_url http://captive.v2ex.co/generate_204
修改完后的效果如下圖所示
