2012-02-19 53 views
8

Các vấn đề khác có thể gặp phải khi gỡ lỗi adb dưới ubuntu linux.Cách kết nối USB thiết bị Android với adb trong ubuntu

Triệu chứng là tính khả dụng của các thiết bị Android được kết nối usb, ví dụ: với nhật thực. Bạn có thể kiểm tra điều này với

adb usb 

Khi bạn nhận được

error: insufficient permissions for device 

bạn có thể chạy vào cùng một vấn đề như tôi. Tuy nhiên, tôi tìm thấy trên internet một số giải pháp tối ưu phụ hoặc ít hơn

Ý tưởng cơ bản là bắt đầu adb làm gốc. Các giải pháp tôi thấy là cồng kềnh.

Một đề xuất là bắt đầu adb trên sudo. Một đề xuất khác là thiết lập tập lệnh khởi động trong /etc/init.d

Giải pháp của tôi là cấp cho adb quyền để bắt đầu bằng root. Để làm như vậy, chuyển sang gốc

sudo bash 
chown root adb 
chmod ug+s-w adb 

cuồng tín an ninh có thể đề nghị

sudo chown root adb 
sudo chmod ug+s-w adb 

Nếu adb vẫn đang chạy bạn cần phải giết con quỷ để bắt đầu với sự cho phép gốc

adb kill-server 

Khi tất cả mọi thứ đã đi ngay

adb usb 

nên trở

restarting in USB mode 

nếu không, hãy thử lsusb kiểm tra xem thiết bị của bạn đã được kết nối

+0

Xin đừng làm điều này! Các tác giả của chương trình adb không có ý định cho phía máy phát triển của nó được chạy dưới dạng root, mà là sử dụng quy tắc udev để chỉ cho phép truy cập vào các loại thiết bị được liệt kê. Tin tưởng một chương trình nhiều hơn tác giả của nó đề nghị là một ý tưởng tồi! Ngoài ra, bỏ phiếu để đóng vì không thực sự là một câu hỏi đã nêu, trong khi chủ đề đã được bao phủ nhiều lần. –

Trả lời

11

Google khuyến cáo cách để đối phó với các điều khoản thiết bị ADB là tạo ra một quy tắc udev đó sẽ thiết lập quyền thích hợp trên thiết bị thứ điều tra.

Theo http://developer.android.com/tools/device.html

Nếu bạn đang phát triển trên Ubuntu Linux, bạn cần phải thêm một quy tắc udev tập tin có chứa một cấu hình USB đối với từng loại thiết bị mà bạn muốn sử dụng để phát triển. Trong tệp quy tắc, mỗi thiết bị nhà sản xuất được xác định bằng ID nhà cung cấp duy nhất, như được chỉ định bởi thuộc tính ATTR {idVendor}. Để biết danh sách ID nhà cung cấp, hãy xem ID nhà cung cấp USB, bên dưới. Để thiết lập phát hiện thiết bị trên Ubuntu Linux: Đăng nhập dưới dạng root và tạo tệp này: /etc/udev/rules.d/51-android.rules. Sử dụng định dạng này để thêm từng nhà cung cấp đến tập tin: SUBSYSTEM == "usb", ATTR {idVendor} == "0bb4", MODE = "0666", GROUP = "plugdev"

Trong ví dụ này, ID nhà cung cấp dành cho HTC. Chỉ định MODE chỉ định quyền đọc/ghi và GROUP xác định nhóm Unix nào sở hữu nút thiết bị. Lưu ý: Cú pháp quy tắc có thể hơi khác nhau tùy thuộc vào môi trường của bạn. Tham khảo tài liệu udev cho hệ thống của bạn nếu cần.Để biết tổng quan về cú pháp quy tắc, hãy xem hướng dẫn này để viết các quy tắc udev. Bây giờ thực hiện: chmod a + r /etc/udev/rules.d/51-android.rules Khi cắm vào qua USB, có thể xác minh rằng thiết bị của bạn được kết nối bằng cách thực hiện các thiết bị adb từ nền tảng SDK-tools/directory của bạn. Nếu được kết nối, bạn sẽ thấy tên thiết bị được liệt kê dưới dạng "thiết bị".

2

sử dụng sau ba lệnh tác phẩm của mình cho tôi

sudo bash 
adb kill-server 
adb usb 
+1

-1 Không chạy adb dưới dạng root –

Các vấn đề liên quan