adb devices 명령이 작동하지 않음


86

Ubuntu 10.10 64 비트를 실행하고 있습니다. Android Debug Bridge 버전 1.0.26과 함께 ia32-libs가 설치되어 있습니다.

내 문제 :

  1. adb devices>>> ???????????? 권한 없음
  2. sudo adb devices >>>> sudo : adb : 명령을 찾을 수 없습니다.
  3. adb shell >>> 오류 : 장치에 대한 권한이 부족합니다.

나는 이것들이 모두 관련이 있다고 생각합니다. 관련 정보는 다음과 같습니다.

$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools

$ which adb
/opt/android-sdk-linux_x86/platform-tools/adb

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions

$ sudo adb devices
sudo: adb: command not found

$ adb shell
error: insufficient permissions for device

CM6.1을 실행하는 루팅 된 Moto Droid와 CM7 기반 ROM을 실행하는 루팅 된 G-Tab에서 동일한 결과를 얻습니다.

다음 관련 게시물을 검토했습니다.

대부분의 (전부는 아님) 제안을 시도했지만 문제를 해결할 수 없었습니다. 내가 시도하지 않은 것은 부적절 해 보였다. 몇 가지 팁을 더 주시면 계속 문제를 해결하겠습니다.

내가 시도하지 않은 한 가지는 /etc/udev/rules.d/70-android.rules를 편집하는 것입니다. 그게 문제 일 가능성이 있습니까? "sudo : adb : command not found"가 어떻게 발생하는지 알 수 없습니다. 내 문제가 모두 관련이있는 것은 아닐 수도 있습니다. 어쨌든,이 시점에서 나는 경로 문제가 있거나 다른 게시물에서 논의 된 다른 일반적인 문제가 있다고 믿지 않기 때문에 다른 사람들의 의견이 필요하다고 생각합니다.

편집 : EboMike 및 RivieraKid 덕분에 해결 되었습니다. 이것은 실제로 두 가지 다른 문제였습니다.

  1. 위의 항목 # 2 (sudo : adb : command not found)는 다음과 같이 심볼릭 링크를 만들어 해결되었습니다.

    $ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
    

    그러면 EboMike가 제안한대로이 솔루션을 사용할 있었습니다. 내 Moto Droid에 필요했습니다. ( 그러나 내 Viewsonic G-Tablet에는 adb를 sudo로 실행할 필요 가 없습니다 .)

  2. 다른 두 항목은 RivieraKid가 제안한대로 udev 규칙을 구현하여 해결되었습니다 (이 링크에서 ).



항목 # 1은 정말 도움이되었습니다. 항목 # 2에 대해 확실하지 않음
Francisco Quintero

답변:


87

내가 시도하지 않은 한 가지는 /etc/udev/rules.d/70-android.rules를 편집하는 것입니다. 그게 문제 일 가능성이 있습니까?

그렇게하지 않은 특별한 이유가 있습니까? 질문에 답하려면-예! udev 규칙은 Ubuntu에 장치가 무엇인지 알려주고 사용자 공간 도구가 장치에 액세스 할 수 있도록합니다.

지침 을 올바르게 따르지 않으면 adb를 사용할 수 없습니다 .

그러나이를 염두에두고 사용중인 Ubuntu 버전을 말하지 않지만 10.10에 문제가 있습니다. 규칙 파일의 내용을 게시해야하는 경우 알려주세요.

sudo를 통해 adb를 실행하는 것에 대해 걱정하지 마십시오. 필요하지 않습니다. MODE="0666"udev에 규칙에서 당신이 어떤 사용자로 장치에 액세스 할 수 있습니다.


편집하다:

규칙을 다시로드하는 것을 잊지 마십시오.

sudo udevadm control --reload-rules

# 2 수정 :

@Jesse Glick이 올바르게 지적했듯이 adb가 이미 데몬 모드에서 실행중인 경우이 작업을 위해 다시 시작해야합니다.

sudo adb kill-server

나는 여기서 sudo를 사용했는데, 그 이유는 adb가 죽을 것이라는 것을 보장하기 때문이며, 공식적으로 서버를 중지하기 위해 지원되는 방법입니다. 다음에 adb를 사용할 때 자동으로 다시 시작되지만 이번에는 올바른 환경으로 다시 시작됩니다.


1
링크 주셔서 감사합니다 . 그 지침이 공식적이라는 사실을 어떻게 놓쳤는 지 모르겠습니다. 사람들이 해결 방법으로 그렇게하고 있다고 생각했습니다. 내 Viewsonic GTablet의 공급 업체 코드를 찾고 udev 규칙을 추가했으며 이제 작동합니다! 감사.
MountainX

1
어떤 이유로 Motorola Droid가 adb 장치와 함께 표시되도록 할 수 없습니다. 이제 GTab과 에뮬레이터를 표시 할 수 있지만 Droid는 표시 할 수 없습니다.
MountainX

위 참조. adb를 루트로 실행하면 Moto Droid가 표시되었습니다.
MountainX

