안드로이드 adb 권한 없음


33

Ubuntu (+ Cinnamon) 컴퓨터에서 adb를 사용하려고합니다. 문제는 adb 장치 에서 다음 메시지를 수신한다는 것입니다 .

List of devices attached
TA8830OIVO  no permissions

TA8830OIVO는 Motorola G 장치입니다.

/etc/udev/rules.d/51-android.rules 에서 안드로이드 규칙을 변경했습니다.

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

또한 udev 서비스와 adb를 개인 랩톱에 설치하고 다시 시작하여 필요한 모든 권한 (plugdev 그룹 등)을 가진 유일한 사용자입니다.

sudo 를 호출하지 않고 adb를 실행하는 방법이 있습니까?


1
udev를 다시 시작 sudo udevadm trigger했지만 작동하지 않았습니다. 나는 컴퓨터를 다시 시작했고 그것은 잘 작동
라파엘 자비를

답변:


65

휴대폰의 USB 모드를 파일 전송으로 변경하십시오. 그것이 나를 위해 일한 것입니다.


그 반대의 경우도 마찬가지입니다. 일부 오래된 장치에서 파일 전송 모드 중에는 USB 디버깅이 작동하지 않습니다.
Miha_x64

1
업데이트 : 방금 내 전화 (안드로이드)에서 개발자 설정의 충전 모드에서 USB 디버깅을 활성화 할 수 있음을 알았습니다.
NuttLoose

2
파일 전송 모드로 변경하면 나에게 도움이되었습니다. 안드로이드 7
Abrar

Kindle Fire 8 2019-개발자 옵션의 USB 구성에있는 "MTP 모드"
Bill McGonigle

변경 한 다음 USB 디버깅을 허용하라는 메시지가 장치에 표시되었습니다. D
Maxwell sc

27
  1. sudo udevadm trigger변경 사항을 적용하기 위해 실행해야합니다 (또는 재부팅하지만 재미있는 부분은 어디입니까).
  2. 자신의 규칙을 작성하는 대신 https://github.com/M0Rf30/android-udev-rules를 사용 하십시오.
  3. 최신 ADB 버전 (1.0.35 102d0d1e73de-android)이 있는지 확인하십시오. 이전 버전은 USB-C에서 작동하지 않았습니다.

고마워하지만 좀 오래된 질문입니다. 2 년 전에 Mac으로 전환했습니다. lsusb 와 같은 작업을 수행하고 자동으로 수행해야 할 때 규칙을 수정 하는 것이 어리석은 것을 발견했습니다 ... 수년 동안 우분투를 사용한 후에 포기했습니다. 괜찮은 리눅스 데스크탑 시스템을 찾을 수 없습니다.
shadox

1
이 질문은 6 개월이되었지만 여전히 후손에게도 유효합니다. 1 년 전 3 년 후에 OS X를 덤프하고 비슷한 이유로 Linux로 돌아갔습니다.). Linux에는 실망스러운 부분이 있지만 homebrew + zsh + iTerm2를 사용하는 경우 OS X에도 비슷한 양의 땜질이 필요합니다. 차이점은 대부분 폐쇄 소스이거나 FOSS의 오래된 버전이지만 GUI와 UX는 (대부분) 훌륭하다는 것입니다. 리포지토리의 규칙을 사용하면 대부분 일회성 설정 단계가됩니다. 안드로이드 SDK가 미친듯한 방식으로 작동하도록하는 아카 나를 고려하면 유아 놀이입니다.
zamber

1
이것을 실행하고 service udev restart나를 위해 작동하지 않았습니다. 컴퓨터를 다시 시작한 다음 제대로 작동했습니다.
Rafael Xavier

우분투 16.04에서 udev 규칙을 설정하면 전화의 USB 모드를 파일 전송으로 변경하는 것이 매력처럼 작동했습니다. 다시 시작할 필요가 없습니다.
Gautam

우분투 16.04에서 Pixel 2를 사용하면 포인트 2의 gitbub에서 규칙을 추가하면 파일 전송 모드로 들어 가지 않아도 작동합니다.
Mike Hanafey


0

사용자 정의 gradle 기능을 정의하십시오.

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

최상의 솔루션과 나에게 더 효과적인 것은 adbUbuntu 패키지에서 설치 하는 것입니다. udev모든 Android 기기에 대해 커뮤니티에서 유지 관리하는 기본 규칙 세트를 제공합니다.

예:

$ sudo apt-get install adb

0

Android 기반 OS 인 Amazon Fire OS 8의 경우 "설정> 디바이스 옵션> 개발자 옵션"으로 이동할 수 있습니다. 활성화 해야 할 수도 있습니다 .

"USB 디버깅"이 켜져 있는지 확인하십시오 (필요한 경우).

그런 다음 "네트워킹> USB 구성 선택"으로 이동하십시오. "MTP (Media Transfer Protocol)"를 선택하십시오. 이렇게하면 컴퓨터에서 파일을주고받을 수 있습니다.


0

apt를 통해 설치된 adb 패키지 제거

$sudo apt remove adb

https://developer.android.com/studio/releases/platform-tools 에서 최신 adb를 다운로드
하십시오.

플랫폼 도구의 경로를 설정하십시오 (이 두 줄을 ~ / .bashrc 파일에 넣으십시오)

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

운영

$source ~/.bashrc

adb 경로 확인

$which adb

sudo에서 adb를 시작하십시오 (sudo에서 실행할 때 adb에 절대 경로를 제공해야했습니다)

$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

끝난.
안드로이드 폰의 USB 모드 (MIDI, 파일 전송, 충전)에 관계없이 작동합니다. 그것은 모두 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.