Compare commits

39 Commits
dev ... master

Author SHA1 Message Date
b91a1ac88c fix: 更新 magisk.py 文件,修改下载链接以指向新的源,确保下载的 Magisk 版本可用性和可靠性。 2025-09-18 23:44:22 +08:00
9dd8e32801 fix: 更新 magisk.py 文件,修改下载链接和文件的 MD5 校验值,以确保下载的 Magisk 版本正确性和安全性。 2025-09-18 23:28:01 +08:00
514e8a19ce fix: 更新 magisk.py 文件,重构构造函数以接受目标架构作为必需参数,确保命令行参数的灵活性和可配置性。 2025-09-18 22:29:51 +08:00
c669c8d00c fix: 更新 magisk.py 文件,重构主机架构获取逻辑,添加命令行参数支持,确保构建过程的灵活性和可配置性。同时更新 magisk.rc 文件,添加 /sbin 目录的创建。 2025-09-18 22:26:05 +08:00
405e61aed8 fix: 更新 magisk.rc 文件,添加对 magisk 相关文件的权限设置,确保启动时正确执行。 2025-09-18 20:46:18 +08:00
098336c5b0 fix: 更新 device.mk 文件,移除 magisk.apk 的复制定义,确保构建过程的简化和一致性。 2025-09-18 19:36:44 +08:00
9413ee9aa6 fix: 更新 Android.mk 和 device.mk 文件,添加 magisk_apk_flat 模块定义,确保 magisk.apk 文件正确安装到 /system/etc/init/magisk/ 目录。 2025-09-18 19:30:08 +08:00
dae04ca5df fix: 更新 Android.mk 和 device.mk 文件,移除不必要的模块定义,调整文件复制路径,确保 magisk 相关文件的正确构建和安装。 2025-09-18 19:20:29 +08:00
ef00365797 fix: 更新 Android.mk 文件,移除重复的 magisk 安装调用,确保构建过程的简化和一致性。 2025-09-18 18:31:05 +08:00
0b4e047a59 fix: 更新 Android.mk 和 device.mk 文件,移除 magisk64_bin 模块,确保构建过程的简化和一致性。 2025-09-18 18:27:58 +08:00
585964edcf fix: 更新 Android.mk 文件,将 LOCAL_SRC_FILES 的路径更改为 magisk/$(1),确保构建过程中的一致性和正确性。 2025-09-18 18:21:32 +08:00
b067d7e11a fix: 更新 Android.mk 和 device.mk 文件,重构模块定义和复制路径,确保 magisk 相关文件的正确构建和安装。 2025-09-18 18:11:09 +08:00
08dd670679 fix: 更新 magisk.py 文件,调整 magisk.apk 的复制路径,以确保文件复制的正确性和构建流程的完整性。 2025-09-18 17:11:18 +08:00
5e8a94f11b fix: 更新 Android.mk 文件,将 LOCAL_SRC_FILES 的路径更改为 magisk.apk,以确保构建过程的一致性和正确性。 2025-09-18 17:02:05 +08:00
18df71e4b8 fix: 更新 Android.mk 文件,将 LOCAL_SRC_FILES 的路径更改为 magisk/magisk.apk,以确保构建过程的一致性和正确性。 2025-09-18 16:53:30 +08:00
f62ac04c98 fix: 更新 magisk.py 文件,移除创建 sbin 目录的命令,以简化目标目录的创建逻辑,确保构建流程的完整性。 2025-09-18 16:47:38 +08:00
b74201630d fix: 更新 magisk.py 文件,调整目标目录的创建逻辑,确保 magisk 相关文件的正确复制和构建流程的完整性。 2025-09-18 16:42:54 +08:00
535735c0e3 fix: 更新 Android.mk 文件,将 LOCAL_SRC_FILES 的路径更改为 magisk/system/etc/init/magisk/magisk.apk,以确保构建过程的一致性和正确性。 2025-09-18 16:06:16 +08:00
403df41d93 fix: 更新 device.mk 文件,优化 magisk 相关文件的复制路径,确保构建过程的一致性和正确性。 2025-09-18 15:27:18 +08:00
ccfcacb634 fix: 更新 Android.mk 文件,将 LOCAL_SRC_FILES 的路径更改为 magisk/system/etc/init/magisk.apk,以确保构建过程中的一致性和正确性。 2025-09-18 14:03:17 +08:00
a1842e1843 fix: 更新 Android.mk 文件,将 LOCAL_SRC_FILES 的路径更改为 magisk/system/etc/init/magisk,以确保构建过程中的一致性和正确性。 2025-09-18 13:42:15 +08:00
f5b6f06dbc fix: 更新 device.mk 文件,新增创建 magisk 目录的命令,以确保 magisk 相关文件的正确复制和构建流程的完整性。 2025-09-18 13:25:34 +08:00
caf112813f fix: 更新 device.mk 文件,优化 magisk 相关文件的路径格式,确保构建过程的一致性。 2025-09-18 13:19:52 +08:00
3e36165b02 fix: 更新 Android.mk 和 device.mk 文件,将模块名称更改为 magisk,并优化相关文件路径,确保构建过程的一致性和正确性。 2025-09-18 12:59:46 +08:00
991faf2887 fix: 优化 magisk.py 中的主机架构检测逻辑,默认返回 x86_64,并简化清理功能,移除不必要的命令行参数支持。 2025-09-18 11:51:54 +08:00
6c2d298165 feat: 在 magisk.py 中添加清理临时文件的功能,支持命令行参数以控制清理行为,优化构建流程的完整性。 2025-09-18 11:49:00 +08:00
3ae2f3d36e fix: 更新 device.mk 文件,移除 bootanim.rc 相关文件的引用,优化 magisk.py 中的主机架构检测逻辑,并新增 magisk.rc 文件以支持完整的构建流程。 2025-09-18 11:25:43 +08:00
42f1af5d5a feat: 重构 Magisk 类,添加下载、提取和复制功能,优化主机架构检测,确保与最新版本一致,并创建 bootanim.rc 文件以支持完整构建流程。 2025-09-18 11:13:07 +08:00
a0007649e9 fix: 更新 device.mk 文件以添加 bootanim.rc 和相关文件的权限设置,同时删除 extract.py 和 magisk.rc 文件,简化项目结构,确保与最新的 Magisk 版本一致。 2025-09-18 11:09:20 +08:00
c488b9a373 fix: 更新 Android.mk 和 device.mk 文件,将 magisk 相关文件的路径统一为 /system,以确保构建过程中的一致性和正确性。 2025-09-18 00:53:46 +08:00
f5c09ae397 fix: 更新 magisk.rc 文件中的路径,将相关文件目录统一为 /system/etc/init/magisk,确保与系统结构一致性。 2025-09-17 23:51:14 +08:00
fe2d9ffa42 fix: 更新下载提示信息,将 Magisk 版本号更改为 v30.2,以确保用户获取最新版本。 2025-09-17 21:01:44 +08:00
44c1d922b7 fix: 更新路径结构,统一 magisk 相关文件的目录,优化提取脚本和服务配置,确保与构建流程一致性。 2025-09-17 21:00:28 +08:00
4a5999957a fix: 更新 Android.mk 和 device.mk 文件,将模块名称更改为 magisk.apk,以确保构建过程中的一致性。 2025-09-17 17:24:32 +08:00
805f64359f chore: 删除 magisk.apk 文件,清理不再需要的二进制文件。 2025-09-17 02:48:50 +08:00
dcdfd005d4 fix: 更新 device.mk 文件,合并 Magisk 相关文件路径,移除冗余的 magisk32 和 magisk64 文件引用。 2025-09-17 00:58:56 +08:00
080b24519c fix: 优化构建流程,更新 Android.mk 和 device.mk 文件,移除不再需要的二进制文件,更新 README 文档以反映新的使用方法和注意事项。 2025-09-17 00:40:20 +08:00
4f350192bb feat: 添加 Magisk v30.2 自动下载和提取功能,更新 init 服务配置,改进二进制文件提取逻辑,并新增 README 文档说明项目结构和使用方法。 2025-09-16 18:44:01 +08:00
Hu Ji
a40d15ce7e disable magisk default 2024-11-14 23:38:42 +08:00
33 changed files with 285 additions and 167 deletions

