【Android源码 栏目提醒】:网学会员,鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“Android系统ROM刷机原理及ROM制作技术初探 - 计算机教材”一文,供大家参考学习!
Android系统ROM刷机原理及ROM制作技术初探 一、刷机原理 记得第一次刷机哪个心理紧张啊。
其实紧张什么呢就是因为不明白原理啊只看到一堆的教程来依葫芦画瓢生怕错了一步将手机变砖。
真正使我对刷机原理有一些理解的是看了这一篇文章 说起来刷机就是两种方法 一是recovery方法就是我们平时将update.zip入到SD卡然后alt-s的方法这种方法是调用了recovery的方法将各种img或文件进行复制等操作。
想了解recovery的工作原理吗我也没找到好的资料就在这看了看recovery的一些
源码 二是fastboot方法这个方法其实是比较酷的方法说白点fastboot就是将已有的各分区映象文件img文件意义上类似我们对光盘做的映象文件直接覆盖写到指定分区中有点baoli也有点类似我们平时操作系统的Ghost还原。
这两种方法哪种更好这就不好比高低了总的来说 Recovery方法更简单只需要傻瓜式的将update.zip放到SD卡的要目录下然后进入Recovery模式alt-s就可以了但和任何傻瓜式东西一样他的灵活度就很小了而且出错了也都不知道如何解决。
一般来说做Rom的高手为了保证Rom的可靠性在安装程序中都会对一些安装环境进行一些确定而各位的手机环境又是千变万化的Rom高手也很难考虑周全另外Recovery程序本身也有一些环境验证。
fastboot方法更灵活功能也更强大fastboot方法不需要依赖于recovery甚至linux底层刷坏了recovery模式都进不了的情况下也可以通过fastboot方工刷回来。
fastboot模式其实是调用spl进行刷机的所以如果刷spl坏了fastboot模式应该也进不了也就是砖了。
fastboot方法需要各位电脑上有fastboot程序同时手机要进入fastboot模式才可以操作关于这些知识请参见Google _ 二、回头再来说说
Android系统中的各分区可能分区这个说法不太准确 我了解到的
Android系统中的分区有 hboot我们刷的SPL就是这玩意这个分区是最基本的引导分区类似电脑中的BIOS这个区坏了差不多就变砖了所以我们刷SPL时才要如此小心啊。
boot这个分区应该是linux操作系统的引导分区。
radio这个分区是手机的一些底层设备相关的驱动或功能程序吧如打电话和发短信等不同的系统版本会有不同的radio配套我们平时刷了高版本的ROM后如果不刷高版本的Radio就有可能导致打电话不正常之类的。
recovery这个分区装的就是前面提到的recovery程序了这个刷不同的recovery版本可以带来不同的功能有兴趣的同学可以基于recovery的
源码自己编译出一个自己的recovery出来。
但一般来说刷recovery最主要的就是提Root权限。
system是一般发布的ROM的主要功能程序分区了我们说的ROM功能和自带程序的定制应该就是基于这个分区的修改和编译了。
userdata用户数据不说了。
cache缓存一般是用来OTA升级时的缓存我们说刷SPL可以增加程序区的空间大小就是主要将这个区的大小缩水了然后加大了程序区的分区大小。
三、一个典型ROM的剖析 我们平时升级的Rom都是打包成适合Recovery方式刷机的包。
能够被Recovery程序识别并处理的包应该有一个固定的格式我理解的一些重要的约束如下 1必须是标准的zip压缩包 2recovery脚本必须存入在META-INFcomgoogleandroidupdate-script 3其它的一些证书和签名信息应该都放在META-INF下。
四、我们有没有可能自己定制ROM呢 理论上我们是可以自己定制的。
最简单的定制应该就是拿一个现有的认为还不错的基础ROM替换一些资源加一些系统自带程序然后打包发布 再玩高级一点就应该自己去修改一些系统自带的程序如汉化一些系统原始程序 还玩高级一点就应该自己到
android官方站点去下载
android系统的
源码来编译并基于系统级的定制和移植了如现在火热的
android2.0
源码编译系统移植。
如果是简单一点的自制ROM主要应该会要解决如下几个问题 1选定一个比较好和稳定的内核和基础就是update.zip包中的哪个boot.img另外system目录中大部分也是直接可用的就可以作为自定义Rom的基础。
2修改系统。
例如可以这样来定制的东西systemetcapns-conf.xml这是设臵APN接入点的systemetchosts这是设臵Host文件的现在有很多人用的包绑定不了GMail就可以在这个Host文件中增加一条74.125.93.113
android.clients.google.com 当然这个地址能用多久也不好说...还有什么东西要自己去定制就自己去翻看瞧瞧。
3Rom的重新打包签名。
前文已经介绍了一个Rom包的基本结构但完全按照这个结构打包还是不能被Recovery安装的因为没有签名Rom签名可以下载一个自动签名工具Auto-sign具体到哪下请Google。
再往下就有点高深了目前只留心一下这些基础的东西。
上一篇:
在Android中嵌入C语言程序
下一篇:
7*30m公路预应力混凝土连续梁桥上部结构设计