Skip to content

系统源码编译

陆游:一日不读书,胸臆无佳境

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	#生成补丁

Copyright © manosP . 2023