Ubuntu20.04编译安卓aosp 15源码编译到模拟器运行

Android15源码编译记录 记录android源码编译 阅读详情
AI摘要

本文介绍了AOSP15源码环境的搭建过程,包括相关库和源码repo的下载、编译步骤等。还指出AOSP15搭建与13/14版本的差异,如lunch目标不同、模拟器显示大小需调整等,并给出了修改分辨率的方法,方便大家体验新版本安卓。

背景:

aosp15也开始悄悄在各个手机厂商开始酝酿了,感叹时间很快,今天也准备针对aosp15进行一下源码环境的搭建,整体aosp15的搭建和13/14其实没啥大的差别,只不过在lunch目标这个地方确实很大不同,还有就是模拟器启动后的大小不太合适。下面文章将带大家手把手搭建好aosp15/android 15的源码环境,并成功运行起来模拟器,方便大家体验新版本安卓。
看本篇文章建议可以先看如下两篇参考文章:
aosp13/14源码环境搭建:
https://blog.youkuaiyun.com/learnframework/article/details/121345533

aosp15上选择目标与aosp14版本的差异分析:
https://mp.weixin.qq.com/s/9xkNgKKxBWlM_qtpLmRL5g

相关库下载:

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev libncurses5

源码repo下载:

获取具体15版本的分支:
可以先使用如下repo命令(注意这里使用清华大学镜像下载)

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest 

在这里插入图片描述ps:如果这里会出现啥错误,问题解决方法请参考https://blog.youkuaiyun.com/learnframework/article/details/121345533

末尾没有加-b指定分支,这时候repo下来一般是默认主版本的分支,这分支不是我们想要的,那么接下来要去.repo文件夹,看看所有分支情况

cd .repo/manifests
 git branch  -a

查看所有分支结果如下:
在这里插入图片描述明显分支就1-2个,明显没有aosp15分支,这里对当前目录进行git pull操作:

在这里插入图片描述这时候git branch -a发现如下aosp15的最新分支:
在这里插入图片描述
所以这里选定分支为android-15.0.0_r3

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-15.0.0_r3

编译步骤:

env环境配置:
. build/envsetup.sh
注意这里点后面有空格才是build

选择目标target(注意这里最重要和以前版本最大差异):

lunch sdk_phone64_x86_64-trunk_staging-eng

那么为啥是这个呢?其实是有相关提示的可以
如果只执行命令lunch,输出如下:


You're building on Linux

Warning: Cannot display lunch menu.

Note: You can invoke lunch with an explicit target:

  usage: lunch [target]

Which would you like? [aosp_cf_x86_64_phone-trunk_staging-eng]
Pick from common choices above (e.g. 13) or specify your own (e.g. aosp_barbet-trunk_staging-eng): 

这里就给了我们一个范例aosp_cf_x86_64_phone-trunk_staging-eng这种模式,对我们来说这里可以分为两个部分
第一部分:aosp_cf_x86_64_phone这个是可变的,需要根据我们自己情况选择,具体怎么选稍后说
第二部分:-trunk_staging-eng这里其实可以不需要变化
所以我们就只需要确定第一部分既可以。

那么第一部分的Product是如何确定的,这里怎么就知道是sdk_phone64_x86_64,而不是以前的sdk_phone_x86_64
原因剖析可以原来这个文章:
https://mp.weixin.qq.com/s/9xkNgKKxBWlM_qtpLmRL5g

编译命令:
make

编译成功后运行:
emulator
显示如下:
在这里插入图片描述乍一看相比以前aosp13/14版本来说,感觉这个模拟器的显示大小明显小了很多,看看命令行输出的分辨率和屏幕密度情况:
在这里插入图片描述

明显看到这里分辨率才是480x800难怪显示很小,这里如果要分辨率正常大小可以修改成1080x1920,或者以前13/14版本的1440x2960

修改到合适的显示大小

下面来教大家如何修改分辨率
分辨率这些数据其实都是在对应的config文件中保存的,这里简单起见可以直接去修改out目录下的config.ini文件

