android source镜像源_Celadon快速上路指南Part2:编译Celadon镜像

news/2024/7/24 2:45:02 标签: android source镜像源

一目了然 |  Celadon 新手上路快速通道

隆重揭晓 |   打开Celadon 的正确姿势 67c04c49dd6eac2ca4868443a8c4a3cb.png 上一期我们向您介绍了如何安装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 -u

 https://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 -u

 https://github.com/projectceladon/manifest -b celadon/p/mr0/master -m default.xml

以下是针对Android 8.1 Oreo源代码进行的Celadon的repo初始化

$ repo init -u

 https://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人,无法直接扫码入群了。请扫码关注公众号留言“ 微信群 ”按照里面提示的方法来入群,或者您可以找到身边已经在群的小伙伴儿拉您入群。

6cdc79259187ec2fcddb0f6c83d207a5.png


http://www.niftyadmin.cn/n/1355293.html

相关文章

未知高度元素内的垂直居中

高度为auto,被兄弟元素撑开的元素,需要内容垂直居中,这时vertical-align:middledisplay:inline-block;和定位、加上边距、设置行高等方式做垂直居中就不太好用了。这里用display:flex可以很好解决。 父元素…

python安装os模块_Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

本文实例讲述了Python3.5内置模块之os模块、sys模块、shutil模块用法。分享给大家供大家参考,具体如下: 1、os模块:提供对操作系统进行调用的接口 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import os print(os.…

弹性布局justify-content:space-between;最后一行元素宽度不足时左对齐的几种处理方式

弹性布局justify-content:space-between;最后一行元素宽度不足时左对齐的几种方法 1.列数或总数固定不变(添加占位空元素) 想要的效果: 每一页固定十个元素,最后一页数量不足十时,从左到右从上到下依次排列…

“查看更多”功能,较完美的实现

“查看更多”功能&#xff0c;较完美的实现 需求&#xff1a; 文本过多时隐藏文本&#xff0c;用省略号代替&#xff0c;省略号后面有“查看更多”的按钮。 点击“查看更多”后展开所有文本&#xff0c;如下图&#xff1a; 点击“收起”后恢复原状。 实现 <div class&qu…

java rtf转doc_PDF转一切,永久免费

PDF格式是我们日常经常会用到的格式&#xff0c;它可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。文件占用小&#xff0c;转存方便&#xff0c;跨平台查看且不改变排版&#xff0c;支持矢量图形。但缺点也很明显&#xff0c;不能编辑&#x…

pythonppt_python操作ppt下载

这是python操作ppt&#xff0c;包括了python概述&#xff0c;python基础语法&#xff0c;Python数据类型&#xff0c;条件和循环&#xff0c;函数&#xff0c;模块&#xff0c;面向对象编程&#xff0c;文件相关等内容&#xff0c;欢迎点击下载。 python操作ppt是由红软PPT免费…

JS数字失真问题原理分析

问题&#xff1a; js存储数字类型变量时&#xff0c;数字位数过大时会失真。 原理&#xff1a; JS的数字类型&#xff1a;JS 遵循 IEEE 754 规范&#xff0c;采用双精度存储&#xff08;double precision&#xff09;&#xff0c;占用 64 bit&#xff0c;尾数52位。 因此Ja…

margin-top/bottom,padding-top/bottom百分比取值的问题

一、 1.margin-top/bottom&#xff0c;padding-top/bottom设置为百分比时&#xff0c;取值为父元素宽度的百分比。 2.如果想要取父元素高度的百分比&#xff0c;在父元素上添加代码&#xff1a; writing-mode: vertical-lr;二、 关于为什么为W3C规定&#xff0c;margin和padd…