在Ubuntu 18.04 安裝 adb


Ubuntu下安裝ADB

背景

電腦上的USB口有問題,不方便調試;發現用於開發的服務器就在工位旁邊。

先拿過來用一下。

Ubuntu:18.04

做法

安裝adb

做法有很多種,列舉下列2種。

下載二進制安裝包

谷歌的網站下載LINUX adb調試工具。

adb 包含在 Android SDK 平台工具軟件包中。您可以使用 SDK 管理器下載此軟件包,

該管理器會將其安裝在 android_sdk/platform-tools/ 下。

或者,如果您需要獨立的 Android SDK 平台工具軟件包,也可以點擊此處進行下載

wget https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip

增加export PATH=$PATH:/xxx/platform-tools/xxx/platform-tools代表adb下載下來的存放路徑)

根據apt安裝

sudo apt-get install -y android-tools-adb 

# 如果發現源中沒有這個程序: 
sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt-get update 
sudo apt-get install -y android-tools-adb 

連接手機

lsusb 查看USB設備的PID:VID

這里插入的是高通平台的設備,對應的PID0x05c6VID0x9091

$ lsusb
## Qualcomm
Bus 001 Device 006: ID 05c6:9091 Qualcomm, Inc.

附錄:adb devices時提示no permissinons解決

此時使用adb命令時,發現:

$ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
(no serial number)	no permissions (user xx is not in the plugdev group); see [http://developer.android.com/tools/device.html]

一般是因為udev規則沒寫好,大部分情況是 PID以及VID寫錯了,一定要通過lsusb確認好。

adb_usb.ini

將PID寫入:

echo 0x18d1>> ~/.android/adb_usb.ini  #關鍵,大部分第三方廠商設備在此文件中定義,才運行adb連接 

android.rules

增加udev規則,udev是用來管理設備的工具。

/etc/udev/rules.d/schips-android.rules中,根據VID增加一條:,這樣子可以直接覆蓋對應的型號

SUBSYSTEM=="usb", ATTRS{idProduct}=="9091", MODE="0666"

添加權限:

sudo chmod 666 /etc/udev/rules.d/schips-android.rules

重啟對應的服務:

sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger
adb kill-server;adb start-server

我的android.rules是這樣子寫的:

SUBSYSTEM=="usb", ATTRS{idProduct}=="9091", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="90db", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="9008", MODE="0666"

附錄:adb修訂版本

31.0.2(2021 年 4 月)

adb

  • 支持在 Linux 上轉發到 vsock。
  • 修復了 adb track-devices 中采用無線調試功能的設備不會立即收到更新的錯誤。
  • 無需單獨安裝 mDNS 服務即可實現對 mDNS 設備發現的初步支持。此功能目前默認處於停用狀態,可以在啟動 adb 服務器時將環境變量 ADB_MDNS_OPENSCREEN 設置為 1 來啟用。

fastboot

  • 無法獲取啟動分區大小時不會失敗。
  • 會從屬性派生設備鎖定狀態,而不是解析內核命令行。

31.0.1(2021 年 3 月)

adb

  • 減少了 TCP keepalive 間隔。
  • 提高了增量安裝性能。

fastboot

  • 添加了對壓縮快照合並的支持。
  • 恢復了對舊版 A/B 的支持。

31.0.0(2021 年 2 月)

adb

  • 默認情況下,停用在 pull 時進行壓縮。

30.0.5(2020 年 11 月)

adb

  • 提升了通過高延遲連接推送許多文件時 adb push 的性能。
  • 提升了 adb push/pull 在 Windows 上的性能。
  • 修復了處理多個輸入時 adb push --sync 的問題。
  • 提升了增量 APK 安裝的性能。
  • 改進了針對增量 APK 安裝的錯誤處理。

30.0.4(2020 年 7 月)

adb

  • 修復了在搭載 Android 11 之前版本的設備上回退到非增量 APK 安裝的問題。
  • 修復了 adb install-multi-package
  • 修復了更多與 adb 無線配對相關的崩潰問題。
  • 改進了一些錯誤消息。

fastboot

  • 改進了 fastboot oem 命令的控制台輸出。
  • 修復了舊款設備(如 Nexus 7)上的 fastboot flashall 問題。

30.0.3(2020 年 6 月)

adb

  • 修復了在搭載 Android 11 之前版本的設備上安裝使用 v4 簽名方案簽名的 APK 的問題。
  • 修復了在不使用 ADB_VENDOR_KEYS 的情況下進行身份驗證時發生崩潰的問題。
  • 修復了使用 adb -H 時發生崩潰的問題。

30.0.2(2020 年 6 月)

adb

  • 改進了 adb 無線配對。
  • 修復了在連接設備前運行時 adb logcat 掛起的問題。
  • 添加了 adb transport-id,以允許腳本在運行 root/unroot/reboot 后安全地等待設備斷開連接。

30.0.1(2020 年 5 月)

adb

  • 默認會停用 adb mdns 自動連接。此設置可通過 ADB_MDNS_AUTO_CONNECT 環境變量重新啟用。
  • 改進了 adb install-multi 在搭載 Android 10 或更高版本的設備上的性能。
  • 修復了在通過 TCP 連接的設備上使用 adb root/unroot 時超時的問題。
  • 更新了對無線配對的支持。

30.0.0(2020 年 4 月)

adb

  • 添加了對無線配對的初步支持。
  • 添加了對增量 APK 安裝的支持。
  • 實現了對 adb {push, pull, sync} 壓縮的客戶端支持(在搭載 Android 11 的設備上使用時)。
  • 提升了連接延遲時間較長時 adb push 的性能。
  • 提升了 Windows 上的 push/pull 性能。

29.0.6(2020 年 2 月)

adb

  • adb ls 提供 64 位大小/時間支持(在搭載 Android 11 的設備上使用時)。
  • 支持在 POSIX 上監聽 ::1
  • 在發布 WinUSB 描述符的 WinUSB 設備上,應該不需要再安裝 U 盤,即可實現客戶端支持(這對 Android 11 是必需的)。
  • 修復了在實際上並非文件的項中使用 adb install 時掛起的問題。

29.0.5(2019 年 10 月)

adb

  • 使用許多同步連接時,在 Linux 上的性能略有提升。
  • adb install 添加了 --fastdeploy 選項,可在開發過程中對 APK 進行增量更新。

29.0.4(2019 年 9 月)

adb

  • LLDB 原生調試超時的修補程序(詳見錯誤 #134613180)。這也修復了 Android Studio 性能剖析器中導致 AdbCommandRejectedException 的相關錯誤,您可以在 idea.log 文件中看到該錯誤。

29.0.3(2019 年 9 月)

adb

  • adb forward --list 可與多台連接的設備配合使用。
  • 修復了設備在 Windows 上進入離線狀態的問題。
  • 改進了 adb install 輸出和幫助文本。
  • 可在不指定端口的情況下恢復 adb connect <host> 之前的行為。

29.0.2(2019 年 7 月)

adb

  • 修復了 Windows 堆完整性崩潰問題。

fastboot

  • 添加了對即將推出的新設備的分區布局的支持。

29.0.1(2019 年 6 月)

adb

29.0.0(2019 年 6 月)

adb

  • adb reconnect 會在 Linux 上執行 USB 重置。
  • 在 Linux 上,當連接到較新的 adb 服務器時,adb 會嘗試以透明的方式啟動新版本,而不是先終止服務器,再啟動舊版本。
  • 斷開連接后,adb root 會等待設備重新連接。 以前,如果 adb wait-for-device 在 adb 注意到設備已斷開連接之前啟動,adb root; adb wait-for-device 可能會錯誤地立即返回。

fastboot

  • 停用了當 fastboot 試圖在 macOS 上打開觸控欄或鍵盤時出現的錯誤消息。

28.0.2(2019 年 3 月)

adb

  • 修復了導致“對等方重置了連接”錯誤消息的 adb shell 端口轉發不穩定問題。
  • 修復了重新連接設備時通過 ADB_VENDOR_KEYS 進行身份驗證的問題。
  • 通過根據私鑰計算公鑰(而不是假定私鑰和公鑰匹配)修復了身份驗證問題(當用於進行身份驗證的私鑰與公鑰不匹配時)。

fastboot

  • 添加了對動態分區的支持。

  • 更新了 Windows 的相關要求

    • 平台工具現在依賴於 Windows 通用 C 運行時,它通常是通過 Windows Update 默認安裝的。如果您看到提及缺少 DLL 的錯誤,那么可能需要手動獲取並安裝運行時軟件包

28.0.1(2018 年 9 月)

adb

  • 添加了對重新連接 TCP 連接的支持。斷開連接后,adb 會嘗試重新連接最多 60 秒,如果仍不成功,才會放棄連接。
  • 修復了 Windows 上的 Unicode 控制台輸出問題。(感謝外部貢獻者 Spencer Low!)
  • 修復了可能發生的文件描述符 double-close 問題,此問題會導致連接在 adb connect 發生的同時關閉。
  • 修復了在與多個設備連接的情況下使用時 adb forward --list 的問題。

fastboot

  • 將命令超時增加到了 30 秒,以更好地支持一些速度較慢的引導加載程序命令。

28.0.0(2018 年 6 月)

adb:

  • 添加了對搭載 Android P 的設備的無校驗和操作的支持,使吞吐量提高了多達 40%。
  • 按連接類型和設備序列號對 adb devices 的輸出進行了排序。
  • 增加了套接字監聽積壓量,以允許同時執行更多 adb 命令。
  • 改進了 adb connect 的錯誤輸出。

fastboot:

  • 改進了輸出格式,添加了詳細輸出模式 (-v)。
  • 清理了幫助輸出。
  • product.imgodm.img 添加到了由 fastboot flashall 刷寫的分區列表。
  • 通過允許出廠映像軟件包要求對特定分區的支持,避免在使用過舊版本的 fastboot 時導致新設備死機。

27.0.1(2017 年 12 月)

adb:修復了在使用 USB 3.0 連接設備時在 MacOS 上出現的斷言失敗問題。

fastboot:在 Windows 上,添加了對擦除使用 F2FS(閃存友好型文件系統)的設備的支持。

27.0.0(2017 年 12 月)

  • 重新修復了 macOS 10.13 fastboot 錯誤,此錯誤在 26.0.1 中首次修復,但在 26.0.2 中重新引入。

26.0.2(2017 年 10 月)

  • 為 Pixel 2 設備添加了 fastboot 支持。

26.0.1(2017 年 9 月)

  • 修復了 macOS 10.13 High Sierra 上的 fastboot 問題(詳見錯誤 64292422)。

26.0.0(2017 年 6 月)

  • 通過發布 Android O 最終版本 SDK(API 級別 26)進行了更新。

25.0.5(2017 年 4 月 24 日)

  • 修復了 Windows 上大型更新的 adb 旁加載問題,此問題在清單中顯示為“std::bad_alloc”(詳見錯誤 37139736)。
  • 修復了某些 Windows 防火牆存在的 adb 問題,此問題在清單中顯示為“cannot open transport registration socketpair”(詳見錯誤 37139725)。
  • adb --versionfastboot --version 現在都包含安裝路徑。
  • adb 已更改為不解析 localhost,以便解決配置錯誤的 VPN。
  • adb 已更改為不再在 Linux 上重置 USB 設備,因為重置 USB 設備可能會影響其他連接的 USB 設備。

25.0.4(2017 年 3 月 16 日)

  • 為 Linux 和 Mac adb 添加了實驗性 libusb 支持

如需使用 libusb 后端,請先設置環境變量 ADB_LIBUSB=true,然后再啟動新的 adb 服務器。新的 adb host-features 命令會告知您是否在使用 libusb。

如需使用 libusb 重啟 adb 並檢查它是否正常運行,請使用 adb kill-server; ADB_LIBUSB=1 adb start-server; adb host-features。輸出應包含“libusb”。

在此版本中,舊版的非 libusb 實現仍然是默認實現。

  • fastboot 不再掛起 2016 MacBook Pros(詳見錯誤 231129
  • 修復了 Mac 上的 Systrace 命令行捕獲問題

25.0.3(2016 年 12 月 16 日)

  • 修復了導致 Android Things 設備無法刷寫的 fastboot 錯誤

25.0.2(2016 年 12 月 12 日)

  • 通過發布 Android N MR1 穩定版(API 25)進行了更新

25.0.1(2016 年 11 月 22 日)

  • 通過發布 Android N MR1 開發者預覽版 2(API 25)進行了更新

25.0.0(2016 年 10 月 19 日)

  • 通過發布 Android N MR1 開發者預覽版 1(API 25)進行了更新

24.0.4(2016 年 10 月 14 日)

  • 已更新並解決了 ADB 和 Mac OS Sierra 中的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM