系统源码编译
陆游:一日不读书,胸臆无佳境
Android源码编译
- 安装Java、高版本系统可能需要Java更高版本
sh
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java #多个Java版本中切换
sudo update-alternatives --config javac
- 安装python、部分Linux集成
sh
python --version #查看是否安装且是我们需要的版本
sudo apt-get install python3
- 安装一些编译中必须的依赖包
sh
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
- 安装repo工具、下载源码需要
sh
mkdir ~/bin
PATH=~/bin:$PATH
mkdir -p ~/android/lineage
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- 配置git、repo同步需要验证身份
sh
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
- 设置缓存、加快构建速度
sh
export USE_CCACHE=1 #添加至~/.bashrc
export CCACHE_EXEC=/usr/bin/ccache
ccache -M 50G #设置50G大小
ccache -o compression=true
- 开始同步源码、Aosp Or LineageOS
sh
cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-20.0
repo init -u https://android.googlesource.com/platform/manifest -b android-12.1.0_r27
repo sync #-j8加速
- 选择设备开始编译
sh
source build/envsetup.sh
lunch xx-userdebug #xx设备名
make -j16
repo使用
- 大部分命令和git类似
sh
repo status #查看状态
repo diff #查看差异
repo diff >> xx.patch #生成补丁