尝试着编译Android内核,居然花了一天的时间用来调bug,是我太笨了还是谷歌太坑了呢。
正题
主要包括两部分
- 编译内核
- Make多目标匹配错误分析
环境
主机:ThinkPad T450, i5-5200U(弱爆了),内存12G,机械硬盘
主机OS:Ubuntu16.04 LTS
终端:Huawei Nexus6P 32G 国际版
源码:Android M master(2016.06.29)
编译内核
Android这个开放的平台,经过多年发展,不仅产品碎片化严重,参考文档同样如此,除了源代码,什么都不可信。
第一步当然是下载源码,能翻墙的话直接用谷歌官方的链接,校园网的话用中科大/清华的镜像站(亲测可用),命令如下:
站点 | 命令 |
---|---|
谷歌 | git clone https://android.googlesource.com/kernel/msm.git |
中科大 | git clone git://mirrors.ustc.edu.cn/aosp/kernel/msm.git |
清华 | git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/msm.git |
在哪个目录下运行都可以,建议在“AndroidSourceDir”/kernel/目录下运行命令,便于组织源码。下载完成后会有“AndroidSourceDir”/kernel/msm/.git 这个仓库,需要从里边提取需要的版本。
#查看版本列表建议利用grep过滤自己需要内容
$ git branch -a | grep angler
#下边是我的显示
remotes/or