Magisk 是一个非常强大的 Android 框架,它允许用户获得超级用户权限(即 root)而不修改系统分区,从而实现了系统无修改(Systemless)的 root。这意味着它可以在不影响设备正常接收 OTA 更新的情况下进行 root,同时还可以使用一些通常会因检测到 root 权限而无法运行的应用。
Magisk 的面具(Magisk Hide)功能是 Magisk 的一个重要特性,它允许用户隐藏设备的 root 状态,避免被某些应用检测到。这些应用通常包括银行应用、支付应用、游戏和一些流媒体服务,它们会出于安全考虑检查设备是否被 root。
以下是 Magisk 隐藏 root 状态的一些核心原理:
- 系统无修改(Systemless): Magisk 通过挂载一个修改过的文件系统镜像到现有的文件系统上,而不是直接修改系统文件,这意味着系统分区保持不变。
- Magisk Manager: 这是一个伴随 Magisk 使用的应用,它允许用户安装、管理和卸载 Magisk 模块。Magisk Manager 也负责管理哪些应用可以看到 root。
- MagiskSU: 这是 Magisk 提供的 root 管理组件,它处理所有的超级用户权限请求。它可以配置成隐藏 root 状态。
- Zygote Forking: Android 系统通过一个名为 Zygote 的进程模板来启动所有应用。Magisk 在 Zygote 启动过程中介入,创建了一个修改过的进程环境,这些修改对于检查 root 状态的应用来说是不可见的。
- 名单/黑名单: 用户可以在 Magisk Manager 中选择特定的应用来隐藏 root。被选中的应用将无法检测到设备已经被 root。
- 修改属性: Magisk Hide 会修改设备的一些属性值,如 ro.build.tags(构建标签),ro.system.build.tags,和 ro.vendor.build.tags,它们通常会被用来检查设备是否被修改。
- 隐藏进程: Magisk Hide 也会尝试隐藏所有与 Magisk 相关的进程和文件,使得它们对那些检查 root 的应用来说是不可见的。
Google 的 SafetyNet 是一种安全机制,用于检测设备是否符合 Google 的安全标准和完整性。这通常会涉及检查设备是否被 root 或是否运行了未经认证的软件。如果一个设备没有通过 SafetyNet 检查,一些应用和服务可能会拒绝在该设备上运行,或者限制其功能。
Magisk Hide 试图欺骗 SafetyNet,使其认为设备没有被 root 或修改过。这是通过一系列复杂的手段完成的,包括但不限于:
- 重置系统状态标记: Magisk Hide 可以修改系统状态标记,如 ro.boot.verifiedbootstate 和 ro.boot.flash.locked,来模拟一个未经修改的设备状态。
- 隐藏 Magisk 文件和进程: Magisk Hide 会尝试隐藏所有与 Magisk 相关的文件和进程,让它们对于检测机制来说是不可见的。
- 随机化 Magisk 组件名称: 通过随机化 Magisk 组件的名称(例如,Magisk Manager 的包名),Magisk Hide 使得自动化的检测脚本更难以发现它的存在。
- 模拟原始引导镜像: 通过模拟一个未被修改的原始引导镜像,Magisk Hide 可以欺骗一些基于引导状态进行检查的机制。
Magisk Hide 的实现方式随着 Google 安全政策的更新而不断演进。为了对抗这些新的检测机制,Magisk 不断更新以保持其隐藏能力。然而,这是一个不断进行的猫鼠游戏,因为一旦 Google 更新了 SafetyNet 检测算法,Magisk 可能需要更新以适应新的检测方法。
总的来说,Magisk Hide 的目标是让 root 用户能够享受到正常的 Android 体验,同时还能使用那些通常会拒绝在 root 设备上运行的应用和服务。然而,使用这些类型的工具可能会违反某些应用的服务条款,并且可能会导致安全风险,因此用户需要谨慎使用。
作者:http://xkrj5.com 纯原创首发,转载保留版权!
标签:Hide,ROOT,修改,面具,magisk,应用,root,隐藏,Magisk From: https://www.cnblogs.com/xkrj5/p/17823850.html