之前上一期,我们已经将红米Note 4X相适配的LineageOS相关刷机包已经编译出来了,是驴子是马拉出去溜溜就知道了,接下来就要开始刷机旅程了,当然刷机有风险(自己刷成了砖,我也没办法),所以首先我们要来了解一些刷机方面的小知识,做到心中有数,遇事不乱即可。

手机其实跟PC没什么本质的区别,都有bootloader都有kernel和system文件夹,先上一张简图

我们姑且把每一个块就当做一个线性的数据存储空间吧,可以看到bootloader在最前头,负责启动后面的正常内核 或者recovery内核吧。内核启动完了,光有个卵用,还得创建出init 开始进入应用层,应用层的app就负责调用内核提供的系统调用来完成各种功能。这样我们才看得到各种app的身影。 所以/system就是我们操作系统最基础的组件和app存放点。/data我们可以看成用户自己存储的数据和app文件夹,比如你下载点啥,安装个啥app吧。/cache就是缓存系统了,存放系统的一些临时文件,或者日志记录等数据,通常刚开始它是空的。

我们再结合~/android/out/target/product/mido下面生成的几个img文件,与上面几个块的对应关系吧。

boot.img 对应的就是 boot kernel + ram disk

recovery.img 对应的就是recovery kernel + ram disk

system.img 对应的就是/system

userdata.img 对应的就是/data

cache.img对应的就是/cache

那么bootloader呢,通常我们不去乱动它,当然你也可以刷成自己定义的bootloader,但是我暂时不建议这么做,因为bootloader一旦损坏了,不能正常工作,你的手机就变砖了,这个时候普通刷机方式无能为力。所以,通常我们解锁bootloader就是所说的手机解锁。就是让bootloader能听从我们的话,往手机内部flash存储块中刷入各种img。这就是刷机了,通常我们所说的线刷,一般是靠bootloader完成的。

当然还有一种叫卡刷,那个就是启动进入recovery kernel中,基本上是一个最简单的linux基本系统,当然我们可以加载其他app拿着root权限来对整个系统所有文件区块进行写操作了,当然包括刷入新的boot.img了。现在不知道各位明白了没。

有了这点基本知识,刷机就可以开始了。

大家可能会问,怎么boot.img 和recovery.img都是由两个文件组成的呀。对呀,它其实由两个文件组成,一个是内核二进制(zImage)另一个是内存磁盘镜像(ramdisk.img)。这个ramdisk.img其实就是一个利用内存作为磁盘的模板文件,由内核加载到内存中,然后挂载到文件系统中去,这样可以加快启动文件的读取,也能够起到一键还原的功效,因为你在里面可以随便改,但是重启了之后,它依然加载的是flash上的ramdisk.img.这种设计的确巧妙,不愧是linux吧。ramdisk.img里面放的就是系统内核启动完毕要执行的第一批最必要的系统应用如init等。它会完成后面的/system 和 /data的挂载等工作。所以ramdisk.img的作用很关键。

那么boot.img 和recovery.img有什么区别呢,我认为,内核zImage部分应该没啥区别,估计区别在ramdisk.img ,recovery模式你面放入的可能是一个恢复程序,而不会引导加载后面的文件分区来完成正常的启动,那么我们可以把 boot.img 和recovery.img看作一个双系统中的两个不同的linux系统吧。

小米的bootloader我们可以在手机启动时,按住音量- 和电源键,你会看到一个fastboot界面,其实用的就是fastboot作为bootloader,fastboot是个什么东西呢,其实只是bootloader的一种。上一张国外的bootloader功能图

其实就是可以实现从不同的分区引导启动系统。

fastboot其实是一种较为高级的一种bootloader它加载了一个微小的内核,支持基本的usb协议,所以它可以通过usb线,来传输和接收数据和控制命令。

当我们将手机启动进入fastboot等待模式时,他就会不停的接受来自usb的数据信号,只有当上位机发送各种指令和数据时,它就会根据上位机的指令来做各种操作,比如擦除某个分区,写入某个分区新的数据。

我们可以将上位机发送的命令分为三种

第一种,基本命令

命令 | 解析

devices | 列出所有的fastboot客户设备

getvar | 获得某个参数值

continue | 继续正常启动

reboot | 重启正常启动

reboot-bootloader | 重启到fastboot等待模式

第二种,刷机命令

命令 | 解析

erase |擦除某个分区 比如boot,recovery,system,data

flash |擦除并刷写入同名的 .img文件

flash |擦除分区并写入相对应的filename的img文件

flashall | 这个就是擦除boot recovery system分区,然后写入fastboot目录下 boot.img recovery.img system.img文件

第三种,额外指令

命令 | 解析

oem | 与设备特定相关的操作,比方说解锁

boot | 这是个很有用的命令,直接将内核文件和ramdisk文件加载到内存,不刷写,直接从内存引导启动,这样对系统的伤害降到了最低,通常想测试内核是否是好坏,可以采取这种方式。

好了fastboot命令讲解完了,大家就应该知道线刷是怎么回事了吧。

接下来我再将卡刷,之前讲过了,是进入到recovery.img这个内核镜像中去了,内核通常没区别,因为内核提供基本与各种设备操作的基本接口,而唯一的区别就在于ramdisk 上面,如果我们能够写一个非常好用的应用程序,可以实现对各个分区进行擦写,那么就是一个非常好的刷机app了,这么优秀的app有很多,我比较推荐一个就是

TWRP ,估计很多搞过卡刷的人都耳熟能详了,官方已经制作好了相应的recovery.img了,你只要把recovery分区刷进去,然后开机按 电源键 和音量+键 ,就可以进入到recovery系统了,这个时候你就会看到twrp操作界面了。现在明白了吧,用twrp刷机就是我们通常所说的卡刷了。

