Sửa lỗiĐăng ngày: 7 phút đọc

Chrome không nhận thiết bị Android trong cửa sổ USB (WebUSB): cách sửa

Điện thoại Android không hiện trong cửa sổ chọn USB của Chrome? Kiểm tra lần lượt cáp, gỡ lỗi USB, chế độ USB, adb server, driver WinUSB, udev trên Linux và chính sách.

Khi Chrome không nhận thiết bị Android trong cửa sổ chọn USB (WebUSB), nguyên nhân gần như luôn là một trong sáu: cáp chỉ sạc, gỡ lỗi USB đang tắt, điện thoại ở chế độ "Chỉ sạc", một chương trình khác đang giữ thiết bị, driver trên Windows không phải WinUSB, hoặc thiếu quy tắc udev trên Linux. Hãy làm theo đúng thứ tự dưới đây, mỗi bước chưa tới một phút. Các bước áp dụng cho mọi trang dùng WebUSB, kể cả ADBKit.

Bước 1: Cáp, cổng và mở khoá

  • Dùng cáp dữ liệu. Nhiều cáp đi kèm củ sạc chỉ dẫn điện; máy sạc được nhưng máy tính im lặng thì đổi cáp.
  • Cắm thẳng vào máy tính. Hub, màn hình và dock đôi khi không nhận ra điện thoại.
  • Mở khoá điện thoại và giữ màn hình sáng; một số máy chỉ mở giao diện ADB sau khi mở khoá.

Bước 2: Gỡ lỗi USB phải đang bật

WebUSB chỉ liệt kê giao diện ADB, và Android chỉ mở giao diện đó khi gỡ lỗi USB đang bật. Máy tắt gỡ lỗi vẫn hiện với hệ điều hành như máy ảnh hoặc ổ lưu trữ, nhưng cửa sổ chọn của Chrome trống. Kiểm tra Cài đặt › Tuỳ chọn nhà phát triển › Gỡ lỗi USB; nếu chưa có mục này, xem cách bật gỡ lỗi USB trên Android.

Bước 3: Kiểm tra chế độ kết nối USB

Kéo thanh thông báo xuống và chạm vào "Đang sạc thiết bị này qua USB". Một số máy, nhất là Samsung, Huawei và Xiaomi đời cũ, chỉ công bố giao diện ADB ở chế độ Truyền tệp / MTP thay vì Chỉ sạc. Chuyển chế độ rồi xem lại.

Bước 4: Chương trình khác đang giữ thiết bị

Mỗi lúc chỉ một chương trình chiếm được giao diện ADB. Nếu adb, Android Studio, scrcpy, Vysor hoặc tab ADBKit khác đã giữ nó, Chrome có thể liệt kê máy nhưng mở thất bại, hoặc trên Windows không liệt kê.

adb kill-server

Rồi đóng Android Studio, công cụ mirror và các tab khác đang mở thiết bị, thử lại. Chi tiết ở sửa lỗi ADB device busy hoặc unauthorized.

Bước 5: Windows cần driver WinUSB

Trên Windows, Chrome chỉ giao tiếp được với giao diện USB đang gắn driver chung WinUSB. Google USB Driver (cài qua Android SDK Manager) và đa số driver của hãng (Samsung, Xiaomi, OnePlus) gắn giao diện ADB vào WinUSB, nên adb và Chrome dùng song song được. Vài gói driver OEM cũ lại cài driver riêng, khi đó máy không bao giờ hiện trong cửa sổ chọn.

Cách kiểm tra:

  1. Mở Device Manager khi điện thoại đã cắm và bật gỡ lỗi.
  2. Tìm trong Android Device, Universal Serial Bus devices, Portable Devices hoặc mục của hãng.
  3. Nhấp phải vào mục giao diện ADB, chọn Properties › Driver và đọc nhà cung cấp. WinUSB hoặc Google, Inc. là ổn; dấu cảnh báo vàng hoặc thiết bị không xác định nghĩa là chưa có driver.

Nếu driver thiếu hoặc sai, cài Google USB Driver hoặc driver mới nhất của hãng rồi cắm lại máy. Windows 11 đôi khi tự gắn WinUSB mà không cần cài gì.

Warning: Zadig có thể ép WinUSB lên bất kỳ giao diện nào và chạy được với ADB. Nhưng chọn nhầm giao diện (ví dụ giao diện lưu trữ MTP) sẽ làm hỏng truyền tệp trong Windows Explorer cho đến khi bạn khôi phục driver. Coi đây là phương án cuối, ghi lại driver gốc trước, và đừng dùng trên máy không thể cấu hình lại.

Bước 6: Linux cần quyền udev

Linux cho Chrome thấy điện thoại, nhưng thiếu quyền thì Chrome không mở được: cửa sổ chọn liệt kê máy rồi báo lỗi. Tạo tệp quy tắc cấp quyền:

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

Thêm một dòng cho mỗi hãng. Với thiết bị Google và Pixel (vendor 18d1):

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

