android11源码编译
Posted 白嫩豆腐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android11源码编译相关的知识,希望对你有一定的参考价值。
前言
android编译再国内其实总是会遇到各种奇怪的问题,但是想观察一下Android源码,不编译一下代码总是少点什么,虽然大部分开发系统的开发者都有开发板,所以会有芯片厂商提供的系统,但是每次都要刷机,感觉不如虚拟机好玩,当前大部分文档都是编译arm系统,大部分虚拟机无法运行,这里介绍一下内核以及aosp的编译过程
正文
目的是编译Android 11 源码,需要的配置是16+g内存,以及300g硬盘,系统ubunut
下载Android系统代码(aosp)
Android系统源码下载其实比较简单,具体参考官方文档:Android 源码获取,具体百度。
编译:
编译主要分为散步,分别是
- source 读入shell的方法,用来编译Android系统源码,(source build/setenv.sh)
- 确定编译目标(lunch)
- 编译(m)
具体百度即可,这套流程没有任何改变。关于墙的问题,可以使用镜像(清华镜像、中国科技大学镜像),最好直接下载每月的压缩包解压即可
关于kernel编译,Android高版本有非常大的变化,通过统一shell脚本控制
下载可参考官方文档,切原理基本于aosp一样,也是通过repo管理,关键是确认版本,一般我们使用common-android11-5.4-lts 这个分支,
具体代码为:
repo init https://mirrors.ustc.edu.cn/aosp/kernel/manifest -b common-android11-5.4-lts
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 时遇到比较多的问题,比较难以解决,之类记录一下。
以上是关于android11源码编译的主要内容,如果未能解决你的问题,请参考以下文章
Android 11使用Android Studio调试系统应用:编译服务器的配置AOSP源码的下载编译运行
如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
《Android Studio开发实战 从零基础到App上线(第3版)》出版后记
《Android Studio开发实战 从零基础到App上线(第3版)》出版后记