android11源码编译
前⾔
Android编译再国内其实总是会遇到各种奇怪的问题,但是想观察⼀下Android源码,不编译⼀下代码总是少点什么,虽然⼤部分开发系统的开发者都有开发板,所以会有芯⽚⼚商提供的系统,但是每次都要刷机,感觉不如虚拟机好玩,当前⼤部分⽂档都是编译arm系统,⼤部分虚拟机⽆法运⾏,这⾥介绍⼀下内核以及aosp的编译过程
正⽂
⽬的是编译Android 11 源码,需要的配置是16+g内存,以及300g硬盘,系统ubunut
下载Android系统代码(aosp)
Android系统源码下载其实⽐较简单,具体参考官⽅⽂档:,具体百度。
编译:
编译主要分为散步,分别是
1. source 读⼊shell的⽅法,⽤来编译Android系统源码,(source build/setenv.sh)
2. 确定编译⽬标(lunch)
3. 编译(m)
具体百度即可,这套流程没有任何改变。关于墙的问题,可以使⽤镜像(清华镜像、中国科技⼤学镜像),最好直接下载每⽉的压缩包解压即可
关于kernel编译,Android⾼版本有⾮常⼤的变化,通过统⼀shell脚本控制
下载可参考官⽅⽂档,切原理基本于aosp⼀样,也是通过repo管理,关键是确认版本,⼀般我们使⽤common-android11-5.4-lts 这个分⽀,
具体代码为:
repo init mirrors.ustc.edu/aosp/kernel/manifest -b common-android11-5.4-lts
android11适配机型repo sync
⼀般我们可以公国中国科技⼤学镜像获取。墙内记得修改repo的url路径,这⾥不再详细介绍(遇到http
协议的问题可以修
改.repo/manifests.git/config的url),关于编译,可参考Android官⽅⽂档。
主要是通过build.sh实现编译
问题是编译后的运⾏,普通的播放直接介绍
emulator -kernel youimage
这个再Android 11 是⽆法运⾏的,因为Android系统吧部分Android驱动即ko⽂件以及kernel分开,所以aosp中包含了部分ko⽂件需要和kernel的内核相对应,具体做法是(⽬前⽐较丑陋的做法):
吧编译出的ko⽂件以及bzimage复制到aosp/prebuilts/qemu-kernel/x86_64⽬录下,然后重新编译aosp,下次运⾏即可通过
emulator -kernel youimage
后记
这个⽂章⽐较简答,因为编译Android系统的⽂章⾮常多,不过本⼈再编译Android11 时遇到⽐较多的问
题,⽐较难以解决,之类记录⼀下。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论