Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
579 views
in Technique[技术] by (71.8m points)

android - ADB root is not working on emulator (cannot run as root in production builds)

I have just updated emulator 26.0.3, now I cannot run adb root command for new created emulator.

the error shown is below:

adbd cannot run as root in production builds

I have killed and restart adbd like:

adb kill-server
adb devices

Nothing helps, any ideas?


I am not sure what is the difference and how to select different build but, if following settings are enabled while creating, then it has root.enter image description here

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To enable root access: Pick an emulator system image that is NOT labelled "Google Play". (The label text and other UI details vary by Android Studio version.)

Exception: As of 2020-10-08, the Release R "Android TV" system image will not run as root. Workaround: Use the Release Q (API level 29) Android TV system image instead.

Test it: Launch the emulator, then run adb root. It should say

  • restarting adbd as root

or

  • adbd is already running as root

not

  • adbd cannot run as root in production builds

Alternate test: Run adb shell, and if the prompt ends with $, run su. It should show a # prompt.

Steps: To install and use an emulator image that can run as root:

  1. In Android Studio, use the menu command Tools > AVD Manager.
  2. Click the + Create Virtual Device... button.
  3. Select the virtual Hardware, and click Next.
  4. Select a System Image.
    • Pick any image that does NOT say "(Google Play)" in the Target column.
    • If you depend on Google APIs (Google Sign In, Google Fit, etc.), pick an image marked with "(Google APIs)".
    • You might have to switch from the "Recommended" group to the "x86 Images" or "Other Images" group to find one.
  5. Click the Download button if needed.
  6. Finish creating your new AVD.
    • Tip: Start the AVD Name with the API level number so the list of Virtual Devices will sort by API level.
  7. Launch your new AVD. (You can click the green "play" triangle in the AVD window.

[Credit belongs to @Merk but this should be posted as an answer rather than a comment.]


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...