View File

@@ -1,15 +1,10 @@
LOCAL_PATH := $(call my-dir)
# 仅把 magisk.apk 作为普通文件安装到 /system/etc/init/magisk/
include $(CLEAR_VARS)
LOCAL_MODULE := magisk
LOCAL_SRC_FILES := magisk.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/init/
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_DEX_PREOPT := false
LOCAL_MODULE := magisk_apk_flat
LOCAL_SRC_FILES := magisk.apk
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_STEM := magisk.apk
LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/init/magisk
include $(BUILD_PREBUILT)

55
README.md Normal file
View File

@@ -0,0 +1,55 @@
# Magisk Vendor 项目
这个项目为 Android 设备提供 Magisk 支持,适用于 vendor overlay 构建。
## 更新内容
- ✅ 更新到官方 Magisk v30.2 版本
- ✅ 添加了自动下载功能,无需手动准备 APK 文件
- ✅ 集成了 MD5 校验确保文件完整性
- ✅ 改进了二进制文件提取逻辑
- ✅ 更新了 init 服务配置
- ✅ 优化了构建流程配置
- ✅ 统一了路径结构,与 magisk.py 保持一致
## 使用方法
1. **构建前准备**:运行提取脚本自动下载并提取 Magisk
```bash
python3 magisk.py
```
2. **进行 Android 构建**:在你的设备配置中包含此 vendor
脚本会自动:
- 从 topjohnwu/Magisk 下载 Magisk v30.2 版本 APK
- 验证文件 MD5 校验和 (834b0f063ea713bea48b92c7d5648ce9)
- 提取二进制文件到 magisk 目录
**注意**:请确保在 Android 构建之前先运行 `magisk.py` 脚本来准备所需的文件。
## 目录结构
```
vendor/magisk/
├── magisk.py # Magisk 类模块(包含下载和复制逻辑)
├── magisk.apk # Magisk APK 文件
├── Android.mk # 构建配置
├── device.mk # 设备配置
└── magisk/
└── system/
└── etc/
└── init/
└── magisk/ # 提取的二进制文件目录
```
## 支持的架构
- ARM64 (arm64-v8a)
- ARM32 (armeabi-v7a)
## 兼容性
- 支持最新版本的 Magisk
- 适用于 Redroid 环境
- 兼容 Android vendor overlay 构建系统

