web-dev-qa-db-ja.com

ADBルートがエミュレーターで機能していません(実稼働ビルドではルートとして実行できません)

エミュレーター26.0.3を更新しましたが、今は実行できませんadb root新しく作成したエミュレータのコマンド。

表示されるエラーは以下のとおりです。

adbd cannot run as root in production builds

私はadbdを強制終了して再起動しました:

adb kill-server
adb devices

何も役に立たない、アイデアはありますか?


私は違いが何で、どのように異なるビルドを選択するかわかりませんが、作成中に以下の設定が有効になっている場合、ルートがあります enter image description here

45
guness

[クレジットは@Merkに属していますが、コメントではなく回答として投稿する必要があります。]

ルートアクセスを有効にするには、次のようなエミュレータイメージを使用します。

Google API Intel x86 Atomシステムイメージ

ではない

Google Play Intel x86 Atomシステムイメージ

テストするには、adb rootを実行します。それは言うべきです

rootとしてadbdを再起動する

または

adbdはすでにrootとして実行されています

ない

adbdはプロダクションビルドではrootとして実行できません

または、テストする場合はadb Shellを実行し、プロンプトが$で終わる場合はsuを実行します。 #プロンプトが表示されます。

手順: rootとして実行できるエミュレータイメージをインストールして使用するには:

  1. Android Studioでは、メニューコマンドTools> AVD Managerを使用します。
  2. + Create Virtual Device ...ボタンをクリックします。
  3. 仮想ハードウェアを選択します。
  4. システムイメージを選択します。次のいずれかを選択してください。

    Intel x86 Atomシステムイメージ

    Intel x86 Atom_64システムイメージ

    Google APIs Intel x86 Atomシステムイメージ

    Google APIs Intel x86 Atom_64システムイメージ

    これらは、2列目にPlaystoreアイコンがないデバイスです。 (「Google Play ...システムイメージ」は選択しないでください。これらはrootとして実行できないものです。)

  5. 必要に応じてダウンロードボタンをクリックします。
  6. 新しいAVDの作成を終了します。
  7. 新しいAVDを実行します。
142
Jerry101

Rootアクセスが必要な場合、間違ったエミュレーターイメージを使用しています。エラーメッセージに、ルートはproductionビルドでは許可されていないため、代わりにserdebugビルドを使用します。

8