diff --git a/scripts/emulator.sh b/scripts/emulator.sh
new file mode 100755
index 000000000..1b2fd63bb
--- /dev/null
+++ b/scripts/emulator.sh
@@ -0,0 +1,79 @@
+#!/usr/bin/env bash
+################################################################
+#   AVD Magisk Setup
+################################################################
+#
+# This script will setup an environment with minimal Magisk that
+# Magisk Manager will be happy to run properly within the official
+# emulator bundled with Android Studio (AVD).
+#
+# ONLY use this script for developing Magisk Manager in the
+# emulator. The constructed Magisk environment is not a fully
+# functional one as if it is running on an actual device.
+# The script only supports non system-as-root images, meaning
+# AVD images that are newer than API 25 are NOT supported.
+# This script is meant to be used for emulators running obscure
+# Android versions; use an actual device for modern Androids.
+#
+# The script assumes you are using x86 emulator images.
+# Build binaries with `./build.py binary` before running this script.
+#
+################################################################
+
+abort() {
+  echo "$@"
+  exit 1
+}
+
+if [ ! -f /system/build.prop ]; then
+  # Running on PC
+  cd "`dirname "$0"`/.."
+  adb push native/out/x86/busybox native/out/x86/magisk scripts/emulator.sh /data/local/tmp
+  adb root || abort 'adb root failed'
+  adb shell sh /data/local/tmp/emulator.sh
+  exit 0
+fi
+
+cd /data/local/tmp
+chmod 777 busybox
+
+# Currently only support rootfs based emulators
+./busybox mount | ./busybox grep -q rootfs || abort 'Only support non system-as-root emulators'
+
+# Emulator's adb shell should have root
+[ `./busybox id -u` -eq 0 ] || abort 'ADB shell should have root access'
+
+# Check whether already setup
+[ -f /sbin/magisk ] && abort "Magisk is already setup"
+
+# First setup a good env to work with
+rm -rf bin
+./busybox mkdir bin
+./busybox --install -s bin
+OLD_PATH="$PATH"
+PATH="/data/local/tmp/bin:$PATH"
+
+# Setup sbin mirror
+mount -o rw,remount /
+rm -rf /root
+mkdir /root
+chmod 750 /root
+ln /sbin/* /root
+mount -o ro,remount /
+
+# Setup sbin overlay
+mount -t tmpfs tmpfs /sbin
+chmod 755 /sbin
+ln -s /root/* /sbin
+cp ./magisk /sbin/magisk
+chmod 755 /sbin/magisk
+ln -s ./magisk /sbin/su
+mkdir -p /sbin/.magisk/busybox
+cp -af ./busybox /sbin/.magisk/busybox/busybox
+/sbin/.magisk/busybox/busybox --install -s /sbin/.magisk/busybox
+
+# Magisk stuffs
+mkdir -p /data/adb/modules 2>/dev/null
+mkdir /data/adb/post-fs-data.d 2>/dev/null
+mkdir /data/adb/services.d 2>/dev/null
+magisk --daemon