Android : adb : 권한 거부 됨


91

adb shell실패한 후에 내가 입력하는 것은 무엇이든 Permission denied:

D:\android-sdk-windows\platform-tools>adb shell find /data -name *.db
find: permission denied

D:\android-sdk-windows\platform-tools>adb shell test
test: permission denied

D:\android-sdk-windows\platform-tools>adb remount
remount failed: No such file or directory

어떤 아이디어?


에뮬레이터 또는 대상 장치에서 adb 셸을 실행하려는 위치입니다. 대상 장치에서 루트 권한이 없으면 / data 폴더에 액세스 할 수 없습니다.
Vamsi

20
adb root>> 후 adbd cannot run as root in production builds무엇을?
d.popov

3
나는 당신이 실행할 수 있도록 뿌리 전화를해야 할 것 같아요
네르

네, 알아요. 하지만 지금 보시다시피 저자의 글에 댓글을 달 수있는 명성은 없지만이 문제가있어서 새 글을 추가하거나 중복 스레드를 여는 것이 유일한 방법이어서 글을 추가하기로 결정했습니다.
d.popov

1
전화가 루팅되었지만 OS에 문제가 있습니다. 재부팅시 홈 화면을로드 한 후 멈췄습니다. 어쨌든-재고 ROM으로 전화를 깜박이는 nandroid가 문제를 해결했습니다.
d.popov

답변:


129

에 따르면 adb help:

adb root                     - restarts the adbd daemon with root permissions

실제로 문제를 해결했습니다.


2
아직 수행하지 않은 경우 adb에 대한 루트 액세스를 활성화해야합니다. @Macarse의 답변을 참조하십시오.
Paul Whittaker 2013 년

실제로 즉각적인 문제는 안드로이드가 여전히 find명령 을 내놓지 않는다는 것 입니다. 즉, 루트로 실행되는 adb가 없으면 다른 명령을 사용하여 / data 파티션을 내려갈 수 없습니다 (아직 명시적인 위치에 액세스 할 수 있음).
Chris Stratton 2014

1
이것은 사실이 아닙니다. 올바른 사용자로 전환하기 만하면됩니다. : 내 대답은 아래를 참조 stackoverflow.com/a/38292436/342947
파비안 Zeindl

2
당신의 대답은 명확하지 않습니다. 이 주석은 장치 또는 컴퓨터에서 실행해야합니까?
Sauron

20
adbd cannot run as root in production builds당신이 달릴 때 얻는 것 adb root입니다. 이것은 최신 Android SDK가있는 최근 MacOS 설치에 있습니다. 이 답변이 전혀 정확하지 않다고 생각하며 다른 사람들이이 문제를 언급하는 것을 보았습니다. 왜 그렇게 많은 찬성 투표를합니까?
Andrew Koster

39

루팅없이 : 휴대 전화를 루팅 할 수없는 경우 run-as <package>명령을 사용 하여 애플리케이션의 데이터에 액세스 할 수 있습니다.

예:

$ adb exec-out run-as com.yourcompany.app ls -R /data/data/com.yourcompany.app/

exec-out 쉘을 시작하지 않고 출력을 변경하지 않고 명령을 실행합니다.


9
이는 디버깅이 가능하도록 빌드 된 앱에서만 작동합니다. 즉, 개발중인 앱에 사용할 수 있지만 앱의 프로덕션 릴리스 또는 다른 사람의 앱에는 작동하지 않아야합니다.
Chris Stratton 2017

2
이것은 run-as: Could not set capabilities: Operation not permitted나를 위해 돌아온다
Tom M

에뮬레이터 API 29에서 작동하며 .debug디버그 앱용 앱 패키지 끝에 접두사를 추가하는 것을 잊지 마십시오 .
ultraon

19

"권한이 거부되었습니다"의 이유는 Android 컴퓨터가 올바르게 루팅되지 않았기 때문입니다. $시작한 후에 보셨나요 adb shell? 컴퓨터를 올바르게 루팅했다면 #대신 보셨을 것입니다.

이 표시되면을 $입력하여 수퍼 유저 모드로 들어갑니다 su. 루트가 활성화 된 경우 #암호를 묻지 않고- 가 표시됩니다 .


2
머신을 올바르게 루팅했으면 su단계가 작동 하기 전에 adb 루트 액세스를 활성화하고 루트 모드에서 adb를 실행해야합니다. @Macarse 및 @Roman의 답변을 참조하십시오.
Paul Whittaker 2013 년

1
아니요. "권한 거부"의 이유는 find명령 이 없기 때문입니다 .
Chris Stratton 2014

@ChrisStratton 당신은 내가 또한 이미 ADB 쉘 내부에서 쉘 명령을 writting했다, 내 생명의 은인
Divyanshu Kushwaha

1
Android 시뮬레이터에서 파일을 보려고합니다. '$'뒤에 'su'를 입력하면 다음과 같이 표시됩니다. su : not found
Pete Alvin

5

개발자 설정 메뉴에서 adb 루트를 활성화해야 할 수도 있습니다. adb rootcmd 라인에서 실행 하면 다음을 얻을 수 있습니다.

root access is disabled by system setting - enable in settings -> development options

루트 옵션 (ADB 전용 또는 앱 및 ADB)을 활성화하면 adb가 다시 시작되고 cmd 라인에서 루트를 사용할 수 있습니다.


3
설정 메뉴에서 '개발자 옵션'항목을 볼 수없는 경우 표시 방법에 대한 자세한 내용 은 이 답변 을 참조하십시오 . (짧은에서 : 설정> 전화> 빌드 번호에 관하여>를 눌러 7 번 (!).)
폴 휘태커

1
하지만 일단 들어가면 여기에 아무것도 보이지 않습니다! 무엇을 말해야합니까?
JohnyTex 2014 년

35
이 옵션은 재고 Android 빌드에는 존재하지 않습니다. 만약 존재한다면 그것은 누군가의 애프터 마켓 ROM에 국한 될 것입니다.
Chris Stratton 2014

GUI없이이를 수행 할 수있는 방법이 있습니까? 에 대한 옵션이 있다고 생각 /system/build.prop하지만 찾을 수 없습니다.
Jeroen

설정을 찾을 수있는 메뉴는 어디에서 찾을 수 있습니까?
martinkunev

0

슬래시에주의하고 "/"에 대한 "\"를 다음과 같이 변경하십시오. adb.exe push SuperSU-v2.79-20161205182033.apk / storage


0

data 루트가 아닌 사용자는 파티션에 액세스 할 수 없습니다. 액세스하려면 전화기를 루팅해야합니다.

adb root 모든 제품에서 작동하지 않으며 휴대폰 빌드 유형에 따라 다릅니다.

Android 스튜디오의 새 버전 /data/data에서는 디버깅 가능한 앱의 경로를 탐색 할 수 있습니다 .



-4

cmd관리자 권한으로 실행 하면 내 문제가 해결됩니다. 감사.


아니요. 질문은 Windows가 아니라 Android의 거부에 관한 것입니다.
Chris Stratton

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