常见问题
Q:我安装了一个模块,它导致设备启动循环。怎么办!
如果你在开发者选项中启用了 USB 调试,请将手机连接到电脑。如果你的设备被检测到(通过 adb devices 检查),进入 ADB shell 并运行命令 magisk --remove-modules。这将移除所有模块并自动重启设备。
如果你不幸没有启用 USB 调试,你可以使用安全模式按键组合启动,使 Magisk 在模块目录中创建一个名为 'disable' 的空文件,在下次使用 Magisk 启动时禁用模块。大多数现代 Android 设备在启动时支持这种特殊的按键组合作为紧急选项进入系统安全模式,但请注意 Magisk 的按键组合检测比系统检测_更早_发生,因此许多在线指南指示的按键组合时间可能需要调整才能激活 Magisk 的安全模式。(可能激活系统安全模式但不激活 Magisk 安全模式,反之亦然。)
以下详细信息应确保模块被正确禁用:
- 许多进入安全模式的在线指南说"当动画标志出现时,按住音量下键直到系统启动"或类似内容。这实际上可能对 Magisk 检测来说_太晚了_,导致激活系统安全模式但模块未被禁用。
- 在动画出现前几秒按下音量下键,并在启动动画出现时立即松开,Magisk 的安全模式应该被激活而不会激活系统安全模式(从而避免禁用其他设备和应用设置),设备应该会正常启动到系统,模块被禁用。
- 在动画出现前几秒按下音量下键并按住直到系统启动,Magisk 的安全模式和系统安全模式都应该被激活。接下来,在启动回到正常系统后,模块将被禁用。
Q:为什么 X 应用检测到 root?
Magisk 不再处理 root 隐藏。有大量 Magisk/Zygisk 模块专门提供这些功能,请搜索一下 😉
Q:更新后 Magisk 应用显示 Magisk Installed = N/A,但 magisk su 仍然工作。
如果在应用隐藏状态下升级(即你选择了"隐藏 Magisk 应用"选项),存根应用(用于隐藏 Magisk)可能仍然存在,同时完整的 Magisk 应用也已安装。这会产生冲突,完整应用无法看到或访问 root...卸载并重新安装完整应用可以解决此问题,但如果隐藏应用(存根)仍然存在则不行。
解决方案是检查隐藏的存根应用并移除它。它可能不再正常显示在你的启动器主屏幕中,但应该在通用设置、应用中可见。隐藏的应用将被命名为"设置"(默认)或你在隐藏过程中命名的任何名称。请注意,可能存在多个混淆的应用。卸载你找到的隐藏应用的任何迭代,然后尝试再次打开完整应用。如有必要,卸载它并重新安装与已安装二进制文件匹配的完整应用。在终端模拟器应用中输入 magisk -c 将显示已安装的 Magisk 二进制文件的版本和版本代码(尽管显示 Installed = N/A)。
此外,如果设置了"第二空间",例如工作区、平行空间等,或其他沙盒环境,例如多用户附加配置文件、Island 应用或类似应用,请检查这些环境中是否没有运行 Magisk 的任何迭代(无论是隐藏应用还是完整应用)。
Q:选择"隐藏 Magisk 应用"选项后,应用图标损坏。
隐藏 Magisk 应用时,它将安装一个空的"存根"APK。这个存根应用唯一的功能是将完整的 Magisk 应用 APK 数据下载到其内部存储并动态加载。由于存根 APK 实际上是空的,它不包含应用图标的图像资源。
当你打开隐藏的 Magisk 应用时,它会为你提供在主屏幕创建快捷方式的选项(具有正确的应用名称和图标)。你也可以在应用设置中手动要求应用创建图标。
Q:如何在模拟器中使用 Magisk?
在模拟器运行并通过 ADB 可访问的情况下,运行 ./build.py emulator <path to Magisk APK> 临时将 Magisk 安装到模拟器。补丁不是持久的,意味着重启后 Magisk 将丢失,因此如果需要模拟重启,请重新执行脚本。
该脚本仅在 Android Studio 附带的官方 Android 虚拟设备 (AVD) 上进行了测试;其他模拟器可能可以工作,但模拟器必须启用 SELinux。