MTK手机SuperSU安装指南与FEC处理要点

8次阅读
没有评论

解决方案:MTK手机SuperSU安装与FEC处理指南

在使用MEDIATEK(简称MTK)手机时,将SuperSU或其他Magisk等管理工具成功运行并正确安装到设备中是一个复杂但重要过程。近期一位用户遇到了关于MTK Superimage制作与分发的问题,尤其是在有关FEC和Verity状态设置上遇到困难。以下是经过整理、总结以及进一步测试之后形成的解决方案及建议。

一、了解基本概念

  • dm-verity: 数据完整性验证机制,主要用于确保系统分区的文件未被篡改。
  • FEC (Forward Error Correction): 前向纠错技术,用于在数据传输中检测和纠正错误。通常与Verity配合使用。

二、解决方法

  1. DM-verity禁用:

    • 在进行任何系统更新或分包处理之前,请确保先行禁用了dm-verity。具体步骤为:
      sh
      fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    • 请确认vbmeta.img文件与你的实际设备型号相符(通常可以通过MTK FwInfo工具查看)。
  2. 检查VBMeta状态:

  3. 确认vbmeta, 而不是vbmeta_system或vendor等其他区域。
  4. 如果你发现vbmeta中的某些字段设置与禁用Verity不一致,请使用以下方法调整:
    hex
    # 打开HxD,定位offset70(注意每个分区可能存在不同的偏移量)。将原值(0x3)更改为0x2,
  5. 通常在vbmeta的第74字节处有verity相关标志位。设置为0x02表示未启用Verity。

    • 确认所有相关的系统、用户及vendor分区中的VBMeta状态,均一致地被修改为停用Verity/不再使用FEC的状态。
  6. 安装SuperSU或Magisk:

  7. 重新制作boot.img并烧写固件:
    sh
    ./lpmake -o super.img --partition table 1678229504 -p "system_a:none:1678229504:main" -i "system_a=./system_a.img" -p "system_b:none:139591680:main" -i "system_b=./system_b.img" -p "vendor_b:none:0:main" -i "vendor_b=./vendor_b.img" -p "vendor_a:none:411607040:main" -i "vendor_a=./vendor_a.img" -virtual-ab --output ./super.img
  8. 使用MTKClient将super.img刷入设备:
    sh
    python mtk w super super.img

三、可能的调整与注意事项

  • 分区大小和元数据:确保所创建的boot.img分区(如system, vendor等)大小正确无误,并添加适当元数据(例如65536字节)。
  • 文件内容检查
  • 在制作Superimage前,请务必审核各个分区内的实际文件是否存在错误或遗漏。如有必要,可先行备份当前系统状态。

四、常见问题与解决建议

  • 遭遇FEC相关问题时,请尝试禁用
  • 如果遇到设备死机等问题,考虑重置设备并再次执行所有步骤以确保无遗漏。

请用户仔细复核上述操作指南,并在进行修改分区或刷写过程前备份重要数据。希望以上方案能帮助您解决安装与调整过程中遇到的困扰。如仍有其他疑问,欢迎随时提问交流。

正文完