out/target/product/emu64x/config.ini

avd.ini.encoding=UTF-8
disk.dataPartition.size=10G
fastboot.forceColdBoot = yes
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.camera.back=emulated
hw.camera.front=emulated
hw.dPad=no
hw.gps=yes
hw.gpu.enabled=yes
hw.keyboard=yes
hw.lcd.density=240
hw.cpu.ncore = 4
hw.mainKeys=no
hw.ramSize = 4096
hw.sensors.orientation=yes
hw.sensors.proximity=yes
image.sysdir.1=x86/
skin.dynamic=no
skin.name=480x800
skin.path=480x800

具体修改点如下:
在这里插入图片描述

在这里插入图片描述
整体上体验了一下,功能上感觉不出有啥差异,动画的体验性相比原来aosp14好像丝滑了不少,其他功能暂时还未深入体验。

android 15 源码分析【环境搭建: pixel6 烧录最新android15源码】 使用 pixel6 手机烧录最新android15 源码。 阅读详情

相关推荐

自己动手编译最新Android源码及SDK(Ubuntu)

在Android Studio代码调试一文中,简单的介绍了代码调试的一些技巧.现在我们来谈谈android源码编译的一些事.(俺认为,作为android developer人人都应该有一份自己Android源码,这样我们就可以随时对自己有疑惑的地方通过亲手调试来加强理解).本文适用于以下以下编译途径: Ubuntu 16.04上编译Android 6.0.x 及以上版本.

Floating Cat 5万+

Android编译过程分析(一)

Android编译过程分析

Ternence_zq的博客 7428

ubuntu 20.04编译Android源码

一直以来想编译android源码,趁闲编译了下,ubuntu版本20.04,android源码版本总体还比较顺畅,中间遇到了一些报错,在文中也有记录,详情见下文。

sunnyyin的专栏 2429

android os 编译系统看不到lunch menu 解决方案

目前能够用了,没有仔细的去研究里面的代码改了啥, 但后面google会不会做什么修正和改变什么的就不知道了,有知道的大佬有空可以支持下。lunch menu整个就看不到了, 都不知道是什么原因, 网上搜了一波,也不知道是google故意的还是改出了bug什么的。再调用lunch的时候就能显示lunch menu 了,并且东西都能够显示出来了。最近不知道为啥, 拿了最新的android的代码, 这个三板斧不顶用了。临时的解决方案就是lunch 之后调用一次下面的命令。就这么三板斧就开始干活出东西了。

SecularBird的专栏 5076

Android7.0源码编译运行指南

编译环境:Ubuntu 16.04 镜像文件:清华大学AOSP镜像  Android7.0一、源码下载1 镜像地址清华大学AOSP(Android Open Source Project) https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/2 过程摘录下载Repo 工具mkdir ~/bin PATH=~/bin:$PATH curl https://st

sunnyxibei 2万+

Ubuntu 22.04编译AOSP Android 13

下面选择自己想要的版本,如果想要启动模拟器的话,要选择sdk开头的,比如aosp_car_x86_64-userdebug是无法启动模拟器的,sdk_car_x86_64-userdebug 可以启动模拟器。-j后面的数字为使用cpu的线程数,我的电脑是20线程,我选择16防止电脑卡顿,后面编译也是如此。创建保存代码的目录,我下载分支为android-13.0.0_r35,如果想下载其他分支,请查看。等待编译完成,我编译了一个半小时,如果选择-j16的话应该会更快。如果切换了终端窗口,则执行。

weixin_41678668的博客 2204

【Android】Ubuntu20.04编译Android 13并用模拟器运行

一直好奇Android系统是怎么定制的,直到亲自走一遍Android系统编译流程才发现并没想象的复杂。这就跟app开发一样,Google官方其实都提供了平台、文档、IDE及一些工具,咱们只要按照官方提供的指南来操作就行了。如果Android没有提供这样一个开放的系统、完善的生态,咱们就不可能开发出各种 app以及各种定制的Android系统。