Tìm vendor ID bằng lsusb (Samsung 04e8, Xiaomi 2717, OnePlus 2a70). Rồi nạp lại:

sudo udevadm control --reload-rules
sudo udevadm trigger

Đảm bảo tài khoản của bạn thuộc nhóm plugdev (groups $USER). Gói android-udev hoặc android-sdk-platform-tools-common đã có sẵn quy tắc này. Chrome bản Snap hoặc Flatpak có thể bị sandbox chặn USB; bản .deb của Google an toàn hơn.

Bước 7: macOS, Chrome OS và máy ảo

macOS không cần driver; thiết bị hiện ngay khi bật gỡ lỗi. Nếu không, thủ phạm thường là cáp hoặc adb server đang chạy.

Chromebook hỗ trợ WebUSB, nhưng điện thoại cắm vào có thể bị container Linux hoặc hệ thống Android chiếm trước; ngắt khỏi chúng rồi thử lại.

Máy ảo khó nhất: Chrome trong VM chỉ thấy điện thoại nếu hypervisor chuyển tiếp USB vào, và passthrough thường rớt kết nối khi Android nhận diện lại sau khi bạn chạm Allow. Nếu được, chạy trình duyệt trên máy thật.

Bước 8: Trình duyệt, HTTPS và chính sách

  • Firefox và Safari không có WebUSB. Dùng Chrome, Edge, Brave, Opera hoặc trình duyệt Chromium khác trên máy tính; trình duyệt di động cũng không được hỗ trợ.
  • Bắt buộc HTTPS. WebUSB chỉ chạy trong ngữ cảnh bảo mật; trang qua http:// thường (ngoài localhost) không hiện được cửa sổ chọn.
  • Chính sách doanh nghiệp. Trên máy công ty, chính sách DefaultWebUsbGuardSetting có thể chặn hẳn WebUSB, còn WebUsbBlockedForUrls / WebUsbAllowDevicesForUrls giới hạn trang và thiết bị được phép. Xem tại chrome://policy; chỉ quản trị viên đổi được.
  • Quyền của trang. Nếu từng bấm Block, Chrome sẽ nhớ. Nhấp ổ khoá trên thanh địa chỉ, mở Site settings và đặt lại quyền USB.
  • Tiện ích mở rộng. Tiện ích bảo mật đôi khi phá cửa sổ chọn; thử trong cửa sổ ẩn danh.

Điện thoại hiện ra nhưng không thấy hộp thoại "Cho phép gỡ lỗi USB"

Nếu cửa sổ chọn liệt kê máy, bạn chọn xong và trang cứ chờ uỷ quyền mãi, vấn đề đã chuyển từ USB sang ADB. Hộp thoại này do Android vẽ:

  1. Mở khoá và giữ màn hình sáng; hộp thoại không hiện trên màn hình khoá.
  2. Rút cáp, cắm lại rồi kết nối lại từ trang web.
  3. Vẫn không thấy thì mở Tuỳ chọn nhà phát triển › Thu hồi uỷ quyền gỡ lỗi USB, rồi cắm lại.
  4. Máy bị adb devices báo unauthorized cũng cùng nguyên nhân: đã bấm Từ chối hoặc uỷ quyền cũ bị lỗi; thu hồi và kết nối lại là xong.

Tích Luôn cho phép từ máy tính này để khỏi hỏi lại.

Thông báo trạng thái của ADBKit ứng với từng nguyên nhân

ADBKit hiển thị từng giai đoạn kết nối, chỉ ra bước cần quay lại.

Thông báo trong ADBKitXem ở đâu
"This browser doesn't support WebUSB"Bước 8: đổi sang trình duyệt Chromium trên máy tính
"Open this page over HTTPS or localhost"Bước 8: trang không ở ngữ cảnh bảo mật
"No device was selected"Cửa sổ chọn trống hoặc đã bị đóng: Bước 1 đến 6
"Browser permission to access the device was denied"Bước 8: đặt lại quyền USB của trang
"The device is busy in another tab or application"Bước 4: adb kill-server và đóng công cụ khác
"Waiting for device authorization…" kéo dài mãiMục hộp thoại Allow ở trên
"The device declined the authorization request"Bạn đã chạm Deny; thu hồi uỷ quyền rồi kết nối lại
"The connection to the device was lost"Bước 1: cáp hoặc cổng bị rớt

Để kết nối trong ADBKit: mở không gian làm việc bằng Chrome hoặc Edge, bấm Connect device, chọn điện thoại trong cửa sổ USB rồi chạm Allow trên máy. Trạng thái dưới nút đi từ "Requesting browser permission" sang "Opening device transport", "Waiting for device authorization" rồi "Connected"; dừng ở đâu thì cách sửa nằm ở đó. ADBKit nói chuyện trực tiếp với điện thoại từ tab, không qua máy chủ. Đọc thêm WebADB và WebUSB là gì và điều khiển Android từ trình duyệt.