ubuntu下连接手机首次使用adb devices 报错ADB server didn't ACK
shelll
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调试即可。