diff --git a/Android.mk b/Android.mk index add576a..b01179c 100644 --- a/Android.mk +++ b/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := ksigam +LOCAL_MODULE := magisk LOCAL_SRC_FILES := magisk.apk LOCAL_MODULE_CLASS := APPS LOCAL_CERTIFICATE := platform diff --git a/arm64/device.mk b/arm64/device.mk new file mode 100644 index 0000000..745b4d9 --- /dev/null +++ b/arm64/device.mk @@ -0,0 +1,7 @@ + +PRODUCT_PACKAGES += \ + magisk + +PRODUCT_COPY_FILES += \ + vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk.rc \ + $(call find-copy-subdir-files,*,$(LOCAL_PATH)/magisk,$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk) \ diff --git a/rootfs/vendor/etc/init/ksigam/busybox b/arm64/magisk/busybox similarity index 100% rename from rootfs/vendor/etc/init/ksigam/busybox rename to arm64/magisk/busybox diff --git a/rootfs/vendor/etc/init/ksigam/magisk32 b/arm64/magisk/magisk32 similarity index 100% rename from rootfs/vendor/etc/init/ksigam/magisk32 rename to arm64/magisk/magisk32 diff --git a/rootfs/vendor/etc/init/ksigam/magisk64 b/arm64/magisk/magisk64 similarity index 100% rename from rootfs/vendor/etc/init/ksigam/magisk64 rename to arm64/magisk/magisk64 diff --git a/rootfs/vendor/etc/init/ksigam/magiskboot b/arm64/magisk/magiskboot similarity index 100% rename from rootfs/vendor/etc/init/ksigam/magiskboot rename to arm64/magisk/magiskboot diff --git a/rootfs/vendor/etc/init/ksigam/magiskinit b/arm64/magisk/magiskinit similarity index 100% rename from rootfs/vendor/etc/init/ksigam/magiskinit rename to arm64/magisk/magiskinit diff --git a/rootfs/vendor/etc/init/ksigam/magiskpolicy b/arm64/magisk/magiskpolicy similarity index 100% rename from rootfs/vendor/etc/init/ksigam/magiskpolicy rename to arm64/magisk/magiskpolicy diff --git a/arm64_only/device.mk b/arm64_only/device.mk new file mode 100644 index 0000000..745b4d9 --- /dev/null +++ b/arm64_only/device.mk @@ -0,0 +1,7 @@ + +PRODUCT_PACKAGES += \ + magisk + +PRODUCT_COPY_FILES += \ + vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk.rc \ + $(call find-copy-subdir-files,*,$(LOCAL_PATH)/magisk,$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk) \ diff --git a/arm64_only/magisk/busybox b/arm64_only/magisk/busybox new file mode 100755 index 0000000..fed1fbd Binary files /dev/null and b/arm64_only/magisk/busybox differ diff --git a/arm64_only/magisk/magisk64 b/arm64_only/magisk/magisk64 new file mode 100755 index 0000000..baf819f Binary files /dev/null and b/arm64_only/magisk/magisk64 differ diff --git a/arm64_only/magisk/magiskboot b/arm64_only/magisk/magiskboot new file mode 100755 index 0000000..9c139ed Binary files /dev/null and b/arm64_only/magisk/magiskboot differ diff --git a/arm64_only/magisk/magiskinit b/arm64_only/magisk/magiskinit new file mode 100755 index 0000000..9496503 Binary files /dev/null and b/arm64_only/magisk/magiskinit differ diff --git a/arm64_only/magisk/magiskpolicy b/arm64_only/magisk/magiskpolicy new file mode 100755 index 0000000..d31fd4e Binary files /dev/null and b/arm64_only/magisk/magiskpolicy differ diff --git a/device.mk b/device.mk index 48f871e..745b4d9 100644 --- a/device.mk +++ b/device.mk @@ -1,8 +1,7 @@ PRODUCT_PACKAGES += \ - ksigam + magisk PRODUCT_COPY_FILES += \ - vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ksigam.rc \ - $(call find-copy-subdir-files,*,vendor/magisk/rootfs/vendor/etc/init,$(TARGET_COPY_OUT_VENDOR)/etc/init) \ - + vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk.rc \ + $(call find-copy-subdir-files,*,$(LOCAL_PATH)/magisk,$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk) \ diff --git a/extract.py b/extract.py index ff734a4..b0940a7 100644 --- a/extract.py +++ b/extract.py @@ -11,33 +11,84 @@ def main(): current_path = os.path.dirname(os.path.abspath(__file__)) apk_path = os.path.join(current_path, "magisk.apk") unzip_path = os.path.join(current_path, "temp") - overlay_path = os.path.join(current_path, "rootfs") - overlay_magisk_path = os.path.join(overlay_path, "vendor", "etc", "init", "ksigam") - overlay_init_path = os.path.join(overlay_path, "vendor", "etc", "init", "ksigam.rc") shutil.rmtree(unzip_path, ignore_errors=True) os.makedirs(unzip_path, exist_ok=True) atexit.register(shutil.rmtree, unzip_path, ignore_errors=True) - print("==> Extracting archive...") + print("==> Extracting archive ...") with zipfile.ZipFile(apk_path) as z: z.extractall(unzip_path) + ######################################################## + ######################################################## + print("==> Installing magisk(arm64) now ...") + overlay_path = os.path.join(current_path, "arm64", "magisk") shutil.rmtree(overlay_path, ignore_errors=True) - os.makedirs(overlay_magisk_path, exist_ok=True) + os.makedirs(overlay_path, exist_ok=True) - print("==> Installing magisk now ...") lib64_path = os.path.join(unzip_path, "lib", "arm64-v8a") for parent, dirnames, filenames in os.walk(lib64_path): for filename in filenames: so_path = os.path.join(lib64_path, filename) so_name = re.search(r"lib(.*)\.so", filename) - target_path = os.path.join(overlay_magisk_path, so_name.group(1)) + target_path = os.path.join(overlay_path, so_name.group(1)) shutil.copyfile(so_path, target_path) subprocess.check_call(["chmod", "+x", target_path]) lib32_path = os.path.join(unzip_path, "lib", "armeabi-v7a") - shutil.copyfile(os.path.join(lib32_path, "libmagisk32.so"), os.path.join(overlay_magisk_path, "magisk32")) + shutil.copyfile(os.path.join(lib32_path, "libmagisk32.so"), os.path.join(overlay_path, "magisk32")) + + ######################################################## + ######################################################## + print("==> Installing magisk(arm64_only) now ...") + overlay_path = os.path.join(current_path, "arm64_only", "magisk") + shutil.rmtree(overlay_path, ignore_errors=True) + os.makedirs(overlay_path, exist_ok=True) + + lib64_path = os.path.join(unzip_path, "lib", "arm64-v8a") + for parent, dirnames, filenames in os.walk(lib64_path): + for filename in filenames: + so_path = os.path.join(lib64_path, filename) + so_name = re.search(r"lib(.*)\.so", filename) + target_path = os.path.join(overlay_path, so_name.group(1)) + shutil.copyfile(so_path, target_path) + subprocess.check_call(["chmod", "+x", target_path]) + + ######################################################## + ######################################################## + print("==> Installing magisk(x86_64) now ...") + overlay_path = os.path.join(current_path, "x86_64", "magisk") + shutil.rmtree(overlay_path, ignore_errors=True) + os.makedirs(overlay_path, exist_ok=True) + + lib64_path = os.path.join(unzip_path, "lib", "arm64-v8a") + for parent, dirnames, filenames in os.walk(lib64_path): + for filename in filenames: + so_path = os.path.join(lib64_path, filename) + so_name = re.search(r"lib(.*)\.so", filename) + target_path = os.path.join(overlay_path, so_name.group(1)) + shutil.copyfile(so_path, target_path) + subprocess.check_call(["chmod", "+x", target_path]) + + lib32_path = os.path.join(unzip_path, "lib", "x86") + shutil.copyfile(os.path.join(lib32_path, "libmagisk32.so"), os.path.join(overlay_path, "magisk32")) + + ######################################################## + ######################################################## + print("==> Installing magisk(x86_64_only) now ...") + overlay_path = os.path.join(current_path, "x86_64_only", "magisk") + shutil.rmtree(overlay_path, ignore_errors=True) + os.makedirs(overlay_path, exist_ok=True) + + lib64_path = os.path.join(unzip_path, "lib", "x86_64") + for parent, dirnames, filenames in os.walk(lib64_path): + for filename in filenames: + so_path = os.path.join(lib64_path, filename) + so_name = re.search(r"lib(.*)\.so", filename) + target_path = os.path.join(overlay_path, so_name.group(1)) + shutil.copyfile(so_path, target_path) + subprocess.check_call(["chmod", "+x", target_path]) if __name__ == '__main__': diff --git a/magisk.rc b/magisk.rc index d7fb8e5..16e2e8f 100644 --- a/magisk.rc +++ b/magisk.rc @@ -1,10 +1,10 @@ -on post-fs-data +on post-fs-data && property:ro.boot.redroid_magisk=1 start logd - chmod 0755 /vendor/etc/init/ksigam/magisk64 - chmod 0755 /vendor/etc/init/ksigam/magiskpolicy - exec u:r:su:s0 root root -- /vendor/etc/init/ksigam/magisk64 --auto-selinux --setup-sbin /vendor/etc/init/ksigam - exec u:r:su:s0 root root -- /vendor/etc/init/ksigam/magiskpolicy --live --magisk "allow * magisk_file lnk_file *" + chmod 0755 /vendor/etc/init/magisk/magisk64 + chmod 0755 /vendor/etc/init/magisk/magiskpolicy + exec u:r:su:s0 root root -- /vendor/etc/init/magisk/magisk64 --auto-selinux --setup-sbin /vendor/etc/init/magisk + exec u:r:su:s0 root root -- /vendor/etc/init/magisk/magiskpolicy --live --magisk "allow * magisk_file lnk_file *" mkdir /sbin/.magisk 700 mkdir /sbin/.magisk/mirror 700 mkdir /sbin/.magisk/block 700 @@ -12,25 +12,27 @@ on post-fs-data start 7zKkuZ1ZhD wait /dev/.magisk_unblock 40 rm /dev/.magisk_unblock + start wHgGlkRCtMoIQw service 7zKkuZ1ZhD /sbin/magisk --auto-selinux --post-fs-data user root seclabel u:r:su:s0 oneshot + disabled service wHgGlkRCtMoIQw /sbin/magisk --auto-selinux --service - class late_start user root seclabel u:r:su:s0 oneshot + disabled -on property:sys.boot_completed=1 +on property:sys.boot_completed=1 && property:ro.boot.redroid_magisk=1 mkdir /data/adb/magisk 755 exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --boot-complete - exec -- /system/bin/sh -c "if [ ! -e /data/data/io.github.huskydg.magisk ] ; then pm install /vendor/etc/init/ksigam/ksigam.apk ; fi" + exec -- /system/bin/sh -c "if [ ! -e /data/data/io.github.huskydg.magisk ] ; then pm install /vendor/etc/init/magisk/magisk.apk ; fi" -on property:init.svc.zygote=restarting +on property:init.svc.zygote=restarting && property:ro.boot.redroid_magisk=1 exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --zygote-restart -on property:init.svc.zygote=stopped +on property:init.svc.zygote=stopped && property:ro.boot.redroid_magisk=1 exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --zygote-restart diff --git a/x86_64/device.mk b/x86_64/device.mk new file mode 100644 index 0000000..745b4d9 --- /dev/null +++ b/x86_64/device.mk @@ -0,0 +1,7 @@ + +PRODUCT_PACKAGES += \ + magisk + +PRODUCT_COPY_FILES += \ + vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk.rc \ + $(call find-copy-subdir-files,*,$(LOCAL_PATH)/magisk,$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk) \ diff --git a/x86_64/magisk/busybox b/x86_64/magisk/busybox new file mode 100755 index 0000000..fed1fbd Binary files /dev/null and b/x86_64/magisk/busybox differ diff --git a/x86_64/magisk/magisk32 b/x86_64/magisk/magisk32 new file mode 100644 index 0000000..506a923 Binary files /dev/null and b/x86_64/magisk/magisk32 differ diff --git a/x86_64/magisk/magisk64 b/x86_64/magisk/magisk64 new file mode 100755 index 0000000..baf819f Binary files /dev/null and b/x86_64/magisk/magisk64 differ diff --git a/x86_64/magisk/magiskboot b/x86_64/magisk/magiskboot new file mode 100755 index 0000000..9c139ed Binary files /dev/null and b/x86_64/magisk/magiskboot differ diff --git a/x86_64/magisk/magiskinit b/x86_64/magisk/magiskinit new file mode 100755 index 0000000..9496503 Binary files /dev/null and b/x86_64/magisk/magiskinit differ diff --git a/x86_64/magisk/magiskpolicy b/x86_64/magisk/magiskpolicy new file mode 100755 index 0000000..d31fd4e Binary files /dev/null and b/x86_64/magisk/magiskpolicy differ diff --git a/x86_64_only/device.mk b/x86_64_only/device.mk new file mode 100644 index 0000000..745b4d9 --- /dev/null +++ b/x86_64_only/device.mk @@ -0,0 +1,7 @@ + +PRODUCT_PACKAGES += \ + magisk + +PRODUCT_COPY_FILES += \ + vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk.rc \ + $(call find-copy-subdir-files,*,$(LOCAL_PATH)/magisk,$(TARGET_COPY_OUT_VENDOR)/etc/init/magisk) \ diff --git a/x86_64_only/magisk/busybox b/x86_64_only/magisk/busybox new file mode 100755 index 0000000..ac18ee2 Binary files /dev/null and b/x86_64_only/magisk/busybox differ diff --git a/x86_64_only/magisk/magisk64 b/x86_64_only/magisk/magisk64 new file mode 100755 index 0000000..7e63dc8 Binary files /dev/null and b/x86_64_only/magisk/magisk64 differ diff --git a/x86_64_only/magisk/magiskboot b/x86_64_only/magisk/magiskboot new file mode 100755 index 0000000..84bdfe3 Binary files /dev/null and b/x86_64_only/magisk/magiskboot differ diff --git a/x86_64_only/magisk/magiskinit b/x86_64_only/magisk/magiskinit new file mode 100755 index 0000000..52c02d5 Binary files /dev/null and b/x86_64_only/magisk/magiskinit differ diff --git a/x86_64_only/magisk/magiskpolicy b/x86_64_only/magisk/magiskpolicy new file mode 100755 index 0000000..5ca4fba Binary files /dev/null and b/x86_64_only/magisk/magiskpolicy differ