# AOSP (Android Open Source Project) ![badge](https://cnb.cool/aosp/monorepo/-/badge/git/latest/ci/git-clone-yyds) ![badge](https://cnb.cool/aosp/monorepo/-/badge/git/latest/ci/pipeline-as-code) > [AOSP 是 Android 的开源项目](https://source.android.com/docs/setup/about?hl=zh-cn) (Android Open Source Project),是一个完整的软件栈,包括操作系统、中间件和应用程序。AOSP 项目的目标是提供一个完整的、通用的、开源的、可移植的软件栈,以支持移动设备和嵌入式设备的开发, 如手机、平板电脑、车载系统、电视和其他设备。 ## 1. 仓库介绍 本仓库是从官方通过 [Repo](https://source.android.com/docs/setup/download?hl=zh-cn) 工具同步的 AOSP 代码(android-14.0.0_r1), 下载后的代码经过处理后,合并成 monorepo。 ## 2. 代码下载 ### 2.1 使用 Repo 工具下载 通过 Repo 下载 `android-14.0.0_r1` 分支的代码,下载的代码深度为 1,不包含历史提交记录,下载完成后,执行 `repo sync` 命令,下载代码。 ```bash repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r1 --current-branch --depth=1 --no-clone-bundle && repo sync -j 32 -c -d --no-clone-bundle ``` ### 2.2 处理并合并代码 - 代码下载后,合并到 monorepo 中,并且删除了子仓库的 `.git` 目录、删除根目录的 `.repo` 目录(下载后后续无需再使用 Repo 工具管理)。 - 把大文件转换成 Git LFS 追踪的文件。 ### 2.3 环境准备并本地构建 具体可查阅够流水线的 [Dockerfile](./.ide/Dockerfile) 文件,安装了 AOSP 编译所需的依赖。 也可按照[官方文档](https://source.android.com/docs/setup/start/requirements?hl=zh-cn)安装依赖。 构建 AOSP 代码,需要大量的内存和磁盘空间,推荐使用 32G 以上内存和 500G 以上磁盘空间。 ```bash # 设置环境变量 source build/envsetup.sh # 选择编译目标 lunch aosp_arm-eng # 编译,-j64 表示使用 64 个 jobs 编译,可以根据自己的机器配置调整 make -j64 ``` ## 3. CNB 配置文件 具体可点击查看 [.cnb.yml](.cnb.yml)