本文讲述 如何为自己的 Motolora Milestone/umts_sholes/A853/XT702 编译 Android CM ROM, 从此以后可以自己轻松定制 Android ROM,喜欢玩kernel 的可以尽情修改自己的kernel。
1) 下载 umts_sholes Android CM 源代码
使用 https://github.com/nadlabak/android 这个repo manifest, repo 基础的使用方法请参考Android官网, Android 开发最好对 repo 有清晰的理解。
$ mkdir umts_sholes
$ cd umts_sholes
$ repo init -u git://github.com/nadlabak/android.git -b gingerbread
$ repo sync
vendor/cyanogen/get-rommanager
2) 编译 源码
. build/envsetup.sh && brunch umts_sholes
2.3 的编译环境可以是32bit, 我在 ubuntu 12.04 32bit 上编译的,注意JDK 需要1.6版本,Tiny6410 正好有这个版本,所以我的环境不用修改就能编译成功。
2.1) 如果出现以下错误:
make: *** No rule to make target `out/target/common/obj/JAVA_LIBRARIES/libGoogleAnalyticsV2_intermediates/javalib.jar', needed by `out/target/common/obj/APPS/CMStats_intermediates/classes-full-debug.jar'. Stop.
make: *** Waiting for unfinished jobs....
$ cd packages/apps/CMStats/
下面这个 commit 加入了 Google Analytics support, 但是有问题,所有可以将这个 APP回退到前一个 commit,
$ git reset --hard 36132dd1d26ce14053882ba66e11be71a9cb5177
这样 CMStats 这个package 的 Android.mk 就不 依赖于libGoogleAnalyticsV2 了( LOCAL_STATIC_JAVA_LIBRARIES := libGoogleAnalyticsV2)
commit 18c4012c4ebf44a850715b32a0b4315f969a812c
Author: Koushik Dutta <koushd@gmail.com>
Date: 2013-04-04
Add Google Analytics support
Change-Id: If5677d13877e3a0292bb4c855a5d8560e09db42f
Android.mk | 2 ++
res/values/analytics.xml | 12 ++++++++++++
src/com/cyanogenmod/stats/ReportingService.java | 12 ++++++++++++
3 files changed, 26 insertions(+)
2.2) 如果出现 编译完成后通过 Openrecovery 刷入无法开机,确保 linux kernel 的版本是2.6.32.60,因为 prebuilt kernel modules 当前最新的是 2.6.32.60,
commit aad890e75be5270656840940596d9c375de5a264
Author: Skrilax_CZ <skrilax@gmail.com>
Date: Fri Jul 26 09:18:04 2013 +0200
Update to 2.6.32.61
这个 commit 将内核版本升到了2.6.32.61 但是没有重新编译 prebuilt kernel modules,如 pvr module。 当前,我已经通过IRC 向 github milestone 提交这个commit 的开发者报告了这个问题,并且已经 revert 掉了这个commit。
commit 801e7beb27408e311334564bc7382c3e382d02c8
Author: Skrilax_CZ <skrilax@gmail.com>
Date: Thu Aug 15 13:57:48 2013 +0200
Revert "Update to 2.6.32.61"
This reverts commit aad890e75be5270656840940596d9c375de5a264.
No bug, but needs recompiling precompiled modules, so left alone for
now.
Milestone 开发可以加入 IRC : freenode/ #milestone-modding
3) 通过 openrecovery 刷入 自己的 milestone.
2ndboot_open_recovery 下载: http://code.google.com/p/cyanogenmod4milestone/downloads/detail?name=OpenRecovery_2ndbootOR_v1_2.zip
之前使用的是MIUI 的话,用 file:///home/qiang/Downloads/Milestone_tools.zip 这个Open Recovery 刷。
参考:
http://android.doshaska.net/cm7build
That's all ! Enjoy your own Android ROM and customize your own linux kernel on umts_sholes NOW !
--------------------------------- 2014/10/21 更新: --------------------------------------------
cd kernel/
make ARCH="arm" CROSS_COMPILE="/home/CORPUSERS/xxxx/projects/umts_sholes/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-" O=/home/CORPUSERS/xxxx/projects/umts_sholes/out/target/product/umts_sholes/obj/KERNEL_OBJ/ menuconfig
make ARCH="arm" CROSS_COMPILE="/home/CORPUSERS/xxxx/projects/umts_sholes/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-" O=/home/CORPUSERS/xxxx/projects/umts_sholes/out/target/product/umts_sholes/obj/KERNEL_OBJ/ zImage -j8
Milestone 使用 2ndboot, 会将/system/etc/2ndboot/kernel 文件作为 kernel zImage 启动起来,因此编译完自己的kernel 之后, 直接将新编成的zImage 替换掉这个文件就行,不需要刷机。
使用 2ndboot更加方便开发。
cd /home/CORPUSERS/xxxx/projects/umts_sholes/out/target/product/umts_sholes/obj/KERNEL_OBJ/arch/arm/boot
adb remount
adb push zImage /system/etc/2ndboot/kernel
adb reboot