Build: Switch to Magisk as the built in root [2/2]

Pretty much identical to https://github.com/DirtyUnicorns/android_build/commit/2871a7b10b1ae6b6bdda049e33421ab37057f4d1

Modified and updated for TWRP 3.0.3-x by @nathanchance

Change-Id: Ic0cc0b6e96723a87298edb5cded9f6ef93c05b9d
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Corey Edwards <ensabahnur16@gmail.com>

Conflicts:
	tools/releasetools/ota_from_target_files.py
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index a0aadc3..bffef7e 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -170,6 +170,11 @@
     self.script.append('run_program("/sbin/busybox", "unzip", "/tmp/supersu/supersu.zip", "META-INF/com/google/android/*", "-d", "/tmp/supersu");')
     self.script.append('run_program("/sbin/busybox", "sh", "/tmp/supersu/META-INF/com/google/android/update-binary", "dummy", "1", "/tmp/supersu/supersu.zip");')
 
+  def FlashMagisk(self):
+    self.script.append('package_extract_dir("magisk", "/tmp/magisk");')
+    self.script.append('run_program("/sbin/busybox", "unzip", "/tmp/magisk/magisk.zip", "META-INF/com/google/android/*", "-d", "/tmp/magisk");')
+    self.script.append('run_program("/sbin/sh", "/tmp/magisk/META-INF/com/google/android/update-binary", "dummy", "1", "/tmp/magisk/magisk.zip");')
+
   def ShowProgress(self, frac, dur):
     """Update the progress bar, advancing it over 'frac' over the next
     'dur' seconds.  'dur' may be zero to advance it via SetProgress
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index d78f264..778e1f0 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -823,6 +823,13 @@
     ""+input_zip.read("SYSTEM/addon.d/UPDATE-SuperSU.zip"))
     script.FlashSuperSU()
 
+    script.Print(" ")
+    script.Print("Flashing Magisk...")
+    script.Print(" ")
+    common.ZipWriteStr(output_zip, "magisk/magisk.zip",
+                   ""+input_zip.read("SYSTEM/addon.d/magisk.zip"))
+    script.FlashMagisk()
+    script.Print(" ")
   script.ShowProgress(0.2, 10)
   device_specific.FullOTA_InstallEnd()