添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
千年单身的红薯  ·  [Day 11] React ...·  2 年前    · 
暗恋学妹的毛豆  ·  az storage blob | ...·  2 年前    · 

版权声明:本文为CSDN博主「ashimida@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lidan113lidan/article/details/50127325
更多内容可关注微信公众号 在这里插入图片描述

##mtk手机线刷
mtk手机刷机一般都是使用smart phone flash tool, 以我的mt6582为例,其刷机的界面如下图1所示
####图1 MT6582刷机界面:
刷机流程如下图2所示:
####图2 线刷镜像下载过程:
###线刷流程

  1. 设备上电后,最先运行的就是BootROM的代码(BootROM是固化在手机内部芯片中的(应该是一个NOR Flash芯片), 其代码是无法通过刷机写进去的,是再出厂的时候就写好的,这一块的代码也没有在mtk的源码目录中出现,目前手中也没有BootROM的镜像。),BootROM首先初始化软件堆栈(software stack),通信端口和可引导存储设备(如NAND/EMMC) (图2步骤1)。
  2. BootROM通过UART/USB可flash tool实现握手(这时候flash tool的download按钮应该已经处于按下状态了),并通过UART/USB下载DA代理(图2步骤2,3),DA就是Download-Agent,在图1中第一栏可以看到,这个DA是可以在刷机的时候指定的。在刷机时候,界面下方红色的进度条代表正在收入DA,如图:
    这里写图片描述
  3. BootROM跳转到DA执行(图2步骤4)。
  4. DA将其他文件下载到NAND/EMMC中(图2步骤5-10),其中下载preloader的时候是紫色的进度条,下载其他文件的时候是黄色进度条,如图:

    ##scatter中各个文件的作用
    mtk刷机的时候需要指定一个scatter.txt文件,这个文件记录的是后续的文件分别复制到NADA/EMMC的什么位置,下面是从scatter.txt中摘抄的一部分。

    - partition_index: SYS0
      //显示的分区名
      partition_name: PRELOADER
      //文件名
      file_name: preloader.bin
      is_download: true
      type: SV5_BL_BIN
      //在NADA/EMMC中的下载地址
      linear_start_addr: 0x0
      physical_start_addr: 0x0
      //这个文件的大小
      partition_size: 0xc00000
      region: EMMC_BOOT_1
      storage: HW_STORAGE_EMMC
      boundary_check: true
      is_reserved: false
      operation_type: BOOTLOADERS
      reserve: 0x00
      - partition_index: SYS10
      partition_name: RECOVERY
      file_name: recovery.img
      is_download: true
      type: NORMAL_ROM
      //在NADA/EMMC中的下载地址
      linear_start_addr: 0x3380000
      physical_start_addr: 0x2780000
      //文件大小
      partition_size: 0xa00000
      region: EMMC_USER
      storage: HW_STORAGE_EMMC
      boundary_check: true
      is_reserved: false
      operation_type: UPDATE
      reserve: 0x00
    

    在图2中可以看到,scatter文件一共指定要下载12个分区,这些分区的作用如下:

    PRELOADER: 内核在启动前的那一段平台相关的初始化代码,统称为bootloader,在mtk平台,PRELOADER和lk分别是bootloader的两部分,前一部分的PRELOADER主要是平台相关代码,后一部分LK主要是衔接操作系统的代码。

    MBR/EBR1/EBR2: 可能是分区相关信息,还不确定???

    UBOOT: 就是前面说的lk,botloader的第二部分代码,这里可以选择进入recovery模式,还是正常启动内核。

    BOOTIMG: BOOTIMG是一个镜像,这个镜像是由一个目录打包而成的,这个目录中包含两个文件:

    • 一个是zImage,就是的内核镜像,这个镜像是未解压的,其核心的功能就是decompress_kernel,将真正的内核Image解压到内存的某个位置,然后跳转执行。在boot.img中搜索gzip的文件头(我这里zImage和ramdisk是通过gzip压缩的),第一个搜到的就是压缩后的Image,如图,这个位置属于zImage的区域,往前找找就可以找到zImage的代码头部了。
      这里写图片描述
    • 另一个是ramdisk.img,这货又是个镜像,在系统启动的时候,这个ramdisk.img会被解压到内存,作为系统的根目录文件系统(可参考initrd实现)。在boot.img中搜索gzip文件头,第二个搜索到的就是ramdisk.img了,如图。

      RECLVERY: 是recovery模式的内核。

      SEC_RO: 不知道是啥???

      LOGO: 这货应该是开机画面

      ANDROID: 是system.img

      CACHE: 是cache.img

      USRDATA: 是userdata.img 这里后续补充???
      ##mtk手机启动
      mtk手机启动的总体流程如图3:

      BootROM启动[3]:

      1. BootROM是固化在芯片中的(应该是一个NOR Flash芯片), 其代码是无法通过刷机写进去的,应该是出厂的时候就写好的,这一块的代码,也没有在mtk的源码目录中出现。
      2. 设备上电后,最先运行的就是BootROM的代码(图3,步骤1)。
      3. BootROM初始化软件堆栈(software stack),通信端口和可引导存储设备(如NAND/EMMC)(图3,步骤2)。
      4. BootROM从存储器中(上面初始化的NAND/EMMC中)加载preloader到内部SRAM/ISRAM(高速缓存)中,此时DRAM(内存)还未初始化(在我这里preloader.bin大小114KB), 就是刷机图中的第一行"PRELOADER"哪一行。(图3,步骤3)
      5. BOOTROM跳转到preloader入口处执行。(图3,步骤4)

      preloader:

      1. preloader初始化DRAM和加载U-Boot(lk)到DRAM中。(图3,步骤5)
      2. preloader跳转到U-Boot执行。(图3,步骤6)

      U-Boot:

      1. U-Boot从NADA/EMMC中加载kernel(Boot image,包括zImage和ramdisk)。(图3,步骤7,8)
      2. U-Boot跳转到zImage的入口执行,这里就可以算是linux kernel正式的入口了(此时还没执行decompress_kernel)。(图3,步骤9)

      #参考资料
      [1].http://blog.csdn.net/loongembedded/article/details/38143289
      [2].http://blog.csdn.net/mcgrady_tracy/article/details/39340209
      [3].http://blog.csdn.net/loongembedded/article/details/38143289
      [4].http://yangguangwei1987.lofter.com/
      [5].http://bbs.pediy.com/showthread.php?p=1390180
      [6].http://www.cnblogs.com/chyl411/p/3573047.html
      [7].http://blog.csdn.net/loongembedded/article/details/42808055

      使用mtkclient工具修复MT6771设备的preloader问题 在Android设备维护和修复过程中,preloader作为设备启动的关键组件,一旦出现问题可能导致设备无法正常启动。本文将详细介绍如何利用mtkclient工具处理MT6771芯片设备的preloader相关问题。 preloader的重要性 preloaderMTK(联发科)芯片设备启动过程中的第一个程序,负责初始化硬件...
      和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:常用测试步骤(下面均以CTS为例)打开终端,进入 cts 包 tools目录下执行 ./cts-tradefed 进入cts测试:~/XTS/CTS/14/R3/android-cts-14_r3-linux/android-cts/tools$ ./cts-tradefed ==============...
      1_MTK智能穿戴(电话手表)开发教程_代码下载流程.pdf官网地址:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D33 配套书籍:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D73 配套视频:http://www.fengke.club/GeekMart/su_fihsGbMhu.jsp 淘宝地址:
      META mode:Mobile Engineering Test Architecture,移动工程师测试架构 ATE factory mode:automatic test environment,自动测试环境 ISRAM:internal system RAM MP:mass product,批量生产 DSI:display s
      <think>嗯,用户想要了解MTK刷机教程,也就是联发科芯片手机刷机方法。首先,我得确认用户对刷机的了解程度。可能他们之前没有刷过机,或者有一些基础但需要详细指导。刷机有一定风险,比如变砖或者丢失数据,所以需要提醒他们备份重要数据,并确保电量充足。 接下来,我需要分步骤来介绍整个流程。首先,准备阶段,包括备份数据、下载正确的ROM和驱动,还有解锁Bootloader。这里要详细说明如何解锁,因为不同品牌手机步骤可能不同,比如小米需要申请解锁权限,而华为可能已经关闭了渠道。 然后是安装驱动,特别是MTK的VCOM驱动,这在刷机过程中非常重要,否则电脑可能识别不到手机。需要指导用户如何正确安装驱动,可能需要禁用驱动程序签名验证,尤其是在Windows系统上。 接下来进入刷机步骤,可能需要使用SP Flash Tool或者其他工具。这里要详细说明如何载入散列文件,配置下载选项,以及如何让手机进入刷机模式(通常是通过断开数据线,关机后按住音量键再连接电脑)。 过程中可能会遇到问题,比如驱动安装失败、工具无法识别设备,或者刷机后无法开机。这时候需要提供一些常见问题的解决方法,比如重新检查驱动,尝试不同的USB口,或者使用正确的ROM版本。 另外,要强调风险,比如刷机可能导致保修失效,或者操作不当导致硬件损坏。建议用户仔细阅读教程,确认手机型号和ROM匹配,避免使用不可靠的来源获取刷机包。 最后,提醒用户刷机后的首次启动可能需要较长时间,耐心等待,如果遇到问题可以尝试进入Recovery模式清除数据。如果有更复杂的问题,可能需要寻求专业人士帮助。 整体结构需要清晰,步骤分明,用简单的中文解释专业术语,确保用户能一步步跟着操作,同时注意安全提示,避免用户因为操作失误导致设备损坏。</think>以下为MTK(联发科)芯片手机的通用刷机教程,操作存在风险,请谨慎执行: ### 一、准备工作 1. **备份数据** - 通过云服务/电脑备份通讯录、照片等 - 开启USB调试(设置 → 开发者选项 → USB调试) 2. **下载必要文件** - **ROM包**:从官方或可信渠道获取对应机型的线刷包(格式通常为`.zip`或`.tar`) - **驱动**:下载MTK VCOM驱动(如`MTK_USB_Driver.zip`) - **工具**:SP Flash Tool(适用于Windows,最新版本推荐) 3. **解锁Bootloader**(部分机型需要) - 小米/Redmi:通过[小米解锁官网](https://unlock.mi.com)申请权限 - 华为/荣耀:已关闭官方解锁通道(需第三方工具) ### 二、安装驱动 1. 解压MTK VCOM驱动 2. 右键点击`.inf`文件 → 选择“安装” 3. 若提示驱动未签名(Windows 10/11): ```bash # 临时禁用驱动程序强制签名 设置 → 更新与安全 → 恢复 → 高级启动 → 立即重启 → 疑难解答 → 启动设置 → 重启 → 按7键 ### 三、刷机步骤(以SP Flash Tool为例) 1. **解压线刷包** - 确保包含`scatter.txt`文件(散列配置文件) 2. **配置SP Flash Tool** - 打开工具 → 点击`Scatter-loading` → 选择`scatter.txt` - 勾选所有分区(默认全选) 3. **连接手机** - 关机后断开数据线 - 按住**音量下键**不放 → 插入数据线 - 工具识别到设备后显示黄色进度条 4. **开始刷机** - 点击`Download`按钮 → 等待进度条变绿(约5-15分钟) - 完成后提示`Download OK` ### 四、常见问题 1. **驱动安装失败** - 尝试更换USB接口或数据线 - 使用驱动管理工具(如驱动精灵) 2. **刷机后无法开机** - 重刷官方完整包 → 进入Recovery执行`Wipe Data/Factory Reset` 3. **SP Flash Tool报错** - `ERROR: STATUS_BROM_CMD_SEND_DA_FAIL (0xC0060003)`:更换低版本工具(如v5.1916) ### 五、风险提示 - 操作不当可能导致设备变砖 - 非官方ROM可能存在安全隐患 - 部分运营商锁机无法通过刷机解除 建议新手优先选择官方卡刷包(OTA更新)或寻求专业人员协助。

      感谢订阅,如有问题,可加Q 1224959269 讨论 专注 android 各版本 User 模式下 root 权限获取, 支持 adb root/adb remount 操作,支持 APK 获取 su 权限, 支持 AirDroid/HexNodeMDM 远程控制设备

      MTK 6765/6739/6755/6761/6763 android9.0 user版本打开root权限(adb root权限和 apk root权限)