编译Android源代码并刷入真机

来源:互联网 发布:儿童遭遇网络诈骗现象 编辑:程序博客网 时间:2024/06/06 00:29

前两部分,我尝试了Android及内核源代码的下载和编译,现在,要尝试把编译好的系统映像文件(system.img)刷到真机上,让它能够运行起来。


这个过程,Google的官网文章有介绍,但是对我来说有些过于繁琐了。以下方法虽然是在我自己的手机(HTC Desier G7)上运行成功,但应该对有Recovery刷机能力的手机来说都是适用的。


对我来说,有两大问题较难解决:

第一是,在Google官方资料上很难获取关于我的手机(HTC-Desier G7)的设备驱动资料

第二是,官网上是采用fastboot的方式进行刷机,这个方法需要设备解锁,但是G7的解锁一直没有搞定,网上查了很多资料都不行。


其实我的机器是s-off并且获得了Root权限的,能够在recovery下面用SD卡上的ROM包来刷机(G7的刷机攻略,网上一大把),所以我的计划是基于已经编译出来的system.img制作一个ROM,然后基于已有的方式来刷机。


上网查了一些资料(主要是这一篇:http://android.zone.it.sohu.com/thread-4834336-1-1.html),发现其实这个过程还是比较简单的:

制作一个可用的ROM包,主要是三个东西:系统映像system.img,内核映像boot.img,刷机脚本META-INF


其中system.img得解压得到里面的文件,不过,因为源代码是我自己编译的,所以其实我并不需要用unyaffs再对system.img进行解压缩了,在源代码路径下的/out/target/product/generic文件夹下,有个system文件夹,Makefile其实就是用这个文件夹来生成system.img的。

另外的两样东西,boot.img和META-INF,去哪里找呢?尤其是boot.img,它可是需要跟你的手机类型相匹配的。

其实,有个极其简单的办法获取这两样东西,那就是随便在网上找个适用于你手机的ROM包(一般都是ZIP格式),解压以后里面就有这两个东西啦。

恰巧我的SD卡上是有一个ROM包(我手机的当前系统就是用这个刷的),解压后就得到了boot.img和META-INF文件夹,这里一个绝妙的好处,就是找个boot.img对你的手机来说绝对可用!

三样东西凑齐了,剩下的就简单了,把system文件夹、META-INF文件夹和boot.img打包在一起,压缩成一个zip包,把它改名为update.zip(改名是为了后面签名工具能识别)。

之后,还差一旦点,就是要对找个ZIP包进行签名。这里用到一个Rom-Sign的工具(我用的是Windows版的),网上可以找到,我是在:http://ishare.iask.sina.com.cn/f/21354642.html?from=like这里下载的。解压工具包后,把刚才的update.zip拷贝/剪切到rom-sign文件夹里,然后在Windows下运行sign.bat,会提示你正在签名,并生成一个update_signed.zip的签名包。

把找个包拷贝到SD卡上,然后进入recovery进行刷机,重启,大功告成!

不过在真机运行后,屏幕分辨率貌似是有一点问题,图标都很小,而且可能是编译的时候加入了调试信息,所以这个版本的ROM比较慢,感觉像在emulator中运行的速度差不多……