Android 調試橋 - Arch Linux 中文维基

跳至內容

# Android 調試橋

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Android Debug Bridge，最近一次同步於 2024-11-30，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

Android 調試橋（ADB）是一種命令行工具，可用於安裝、卸載和調試應用程式，傳輸文件和訪問設備的 shell。

## 安裝

ADB 是平台-工具 SDK 軟體包和 android-tools包 軟體包的一部分。

## 使用

### 連接設備

提示：

- 對於部分設備，你可能需要先在設備上啟用 MTP，ADB 才能正常工作。其他一些設備需要啟用 PTP 模式才能工作。
- 許多設備的 udev 規則都包含在 libmtp包 中，所以如果已安裝該包，可能不再需要下面的部分步驟。
- 確保你的 USB 線能夠同時進行充電和數據傳輸。許多與行動裝置捆綁的 USB 線不包含 USB 數據針。

要在 Arch 下通過 ADB 連接實體設備或手機，你必須：

1. 如果希望將設備連接到適當的 `/dev/` 項，可能需要安裝 android-udev包。
2. 將你的 Android 設備通過 USB 插入到電腦。
3. 在你的手機或設備上啟用 USB 調試功能：
   - Jelly Bean（4.2）及更新的版本：進入設置>關於手機點擊版本號七次，直到出現一個彈出窗口說你已經成為開發者。在較新的 Android 作業系統版本上，版本號可能在一個名為軟體信息的菜單中。然後進入設置>開發者>USB 調試並啟用它。設備會要求允許有特定指紋的電腦進行連接。勾選永久允許選項會把 `~/.android/adbkey.pub` 複製到設備的 `/data/misc/adb/adb_keys` 位置中。
   - 較早的版本：這通常是在設置>應用程式>開發>USB 調試中進行。檢查該選項後重新啟動手機，以確保 USB 調試被啟用。

如果 ADB 識別你的設備（`adb devices` 為 `「device」而不是「unauthorized」`，或者它在 IDE 中可見並可訪問，那麼你已成功連接到手機。否則請看下面的說明。

### 識別設備標識符

每個 Android 設備都有 USB 製造商/產品標識符。以 HTC Evo 為例：

    vendor id: 0bb4
    product id: 0c8d

插入你的設備並執行：

    $ lsusb

    ...
    Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.
    ...

### 添加 udev 規則

如果你的設備沒有包含在 android-udev包（或 android-udev-gitAUR），使用以下模板創建一個自定義的 udev 規則，將 `[VENDOR ID]` 和 `[PRODUCT ID]` 替換為你的設備標識符。

    /etc/udev/rules.d/51-android.rules

    SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0660", GROUP="adbusers", TAG+="uaccess"
    SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", ATTR{idProduct}=="[PRODUCT ID]", SYMLINK+="android_adb"
    SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", ATTR{idProduct}=="[PRODUCT ID]", SYMLINK+="android_fastboot"

然後重新加載 udev 規則。

### 檢測設備

設置好 udev 規則後，拔掉你的設備並重新插入。

之後執行：

    $ adb devices

    List of devices attached
    HT07VHL00676    device

如果 adb 在你把設備插回去之後仍然沒有檢測到設備，請以 root 身份殺死並重新啟動 adb 服務，然後再次檢查設備。

    # adb kill-server
    # adb start-server
    $ adb devices

如果 adb devices 仍然在你連接的設備顯示未授權，請確保已授予該設備調試權限。當你物理連接到該設備時，應該出現一個允許 USB 調試？的對話框。選擇總是允許...，然後點擊確定。如果從未出現過該對話框，請嘗試點擊設置>開發人員選項>撤銷 USB 調試授權,然後點擊確定，並重複本節的步驟。如果你仍然沒有看到允許 USB 調試？對話框，而且設備被列為未授權，那麼進入設備的開發者選項，首先取消 USB 調試，然後再次勾選。

### 傳輸文件

現在可以使用 adb 在設備和電腦之間傳輸文件。一般來說，安卓設備的文件在/sdcard/目錄下。

要向設備傳輸文件，請用：

    $ adb push what-to-copy where-to-place

要從設備傳輸文件，請用：

    $ adb pull what-to-pull where-to-place

也可參見#用 ADB 構建的工具。

### 備份和恢復

注意：adb backup/restore 已被棄用，可能會在未來被移除。

你也可以用adb備份和恢復你的設備。此外，不需要 root 就可以完成這個操作。下面的命令會將你的設備備份到單個文件，可用於後續恢復。

創建備份的命令是：

    $ adb backup -apk -shared -all -f backupFileName.ab

命令參數列表為：

    adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<packages...>]

然後在設備的顯示屏上確認這個操作，並提供一個密碼，無論之前是否已經設置備份密碼。

恢復以前備份的命令為：

    $ adb restore backupFileName.ab

注意：請記住，恢復操作會將你的設備內容替換成備份內容。

## 用 ADB 構建的工具

本文或本章節的語言、語法或風格需要改進。參考：幫助:風格

原因：請使用 Template:App 格式。（在Talk:Android 調試橋討論）

- adbfs-rootless-gitAUR – 掛載一台通過 USB 連接的 Android 設備。
- adb-sync-gitAUR – 一個通過 ADB 協議在 PC 和 Android 設備之間同步文件的工具。
- androidscreencast-binAUR – 通過 ADB 從 PC 查看和控制你的 Android 設備。
- logcat-colorAUR – 一種豐富多彩、高度可配置，可替代標準 `adb logcat` 命令。
- scrcpy包 – 顯示和控制你的 Android 設備。
- qtscrcpyAUR – Android 實時顯示控制軟體。
- adbmanager-binAUR - 該出現設計用於可視化並簡化 ADB 伺服器管理及 Android 手機連接。它可以讓你監控 adb 服務狀態，進行管理並控制已連接的設備。它也可以管理你的手機：使用名稱搜索已安裝的軟體包，安裝/刪除 APK，截屏，重啟（正常重啟，重啟到 Bootloader 或恢復模式）及關機。對於高階用戶，它同時提供了 Android Shell 終端和 SD 卡管理器。

## 故障排除

### 空設備列表

可能的原因有：

- 未啟用 USB 調試。參見啟用 USB 調試。
- USB 線只提供充電功能，沒有數據傳輸功能。

### 無權限錯誤

如果設備顯示「無權限」標籤，它可能與 android-udev包 收集的製造商/產品標識符不同。

例如，當設備使用定製 ROM，或者從 MTP 模式切換到 USB 連接模式、sideload 和/或 fastboot 模式時，就會發生這種情況。 用 lsusb 驗證實際設備標識符，並#添加 udev 規則。

### 守護進程出現權限不足報錯

如果在運行 adb 時出現以下報錯：

    E adb     : usb_libusb.cpp:571 failed to open device: Access denied (insufficient permissions)

請檢查你是否在 `adbusers` 用戶組中。

分類：​

- Android
- 使用「模板:風格」標記的頁面或章節

Android 調試橋
新增話題