Celadon快速上路指南Part2:编译Celadon镜像
From: 孙晓璐 AndroidIA Celadon 9/20
一目了然 | Celadon 新手上路快速通道隆重揭晓 | 打开Celadon 的正确姿势
![8f570950865a35e51a7fc1dfa6004ca4.png](https://i-blog.csdnimg.cn/blog_migrate/16d9c7efc70a2fe30241de0b8b23e12b.jpeg)
上一期我们向您介绍了如何安装Celadon预编译镜像(Celadon快速上路指南 Part1:安装Celadon镜像),本期我们将向您介绍如何建立Celadon的开发环境,编译制作您自己的Celadon镜像。一、 开发环境
虽然Android通常是用GNU/Linux或Mac OS操作系统构建的,但我们建议:
- 基于Ubuntu 16.04 LTS 64Bit操作系统的工作站上构建Celadon镜像
- 此外,确保系统至少有200 GB的空闲磁盘空间来下载源代码并存储编译生成的文件及镜像。
- 使用SSD硬盘可以大大加快编译速度。
如果要使用其他操作系统,请参考Android开源项目(AOSP)网站的构建环境部分:https://source.android.com/setup/build/initializing二、 搭建开发环境
Celadon源码中有直接引用google代码仓库的部分,也有托管到github上的部分,每一个项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个项目的Git仓库,需要一个上层工具批量进行处理。这里就不得不提强大的repo工具了,repo是一种代码版本管理工具,repo init也会建立一个Git仓库,用来记录整个代码中的各个项目分别处于哪一个分支,这个仓库通常叫做manifest仓库。
1. 创建本地bin/目录,将repo工具下载到该目录,并使用以下命令给repo添加可执行权限:$ mkdir -p ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
2. 此外,您需要在您的Ubuntu 16.04 LTS 64Bit开发工作站上安装以下软件包:$ sudo apt-get update
$ sudo apt-get install
openjdk-8-jdk git ccache automake
lzop bison gperf build-essential
zip tcl zlib1g-dev g++-multilib
python-networkx libxml2-utils
bzip2 libbz2-dev libbz2-1.0
libghc-bzlib-dev squashfs-tools
pngcrush schedtool dpkg-dev
liblz4-tool make optipng maven
libssl-dev bc bsdmainutils
gettext python-mako libelf-dev
sbsigntool dosfstools mtools
efitools git-lfs python-pystache
git-core gnupg flex curl
libc6-dev-i386 lib32ncurses5-dev
x11proto-core-dev libx11-dev
lib32z-dev libgl1-mesa-dev
libxml2-utils xsltproc unzip三、 下载源码
1. 创建一个空目录,用于保存Celadon的源文件,并用作工作目录。$ mkdir celadon
$ cd celadon
2. URL指定Manifest,该Manifest里包含了Celadon所使用的各种git仓库。$ ~/bin/repo init -uhttps://github.com/projectceladon/manifest.git
3. 下载源代码到当前工作目录。$ ~/bin/repo sync –c –j5说明:
1. 根据网速和机器配置的不同,下载代码时间长短也不等,通常需要几个小时。
2. 您可以把repo添加到环境变量来直接调用repo命令:
$ exportPATH=~/bin:$PATH
$ repo init -u https://github.com/projectceladon/manifest.git
3. 当前Celadon的Master分支是基于谷歌发布的Android 10,如果您想获取老版本代码,请用-b参数指定branch。例如,以下是针对Android 9 Pie源代码进行的Celadon的repo初始化$ repo init -uhttps://github.com/projectceladon/manifest -b celadon/p/mr0/master -m default.xml
以下是针对Android 8.1 Oreo源代码进行的Celadon的repo初始化$ repo init -uhttps://github.com/projectceladon/manifest -b omr1 -m default.xml
4. 如果您在中国大陆地区无法直接链接github,可以改为连接中国大陆地区的服务器,以连接清华服务器为例,您可以在~/.gitconfig中添加如下两行:[url "https://aosp.tuna.tsinghua.edu.cn/"]
insteadOf = "https://android.googlesource.com/"
也可以export repo的URL地址
$ export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'四、 编译系统镜像
1.(可选)在Celadon的最顶层目录运行以下命令,用于删除之前产生的编译文件$ make clobber
2. 应用envsetup.sh脚本初始化编译的环境变量,$ source build/envsetup.sh
3. lunch target 示例 (也可以在lunch 的时候可以不带参数,手动选择target的编号)
$ lunch celadon_ivi-userdebug
4. 编译生成Celadon安装程序文件,编译成功后,在out/的子目录下会有一个.zip格式的压缩安装包。$ make flashfiles -j $(nproc)
例如lunch target 为celadon_ivi 时生成的压缩包为:
out/target/product/celadon_ivi/celadon_ivi.flashfiles.eng.${USER}.zip五、 安装系统镜像
安装镜像方法请参考Celadon快速上路指南 Part1:安装Celadon镜像六、 尾声
我们用了两篇文章向您介绍了如何下载、编译Celadon源码,和安装Celadon镜像的方法,您现在已经可以在您的NUC上使用Celadon了,但是搭载英特尔CPU的电脑还有很多,如何在更多的英特尔的平台上使用Celadon,这是Celadon团队目前正在着重解决的问题,我们的解决方案就是CaaS(Celadon As A Service)。之后我们会有系列文章来从各个角度来全面解析CaaS,希望它可以成为您的助力助您成功。敬请持续关注AndroidIA Celadon公众号信息,更多精彩还在路上。您还可以选择加入“Celadon技术讨论群”,跟更多的Celadon技术人员直接交流。在该微信群建立的1小时之内人数就已经超过了100人,无法直接扫码入群了。请扫码关注公众号留言“微信群”按照里面提示的方法来入群,或者您可以找到身边已经在群的小伙伴儿拉您入群。
![431290b59006a49ff06b4f7c1ed8218e.png](https://i-blog.csdnimg.cn/blog_migrate/f392c33f7cbf23cead57aebc7a3b6ad8.jpeg)