devnn的专栏 1万+

AOSP 编译并导入Android Studio

文章目录AOSP 编译并导入Android Studio1 构建编译环境1.1 硬件要求1.2 操作系统要求1.3 JDK要求1.4 其他要求2 下载源码2.1 使用每月更新的初始化包2.1.1 下载aosp-latest2.1.2 解压到工程目录2.1.3 同步代码2.2 传统初始化方法2.2.1 初始化仓库2.2.2 同步代码2.3 分支切换3 编译源码3.1 初始化编译环境3.2 选择编译目...

I think 2939

Ubuntu 20.04编译AOSP 并启动模拟器

平台 CPU: Intel® Core™ i7-8700 CPU @ 3.20GHz DDR: 24GB 硬盘: SSD 1TB 系统: Ubuntu 20.04 x64 概述 疫情期间居家办公, 为方便调试, 从清华镜像下载了AOSP的代码准备编译后尝试使用模拟器调试, 编译完成后, 发现模拟器启动不了, 要么卡死, 要么崩溃, 历经波折, 最终更新后得以解决, 特此记录. 环境搭建 参考, 建议以官方说明或厂商开发文档中的环境搭建说明为主 #JDK sudo add-apt-repository ppa

ansondroider的博客 1万+

Ubuntu22.04 编译 AOSP

根据您的需求和目标设备,您可以进行定制和配置,以满足特定的开发需求。请注意,AOSP 编译需要较高的系统配置和较大的存储空间,确保您的系统满足这些要求。其中,target是您要构建的目标设备。6,等待编译完成:AOSP 编译过程可能需要一些时间,具体时间取决于您的系统性能和网络状况。1, 更新系统:首先,确保您的 Ubuntu 22.04 系统已经更新到最新版本。5,构建 AOSP:在进行 AOSP 编译之前,根据您的目标设备选择合适的目标。2,安装必要的软件包:AOSP 编译需要一些依赖软件包。

xiangzhihong8的专栏 1288

【Android 13】使用Android Studio调试系统应用之Settings移植(一):编译服务器的配置、AOSP源码的下载、编译、运行

- 对于做ROM,或者是做Android 嵌入式系统开发的同学,在获得原厂代码后,总需要定制开发settings、liveTv、信源菜单、工厂菜单等APP,但这些APP都是以android.bp的形式,集成在AOSP源码中,对于习惯于Android Studio开发的同学,很是不方便,所以就想要将这些APP代码迁移到AS上,一个方便,二个提高效率。本文正式处于此需要,所做的总结。此前已发表过android-9、android-11系列移植文章,本次继续更新android 13系列移植文章。

上周的博客 2943

Android 系统源码——下载到编译

