https://lug.ustc.edu.cn/wiki/mirrors/help/aosp/ //清华源笔记
http://liuwangshu.cn/framework/aosp/2-download-aosp.html //刘皇叔
一、环境安装
1.sudo apt-get update
#更新软件
2.sudo apt-get install openjdk-11-jdk
#安装jdk11
3.sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev zip liblz4-tool libncurses5 libssl-dev bc flex curl python-is-python3
# 各种工具,如果出现有冲突的包,可以去百度等效的包来替换
git config --global user.email "1229106519@qq.com"
#git 配置 第5条也是git config --global user.name "lolita"
mkdir ~/bin
#创建bin文件夹PATH=~/bin:$PATH
curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
#使用其他源下载repochmod a+x ~/bin/repo
#修改文件权限- 修改
~/bin/repo
文件 ,REPO_URL 一行替换:REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'
二、下载源码
mkdir aosp
#创建工作目录cd aosp
#进入工作目录repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-12.1.0_r3
#下载源码,并指定分支repo sync
#同步并检出源码./repo_update.sh
#更新补丁
三、编译源码
3.1 整编
source build/envsetup.sh
#初始化环境,该脚本引入其他执行脚本lunch
#选择编译目标
aosp_x86_64-eng
编译虚拟机运行的ROM
编译目标的格式为BUILD-BUILDTYPE
BUILD表示编译出的镜像可以运行在什么环境,如aosp为安卓开源项目,arm表示arm架构处理器
BUILDTYPE 指的是编译类型,有以下三种:
- user:用来正式发布到市场的版本,权限受限,如没有 root 权限,不能 dedug,adb默认处于停用状态。
- userdebug:在user版本的基础上开放了 root 权限和 debug 权限,adb默认处于启用状态。一般用于调试真机。
- eng:开发工程师的版本,拥有最大的权限(root等),具有额外调试工具的开发配置。一般用于模拟器。
make installclean && make -j64
# 开始编译,-j代表线程数emulator
#运行虚拟机
3.2 单编
- mm: 编译当前目录下的模块,不编译其依赖项
- mmm:编译指定目录下的模块,不编译它所依赖的其它模块。
- mma:编译当前目录下的模块及其依赖项。
- mmma:编译指定路径下所有模块,并且包含依赖。
四、打包刷机
新建mkpack打包脚本
cd ./out/target/product/redfin/ && zip image.zip *.img android-info.txt && cp image.zip bootloader.img radio.img /mnt/c/AOSP/
刷机脚本:flash-all.bat
@ECHO OFF
adb reboot bootloader
PATH=%PATH%;"%SYSTEMROOT%\System32"
fastboot flash bootloader bootloader.img
fastboot reboot-bootloader
ping -n 5 127.0.0.1 >nul
fastboot flash radio radio.img
fastboot reboot-bootloader
ping -n 5 127.0.0.1 >nul
fastboot -w update image.zip
echo Press any key to exit...
pause >nul
exit