菜单

安装系统

相关源文件

Magisk 安装系统负责将 Magisk 安全地集成到 Android 设备中。该系统处理启动镜像修补过程、不同设备类型的安装方法以及 OTA 更新期间的存活机制。有关启动镜像修补的特定信息,请参阅启动镜像修补

安装系统概述

安装系统提供了多种途径,可以在各种设备配置上安装 Magisk。该系统需要处理不同的分区布局(A/B、A-only)、设备特定的要求(如三星设备)以及各种 Android 版本。

来源:scripts/boot_patch.sh scripts/flash_script.sh scripts/util_functions.sh scripts/addon.d.sh docs/install.md

核心安装组件

安装系统由几个协同工作的关键组件组成

组件描述主文件
启动镜像修补器解包、修改和重新打包启动镜像boot_patch.sh
刷写脚本协调安装过程flash_script.sh
实用函数提供用于分区挂载、设备检测等的函数util_functions.sh
OTA 更新存活在系统更新期间保留 Magiskaddon.d.sh

安装脚本关系

来源:scripts/flash_script.sh94-101 scripts/util_functions.sh419-441 scripts/boot_patch.sh86-256

安装流程

安装过程涉及从启动镜像检测到最终刷写等多个阶段

来源:scripts/flash_script.sh25-100 scripts/util_functions.sh419-441 scripts/boot_patch.sh88-256

特定设备安装路径

Magisk 的安装系统可适应不同的设备类型和配置

带有启动 Ramdisk 的标准设备

  1. 启动镜像被修补以包含 Ramdisk 中的 Magisk
  2. 修补后的启动镜像被刷写到设备
  3. 重启后,Magisk 在启动过程中初始化

无启动 Ramdisk 的设备

对于不包含 Ramdisk 的启动镜像的设备(通常是较新设备)

  1. 改为修补恢复镜像
  2. Magisk 以“恢复模式”运行
  3. 用户必须使用恢复组合键启动到启用 Magisk 的系统

三星设备

三星设备需要特殊的安装方法

  1. AP(Android Platform)tar 文件被修补
  2. 使用 Odin 刷写修补后的 AP tar 以及其他固件组件
  3. 首次安装时需要擦除数据

来源:docs/install.md25-73 docs/install.md74-143

OTA 更新存活

安装系统包含帮助 Magisk 在系统更新期间存活的机制

A/B 设备

对于具有 A/B 分区方案的设备

  1. 在 OTA 前通过 Magisk 应用恢复 stock 镜像
  2. 应用 OTA 更新(安装到非活动槽)
  3. 使用 Magisk 应用将 Magisk 安装到更新后的非活动槽
  4. 通过 Magisk 应用重启(切换到更新后的槽)

支持 addon.d 的 A-only 设备

对于支持 addon.d 的设备

  1. addon.d 脚本在 OTA 过程中备份 Magisk
  2. OTA 完成后,脚本会重新安装 Magisk

来源:scripts/addon.d.sh10-168 docs/ota.md1-41

关键函数和实用程序

安装系统依赖于几个关键的实用函数

分区管理

  • find_block:定位分区的块设备
  • mount_partitions:挂载安装所需的分区
  • setup_mntpoint:准备分区的挂载点

启动镜像处理

  • find_boot_image:根据设备配置确定合适的启动镜像
  • flash_image:将镜像安全地写入块设备

设备检测

  • mount_partitions:还检测 A/B 槽信息和 system-as-root 配置
  • get_flags:确定设备加密状态和其他重要标志
  • api_level_arch_detect:识别 Android API 级别和 CPU 架构

来源:scripts/util_functions.sh205-234 scripts/util_functions.sh274-324 scripts/util_functions.sh370-392 scripts/util_functions.sh394-416 scripts/util_functions.sh491-514

安装脚本关系

安装系统由多个协同工作的脚本组成

来源:scripts/flash_script.sh22-24 scripts/util_functions.sh419-441 scripts/addon.d.sh63-64 scripts/boot_patch.sh56-57

结论

Magisk 安装系统为在各种 Android 设备上安装 Magisk 提供了一个强大而适应性强的框架。它处理不同设备配置、启动过程和更新机制的复杂性。该系统的模块化设计使其能够支持从标准设备到三星手机和无 Ramdisk 设备等特殊情况。

理解这个系统对于开发 Magisk 模块、创建自定义安装或排除安装问题至关重要。安装过程构成了所有其他 Magisk 功能所依赖的基础。