一直想下载、编译、调试一下Android源码 ,加强对一些framework的理解,搞了好多次,终于可以正常调试了。这里进行一些总结和分享。 Android源码到模拟器运行,主要有的四个步骤: 下载源码 搭建编译环境 准备编译 我使用的环境是Ubuntu16.04 、openJDK8、Android 8.0.0 硬件软件要求 官方文档:要求 硬件要求: 如果是 Android 2.3.x (...

薛瑄的博客 4万+

【Android 11】使用Android Studio调试系统应用之Settings移植(一):编译服务器的配置、AOSP源码的下载、编译、运行

最近有机会帮网友移植了Android-11的Settings,这个版本基于 android-11.0.0_r39,原以为很简单,实际开始后,发现和Android 9已经发生了很大变化,甚至于和 android-11.0.0_r33版本都有较大差异……借着这个机会,本系列,将采用了aosp源码+安卓模拟器,从搭建编译服务器开始,更适用于广大码农群众~!

上周的博客 3198

Ubuntu20.04下编译Android系统源码

宿主系统:Ubuntu 20.04 源码版本:Android8最新版 android-8.1.0_r81 1.工具安装:git、curl及编译工具 sudo apt install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-de

SPACESTUDIO的博客 6360

SWAT模型非点源模拟原理

目录引言模型概述非点源污染模拟原理物质迁移内容过程营养物农药病原菌运移河道水质模型营养元素的地表水体循环河道水质模拟藻类模拟氮元素磷元素生化需氧量及溶解氧重金属的运移蓄水体水质模拟 引言 今天无意接触到这一块,就记录下来了。 模型概述 1、流域中非点源污染的来源主要是农业化肥和农药的施用。 2、氮、磷等营养物和农药的迁移和转化取决于化合物在土壤环境中经历的转化过程。 3、SWAT模型可以模拟水文相应单元内氮、磷完整的营养物循环过程和任何一种农药的降解过程。 4、SWAT模拟流域内泥沙、藻类、溶解氧、有机污染

DoWayChan的博客 4880

告别Modern Standby烦恼:在Windows 11中手动启用S3睡眠模式的完整指南

本文详细介绍了如何在Windows 11中手动启用S3睡眠模式,解决Modern Standby(S0模式)导致的笔记本睡眠后耗电问题。通过注册表修改、电源选项调整、BIOS设置等步骤,帮助用户恢复传统深度睡眠功能,显著提升电池续航表现。

weixin_30271335的博客 559

手把手一步步实现 Ubuntu20.04编译Android10系统源码

Ubuntu20.04编译Android10系统源码

h5630的博客 6620

粒子群算法实战:用Matlab解决旅行商问题(TSP)的完整代码解析

本文提供了使用粒子群算法解决旅行商问题的完整Matlab实战指南。通过将连续空间的粒子群算法进行离散化改造,采用基于交换序的策略来更新粒子位置与速度,并给出了从问题定义、数据结构设计、核心函数实现到主迭代循环的详细代码解析。文章还探讨了参数调优、性能优化及处理复杂TSP变体的进阶思路,为物流规划、路径优化等领域的工程应用提供了可直接复用的解决方案。

m2n3o4p5的博客 350

Ubuntu下Android 14源码下载-编译-运行-打开

直接查看源码有很多不方便,比如国内、不能跳转、无法调试。Android Studio有很多实用功能,直接下载源码可以更方便的查看和调试,更加人性化。本文以Android14为例,以源码下载-编译-运行-打开顺序逐步讲解,主要是用于记录步骤和遇到问题的解决。

xunyan6234的博客 7151

无人机WIFI集群组网技术详解及成本分析

无人机WIFI集群组网技术是指利用无人机作为移动平台,通过集成高性能的WIFI模块,实现多架无人机之间以及无人机与地面控制站之间的无线通信组网。在协议层面,无人机WIFI集群组网需要遵循标准的无线通信协议,如IEEE 802.11系列(即WIFI标准),同时可能还需定制或优化路由协议、媒体访问控制(MAC)协议等,以确保高效、可靠的数据传输。数据安全与隐私保护:无人机集群组网中传输的数据可能涉及敏感信息,需采取加密、认证等安全措施,确保数据传输的安全性和用户隐私的保护。根据性能不同,价格差异较大。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1584

Argoverse数据集可视化/Argoverse-api

argoverse可视化,argoverse-api配制方法

learning_man的博客 9561

Android10源码AOSP(从Ubuntu14.04环境搭建到下载编译运行)

Ubuntu14.04环境搭建 电脑为笔记本,CPU i7-10750H,16G内存 虚拟机使用VMware Workstation 15 Pro 操作系统为Ubuntu 64 位 14.04 AOSP比较大,安装虚拟机的时候预留250G+的空间,8G内存。具体的安装请自行进行。 根据你要编译的系统版本,选择相应的 Ubuntu版本: Android 6.0 (Marshmallow) – AOSP master:Ubuntu 14.04 (Trusty) Android 2.3.x (Gingerbre

尘埃zza的博客 3480

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 27
上一篇: 安卓窗口wms/input小知识NO_INPUT_CHANNEL剖析
下一篇: aosp15上自由窗口入口无法显示aconfig等新知识剖析
千里马学框架
博客等级 码龄6年 1万+粉丝 651原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值