From b1afa7d90241742f8f284487636c06ca38d2e516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=9F=E5=AE=81?= Date: Sun, 7 Dec 2025 06:39:52 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20src/compile/sharebuild-aos?= =?UTF-8?q?p14.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/compile/sharebuild-aosp14.md | 51 ++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/src/compile/sharebuild-aosp14.md b/src/compile/sharebuild-aosp14.md index 2e481e1..ae8291f 100644 --- a/src/compile/sharebuild-aosp14.md +++ b/src/compile/sharebuild-aosp14.md @@ -2,8 +2,19 @@ ## 编译环境准备 -### 安装编译依赖 +### 安装 Sharebuild + +* 参与编译的同一个局域网内的A、B、C等所有节点上安装ninja2和sharebuild: +``` +wget -c https://raw.githubusercontent.com/ninja-cloudbuild/ninja2/refs/heads/main/install.sh && chmod +x install.sh && sudo ./install.sh +``` + +* 确保所有节点上均安装配置好了项目的编译环境,即所有节点上均能采用ninja成功单机编译项目。 + +### 安装AOSP项目编译环境 + * 参与编译的同一个局域网内的A、B、C等所有节点上安装编译环境依赖: + ```bash # 安装核心开发工具和库 sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig @@ -14,31 +25,35 @@ sudo apt-get install openjdk-17-jdk # 确保Python 3环境正确安装 sudo apt-get install python3 python3-pip ``` -### 下载 AOSP 源码 + +### 下载 AOSP 源码并执行单机编译 + * 选择任一节点作为客户端节点,下载AOSP14源码: + ```bash mkdir ~/bin && curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo && chmod a+x ~/bin/repo export PATH=~/bin:$PATH repo init --depth=1 --partial-clone -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r2 repo sync -j16 -``` -### 配置 Sharebuild 环境 -* 参与编译的同一个局域网内的A、B、C等所有节点上安装ninja2和sharebuild: -``` -wget -c https://raw.githubusercontent.com/ninja-cloudbuild/ninja2/refs/heads/main/install.sh && chmod +x install.sh && sudo ./install.sh +cd android-14.0.0_r2 +source build/envsetup.sh # 初始化环境 +lunch aosp_arm-eng # 选择目标配置 +make # 执行单机编译,编译成功后可以看到: +# add some output ``` -* 确保所有节点上均安装配置好了项目的编译环境,即所有节点上均能采用ninja成功单机编译项目。 +### 配置AOSP项目开启ShareBuild模式 * 将.sharebuild.yml 复制到 AOSP 根目录 ``` -cp /etc/ninja2/aosp14/.sharebuild.yml android-14.0.0_r2 +cd android-14.0.0_r2 +cp /etc/ninja2/aosp14/.sharebuild.yml ./ ``` + * 进入AOSP14项目根目录,替换 AOSP 内部 ninja 为 android_ninja ``` -cd android-14.0.0_r2 cp /usr/bin/android_ninja prebuilts/build-tools/linux-x86/bin/ninja ``` @@ -48,20 +63,18 @@ cp /usr/bin/android_ninja prebuilts/build-tools/linux-x86/bin/ninja sharebuid:true ``` -* 在项目根目录下进行分布式编译。 +* 在项目根目录下执行分布式编译 + ```bash su # 切换到 root 关闭沙箱 source build/envsetup.sh # 初始化环境 -lunch aosp_arm-eng # 选择目标配置 - -make # 执行编译任务 - - -rm -r out #清除编译产物 +lunch aosp_arm-eng # 选择目标配置 +make # 执行分不知编译,编译成功后可以看到: +# add some output +make clean # 清除编译目标文件 +rm -r out # 清除编译产物 ```` - - ## 版权声明 Copyright @ Mengning Software