Android 6.0源码编译及烧录到真机过程记录

Android 6.0源码编译及烧录到真机过程记录,asop使用清华镜像源https://mirror.tuna.tsinghua.edu.cn/help/AOSP/

一开始使用每月初始化包的方式因为无法搞定版本的问题,没能通过编译,无奈,老老实实一点点下载吧

1、源码下载

mkdir aosp cd aosp repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r1
sh myrepo.sh

版本号,一定要选对,不然就要来回折腾,因为虽然都是android6.0,但有的版本并不支持nexus5

MMB29Q android-6.0.1_r11 Marshmallow Nexus 5, Nexus 5X, Nexus 6, Nexus 6P, Nexus 7 (flo/deb) MMB29T android-6.0.1_r10 Marshmallow Nexus Player MMB29S android-6.0.1_r9 Marshmallow Nexus 5, Nexus 6, Nexus 9 (volantis/volantisg) MMB29P android-6.0.1_r8 Marshmallow Nexus 5X, Nexus 6P MMB29O android-6.0.1_r7 Marshmallow Nexus 7 (flo/deb) MXB48K android-6.0.1_r5 Marshmallow Pixel C MXB48J android-6.0.1_r4 Marshmallow Pixel C MMB29M android-6.0.1_r3 Marshmallow Nexus 6P, Nexus Player MMB29K android-6.0.1_r1 Marshmallow Nexus 5, Nexus 5X, Nexus 6, Nexus 7 (flo/deb), Nexus 9 (volantis/volantisg)

顺便提醒下,一般版本支持的型号越多,相应的体积越大。曾经就下错过版本,导致烧录后进入normal模式一直卡在开机动画上。关于源码体积这里给个简单的参考:

android-6.0.1_r1 67G android-6.0.1_r3 54G

源码体积比较大,建议下载前一定要保证硬盘分区足够大,如果既要下载又要编译,建议存放源码分区不小于120G

myrepo.sh是为避免repo失败过程,对repo sync 重试过程进行的封装,见下方

#!/bin/sh repo sync -j4 while [ $? -ne 0 ] do repo sync -j4 done

同步过程出现 curl: (22) The requested URL returned error: 404 Not Found Server does not provide clone.bundle; ignoring. 直接无视即可

2、添加驱动

      在代码完全同步之后,实际时缺少vendor目录的,是没有相应的驱动,编译出的镜像只能运行在模拟器上,下载相关的驱动

https://developers.google.com/android/drivers#hammerheadmmb29k,实际是三个shell 脚本

Android 6.0源码编译及烧录到真机过程记录

依次执行这三个脚本文件,这里要注意,三个脚本文件的作用是生成驱动文件,但是在执行操作前,它会让你阅读相关协议,你必须一直按enter键一行一行往下读,更不能一键摁到底,因为程序在最后会让你输入“I ACCEPT”,如果你一键摁到底,也就是说最后一步也摁enter键的话它就会执行默认操作,即不接受此协议,那生成驱动文件的操作就不会执行。这里有个小窍门,一直摁住enter,注意命令行中闪过的协议项,当读到第八项时可以放慢速度,一下一下的摁enter键了,最后慢慢的到最后一步,输入I ACCEPT即可。这三个文件都是这样的操作流程。上图展示了在执行完脚本文件后生成的驱动文件目录。

Android 6.0源码编译及烧录到真机过程记录

3、编译

export USE_CCACHE=1 prebuilts/misc/linux-x86/ccache/ccache -M 50G source build/envsetup.sh ninjame@Ubuntu1604:~/aosp$ lunch ------------------------------ You're building on Linux Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_mips-eng 4. aosp_mips64-eng 5. aosp_x86-eng 6. aosp_x86_64-eng 7. aosp_deb-userdebug 8. aosp_flo-userdebug 9. full_fugu-userdebug 10. aosp_fugu-userdebug 11. mini_emulator_arm64-userdebug 12. m_e_arm-userdebug 13. mini_emulator_mips-userdebug 14. mini_emulator_x86_64-userdebug 15. mini_emulator_x86-userdebug 16. aosp_flounder-userdebug 17. aosp_angler-userdebug 18. aosp_bullhead-userdebug 19. aosp_hammerhead-userdebug 20. aosp_hammerhead_fp-userdebug 21. aosp_shamu-userdebug Which would you like? [aosp_arm-eng] 19 ------------------------ make -j8

最终编译耗时 1h 22min

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13887.html