编译Android 8.1 并刷入Nexus 6P


-----------------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


 

在Ubuntu 20.04上编译Android 8.1源代码需要一些基本的步骤和配置。下面是一个大致的步骤指南: 1. 安装必要的开发工具和依赖项: - 打开终端,运行以下命令安装Java开发工具包(JDK): ``` sudo apt install openjdk-8-jdk ``` - 安装必要的构建工具: ``` sudo apt install bison g++ g++-multilib git make python-networkx zlib1g-dev:i386 ``` 2. 下载Android源代码: - 在你喜欢的位置创建一个目录,用于存放源代码: ``` mkdir android cd android ``` - 初始化Git仓库并同步源代码: ``` repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1 repo sync -j4 ``` 3. 配置环境变量: - 编辑`~/.bashrc`文件: ``` nano ~/.bashrc ``` - 在文件末尾添加以下内容并保存: ``` export PATH="$PATH:/path/to/android/tools" export PATH="$PATH:/path/to/android/platform-tools" ``` 4. 编译源代码: - 返回`android`目录,运行以下命令初始化编译环境: ``` source build/envsetup.sh lunch ``` - 选择你想要编译的模式,例如`aosp_arm-eng`。 - 开始编译: ``` make -j4 ``` - 这个过程可能需要一些时间,具体视你的计算机性能而定。 完成上述步骤后,你将获得编译好的Android 8.1系统。请注意,编译过程中可能会遇到一些问题,例如依赖项缺失或配置错误等。在遇到问题时,你可以通过Google、Stack Overflow等社区获取帮助和解决方案,以便成功编译Android 8.1源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值