编译pixel-experience,关联 oneplus 8T, kebab, android, rom, 一加
- 有一个支持 apt 的linux发行版
- Install the platform-tools
主要用的是 adb , fastboot - 配置系统环境
- 安装git
- 运行配置脚本
1 2 3 4
cd ~/ git clone https://github.com/akhilnarang/scripts cd scripts ./setup/android_build_env.sh
- 安装 repo 工具
1 2
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
设置 repo 到可执行查找目录
1 2 3
if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
- repo 工具需要 python,确保python安装并能被找到
MX21 上只有python3
,没有python,所以要设置下:1 2 3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1 update-alternatives --list python python -V
-
下载 pixelexperience 源代码
注意:
(1)下载时间比较长,另外,注意磁盘空间。(2)之后可以使用repo sync
持续更新源码。1 2 3 4
mkdir ~/android/pe cd ~/android/pe repo init -u https://github.com/PixelExperience/manifest -b branch_name repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags
- 下载机型相关的代码,比如: Onplues8T 是 kebab
1 2 3
cd ~/android/pe source build/envsetup.sh lunch aosp_kebab-userdebug
- 使用 ccache ,缓存这次的build文件,下次编译就会很快(一小时的编译时间,会被缩短到20分钟)。
添加如下设置到~/.bashrc
1 2 3
export USE_CCACHE=1 export CCACHE_EXEC=/usr/bin/ccache export CCACHE_DIR=/your-path-may-have-50G/ccache
然后执行如下命令,设置缓存大小:
1 2 3
# 如果就针对一种机型,25G - 50G 就够了 # 如果是多个机型,而且不是一套kernel source, 设置 75G - 100G ccache -M 50G
- 编译
1 2 3
croot # nproc -all 会返回所有cpu线程数目,编译时候还要电脑干其他事情,就自己指定下核心/线程数目吧。 mka bacon -j$(nproc --all)
- 安装
-
进入编译结果目录:
cd $OUT
例如:out/target/product/kebab
2个文件比较有用:
recovery.img
, which is the PixelExperience recovery image.- A zip file whose name starts with
PixelExperience_
, which is the PixelExperience installer package.
- 第二次编译
1 2 3 4 5 6 7 8 9 10
# 更新代码 repo sync # 设置编译变量 cd ~/android/pe source build/envsetup.sh # 设置下设备,这里是 kebab lunch aosp_kebab-userdebug # 开始编译 croot mka bacon -j$(nproc --all)