
简介面向MT6735安卓平台开发与刷机的Root工具包基于SuperSU v2.80内核专为需要获取系统最高权限的ROM开发者、系统移植者及深度调试用户准备可解决刷机过程中权限不足、工具链不完整等常见问题。压缩包内总共包含六十二个文件压缩后体积仅为五点五六兆字节整体按CPU架构与功能模块清晰分类涵盖arm64、arm、x86等多个平台的su主程序、sukernel内核模块、supolicy策略工具以及libsupol.so动态库同时提供Superuser管理端APK、刷机脚本、密钥签名文件与电源管理调试脚本适配不同MT6735机型及系统分区。这种组织方式便于开发者在具体项目中按需提取对应架构或模块节省二次封装时间。已有九百二十三人学习浏览说明该工具包在同类资源中具备一定参考价值。通过压缩包内容读者可以快速理清SuperSU的完整目录结构及各类文件用途直接用于MT6735设备的Root操作也可借助updater-script、file_contexts_image等关键文件理解安卓刷机包的打包规范为定制ROM及系统安全研究提供可复用的基础。1. 为什么到2024年还在折腾MT6735这颗老SoC先说结论MT6735这个平台在2024年做开发一点都不过时反而有它不可替代的价值。如果你接触过安卓开发板、工控平板或者一些定制终端大概率见过这颗芯片。它是联发科早期4G方案里的明星产品四核Cortex-A53频率1.3GHz到1.5GHz配Mali-T720 GPU支持1080P显示。放在今天看性能确实不够看但它有一个极其关键的优势资料全、底层的坑都被踩平了。无论是联发科的官方文档、SP Flash Tool刷机工具链还是国内外开发者留下的讨论帖MT6735的生态成熟度远超很多新出的国产方案。我个人的判断是MT6735在开发板市场的生命力至少还有三到五年。原因有三一是成本极低整板方案几十块钱就能拿到二是BSPBoard Support Package完整内核源码、设备树、vendor分区镜像都能从方案商手里拿到三是它跑的是Android 5.1/6.0这个版本的系统对root的容忍度极高没有太多乱七八糟的加密验证非常适合做底层实验。但问题也随之而来。很多朋友拿到板子第一件事就是刷root结果要么卡在刷机工具驱动上要么刷完root之后Magisk死活装不上要么干脆把boot分区搞坏变砖。这背后的原因不是手气不好而是对MTK平台的刷机链路和安卓的root机制缺少一个整体认知。这篇文章我会从MT6735的开发实际出发把刷机、root工具选型、Magisk修补、系统定制开发这条链路完整走一遍顺带把我踩过的坑和排查思路一并交代清楚。适合手里有MT6735开发板、想做系统定制或底层调试的朋友参考。2. 刷机链路拆解从preloader到用户空间的权限闭环2.1 整机固件里每个分区干什么在动手root之前先搞清楚一件事root不是改一个开关而是要从系统启动链路里找到那个权限校验点然后绕过或者替换它。MT6735的安卓固件从芯片上电到系统启动完成大致经历这么几个阶段preloader芯片BootROM加载的第一段代码负责初始化DRAM然后加载下一级引导。这一段相当于PC的BIOS一般不需要动动了也容易砖。lkLittle Kernel联发科的第二阶段引导程序负责初始化外设、显示开机logo最终根据bootloader参数加载boot分区。它的职能类似PC的引导管理器但它同时承担着部分安全校验职责。boot分区包含Linux内核和ramdisk。ramdisk里有一个关键文件叫init.rc它是安卓用户态的第一个进程init的启动脚本root权限的本质控制点就在这里。system分区存放Android系统框架是后续root工具主要改写或覆盖的地方。vendor分区如果存在放设备专属的硬件抽象层HAL和驱动相关文件。MT6735原生跑Android 5.1/6.0时部分设备没有独立vendor分区所有东西都压在system里。这个细节对你后续选root方案有直接影响后面会讲。2.2 root权限的起源是ramdisk里的init很多人以为root是把su二进制文件丢进system分区的xbin目录就算完事儿。这是十年前的做法现在早就不够用了。安卓的root权限来源本质上是**谁控制了init进程谁就控制了整个系统的用户权限模型**。在安卓的启动流程中zygote由init启动system_server再fork出所有应用进程而init本身运行在root权限下。如果你想以root身份执行命令最可靠的办法就是在启动早期——内核起来、init刚执行的时候——插入你的代码。Magisk的原理就是这样它不把su放进system而是通过修补boot分区里的ramdisk在init执行早期挂载一个magisk镜像再通过magiskd守护进程和su客户端建立通信最终以root身份执行命令。所以MT6735上的root操作第一优先级是处理boot分区其次才是system分区。很多教程让你先刷一个root包那种包实质上干的就是替换boot和system两个分区的事。只是这类包已经不流行了因为它不具备可维护性Magisk包管理器换版本就要重新刷。2.3 SP Flash Tool刷机你应该知道的事联发科平台的刷机工具是SP Flash Tool配合它的驱动DA驱动可以在板上电的瞬间通过USB进入Download模式。对于MT6735开发板我给你的建议是Windows上刷机驱动装对是关键。MTK的USB VCOM驱动经常被Win10/Win11的驱动签名策略卡住需要在高级启动里禁用驱动强制签名或者用方案商提供的驱动安装脚本。刷机前备份完整固件尤其是preloader、lk、boot、system这几个分区。SP Flash Tool的Readback功能可以把整颗Flash的内容读出来备份。我习惯先用Readback全量备份一次再动手变砖的时候能省一整天时间。只刷boot分区做root实验不要勾选Format All Download那个操作会清掉NVDATAIMEI和WiFi校准信息MT6735清掉NVDATA之后非常麻烦。当你对分区的角色有了概念接下来要做的就是选root工具了。3. root工具选型与MT6735的兼容性分析MT6735能用的root工具我实测下来主要就是三类SuperSU、Magisk、以及针对新内核的APatch/KernelSU。它们的原理和适用范围完全不同我这里做一个横向对比。维度SuperSUMagiskAPatch / KernelSU修改位置/system分区boot分区ramdisk内核镜像适用Android版本5.1/6.0友好6.0-14可用偏向GKI内核的新设备优点老设备兼容性极好刷入简单模块化可隐藏rootOTA后不丢最新的权限模型性能损耗小缺点项目已停更无法隐藏root对32位老系统有兼容性问题MT6735基本装不上MT6735推荐度高初版可用中需特定版本不建议先说SuperSU。它的思路是直接在system分区里放置su二进制文件配合一个Superuser.apk来弹窗授权。在Android 5.1/6.0时代它的兼容性确实好几乎是一键刷入就能用。缺点也很明显自从被收购后项目就停止维护了新系统上会出现各种授权异常Security Enhanced LinuxSELinux策略变化后它也很难适配。但对MT6735这种老平台它反而是最省心的选择之一。然后是Magisk。它的核心卖点是无系统root也就是不修改system分区所有改动都在boot分区的ramdisk里完成。后续你升级系统只要boot分区没被官方覆盖root就能保留。它还可以装模块实现各种系统级修改——比如改开机动画、调整cpu频率、隐藏root状态。不过Magisk在MT6735上有个问题Magisk高版本25.x之后对32位用户态的支持越来越弱。MT6735跑的是32位systemMagisk的某些组件如busybox、magiskinit在编译和运行时会遇到架构兼容问题。这不是你操作的问题而是官方已经不太照顾这类老平台了。我自己测试下来Magisk 20.4到23.0这个区间在MT6735上工作正常再往上的版本在某些板上会出现开机循环或Magisk应用打不开。然后是APatch和KernelSU。这两个是面向新内核的root方案一个通过内核补丁一个通过susfs隐藏适配MT6735的内核版本通常是3.18既不是GKI架构也不是新版安卓适配的目标基本不用考虑。除非你愿意自己改内核编译而这又涉及MTK内核源码里一堆私有驱动的适配投入产出比较低。所以我的建议很简单如果只是想快速拿到root做开发和调试SuperSU是最稳的选择如果想要模块化能力和后续OTA保护选Magisk 23.0以下的版本。4. Magisk在MT6735上的完整root流程与掉root处理既然Magisk更现代化我就以它为主讲一遍MT6735上从刷入到验证的完整流程同时把root掉了Magisk不见了这类高频问题一并解决。4.1 先解锁还是直接刷MTK方案的直线路径MTK平台和Qualcomm不同没有严格意义的bootloader解锁流程很多板子的lk本身就没锁或者锁得很松。我手里的MT6735开发板直接用SP Flash Tool就能写boot分区不需要像高通的edl模式那样还要算token。操作顺序如下用SP Flash Tool的Readback功能备份原厂boot分区命名为boot_original.img。把boot_original.img拷贝到手机/平板的内部存储通过adb push或直接插TF卡拷贝。安装Magisk Manager对应版本建议装一个与后面计划刷入的Magisk版本匹配的APK。打开Magisk Manager点击安装选择修补文件选中boot_original.img。修补完成后输出一个名为magisk_patched-xxxxx.img的文件把它导回到电脑上。用SP Flash Tool只勾选boot分区把修补后的镜像刷入。这一步完成之后reboot进系统打开Magisk Manager如果页面上显示Magisk已安装root就成功了。但MT6735上经常出现一种情况Manager显示未安装但adb shell里直接输su又能获取root。这说明magisk的功能已经注入只是Manager检测兼容层的通信出了问题。解决办法通常是换一个更早版本的Magisk Manager如8.0.x重新检测或者干脆用命令行的magisk --install手动补一下。4.2 修补boot的两种方式对比修补boot镜像有两种路径一是上面说的先dump原版boot再在设备上修补还有一种是在电脑上用Magisk官方提供的magiskboot工具对boot文件做离线修补。两种方式我都用过各有利弊。设备端修补优点是无需在电脑上搭建环境只要装好Magisk Manager就能做缺点是MT6735的内存和存储资源有限处理大容量的boot镜像一般在20MB上下时会比较吃力偶尔会因为临时目录空间不足导致修补失败。电脑端离线修补适合管子多的人。你只要准备一个Magisk的release zip包找到其中arm平台的magiskboot可执行文件在Linux环境里执行类似./magiskboot unpack boot_original.img # 替换/生成 ramdisk 相关文件 ./magiskboot repack boot_original.img这种方式速度快也方便批量处理多种固件。但注意一点Magisk 24及以上版本的magiskboot已经移除了部分老平台的兼容参数在MT6735的3.18内核上优先用23.0版本的magiskboot更保险。4.3 Magisk组件与32位system的兼容性细节MT6735的一个关键限制是它的system镜像默认是32位armeabi-v7a即使CPU本身是64位的A53支持AArch64安卓系统也跑在32位兼容层里。这意味着Magisk的magiskinit、magiskd这些组件必须以32位模式运行。在Magisk 23.0及之前的版本中官方还会为arm32架构提供完整构建直接能跑。从25.0开始构建产物不再单独强调arm32支持部分组件需要靠兼容层转换容易出问题。所以我通常建议MT6735上锁版本不要一路升级。如果你已经刷了高版本Magisk并出现开机循环不要慌。把设备重新用SP Flash Tool刷回原版boot分区就能恢复然后换用合适版本的Magisk重新修补。这再一次印证了备份boot分区的重要性。5. 系统定制开发中的实用调试链root不是终点拿到root之后真正要干的活——做系统定制、调试驱动、跑自动化测试——才刚刚开始。这一节我把MT6735开发中三个最高频的调试刚需捋一遍。5.1 关闭dm-verity与强制验证MTK平台的Android 5.1/6.0上默认开启了dm-verity这个机制会在系统分区每次启动时做hash校验一旦你修改了system分区机器就会一直提示系统损坏或者在极其离谱的情况下不启动。开发阶段大家经常要往system里推so库、推可执行文件如果不关dm-verity所有改动都会被校验挡住。在Magisk环境下最简单的方法是刷入MagiskHide Props Config模块或直接在Magisk的设置里把系统分区加密/验证相关选项关掉。但MT6735上有些板子因为内核配置原因模块方式不生效。这时候可以直接用adb命令adb root adb disable-verity adb reboot如果你当前没有root状态adb disable-verity会报错。还有一种方案是用SP Flash Tool刷入一个预先关闭验证的system镜像这需要自己修改dtbo或者kernel cmdline里的dm_verity0参数。实操优先级我建议先试adb disable-verity不生效就查内核cmdline是否包含verify配置有就改分区表脚本把verify的配置项去掉最后才考虑重刷system。5.2 adb root不能用的处理MT6735开发板出厂时adb多半不是root模式。adb root命令会提示adbd cannot run as root in production builds这是因为ro.debuggable和ro.secure属性在编译时被写死成生产配置。想要直接通过adb拿到root shell有几个思路用Magisk的终端在设备上装一个Terminal应用开Shell执行su后再通过adb tcpip 5555开启网络adb配合WiFi adb连接开发。这个方案不用改系统属性最安全。改build.prop在/system/build.prop里加一行ro.debuggable1然后重启。注意MT6735上system分区在dm-verity开启时长驻只读需要先关掉验证再remount。重新编译adbd不推荐MTK原生adbd的编译依赖一堆私有库投入产出比极低。我的日常习惯是开发调试阶段用Frida去做动态hook和运行参数抓取很少需要反复刷机。Frida也依赖root环境但它通过Magisk模块运行稳定性远比直接改adbd属性要好。5.3 抓log的正确姿势很多朋友用adb logcat抓log抓完之后发现关键时期的日志已经被环形缓冲区冲掉了。在MT6735上做系统开发我建议你配置Logd串口log双通道的方案。Logd负责安卓框架和应用的log适合定位上层问题。串口logUARTMT6735开发板通常引出UART调试口能看到preloader、lk、Kernel早期的打印信息一旦系统在启动早期崩溃只有串口log能救你。接线一般是用USB转TTL速率设为921600。板子的调试串口若有RX/TX/GND三根线接上就能用minicom或者PuTTY读输出。实际调试中当卡在开机logo无任何响应时串口log是唯一能复现死机原因的方法。我在调试一个自定义HAL库时因为一个空指针导致vendor进程反复崩溃就是通过串口log看到了具体崩溃地址再用addr2line定位到具体函数最后只花半小时就解决了。6. 比root更重要的事从玩机到项目落地6.1 MT6735上常见的项目化落地场景拿到root权限、搞定调试链路之后很多人会迷茫我能拿这板子干什么其实MT6735在行业里的应用场景远比你想象的广。我接触过的真实项目中MT6735被大量用在以下场景kiosk模式终端比如自助查询机、广告机、简易收银机。利用Android 5.1系统的锁任务模式Launcher锁定配合root权限禁止状态栏下拉、屏蔽硬件按键实现单一应用锁定。这个方向的热度一直非常高源码级别的权限控制也依赖root。视频流处理盒子MT6735支持基本的视频编解码能力做一些RTSP拉流、H.264硬解的轻量应用是可行的。配合root可以通过命令直接调整/sys/class/video/下的编解码器参数绕过应用层限制。工业数据采集屏利用MT6735的UART、GPIO接口做传感器数据采集root后可以直接操作/dev/ttyMT*设备节点避免被Android的权限体系卡住。这些场景里root不是破解的象征而是一个工程师必要的开发工具。没有root很多底层设备的访问权限根本无法放开。6.2 从root到构建最小demo系统的思路如果你想在MT6735上做一个干净的最小demo系统我给你一个最稳妥的构建路径拿到方案商的完整BSP确认内核版本和驱动源码可用。在Linux环境下编译AOSPAndroid 5.1或6.0先编译一个不带的root的原版系统确保系统能正常启动。基于Magisk修补boot把root能力注入到ramdisk阶段。通过Magisk模块或直接修改system预装你的主应用、关掉不必要的系统应用、配置网络、禁用系统更新。用SP Flash Tool生成量产固件包括preloader、lk、boot、system等分区一整套后续所有终端都刷同一套镜像。这套流程的好处是一旦初始基准镜像确定后面再做系统层面的修改无非就是改模块、重新打包、刷boot/system三个动作完全不需要重复搭环境。我在实际项目里还发现一个容易被忽略的点MT6735平台的eMMC芯片寿命和Flash分区大小因批次而异。如果做量产建议在bootloader参数里把每个分区大小都固定下来避免某台设备的system分区多了几个MB导致刷机失败。这类问题在实验室里看不出来到产线上一大批机器同时刷就会出现间歇性失败排查起来非常难受。6.3 关于root工具维护的最后一点心得写到这我还是要再强调一遍MT6735是一颗老芯片但它对应的工具链、文档和开发者社区积累很厚几乎你遇到的所有问题——无论是刷机失败、Magisk掉root、还是卡在开机——网上都有前人的解决方案。关键在于你要理解每一条命令、每一个工具背后的分区和启动流程逻辑而不是盲目照抄。比如Magisk掉root这个问题最常见的诱发原因有三个一是刷入了不兼容的模块导致ramdisk被改坏二是boot分区被OTA覆盖三是Magisk Manager强制升级到高版本后与老架构不兼容。你把这三点吃透不管遇到哪种情况第一反应都是先dump当前boot分区比对官方boot再决定是重刷模块还是降级版本而不是到处找教程重来一遍。我从MT6735上第一次成功刷入Magisk到现在已经把整套流程固化成自己的开发模板了。包括备份脚本、修补命令、验证列表、量产打包配置全都沉淀成脚本后续任何一块新板子到手半小时内就能走到root可用的状态。这个思路也建议你试试别满足于这次刷成功了而是把每次操作都变成可复用的工具这才是开发效率的真正来源。本文还有配套的精品资源点击获取