Android không có sự cho phép


33

Tôi đang cố gắng sử dụng adb từ máy Ubuntu (+ Cinnamon). Vấn đề là tôi nhận được thông báo sau từ các thiết bị adb :

List of devices attached
TA8830OIVO  no permissions

Trong đó TA8830OIVO là thiết bị Motorola G của tôi.

Tôi đã thay đổi quy tắc Android trong /etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76",
MODE="0666", GROUP="plugdev", SYMLINK+="android_adb", OWNER="axel"

Tôi cũng đã khởi động lại dịch vụ udev và adb được cài đặt trên máy tính xách tay cá nhân của tôi Tôi là người dùng duy nhất có tất cả các quyền riêng tư cần thiết (nhóm plugdev, v.v.).

Có cách nào để chạy adb mà không cần gọi sudo không?


1
Khởi động lại udev và sudo udevadm triggerkhông làm việc cho tôi. Tôi đã phải khởi động lại máy tính và sau đó nó hoạt động tốt
Rafael Xavier

Câu trả lời:


65

Thay đổi chế độ USB trong điện thoại của bạn thành Truyền tệp. Đó là những gì làm việc cho tôi.


Điều ngược lại cũng đúng với tôi: Gỡ lỗi USB không hoạt động trong chế độ truyền tệp trên một số thiết bị cũ.
Miha_x64

1
Cập nhật: chỉ cần lưu ý rằng trong điện thoại của tôi (android one), gỡ lỗi usb cũng có thể được bật trong khi ở chế độ sạc trong Cài đặt dành cho nhà phát triển.
NuttLoose

2
Thay đổi chế độ chuyển tập tin làm việc cho tôi. Trên Android 7
Abrar

Kindle Fire 8 2019 - "Chế độ MTP" có cấu hình USB trong Tùy chọn nhà phát triển.
Bill McGonigle

Tôi đã thay đổi và sau đó tôi được nhắc trên thiết bị cho phép gỡ lỗi usb: D
Maxwell sc

27
  1. Hãy nhớ chạy sudo udevadm triggerđể áp dụng các thay đổi (hoặc khởi động lại, nhưng đâu là niềm vui trong đó).
  2. Thay vì viết các quy tắc của riêng bạn, hãy sử dụng https://github.com/M0Rf30/android-udev-rules
  3. Đảm bảo bạn có phiên bản ADB mới nhất (1.0,35 102d0d1e73de-android). Những cái trước đó không hoạt động với USB-C cho tôi.

Cảm ơn nhưng đó là một câu hỏi cũ. Tôi đã chuyển sang Mac 2 năm trước. Tôi thấy thật ngu ngốc khi làm những thứ như lsusb và sau đó sửa đổi các quy tắc khi nó nên được thực hiện tự động ... Tôi đã từ bỏ sau rất nhiều năm sử dụng Ubuntu. Không thể tìm thấy một hệ thống Linux Desktop tốt.
shadox

1
Câu hỏi là 6 tháng tuổi và vẫn còn hiệu lực cho hậu thế. Cách đây 1 năm, tôi đã bỏ OS X sau khi ngoại tình 3 năm và quay lại Linux vì lý do tương tự;). Linux có những phần khiến nó bực bội nhưng có một số lượng tương tự cần thiết trong OS X nếu bạn sử dụng homebrew + zsh + iTerm2. Sự khác biệt là những thứ đó nếu chủ yếu là các phiên bản FOSS nguồn đóng hoặc lỗi thời nhưng với GUI và UX đẹp (đối với hầu hết các phần). Sử dụng các quy tắc từ repo làm cho nó chủ yếu là bước thiết lập một lần. Xem xét các arcana để có được SDK Android hoạt động theo cách lành mạnh, nó mới chập chững biết chơi.
zamber

1
Chạy cái này và service udev restartkhông làm việc cho tôi. Tôi đã phải khởi động lại máy tính và sau đó nó hoạt động tốt.
Rafael Xavier

Trên Ubuntu 16.04 thiết lập các quy tắc udev, việc thay đổi chế độ usb trên điện thoại thành chuyển tập tin hoạt động như một cơ duyên. Không cần khởi động lại.
Gautam

Trên Ubuntu 16.04 với Pixel 2, thêm các quy tắc từ gitbub của điểm 2 hoạt động mà không cần chuyển sang chế độ truyền tệp.
Mike Hanafey

3

Nếu bạn khởi động lại máy chủ ADB bằng sudo, nó sẽ hoạt động.

sudo adb kill-server
sudo adb start-server

0

Xác định chức năng phân lớp tùy chỉnh:

task _adb_restart {
def adb = android.getAdbExe().toString()
group '__custom'
  doLast {
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' kill-server'
    }
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' devices'
    }
  }
}

0

Giải pháp tốt nhất và điều làm việc tốt hơn với tôi là cài đặt adbtừ gói Ubuntu. Điều này cung cấp cho bạn một bộ udevquy tắc mặc định do cộng đồng duy trì cho tất cả các thiết bị Android.

thí dụ:

$ sudo apt-get install adb

0

Đối với Amazon Fire OS 8, HĐH dựa trên Android, bạn có thể truy cập "Cài đặt> Tùy chọn thiết bị> Tùy chọn nhà phát triển". Bạn có thể cần phải kích hoạt nó .

Đảm bảo "Gỡ lỗi USB" được bật (trong trường hợp của bạn là như vậy).

Sau đó chuyển đến "Mạng> Chọn cấu hình USB". Chọn "MTP (Giao thức truyền phương tiện)". Điều này cho phép máy tính gửi tập tin qua lại.


0

xóa gói adb được cài đặt qua apt

$sudo apt remove adb

tải xuống adb mới nhất từ https://developer.android.com/studio/release/pl platform-tools

đặt đường dẫn đến các công cụ nền tảng (tốt hơn là đặt hai dòng này vào tệp ~ / .bashrc)

export PATH= /<path-to-android-sdk-folder>/android-sdk/tools/bin<br>
export PATH= /<path-to-android-sdk-folder>/android-sdk/platform-tools

chạy

$source ~/.bashrc

kiểm tra đường dẫn adb

$which adb

bắt đầu adb trong sudo (tôi cần đưa đường dẫn tuyệt đối đến adb khi chạy trong sudo)

$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb kill-server
$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb start-server
$adb shell

LÀM XONG.
nó hoạt động không phân biệt chế độ USB (MIDI, truyền tập tin, sạc) của điện thoại Android. Nó hoạt động trong tất cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.