Rooting the Android Studio AVDs

A quick guide on how to root Android Studio’s Android AVDs (and required files!)

Required files can be found in this repository: https://github.com/0xFireball/root_avd

You need the Android SDK and fresh new AVD. For this guide we will call it RootAVD.

This was written and tested on a Nexus 5X AVD running Android 7.1 Nougat on an Ubuntu Linux host. This method should work with a similar setup (Android Nougat) for the forseeable future, though future Android versions may complicate this process further.

  1. Start emulator $SDK_PATH/emulator/emulator with args -avd RootAVD -writable-system -selinux disabled -qemu -enable-kvm
  2. Wait for boot.
  3. Restart adbd as root and remount system as writable: adb root && adb remount
  4. Install Superuser.apk: adb install SuperSU/common/Superuser.apk
  5. Push su and update permissions: you will have to pick the corresponding architecture $ARCH. adb push SuperSU/$ARCH/su /system/xbin/su, then update permissions: adb shell chmod 0755 /system/xbin/su
  6. Set SELinux Permissive: adb shell setenforce 0
  7. Install SuperSU’s su to system: adb shell su --install
  8. Run SuperSU’s su as daemon. adb shell su --daemon&
  9. Finally, open the SuperSU app on the device, and it will tell you the su binary needs to be updated. Accept and use normal installation.
  10. Installation will fail. Don’t reboot, just move on. It will still work.
  11. Congratulations! You now have a rooted AVD with SuperSU.

TIP: Superuser may not always persist after reboot, to fix:

  1. From a root shell, start su --daemon&
  2. Root should now work.
  3. Optional: Look for the temporary emulator system image; you can back this up and use it as a patched system.