0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Android13的AOSP源码下载及编译指南

哆啦安全 来源:虎哥Lovedroid 2024-01-17 09:49 次阅读

引言

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源代码。打开终端或命令提示符窗口,并执行以下命令:

mkdirAOSP
cdAOSP

1.初始化Repo工具。执行以下命令:

repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

这里会提示无法连接到 http://gerrit.googlesource.com,需要我们修改一下bash的环境变量,然后重新初始化仓库。

$echo`exportREPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'`>>~/.bashrc
$source~/.bashrc
$repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

出现如下提示,说明仓库初始化成功。

6a22d182-b4c0-11ee-8b88-92fbcf53809c.png

1.同步源码。执行以下命令:

reposync

1.等待源码同步完成。这可能需要一段时间,取决于您的网络连接和计算机性能。

配置编译环境

1.进入AOSP源码目录。执行以下命令:

cd

1.配置编译环境。执行以下命令:

sourcebuild/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
$sourcebuild/envsetup.sh
$mmmdevelopment/tools/idegen/
$development/tools/idegen/idegen.sh

另外,导入AOSP源码体积庞大,你需要修改AS的jvm参数

6a366472-b4c0-11ee-8b88-92fbcf53809c.png

另外Android Studio建议使用JetBrains的ToolBox进行管理,避免因为修改配置导致AS无法升级的问题。

aidegen工具

Google在Android11之后提供了aidegen工具,可以针对AOSP源码的特点,针对某个模块生成ide配置,这样导入后可自动完成依赖配置,符号依赖可以随意跳转。

6a818434-b4c0-11ee-8b88-92fbcf53809c.png

厂商AOSP

对于拿到了厂商AOSP源码来说,编译调试更容易了,一般厂商都提供了集成好的脚本,直接执行脚本就可以执行编译打包能力,例如Rockchip高通、MTK等都有集成好的脚本进行编译打包。例如笔者在基于Rockchip平台开发时,有build.sh脚本可调用:

#!/bin/bash
usage()
{
echo"USAGE:[-U][-CK][-A][-p][-o][-u][-vVERSION_NAME]"
echo"NoARGSmeansusedefaultbuildoption"
echo"WHERE:-U=builduboot"
echo"-C=buildkernelwithClang"
echo"-K=buildkernel"
echo"-A=buildandroid"
echo"-p=willbuildpackaginginIMAGE"
echo"-o=buildOTApackage"
echo"-u=buildupdate.img"
echo"-v=buildandroidwith'user'or'userdebug'"
echo"-d=huildkerneldtsname"
echo"-V=buildversion"
echo"-J=buildjobs"
echo"-B=buildABImage"
exit1
}

例如,可执行下面命令编译android、kernel、boot及打出update.img包

./build.sh-UKAu

通过本教程,您学会了如何下载AOSP源码并进行编译。现在,您可以根据需要进行自定义和开发,定制您自己的Android系统。请注意,AOSP编译过程可能需要一些时间和计算机资源,建议在充足的时间和性能条件下进行操作。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125639
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113705
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
  • AOSP
    +关注

    关注

    0

    文章

    16

    浏览量

    6141

原文标题:Android Framework | AOSP源码下载及编译指南(基于Android13)

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OpenHarmony开发学习:【源码下载编译

    本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(`Hi3516`,`Hi3518`和`Hi3861`)的编译环境,以及如何将源码
    的头像 发表于 04-14 09:36 391次阅读
    OpenHarmony开发学习:【<b class='flag-5'>源码</b><b class='flag-5'>下载</b>和<b class='flag-5'>编译</b>】

    Google AOSP 正式宣布支持HiKey 极大压缩Android SDK开发软件周期

    Android内核源码及板级系统支持,使得开发者们能够轻松创建和调试新的或现有的外围设备驱动程序,甚至进行内核开发等其他更为困难的开发工作,由此OEM厂商的开发困难将大大降低。LeMaker也将全力支持国内外用户在HiKey上面进行AO
    发表于 03-08 11:38

    imx6 android下载编译。谷歌安卓源码被墙了怎么办?

    按照imx6官网教程ubuntu上下载编译安卓6.0系统。下载的时候出现问题,谷歌被墙了,~/bin/repo init -u https://android
    发表于 03-14 12:54

    Android for BBB准备repo 下载源码

    repo init -u git://github.com/hendersa/bbbandroid-manifest.git -m bbbandroid-aosp-4.4.4_r1-3.8.xml然后使用repo sync 命令开始下载
    发表于 08-04 11:32

    iTOP-4412开发板android4.0代码下载编译

    Android 代码下载完成后就可以进行编译了,Android 源码编译需要 kernel 支持
    发表于 04-14 10:45

    iTOP-4412开发板android4.4代码下载编译

    /repo start master --all#../git-repo/repo branch6.3.2.3 Android4.4 源码编译Android 代码
    发表于 04-21 09:54

    如何对RK3568环境上的AOSP源码进行调试呢

    如何对RK3568环境上的AOSP源码进行编译呢?如何对RK3568环境上的AOSP源码进行调试呢?
    发表于 03-02 06:25

    【重磅来袭】迅为RK3568 Android11系统移植视频教程

    ",在线观看更多视频1_总领-嵌入式Android要学哪内容...2_Android源码的获取途径3_下载谷歌AOSP
    发表于 07-08 14:43

    IMX8M android13移植编译gnutls_handshake()失败:TLS连接未正确终止如何解决?

    我在使用IMX8M-nano移植编译android13,但是在拉取源码库的时候总是报错aosp_platform_bootable_recovery:致命错误:无法访问 \'https
    发表于 04-07 11:49

    i.MX8M nano evk添加NFC PN7160移植Android13编译报错怎么解决?

    我正在使用 i.MX8M nano evk 和 PN7160 进行 NFC 移植开发i.MX8M nano evk 是否有类似的附件 PN7160 功能的镜头运行Android13? 我自己按照
    发表于 04-25 08:21

    VisionFive 2成功集成Android开源项目(AOSP)!

    非常高兴地向各位宣布,赛昉VisionFive 2上已成功集成了Android开源项目(AOSP),为用户带来了更多的软件解决方案以及与Android软件生态系统的无缝集成。这一里程碑源于与开源社区
    发表于 10-16 13:11

    Tengine从入门到放弃 第1篇-Tengine Android版本编译

    Tengine Android版本编译环境System: Ubuntu18.04CMAKE: 3.15.3下载Android NDK {代码...} 克隆Tengine
    发表于 01-26 18:28 0次下载
    Tengine从入门到放弃 第1篇-Tengine <b class='flag-5'>Android</b>版本<b class='flag-5'>编译</b>

    AOSP Android11系统源码和内核源码简析

    AOSP源码中并不包括内核源码,需要单独下载,内核源码有很多版本,比如common是通用的Linux内核,msm是用于使用高通MSM芯片的
    的头像 发表于 01-29 09:25 3603次阅读

    Ubuntu 22.04上编译Android13 AOSP系统并刷入Pixel 6

    这里需要下载100g工具和代码,通常都是晚上下载比较快一点。
    的头像 发表于 06-09 09:22 1615次阅读

    迅为RK3588S边缘计算开发板Android13系统功能

    迅为RK3588S边缘计算开发板Android13系统功能
    的头像 发表于 04-10 15:43 167次阅读
    迅为RK3588S边缘计算开发板<b class='flag-5'>Android13</b>系统功能