有个想把他的代码拉下来的想法,有问题或者有些比较有趣的特性可以下载对照代码看看实现,于是开始google资源,最好是自己可以把rom给编译出来。
目前所做的工作记录
1 找到代码仓库。要特别注意的是cyanogen的代码是基于Dream的机器的,针对magic的机器可能需要微调
感谢cyanogen,他把自己的修改都共享在网上
http://github.com/cyanogen
而且他已经做好了一个repo的setting
http://github.com/cyanogen/android,这里面有个readme,告诉你如何得到他的整个代码树
2 下好代码以后,先按他说的,把一些闭源的东西给提取出来
To get all the proprietary binaries from your ADP1 device, run the很顺利,除了一个什么htclogkernel的东西(应该没啥关系)找不到以外,其他一切正常。
"extract-files.sh" script in the vendor/htc/dream-open directory.
This requires that you have the adb tool in your path and a
compatible system image on your ADP1 device (Android 1.6).
3 建立一个buildspec.mk文件
TARGET_PRODUCT:=aosp_dream然后make之,发现编译不过。
TARGET_BUILD_VARIANT:=eng
TARGET_BUILD_TYPE:=release
说找不到vendor/htc/sapphire-open文件夹及里面的内容。(这里不确定是不是因为我在前面导出东西的时候用的是magic的机器,所以需要magic opensource的文件夹)
还好在android的官方的git主分支上找到了该目录,copy 过来继续make
接着说找不到product aosp_dream.....检查vendor/aosp/products/下的确没有aosp_dream,只有aosp_dream_us
于是把buildspec给改成aosp_dream_us,然后make。开始正常编译
4 出现小状况,编译出错,说方法未覆盖其父类的方法 @Override
google发现时java5认为实现一个接口不可以用override关键字,只有继承才能用,而java6就不管那么多了
于是下载java6的jdk,用update_java-alternatives -s 来替换默认的java环境,重新make
5最新发现,前面从手机里导出失败的htclogkernel会导致编译失败。。。郁闷。。
老婆催着做胎教了。。明天再看这个问题。