Ubuntu下adb的使用及常見問題處理

2021-01-11 新八氪

一、如何使用adb

1、adb工具的安裝

方案一:使用ubuntu系統自帶的安裝包

sudo apt-get install android-tools-adb

或者

sudo apt-get install adb

方案二:使用Android源碼編譯生成的adb文件

Android源碼編譯完成之後,會在編譯過的項目目錄下./out/host/linux-x86/bin/生成adb文件,需要將其拷貝到系統的/usr/bin目錄下,並更改權限。

sudo cp /home/apuser/code/out/host/linux-x86/bin/adb /usr/bin

sudo chmod a+x /usr/bin/adb

說明:這個adb文件也可以在android-sdk-linux下的platform-tools目錄下找到。

2、檢查是否安裝成功

在終端運行 adb help或者adb查看adb是否安裝成功。

adb help

或者

adb

正常情況下,可看到adb的版本信息,以及adb支持的相關指令和說明。

3、創建設備USB專用VID

mkdir~/.android

echo 0x1782 > ~/.android/adb_usb.ini

可以查看/home/apuser/.android/adb_usb.ini是否生成成功,且內容為0x1782

這個0x1782是設備的VID號,可以使用lsusb指令查詢自己設備的VID號是多少,如果是調試多個設備,可依次將設備的VID號添加到adb_usb.ini中

備註:展訊為0x1782,MTK為0x0e8d,高通為0x056c

4、將設備添加到規則列表中,到:/etc/udev/rules.d/51-android.rules命令:

cd /etc/udev/rules.d

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

添加

SUBSYSTEM=="usb",SYSFS{idVendor}=="1782", MODE="0666",GROUP="plugdev"

其中 1782 為展訊設備號,也可以通過lsusb 來查看所有 usb 設備。

說明:

1、展訊的設備號是1782,MTK的設備號是0e8d,高通660的設備號是056c,

其他平臺的可查找確認後,填寫到這裡。

2、如果沒有/etc/udev/rules.d/51-android.rules 文件,需要自己創建一下。

3、修改/etc/udev/rules.d/51-android.rules不需要重啟Linux機器,重新插拔一下設備就可以了。再次運行adb devices就可以看到你的設備已經連接。

5、重新插入設備

在命令窗口執行adb shell; adb devices

6. 到此為止, adb 可以使用

可以shell登錄手機,也可以出 log, logcate 具體命令還需要學習。

二、adb使用常見問題處理

1、no permissions (user in plugdev group; are your udev rules wrong?)問題的處理:

使用上文的步驟操作之後,大多數系統裡adb都可以使用,但在有些版本的adb或者系統中仍會報如下問題:

apuser@ubuntu2:~/adbtools$ adb devices

List of devices attached