View File

@@ -1,7 +0,0 @@
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) \

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +0,0 @@
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) \

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,11 @@
PRODUCT_PACKAGES += \
magisk
magisk_apk_flat
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) \
vendor/magisk/magisk/magisk:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk/magisk:0755 \
vendor/magisk/magisk/magiskboot:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk/magiskboot:0755 \
vendor/magisk/magisk/magiskinit:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk/magiskinit:0755 \
vendor/magisk/magisk/magiskpolicy:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk/magiskpolicy:0755 \
vendor/magisk/magisk/busybox:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk/busybox:0755 \
vendor/magisk/magisk/init-ld:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk/init-ld:0755 \
vendor/magisk/magisk.rc:$(TARGET_COPY_OUT_SYSTEM)/etc/init/magisk.rc:0644

View File

@@ -1,95 +0,0 @@
#!/usr/bin/env python3
import atexit
import os.path
import re
import shutil
import subprocess
import zipfile
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")
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 ...")
with zipfile.ZipFile(apk_path) as z:
z.extractall(unzip_path)
########################################################
########################################################
print("==> Installing magiskarm64 now ...")
overlay_path = os.path.join(current_path, "arm64", "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", "armeabi-v7a")
shutil.copyfile(os.path.join(lib32_path, "libmagisk32.so"), os.path.join(overlay_path, "magisk32"))
########################################################
########################################################
print("==> Installing magiskarm64_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 magiskx86_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 magiskx86_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__':
main()

Binary file not shown.

185
magisk.py Normal file
View File

@@ -0,0 +1,185 @@
#!/usr/bin/env python3
import argparse
import hashlib
import os
import re
import shutil
import subprocess
import urllib.request
import zipfile
def calculate_md5(file_path):
"""计算文件的 MD5 值"""
hash_md5 = hashlib.md5()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()
def download_file(url, file_path):
"""下载文件"""
print(f"==> Downloading from {url}")
urllib.request.urlretrieve(url, file_path)
def run_command(cmd):
"""运行命令"""
try:
subprocess.run(cmd, check=True)
except subprocess.CalledProcessError as e:
print(f"Command failed: {' '.join(cmd)}")
raise e
class Magisk:
def __init__(self, target_arch):
self.download_loc = os.path.join(os.path.dirname(os.path.abspath(__file__)), "downloads")
self.dl_link = "https://git.coderkang.top/Android/Magisk/releases/download/debug-7be6d81-30200/Magisk-7be6d81-30200-debug.apk"
self.dl_file_name = os.path.join(self.download_loc, "magisk.apk")
self.act_md5 = "834b0f063ea713bea48b92c7d5648ce9"
self.extract_to = os.path.join(os.path.dirname(os.path.abspath(__file__)), "temp")
self.copy_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "magisk")
self.target_arch = target_arch
# 架构映射
self.arch_map = {
"x86": "x86",
"x86_64": "x86_64",
"arm": "armeabi-v7a",
"arm64": "arm64-v8a"
}
def download(self):
"""下载 Magisk APK"""
print("==> Downloading latest Magisk now .....")
# 确保下载目录存在
os.makedirs(self.download_loc, exist_ok=True)
# 检查并下载 Magisk APK
need_download = True
if os.path.exists(self.dl_file_name):
print("==> Checking existing Magisk APK...")
actual_md5 = calculate_md5(self.dl_file_name)
if actual_md5 == self.act_md5:
print("==> Magisk APK already exists and verified!")
need_download = False
else:
print(f"==> MD5 mismatch. Expected: {self.act_md5}, Got: {actual_md5}")
if need_download:
download_file(self.dl_link, self.dl_file_name)
actual_md5 = calculate_md5(self.dl_file_name)
if actual_md5 != self.act_md5:
raise Exception(f"Downloaded file MD5 verification failed! Expected: {self.act_md5}, Got: {actual_md5}")
print("==> Download completed and verified!")
def extract(self):
"""解压 APK 文件"""
print("==> Extracting Magisk APK...")
# 清理并创建解压目录
shutil.rmtree(self.extract_to, ignore_errors=True)
os.makedirs(self.extract_to, exist_ok=True)
# 解压 APK
with zipfile.ZipFile(self.dl_file_name) as z:
z.extractall(self.extract_to)
def copy(self):
"""复制文件到目标目录"""
print("==> Copying magisk files now ...")
# 清理并创建目标目录
if os.path.exists(self.copy_dir):
shutil.rmtree(self.copy_dir)
os.makedirs(self.copy_dir, exist_ok=True)
# 复制主要架构的库文件
lib_dir = os.path.join(self.extract_to, "lib", self.arch_map[self.target_arch])
if os.path.exists(lib_dir):
for parent, dirnames, filenames in os.walk(lib_dir):
for filename in filenames:
o_path = os.path.join(lib_dir, filename)
so_name = re.search(r'lib(.*)\.so', filename)
if so_name:
n_path = os.path.join(self.copy_dir, so_name.group(1))
shutil.copyfile(o_path, n_path)
run_command(["chmod", "+x", n_path])
# 复制 arm32 的 magisk 二进制文件(如果存在)
lib32_path = os.path.join(self.extract_to, "lib", "armeabi-v7a")
magisk32_src = os.path.join(lib32_path, "libmagisk32.so")
magisk32_dst = os.path.join(self.copy_dir, "magisk32")
if os.path.exists(magisk32_src):
shutil.copyfile(magisk32_src, magisk32_dst)
run_command(["chmod", "+x", magisk32_dst])
# 复制 magisk.apk 到目标目录
apk_dst = os.path.join(os.path.dirname(os.path.abspath(__file__)), "magisk.apk")
if os.path.exists(self.dl_file_name):
shutil.copyfile(self.dl_file_name, apk_dst)
print("==> Magisk installation completed!")
def cleanup(self):
"""清理临时文件和目录"""
print("==> Cleaning up temporary files...")
# 清理解压临时目录
if os.path.exists(self.extract_to):
shutil.rmtree(self.extract_to, ignore_errors=True)
print(f"==> Removed temporary extraction directory: {self.extract_to}")
# 清理下载目录
if os.path.exists(self.download_loc):
shutil.rmtree(self.download_loc, ignore_errors=True)
print(f"==> Removed download directory: {self.download_loc}")
def run(self):
"""执行完整的构建流程"""
try:
self.download()
self.extract()
self.copy()
success = True
except Exception as e:
print(f"Error: {e}")
success = False
finally:
self.cleanup()
return success
def main():
"""主函数"""
parser = argparse.ArgumentParser(description='Magisk vendor package builder')
parser.add_argument('--arch',
choices=['x86', 'x86_64', 'arm', 'arm64'],
required=True,
help='指定目标架构 (必需)')
args = parser.parse_args()
print(f"==> Using target architecture: {args.arch}")
# 创建 Magisk 实例
magisk = Magisk(target_arch=args.arch)
# 执行构建
success = magisk.run()
if success:
print("==> Magisk vendor package created successfully!")
print("==> Temporary files cleaned up")
else:
print("==> Failed to create Magisk vendor package!")
exit(1)
if __name__ == '__main__':
main()

