引言
aosp(android open source project)是android操作系统的开源项目,通过下载和编译aosp源码,您可以获得原始的android系统,并进行定制和开发。本教程将向您介绍如何下载aosp源码并进行编译的步骤。
如何只是浏览查看aosp源码,则没必要下载源码,可以使用google提供的code search工具进行浏览查阅,这个工具用起来堪比ide,并且非常流畅,但是访问这个站点需要翻墙操作。
https://cs.android.com/
下载aosp源码之前,你需要具备一定的linux基础知识及git、repo等工具的使用经验。
准备工作
1. 确保您的计算机符合以下要求:
• 操作系统:linux(推荐使用ubuntu)、macos或windows(需要使用wsl),官方文档使用的ubuntu lts 版本中进行开发和测试,所以最好是在ubuntu tls版本环境下进行开发
• 内存:建议至少16gb ram
• 存储空间:建议至少200gb可用空间,只下载源码可能200g,如果需要编译源码则建议至少500g空间
2. 安装所需软件:
• jdk(java development kit):确保安装jdk 8或更高版本。
• git:用于从aosp仓库下载源代码。
• repo:用于管理多个git仓库的工具。
下载aosp源码
aosp的代码托管在google的git服务器上,但由于一些普遍已知的原因,国内用户无法直接访问。为了方便快速地下载代码,我们可以使用清华大学提供的镜像源进行访问。
使用清华镜像源的方法很简单,只需要访问
https://mirrors.tuna.tsinghua.edu.cn/help/aosp/
网站即可获取相关说明和使用方法。
1. 创建一个工作目录,用于存储aosp源代码。打开终端或命令提示符窗口,并执行以下命令:
mkdir aosp cd aosp
1. 初始化repo工具。执行以下命令:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/aosp/platform/manifest
这里会提示无法连接到 http://gerrit.googlesource.com,需要我们修改一下bash的环境变量,然后重新初始化仓库。
$ echo `export repo_url='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'` >> ~/.bashrc $ source ~/.bashrc $ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/aosp/platform/manifest
出现如下提示,说明仓库初始化成功。
1. 同步源码。执行以下命令:
repo sync
1. 等待源码同步完成。这可能需要一段时间,取决于您的网络连接和计算机性能。
配置编译环境
1. 进入aosp源码目录。执行以下命令:
cd
1. 配置编译环境。执行以下命令:
source build/envsetup.sh
1. 选择目标设备。执行以下命令:
lunch
1. 在菜单中选择目标设备的编号,并按enter键确认。
开始编译
1. 执行以下命令开始编译整个aosp源码:
make -j
• 是您计算机处理器核心数的数字。例如,如果您的计算机有4个核心,则可以使用make -j4。
1. 等待编译完成。这可能需要几个小时,取决于您的计算机性能。
步骤五:获取编译后的系统镜像
1. 编译完成后,在aosp源码目录中执行以下命令以获取系统镜像:
cd out/target/product//
1. 在该目录下,您将找到生成的系统镜像文件。
aosp源码查看
code search
前面说了,如果不涉及开发调试,只限阅读源码,那么直接访问下面网址就够了。这是google为android开发的code search在线工具,体验堪比ide。
https://cs.android.com/
android studio导入
如果需要在本地开发调试,那么使用as导入源码,执行下面命令会在aosp源码根目录下生成android.ipr、android.iml及android.iws三个文件,使用android studio导入android.ipr文件即可导入aosp源码。
$ cd ~/aosp$ source build/envsetup.sh$ mmm development/tools/idegen/$ development/tools/idegen/idegen.sh
另外,导入aosp源码体积庞大,你需要修改as的jvm参数
另外android studio建议使用jetbrains的toolbox进行管理,避免因为修改配置导致as无法升级的问题。
aidegen工具
google在android11之后提供了aidegen工具,可以针对aosp源码的特点,针对某个模块生成ide配置,这样导入后可自动完成依赖配置,符号依赖可以随意跳转。
厂商aosp
对于拿到了厂商aosp源码来说,编译调试更容易了,一般厂商都提供了集成好的脚本,直接执行脚本就可以执行编译打包能力,例如rockchip、高通、mtk等都有集成好的脚本进行编译打包。例如笔者在基于rockchip平台开发时,有build.sh脚本可调用:
#!/bin/bashusage(){ echo usage: [-u] [-ck] [-a] [-p] [-o] [-u] [-v version_name] echo no args means use default build option echo where: -u = build uboot echo -c = build kernel with clang echo -k = build kernel echo -a = build android echo -p = will build packaging in image echo -o = build ota package echo -u = build update.img echo -v = build android with 'user' or 'userdebug' echo -d = huild kernel dts name echo -v = build version echo -j = build jobs echo -b = build ab image exit 1}
例如,可执行下面命令编译android、kernel、boot及打出update.img包
./build.sh -ukau
通过本教程,您学会了如何下载aosp源码并进行编译。现在,您可以根据需要进行自定义和开发,定制您自己的android系统。请注意,aosp编译过程可能需要一些时间和计算机资源,建议在充足的时间和性能条件下进行操作。
迈向无限可能, ATEN宏正领跑设备切换行业革命!
美国两大智库之一的CSIS发表最新报告《中国对半导体独立的追求》
热敏标签纸的质量标准,质量好的热敏标签如何判别
毫米波雷达智能感知方案
美国三星Note7将被强制禁用,通过软件来禁止充电
基于Android13的AOSP源码下载及编译指南
中华新款V3在7月底上市后,紧跟着众泰发布的首款小型SUV—T300也将于8月上市
6天市值缩水5000亿,全球科技巨头谷歌重组两大品牌求变
BUCK电路中具体有哪些类型的电压参数
【深入探究系统的真实性能】ccEVM技术解析
今日传感财经:电子油门概念盘中报跌;电阻概会报涨;医疗传感器概念报跌
中国移动物联网建设动作频频 中移物联网发布多条采购招标
政府智慧应急平台的设计方案和功能实现
晶圆级低损耗铌酸锂光子集成电路
用Audit执行Linux系统和安全审计
360度激光雷达迎来新的契机
晶科能源荣获EUPD Research ESG透明度奖
竞争格局激烈,几张图带你读懂中国智能手机市场
肺炎疫情防控背后背后的大数据有多少
分析师称新款MacBook Pro或会令用户大失所望 销量也不会太好