$ cat /etc/udev/rules.d/51-android.rules SUBSYSTEM == "usb", SYSFS {idVendor} == "22b8", MODE = "0666"SUBSYSTEM == "usb", SYSFS {idVendor} = = "0955", MODE = "0666"
MountainX

1
adb이전에 실행 중이었던 데몬 을 다시 시작해야합니다 .
Jesse Glick 2014 년

22

adb 서버를 루트로 다시 시작해야합니다. 를 참조하십시오 여기 .


작동하지 않았습니다. 세부 정보 : me@desktop:/opt/android-sdk-linux_x86/platform-tools$ sudo adb kill-server sudo: adb: command not found me@desktop:/opt/android-sdk-linux_x86/platform-tools$ adb kill-server me@desktop:/opt/android-sdk-linux_x86/platform-tools$ sudo adb start-server sudo: adb: command not found
MountainX

adb수퍼 유저의 경로에 없습니다. 들어가서 which adb어떤 경로에 있는지 확인한 다음 루트 경로에 추가하십시오.
EboMike

이것을 읽을 수 있기를 바랍니다. (줄 바꿈을 포함하도록 주석 형식을 지정하는 방법을 모르겠습니다.) adb는 루트 사용자의 경로에 있습니다. 원래 게시물에 which adb 명령을 붙여 넣었습니다. 경로는 / opt / android-sdk-linux_x86 / platform-tools / adb입니다. $ sudo -s root @ desktop : # echo $ PATH / usr / local / sbin : / usr / local / bin : / usr / sbin : / usr / bin : / sbin : / bin : / usr / X11R6 / bin : / opt / android-sdk-linux_x86 / tools : / opt / android-sdk-linux_x86 / platform-tools
MountainX

1
여기에 이상한 것이 있습니다. 루트로 실행하는지 또는 sudo로 실행하는지에 따라 "which adb"에서 다른 결과를 얻습니다. 다음은 출력입니다 $ sudo which adb $
MountainX

루트로 adb를 실행할 때 전체 경로를 지정하십시오.
EboMike 2011

13

Gentoo / Funtoo 리눅스 시스템에서 비슷한 문제가 있습니다 :

항상 올바른 장치 설명이 아니고 권한이 충분하지 않습니다.

# sudo ./adb devices
List of devices attached 
????????????    no permissions
# ./adb usb
error: insufficient permissions for device

나를 위해 Google 의 하우투 를 돕습니다 . 제 경우에는 udev 규칙을 추가해야했습니다.

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

및 파일 시스템 권한 설정

# chmod a+r /etc/udev/rules.d/51-android.rules

내 스마트 폰을 다시 연결 한 후 전화에 대한 액세스가 성공적으로 이루어졌으며 이제 Eclipse의 Android Device Chooser에도 나타납니다.

# sudo ./adb devices
List of devices attached 
3XXXXXXXXXXXXXC device
# sudo ./adb usb
restarting in USB mode

또한 plugdev 그룹 에 대한 사용자의 멤버십을 확인해야합니다 .


3

내가 읽은 모든 대답은 SUBSYSTEM=="usb". 그러나 내 (아마도 고대의) udev는 이것을 DRIVER=="usb". 마침내 루트가 아닌 사용자로 adb 서버를 실행할 수 있습니다 ... yay.

udevmonitor --env의 출력과 다음의 출력을 보는 것이 도움이 될 수 있습니다.

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>

컴퓨터에 udevmonitorudevinfo이 존재하지 않는 경우 대신 udevadm monitorand를 udevadm info -a -p ...사용하십시오.
Ash

2

IntelliJ IDEA 와 같은 IDE 는 자체 adb-server를 시작하는 경향이 있습니다.

서버를 수동으로 종료하고 sudo로 새 인스턴스를 실행하더라도 IDE가 서버 자체를 종료 할 때까지 도움이되지 않습니다.


2

루트로 adb 서버를 다시 시작하면 나를 위해 일했습니다. 보다:

derek@zoe:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip 
loading: 'angler-ota-mtc20f-5a1e93e9.zip'
error: insufficient permissions for device
derek@zoe:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    no permissions

derek@zoe:~/Downloads$ adb kill-server
derek@zoe:~/Downloads$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
derek@zoe:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    sideload

나도 : Linux Mint Serena 18.1 with HTC Sensation. 물건이 거의 확실 snafu'd되도록 나는이 2 일에 대해 faffing되었습니다 멍청한 놈 경고
Aethelbald


0

신선한 Cyanogenmod 11을 실행하는 HTC One m7.

전화가 USB에 연결되어 있고 데이터 연결을 테 더링합니다.

그런 다음이 놀라움을 얻습니다.

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb shell
error: insufficient permissions for device

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
????????????    no permissions

해결책 : 전화에서 테 더링을 끄십시오.

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
HT36AW908858    device

-3

방금 같은 상황이 발생했는데 공장 데이터 재설정이 잘 작동했습니다.


확실히 이것은 코멘트입니까?
매튜 테일러

내 잘못이야. 장치를 재설정하고 데이터를 정리하는 것이 저에게 효과적이라고 말하고 싶었습니다.
Andrii Krokhin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.