faf80ac1 no permissions (user in plugdev group; areyour udev rules wrong?); see [http://....]

可使用一下解決方案,進行解決

解決方案:

setp 1: lsusb 找到你手機的usb地址

apuser@ ubuntu2:~/adbtools$ lsusb

Bus 002 Device 002: ID 1f75:0621 Innostor Technology Corporation

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 006: ID 0bda:58db Realtek Semiconductor Corp.

Bus 001 Device 005: ID 8087:0a2b Intel Corp.

Bus 001 Device 004: ID 138a:0097 Validity Sensors, Inc.

Bus 001 Device 003: ID18f8:0f99

Bus 001 Device 014: ID 19d2:ffb0 ZTE WCDMA Technologies MSM

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

他會列出來所有的usb 設備。如果試下找不到,那麼拔掉設備看下,哪了沒有了就是哪個。

setp2: 配置規則文件

apuser@ ubuntu2:~/adbtools$ sudo gedit /etc/udev/rules.d/51-android.rules

[sudo] password for apuser:

之後把這些文本copy 到編輯器裡面:

ATTR{idProduct}=="ffb0",SYMLINK+="android_adb", MODE="0660",GROUP="plugdev", TAG+="uaccess", SYMLINK+="android"

注意:ffb0 是查找到的手機設備的usb 的地址。

Bus 001 Device 014: ID 19d2:ffb0 ZTE WCDMATechnologies MSM

改成你的地址。

如果沒有/etc/udev/rules.d/51-android.rules 文件,麻煩自己創建一下。

setp3: 之後執行命令:

apuser@ ubuntu2:~/adbtools$ sudo usermod -a -G plugdev $(id -u -n)

apuser@ ubuntu2:~/adbtools$ sudo udevadm control --reload-rules

apuser@ ubuntu2:~/adbtools$ sudo service udev restart

apuser@ ubuntu2:~/adbtools$ sudo udevadm trigger

setp4: 之後重啟adb

apuser@ ubuntu2:~/adbtools$ adb kill-server

apuser@ ubuntu2:~/adbtools$ adb start-server

apuser@ ubuntu2:~/adbtools$ adb devices

List of devices attached

faf80ac1 unauthorized

2、???????????? no permissions沒有權限問題處理

apuser @ ubuntu2:~$adb devices

List of devices attached

???????????? no permissions

提示很明確,就是adb權限有問題,而且

???????????? no permissions

這樣的提示,說明使用的adb版本較低,最好使用高版本的adb,安裝Ubuntu系統自帶的adb可能會出現這種現象。如果adb版本比較高,就會出現如下提示:

faf80ac1no permissions……

使用adb shell 也會提示權限error

apuser@ ubuntu2:~$adb shell

error:insufficient permissions for device

根本原因是:adb server需要以root的權限啟動

臨時方法如下:

apuser@ubuntu2:~$sudo -s

[sudo]password for apuser:

root@ ubuntu2:~#adb kill-server; adb start-server

* daemon not running. starting it now *

* daemon started successfully *

apuser@ ubuntu2:~# exit

apuser @ ubuntu2:~$

再次執行adb shell就可以了。

該權限問題,可使用sudo啟動adb來解決,但不是根本解決之道,因為每次都要sudo來提高權限,太麻煩,而且如果使用的eclpse,或者idle來調試時還是要面對該該問題。

最好按本文第一部分的方法安裝adb。如果按本文第一部分安裝了adb,但還出現改問題,可使用which adb查看,當前使用的adb那個路徑下的adb.以確保使用正確的adb

3、如果需要調試多個設備,以下的添加方法可能更為合適

這個方案對於不出現user in plugdev group; are your udev rules wrong?問題的系統來說是可行,的,如果出現user in plugdev group; are your udev rules wrong?問題,就不用考慮了。

清空51-android.rules,添加如下一行,一勞永逸(需要測試好幾種設備,每次都添加一個會很麻煩)。

SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device", MODE="0666", GROUP="plugdev"

我並不是很清楚具體的含義,只是模仿10-vboxdrv.rules來寫的,這個是virtualbox的udev規則文件,因為名字開頭數字大文件中記錄的規則會覆蓋名字開頭數字小的文件中的規則,所以你需要儘可能設置的文件名大一些,51已經夠用了(我原來想寫在10-vboxdrv.rules,讓他們用一個文件,但是失敗了)

三、常用指令

adb kill-server

sudo udevadmcontrol --reload-rules

sudo service udevrestart

sudo udevadmtrigger

lsusb

可將這些指令寫入一個sh腳本中,配置完規則,或者要檢查USB設備時,直接執行該腳本,以提高效率。

相關焦點

  • 什麼是ADB工具,作為Android用戶如何使用它
    通過一組命令來處理這個程序,這也是我們今天文章的主題,但是在處理這些命令之前,讓我們先解釋一下什麼是ADB。這個程序與電腦搭配在一起來操作Android設備,特別是命令提示窗口,乍一看你會發現它的一組命令既可怕又複雜,但當你想深入了解程序的細節時,你會發現它非常有用。通過這個程序,你可以通過USB連接將手機和電腦連接起來,從而完全控制Android系統。
  • 安卓系統adb命令是幹什麼用的?安卓系統adb命令意思詳解
    安卓系統adb命令是什麼意思?安卓系統adb命令詳解。安卓系統是手機行業使用最廣泛的系統之一。安卓系統常見的adb命令介紹。  安卓系統常用adb命令:  1、顯示當前連接的設備:adb devices  2、安裝apk文件(必須保存和adb同目錄,*為apk文件名稱):adb install *.apk  3、安裝apk文件到sd卡(必須保存和adb同目錄,*為apk文件名稱):adb install -s *.apk
  • Adb使用教程,看了教程後你也是玩機達人啦
    很多同學刷機的時候總是很恐懼「用adb....」的教程,因為每當提起勇氣好好研究一番的時候,總是會出現這樣那樣的問題。恐懼源於無知,你對adb一無所知,拿起來就想用,當然是各種錯誤會追著你跑了今天小淺就帶大家入門adb,只要耐心看到底,簡單的問題再也不會出現了!那麼什麼是adb呢?
  • ADB工具包2020年最新版下載-TWRP-recovery界面使用adb sideload...
    並且有更加詳細的日誌輸出,方便我們看到我們操作的步驟內容對於高通新機的解鎖來說,舊版的ADB工具不再支持fastboot flashing unlock命令,會直接報錯或者輸出很多無用的信息,新版本ADB工具箱都可以完美解決這個問題。怎麼使用下載的ADB工具包呢?
  • [博客更新]Ubuntu 安裝本地 deb 包以及解決本地包的依賴問題
    前幾天 Ubuntu 18.04 發布了,我也第一時間安裝體驗了一把,由於自帶的那個火狐瀏覽器我並不喜歡,在谷歌官網下的 Chrome 安裝包也是 deb 格式的,這裡就順便記錄一下 Ubuntu 怎麼安裝 deb 包和修復依賴。
  • ubuntu虛擬機怎麼使用VirtualBox軟體增強功能?
    ubuntu虛擬機怎麼使用VirtualBox軟體增強功能安裝?使用windows系統的用戶如果也想使用ubuntu系統,但是又不捨得換掉windowsXP系統,那就在虛擬機裡安裝ubuntu系統就可以了,下面我們一起來看看吧1、選中ubuntu虛擬機,點擊上方的」啟動「按鈕,啟動虛擬機2、在」設備「下拉菜單中,點擊」安裝增強功能「按鈕:3、之後在虛擬機中會彈出」安裝增強功能「對話框, 點擊」run 「按鈕,
  • 修復Ubuntu 中的 「Unable to parse package file」 錯誤
    在基於 Ubuntu 和 Debian 的 Linux 發行版中處理 「Unable to parse package file」 錯誤以下是你需要做的。仔細查看 Ubuntu 報錯文件的名稱和路徑。Reading package lists… Error!
  • Ubuntu 12.04系統配置教程
    提示:如果覺得滑鼠在此遭遇不幸,來回「旅行」,可使用下面的快捷鍵,儘量減少這個蛋疼變化帶來的痛苦:Alt+空格鍵:彈出標題欄控制菜單,然後按下下面鍵:X – 最大化/最小化N – 最小化資料: OMGUBUNTU 介紹如何通過 PPA 安裝 Ubuntu TV@http://www.omgubuntu.co.uk/2012/01/how-to-install-ubuntu-tv-right-now-via-ppa IMCN:詳解 Ubuntu TV-TV for human beings我只是想說:Canonical 在桌面和伺服器上布下了一張
  • 關於ubuntu Grub圖形化管理工具
    關於ubuntu Grub圖形化管理工具 我們要了解ubuntu Grub圖形化管理工具「StartUp Manager「。Grub可用於選擇作業系統分區上的不同內核,也可用於向這些內核傳遞啟動參數。
  • ubuntu下安裝openocd ,利用Openocd + Jlink 調試ARM
    /configure --enable-jlink,此時配置成功6.make 編譯7.make install以上這些步驟完成之後,如果我們要使用openocd,還需要進行配置,那就是編寫一個配置文件openocd.cfg配置完之後。
  • 用Python 實現手機自動答題,這下百萬答題遊戲誰也玩不過我!
    針對上面的問題,我們大概想了下思路:1、 讓電腦能夠控制手機,一般都是利用usb把手機連接到電腦上。然後藉助ADB實現對手機的調控,包括點觸、滑動、截圖等等功能。如果你希望你的程序能夠與平臺無關的話,這個模塊是尤為重要的;pillow庫中Image模塊是在Python PIL圖像處理中常見的模塊,對圖像進行基礎操作的功能基本都包含於此模塊內;Pytesseract模塊是文字識別模塊;webbrowser是實現瀏覽器的操作;time庫實現等待下一題之間的間隔時間等待。
  • 用Python 實現手機自動答題,這下百萬答題遊戲誰也玩不過我
    3、 電腦知道了問題後如何藉助網絡搜答案呢?針對上面的問題,我們大概想了下思路:1、 讓電腦能夠控制手機,一般都是利用usb把手機連接到電腦上。然後藉助ADB實現對手機的調控,包括點觸、滑動、截圖等等功能。
  • 升級Ubuntu Linux 內核的幾種不同方法
    方法 1 - 使用 dpkg 升級 Linux 內核(手動方式)這個方法可以幫助你從kernel.ubuntu.com網站手動下載可用的最新 Linux 內核。如果你打算安裝最新版(而不是穩定版或者正式發布版),那這種方法對你會很有用。從以上連結下載 Linux 內核版本。編寫這個指南的時候,最新的可用版本是 5.0-rc1,最新的穩定版是 v4.20。
  • 如何在Linux Ubuntu中安裝IntelliJ IDEA最新版
    需要做的是打開終端(Ctrl + Alt + T)並逐個運行以下命令:  sudo add-apt-repository ppa:ubuntuhandbook1/apps  sudo apt-get update  sudo apt-get install intellij-idea-community
  • ubantu 不啟動桌面_ubuntu 啟動圖形服務而不啟動桌面 - CSDN
    上一次無法進入桌面是在輸入用戶名和密碼後,卡死循環,是因為環境變量修改出問題了。只需要 ctrl+alt+f6 進入控制臺 修改環境變量配置文件 etc/profile ,刪除錯誤的部分,保存退出即可。
  • Ubuntu離線安裝Broadcom無線網卡驅動,就這麼簡單!
    Ubuntu官方文檔也有說明,建議使用sudo apt-get並添加相應PPA安裝驅動。但是!在沒有網的情況下,是不能輕易使用apt-get的!因此本文就來介紹一下如何在mac電腦上離線安裝Ubuntu無線驅動。
  • 當貝投影F3使用攻略 投影儀如何打開ADB調試功能?
    不過需要注意的是,目前來說很多廠商在用戶對系統進行修改之後會中斷官方保修服務,所以各位在使用該功能之前還是要仔細考慮。ADB即Android 調試橋,是一種功能多樣的命令行工具,可讓您與設備進行通信。adb 命令便於執行各種設備操作(例如安裝和調試應用),並提供對Unix shell(可用來在設備上運行各種命令)的訪問權限。
  • Linux下scp命令使用教程
    首先我們啟動兩臺ubuntu系統的設備,並且確保兩臺設備都開啟了ssh遠程登錄,且兩臺設備能互相通信。然後我們介紹第一條命令將本地的目錄上傳的遠程伺服器目錄上。執行命令"scp  -r /opt/test root@192.168.2.105:/opt"。本條命令意思為將本地的目錄/opt/test上傳到遠程192.168.2.105的opt目錄下。