Android:adb:アクセスが拒否されました


93

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シェルを実行しようとしていますか。ターゲットデバイス上にある場合は、root権限がない限り、/ dataフォルダーにアクセスできません。
Vamsi 2011

20
adb root>>adbd cannot run as root in production builds何をしますか?
d.popov 2012年

3
それを実行するには、
root化さ

はい、知っています。しかし、現在のところ、著者の投稿にコメントするという評判はありませんが、この問題が発生したため、新しい投稿を追加するか、重複するスレッドを開くしか方法がなかったため、投稿を追加することにしました。
d.popov 2013年

1
電話は根付いていましたが、OSに問題がありました。再起動時にホーム画面を読み込んだ後、フリーズしていました。とにかく-ストックROMで電話をフラッシュするnandroidは問題を解決しました。
d.popov 2013年

回答:


130

によるとadb help

adb root                     - restarts the adbd daemon with root permissions

それは確かに私にとって問題を解決しました。


2
まだ行っていない場合は、adbのルートアクセスを有効にする必要もあります。@ Macarseの回答を参照してください。
Paul Whittaker

実際、当面の問題は、Androidがまだ(作成から2年後)findコマンドを同梱していないことです。そうは言っても、ルートとしてadbを実行しないと、他のコマンドを使用して/ dataパーティションを下降することもできません(ただし、その中の明示的な場所にアクセスできる場合もあります)。
クリス・ストラットン

1
本当じゃない。正しいユーザーに切り替える必要があります。以下の私の答えを参照してください:stackoverflow.com/a/38292436/342947
Fabian Zeindl 2016

2
あなたの答えは明確ではありません。このコメントはデバイスまたはコンピューターで実行する必要がありますか?
サウロン

23
adbd cannot run as root in production buildsを実行すると得られるものですadb root。これは、最新のAndroidSDKを使用した最近のMacOSインストールにあります。この答えはまったく正しいとは思いませんし、他の人がこの問題について言及しているのを見てきました。なぜそんなに多くの賛成票がありますか?
AndrewKoster20年

40

ルート権限をrun-as <package>取得しない:電話をルート権限を取得できない場合は、コマンドを使用してアプリケーションのデータにアクセスできるようにします。

例:

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

exec-out シェルを起動して出力を操作せずにコマンドを実行します。


9
これは、デバッグ可能に構築されたアプリでのみ機能します。つまり、開発中のアプリでは使用できますが、アプリの製品リリースや他の人のアプリでは機能しないはずです。
クリス・ストラットン

2
これはrun-as: Could not set capabilities: Operation not permitted私のために戻ります
トム

これは、エミュレータのAPI 29のために働く、と置くことを忘れないでください.debugデバッグのアプリのためのアプリのパッケージの終わりにプレフィックスを:
ultraon

19

「許可が拒否されました」の理由は、Androidマシンが正しくルート化されていないためです。$あなたが始めた後にあなたは見ましたadb shellか?マシンを正しくルート化した場合は、#代わりに表示されます。

が表示された場合は$、と入力してスーパーユーザーモードに入ってみてくださいsu。ルートが有効になっている場合は#、パスワードを要求せずに-が表示されます。


2
マシンを正しくルート化したら、suステップが機能する前に、adbルートアクセスを有効にし、ルートモードでadbを実行する必要があります-@ Macarseと@Romanの回答を参照してください。
Paul Whittaker

1
いいえ。「許可が拒否された」理由は、findコマンドがないためです。
クリス・ストラットン

@ChrisStrattonあなたは私の命を救いました、私はすでにadbシェルの内側からシェルコマンドを
書い

1
Androidシミュレーターでファイルを表示しようとしています。私は「$」の後に「SU」を入力すると、それは言う:SU:見つからない
ピート・アルビン

5

開発者設定メニューからadbrootをアクティブ化する必要がある場合があります。adb rootcmd行から実行すると、次のようになります。

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

ルートオプション(ADBのみまたはアプリとADB)をアクティブにすると、adbが再起動し、cmd行からrootを使用できるようになります。


3
[設定]メニューに[開発者向けオプション]項目が表示されない場合は、表示する方法の詳細について、この回答を参照してください。(要するに:設定>電話について>ビルド番号> 7回タップ(!))
Paul Whittaker

1
しかし、一度入ると、ここには何も表示されません!それは何を言うべきですか?
JohnyTex 2014年

36
このオプションは、Androidビルドの在庫には存在しません。存在する場合は、誰かのアフターマーケットROMに限定されます。
クリス・ストラットン

GUIなしでこれを行う方法はありますか?にオプションがあると思いますが、/system/build.prop見つかりません。
Jeroen 2017

設定を探すためのメニューはどこにありますか?
martinkunev 2017

0

スラッシュに注意して、次のように「/」を「\」に変更します。adb.exepush SuperSU-v2.79-20161205182033.apk / storage


0

data root以外のユーザーはパーティションにアクセスできません。アクセスする場合は、電話をroot化する必要があります。

adb root すべての製品で機能するわけではなく、電話のビルドタイプによって異なります。

Android Studioの新しいバージョンでは/data/data、デバッグ可能なアプリのパスを調べることができます。




弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.