View File

@@ -1,38 +1,40 @@
service bootanim /system/bin/bootanimation
class core animation
user graphics
group graphics audio
disabled
oneshot
ioprio rt 0
task_profiles MaxPerformance
on post-fs-data && property:ro.boot.redroid_magisk=1
on post-fs-data
start logd
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
rm /dev/.magisk_unblock
start 7zKkuZ1ZhD
wait /dev/.magisk_unblock 40
rm /dev/.magisk_unblock
start wHgGlkRCtMoIQw
mkdir /sbin 755
chmod 0755 /system/etc/init/magisk/magisk
chmod 0755 /system/etc/init/magisk/magiskboot
chmod 0755 /system/etc/init/magisk/magiskinit
chmod 0755 /system/etc/init/magisk/magiskpolicy
chmod 0755 /system/etc/init/magisk/busybox
chmod 0755 /system/etc/init/magisk/init-ld
exec u:r:su:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
exec u:r:magisk:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
exec u:r:update_engine:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
exec u:r:su:s0 root root -- /system/etc/init/magisk/magisk --auto-selinux --setup-sbin /system/etc/init/magisk /sbin
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --post-fs-data
service 7zKkuZ1ZhD /sbin/magisk --auto-selinux --post-fs-data
user root
seclabel u:r:su:s0
oneshot
disabled
on nonencrypted
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --service
service wHgGlkRCtMoIQw /sbin/magisk --auto-selinux --service
user root
seclabel u:r:su:s0
oneshot
disabled
on property:vold.decrypt=trigger_restart_framework
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --service
on property:sys.boot_completed=1 && property:ro.boot.redroid_magisk=1
on property:sys.boot_completed=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/magisk/magisk.apk ; fi"
on property:init.svc.zygote=restarting && property:ro.boot.redroid_magisk=1
exec -- /system/bin/sh -c "if [ ! -e /data/data/io.github.huskydg.magisk ] ; then pm install /system/etc/init/magisk/magisk.apk ; fi"
on property:init.svc.zygote=restarting
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --zygote-restart
on property:init.svc.zygote=stopped && property:ro.boot.redroid_magisk=1
on property:init.svc.zygote=stopped
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --zygote-restart

View File

@@ -1,7 +0,0 @@
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) \

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +0,0 @@
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) \

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.