ubuntu下連接手機首次使用adb devices 報錯ADB server didn’t ACK
adb devices
* daemon not running; starting now at tcp:5037
ADB server didn't ACK
Full server startup log: /tmp/adb.1000.log
Server had pid: 52986
--- adb starting (pid 52986) ---
04-03 17:23:23.977 52986 52986 I adb : main.cpp:63 Android Debug Bridge version 1.0.41
04-03 17:23:23.977 52986 52986 I adb : main.cpp:63 Version 35.0.2-12147458
04-03 17:23:23.977 52986 52986 I adb : main.cpp:63 Installed as /home/xxxx/xunyan_ubuntu/data1_u/software/platform-tools/adb
04-03 17:23:23.977 52986 52986 I adb : main.cpp:63 Running on Linux 6.8.0-57-generic (x86_64)
04-03 17:23:23.977 52986 52986 I adb : main.cpp:63
04-03 17:23:23.978 52986 52986 I adb : auth.cpp:416 adb_auth_init...
04-03 17:23:23.978 52986 52986 I adb : auth.cpp:152 loaded new key from '/home/xxxx/.android/adbkey' with fingerprint xxxxxxxxxxxxxxxxxxxxxxxxxxxx
04-03 17:23:23.978 52986 52986 I adb : auth.cpp:391 adb_auth_inotify_init...
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:170 AdbUdpSocket fd=13
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:170 AdbUdpSocket fd=17
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:274 SetMulticastOutboundInterface for index=2
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:533 bind endpoint=0.0.0.0:5353
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:274 SetMulticastOutboundInterface for index=2
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:558 bind endpoint=[0000:0000:0000:0000:0000:0000:0000:0000]:5353 scope_id=0
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:170 AdbUdpSocket fd=18
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:170 AdbUdpSocket fd=19
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:274 SetMulticastOutboundInterface for index=4
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:533 bind endpoint=0.0.0.0:5353
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:274 SetMulticastOutboundInterface for index=4
04-03 17:23:23.978 52986 52986 I adb : udp_socket.cpp:558 bind endpoint=[0000:0000:0000:0000:0000:0000:0000:0000]:5353 scope_id=0
04-03 17:23:24.978 52986 52986 E adb : usb_libusb.cpp:598 failed to open device: Access denied (insufficient permissions)
04-03 17:23:24.979 52986 52986 I adb : transport.cpp:1153 xxxxxxxxx: connection terminated: failed to open device: Access denied (insufficient permissions)* failed to start daemon
adb: failed to check server version: cannot connect to daemon
這個錯誤表明 ADB 無法啟動守護進程(adb daemon),主要原因是 USB 設備訪問權限不足(Access denied (insufficient permissions))。
-
檢查 USB 設備是否被識別
lsusb
Bus 001 Device 009: ID 2a45:0c01 Meizu Corp. MEIZU 18s Pro # 重點是 2a45:0c01 -
創建 udev 規則(永久解決權限問題)
18是自定義名字,只要和rules.d文件夾下的rules不同明即可
sudo gedit /etc/udev/rules.d/18-android.rules
xxx-android.rules的內容如下,將上面得到的 2a45:0c01 放到下面的ATTR中
SUBSYSTEM=="usb", ATTR{idVendor}=="2a45", ATTR{0c01}=="0c01", MODE="0666", GROUP="plugdev"
保存后運行
sudo chmod a+r /etc/udev/rules.d/18-android.rules # 確保規則可讀
sudo udevadm control --reload-rules # 重新加載規則
sudo udevadm trigger # 立即生效
-
將當前用戶加入 plugdev 組
sudo usermod -aG plugdev $USER
-
拔掉數據線重新插上,然后手機上彈窗允許USB調試即可。