明天接着写,实际操作,时间有限,

linux给红米note4x刷机,红米Note4X 刷机LineageOs 14.1全过程讲解相关推荐

  1. 红米Note4X 刷机LineageOs 14.1全过程讲解

    之前上一期,我们已经将红米Note 4X相适配的LineageOS相关刷机包已经编译出来了,是驴子是马拉出去溜溜就知道了,接下来就要开始刷机旅程了,当然刷机有风险(自己刷成了砖,我也没办法),所以首先 ...

  2. 红米note4x刷android,红米Note4X刷魔趣固件笔记

    缘起:手里刚好有一部替换下来的旧手机,无聊想刷机玩玩. 手机型号:红米Note4X(高通版)CPU是骁龙625,内存3GB,闪存32GB. 原系统是MIUI11最新版,手机运行微信已经有点吃力了,经常 ...

  3. 给红米Note 4X编译LineageOS 14.1刷机包过程【详细】

    最近忙着找工作,今天就把以前的一篇文章放上来,防止自己搞忘,也帮助他人少走冤枉路.小米的MIUI确实做得很不错,但是可能你不会知道,它背后收集了大量你的系统数据和用户使用数据,现在是一个强调网络安全, ...

  4. Android p刷机红米4a,红米4A(Redmi 4A 全网通)刷机教程,简单几步搞定刷机

    智能手机刷机相信大家已经都不再陌生了,不过对待红米4A(Redmi 4A 全网通)刷机还是需要非常谨慎操作,因为不当的刷机方法可能导致系统崩溃,带来很大的麻烦.由于不同品牌不同型号的手机刷机也会有差异 ...

  5. 红米note4出厂系统版本_红米Note4官方出厂rom系统刷机包_升级包降级包回退包下载...

    也来把咱们的这个红米Note4手机的相关线刷操作整理一下了,一提到线刷操作,可能有的机友熟悉, 有的机友不太熟悉,今天在这里说的线刷也是针对官方的固件rom包了,因为咱们的这个手机的最新版本的固件ro ...

  6. 红米note2能刷机没显示无服务器,红米Note2怎么线刷刷机 红米Note2手机线刷机教程图解...

    红米Note2怎么线刷刷机呢?红米Note2线刷机可以有效解决红米Note2变砖及出现死机.黑屏.频繁重启等多种问题,下面小编就带着大家的问题,来为大家整理介绍红米Note2线刷刷机教程及线刷包下载, ...

  7. 红米note5linux刷机包_红米Note5线刷刷机教程_红米Note5官方固件rom原版刷机包

    下面要说的是这个红米Note5手机的官方线刷包的刷机教程了,有没有机友在找的,这个手机的官方线刷包也并不多,看到论坛里不少的机友的手机系统出问题了,可是一直在找相关的线刷包却一直没有找到,所以下面整理 ...

  8. 红米note2能刷机没显示无服务器,红米note2怎么刷机 红米note2刷机教程

    大家应该知道吧!现在手机市场已经被智能手机垄断了,走到哪儿智能手机都跟我们形影不离.虽然像三星. 苹果 一样的大牌手机比较出名,但是我们的国产手机这几年发展的也是很不错的,就好比国内最火爆的 小米 手 ...

  9. 红米路由器ac2100怎样设置ipv6_红米路由器AC2100刷机教程:刷老毛子Padavan固件

    RedmiAC2100相比小米AC2100的好处就是能刷第三方固件,刷了第三方固件可以解锁很多官方固件没有的功能,红米AC2100目前售价169块.小米(红米)相比前两三年的的路由器有很大的进步. 红 ...

最新文章

  1. 2017图灵奖出炉:Google母公司董事长和杰出科学家共获殊荣
  2. Eclipse4.4设备egit插件提交本地项目代码到远程仓库
  3. nagios::plugin模块安装报错解决
  4. Ubuntu 设置NAT共享网络(命令行方法)
  5. Google API 设计指南 - 前言
  6. 201706问题记录
  7. 实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组
  8. php中abs,php中的abs函数怎么用
  9. 关于C#绘制qq好友列表控件
  10. python入门指南txt-BeginnersGuide
  11. dda c语言计算机图形学,计算机图形学 DDA算法中点画线算法Bresen
  12. linux命令行弹窗浏览器,linux命令行下使用linux打开浏览器命令
  13. win10如何调整计算机时间同步,Win10系统时间不准如何解决 win10系统设置时间同步的方法...
  14. Zabbix系列:设置动态监控告警时间范围
  15. 多语言id1033,2052
  16. 微信锁屏密码怎么设置
  17. 记录我的第一个Python项目
  18. Wireshark 抓取 iphone 测试机的数据包
  19. html表格上下居中
  20. C++——HIS排班系统for Neuedu

热门文章

  1. 抽象语法树的定义(C语言版)
  2. Access to XMLHttpRequest at ‘xxx‘ from origin ‘http://localhost:8082‘has been blocked by CORS policy
  3. PMP知识点:项目管理十大知识领域和47个过程
  4. 【C3】cpu_wtd_sysfs
  5. 对话周鸿袆:从程序员创业谈起
  6. Java简单题-----计算一元二次方程的根
  7. masonry Unable to simultaneously satisfy constraints. Probably at least one of the c
  8. 【JS】Math对象随机数方法
  9. 使用 MoveIt 控制自己的真实机械臂【3】——优化轨迹发给真实机械臂执行
  10. 容器和LXC简单命令