编译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中运行的速度差不多……
- 编译Android源代码并刷入真机
- 获取 android 源代码, 并编译
- 下载并编译Android内核源代码
- 下载并编译Android kernel的指定版本源代码
- 下载并编译CyanogenMod源代码
- Android源代码编译
- gentoo编译 android源代码
- Android源代码编译
- Android SDK 源代码编译
- Android源代码编译过程
- Android源代码的编译
- Android SDK 源代码编译
- 编译Android源代码
- Android SDK 源代码编译
- 编译Android源代码
- 编译Android源代码
- Android SDK 源代码编译
- 编译android 源代码
- SIFT算法学习心得
- 管理者,你的团队持续可用吗
- 输入两个正整数a和b,求其最大公约数和最小公倍数。
- SURF算法学习心得
- mysql中关于时间的问题
- 编译Android源代码并刷入真机
- debian 目录结构记录
- adobe acrobat professional V8.1.0安装
- 第六周上机任务项目3-平面坐标点类
- 文件系统模型
- 设计模式之类之间的关系
- 数据库常用连接
- Notification介绍
- 电脑右下角的扬声器出现了红叉