下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目前一直在学习源码方面的知识,前段时间刚刚搞定了 recovery 的移植。这方面的资料真实少之又少啊,谷歌了几天,文章也就那几篇而已,更别提国内的资料了。你让我们热爱学习的小白情何以堪。于是乎就开始动手了,编译的过程中,自己做了一些随笔的记录。把自己遇到的一些问题和解决办法都记录了下了,放在自己的笔记里了。今天整理出来,和大家共享一下。本教程是针对有一定基础的人。如果你不会 Ubuntu,不会环境的搭建。那你还是先学习一下吧。装 Ubuntu 各种各样的教程,网上一找一大堆。教程所用的系统为 Ubuntu12.04,示例机型为中兴 N880E。源码目录为/android/system/。码字
2、不容易,你懂的。教程开始:源码的同步大家可以看官方文档,教程直接从源码同步完后开始。1、同步源码到最新,我同步的源码目录为/android/system/,要改为自己的源码目录,下面每一步也一样cd /android/system/repo sync -j162、输出结果:3、下一步,make 我们后面要用到的工具make -j4 otatools输出结果:执行完成后的输出:会生成 out 目录,在/out/host/linux-x86/bin 中有后面要用到的工具。4、将/out/host/linux-x86/bin 加入环境变量,变量具gedit /.bashrc在文本最后添加:置要改成你
3、的:export PATH=$PATH: /android/system/out/host/linux-x86/bin保存退出,执行下面命令,让刚加的环境变量生效:source /.bashrc4、从官方包中,别人的 ROM 包也可以,拿出 boot.img。我放到了/android/目录5、开始建立我们 N880E 的 device 目录:build/tools/device/mkvendor.sh huawei u8825d /cm9/boot.img命令参考:build/tools/device/mkvendor.sh device_manufacturer_name device_na
4、me /your/path/to/the/bo ot.img命令输出为:此时在 /device/zte/ 中 就 会 有 你 的 机 型 n880e 了 , 里 面 有 你 的 配 置 文 件 : AndroidBoard.mk,AndroidProducts.mk, BoardConfig.mk, device_.mk, kernel, p,recove ry.fstab, and vendorsetup.sh.6、修改配置文件:在这里很重要的一个文件就是 recovery.fstab,是你手机里各个设备分区对应的挂载点,可以理解为手机的分区表。如果这个文件有错误,那么进
5、入 recovery 后,会提醒分区挂载失败。这个文件我们可以从官方的 recovery.img 提取出来。也可以直接解包别人编译好的 recovery, 得到 recovery.fstab当然,我们也可以自己动手写。目前,自己也没发现什么简洁一点的办法。我是查看刷机包中的 updater-script 文件中各个分区的挂载点和cat /proc/mount输出结果:cat /proc/partitions输出结果:一个个排除定位出来的。大家有好的办法,可以共同探讨。这里有一个分区表比较全的 recovery.fstab,大家可以按照自己手机的分区表修改。7、开始编译,执行命令:./build
6、/envsetup.sh & lunch full_n880e-eng (把 n880e 替换为自己的机型)输出结果:下一步命令,编译开始:make -j4 recoveryimage最后成功时输出结果:输出的目录为:out/target/product/n8880e/recovery.img 文件,就是我们要的。NOTE:1、 编译时间:实体机,一两分钟的样子(i3-380、2GBDDR3)2、 异常处理:(都是自己编译过程中遇到的笔录,非官方)错误 1:执行./build/envsetup.sh命令后,提示某些设备文件不存在。这是自己当初在 CM7 源码下编译出现的,因为自己没有把所有的设
7、备的源码同步下来,一些设备自己在/android/system/.repo/manifest.xml 中用注释掉了,所以同步完源码后要修改vendor/cyanogen/products/AndroidProducts.mk 文件,把没有同步的设备删除掉。重新执行命令就行了。错误 2:在编译的最后,提示出错“Boot.img is too large”,自己当时的解决办法是修改 BoardConfig.mk: # fix this up by examining /proc/mtd on a running deviceBOARD_BOOTIMAGE_PARTITION_SIZE := 0x0
8、1000000BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x01000000 BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x19000000BOARD_USERDATAIMAGE_PARTITION_SIZE := 0xA0000000 BOARD_FLASH_BLOCK_SIZE := 131072将后面的十六进制改为自己手机分区的大小,要把兆转换为 KB,再转换为十六进制,然后替换 0x 后面的数字(0x 表示十六进制)。另一种解决办法,就在下面几篇参考文档中刚看的,未实践:打开源码目录中的 Build/Core/defini
9、tions.mk,将 1688 1694 行替换为:# if $total -gt $maxsize ; then # echo “error: $printname too large ($total $(2) - $reserve)”; # false; #elif $total -gt $(maxsize - 32768) ; then echo “WARNING: $printname approaching size limit ($total now; limit $maxsize)”; fi 然后保存。重新编译即可。错误 3:执行 7 中的第一个命令时,提示 lunch 未安装:解决办法: 执行source build/envsetup.sh再执行上面命令就 OK 了。更进一步,自己也在学习中,还未实践的:recovery_ui.c 这个文件里面是手机各按键对应的按键值,这样写入之后才能正确选择按键。对按键的修改自己找了一些资料还在进一步学习中。参考资料:/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026伦敦奢侈品零售业态转型数字化营销投资综合分析规划书
- 2026人工智能芯片设计突破与产业生态研究报告
- 2026交易所金属期货品种功能发挥评估指标体系研究
- 2026亚洲钢笔制造业市场现状供需格局投资展望详尽研究文
- 酒店季度工作总结15篇
- 2026亚太家电行业产品智能化市场消费趋势分析报告
- 2025年牡丹江市东安区幼儿园教师招聘笔试试题及答案解析
- 2026年湖北省黄冈市幼儿园教师招聘笔试参考试题及答案解析
- 2026年陕西省咸阳市街道办人员招聘考试模拟试题及答案解析
- 2026年茂名市茂港区街道办人员招聘笔试模拟试题及答案解析
- 2025至2030中国二手奢侈品鉴定标准与流通体系研究报告
- 成人吞咽障碍患者口服给药护理-2025中华护理学会团体标准
- 上海市浦东新区人力资源和社会保障局事业单位招聘编制笔试考试练习题
- 2025二十届三中全会精神应知应会知识测试题(含完整答案)
- 注水肠镜课件教学
- 2025年生产安全事故案例
- 2025版中国难治性慢性自发性荨麻疹诊治指南解读课件
- 北师大版一年级下册数学专项卷(钟表认读)考试题及答案
- 二级注册计量师2025年真题汇编试卷(含答案)
- JJF 2309-2025重点排放单位碳计量审查规范
- 产教融合模式在智能制造微专业建设中的应用与评估
评论
0/150
提交评论