[android] adb devices 명령이 작동하지 않음

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 규칙을 구현하여 해결되었습니다 (이 링크에서 ).



답변

내가 시도하지 않은 한 가지는 /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를 사용할 때 자동으로 다시 시작되지만 이번에는 올바른 환경으로 다시 시작됩니다.


답변

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


답변

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 그룹 에 대한 사용자의 멤버십을 확인해야합니다 .


답변

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

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

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>


답변

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

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


답변

루트로 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


답변

시스템 규칙을 덮어 써서 데비안 GNU / 리눅스 시스템에서이 문제를 해결했습니다.

mv  /etc/udev/rules.d/51-android.rules /etc/udev/rules.d/99-android.rules

http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/에 링크 된 파일의 콘텐츠를 사용했습니다.