-----------------AOSP Android源码----------------
源码下载:
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
cd ~/bin
#curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' | base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
# cd ~/work ;
mkdir aosp; cd aosp;
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
查看所有的分支:
cd .repo/manifests/; git branch -a
从官网查到Nexus 6P较新的分支是 android-8.1.0_r50 (OPM7.181105.004)
https://source.android.com/setup/start/build-numbers
下载这个分支的代码:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.1.0_r50
repo sync
-------------内核-------------------
下载内核代码(官网)
https://source.android.com/setup/build/building-kernels
在https://android.googlesource.com/kernel/msm/+refs 检查所有angler分支,
找到android-msm-angler-3.10-oreo-m7后进入,下载内核代码压缩包,解压在aosp/kernel/msm目录:
https://android.googlesource.com/kernel/msm/+/android-msm-angler-3.10-oreo-m7
--------------二进制驱动---------------------
到官网下载Nexus 6P binaries for Android 8.1.0 (OPM7.181105.004)
对应的Vendor image 和 高通的设备驱动
https://developers.google.com/android/drivers#angleropm7.181105.004
分别解压到AOSP根目录,执行脚本后一个个确认,最后一步输入"I ACCEPT"。
-------------------------
修改Jack的配置文件prebuilts/sdk/tools/jack-admin
找到start-server函数,添加选项"-Xmx4096m":
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
如果是虚拟机,内存设置为8G以上,否则容易出现内存不足问题。
------------编译内核-------------
流程参考官网 https://source.android.com/setup/build/building-kernels
cd aosp/kernel/msm
export ARCH=arm64
export CROSS_COMPILE=/home/konga/bin/aarch64-linux-android-4.9/bin/aarch64-linux-android-
make angler_defconfig
make
编译完后把arch/arm64/boot/Image.gz-dtb 复制到aosp/device/huawei/angler-kernel/
cp arch/arm64/boot/Image.gz-dtb ../../device/huawei/angler-kernel/
或者导出如下变量:
export TARGET_PREBUILT_KERNEL=$KERNEL_DIR/arch/arm64/boot/Image.gz-dtb
---------------编译AOSP------------------
source build/envsetup.sh
lunch #选择28. aosp_angler-userdebug
make -j4
进入out/target/product/angler
android-info.txt fake_packages previous_build_config.mk system
boot.img gen ramdisk.img system.img
build_fingerprint.txt installed-files.json ramdisk-recovery.img userdata.img
cache installed-files.txt recovery vendor
cache.img kernel recovery.id vendor.img
clean_steps.mk module-info.json recovery.img
data obj root
dex_bootjars obj_arm symbols
把需要的文件打包成一个压缩文件:
zip packall.zip android-info.txt boot.img recovery.img system.img vendor.img
-----------------烧写---------------
先从https://developers.google.com/android/images#bullhead 下载Nexus6P出厂镜像:
8.1.0 (OPM7.181205.001, Dec 2018)
https://dl.google.com/dl/android/aosp/angler-opm7.181205.001-factory-b75ce068.zip
解压后把刚才的packall.zip也放进去,修改flash-all.bat
把 fastboot -w update image-angler-opm7.181105.004.zip
改为 fastboot -w update packall.zip
其他不用修改。
剩下的按照普通刷机流程进行,参考官网:
https://developers.google.com/android/images