Ubuntu 24 搭建aosp源码环境详细笔记

Ubuntu 整编 AOSP 作为Android应用层开发多年, 一直不了解 Framework和Android系统的运行原理真的说不过去。希望本篇博客可以带你构建自己的Android系统,打开通向 Framework的大门。 阅读详情

背景:

因为很多新同学的机器等可能比较新,所以机器上的一些硬件驱动不一定老版本的ubuntu系统上有,所以很多同学也不得使用比较新的ubuntu 24版本,但是24版本ubuntu搭建aosp源码环境,相比ubuntu 20.04还是有一些差别。这里为了照顾更多ubuntu 24版本同学搭建aosp环境这里进行新写一篇文章进行指导。

在这里插入图片描述

安装ubuntu 24版本

下载ubuntu 24的安装包
官方下载:
24.04 系统(http://releases.ubuntu.com/24.04/下面的 desktop的image。
在这里插入图片描述阿里镜像下载:

如果网速慢自己百度找一个阿里镜像https://mirrors.aliyun.com/ubuntu-releases/24.04/ubuntu-24.04.4-desktop-amd64.iso)
(优先考虑直接电脑安装Ubuntu > windows和Ubuntu双系统 > windows上安装VMware方式,不要不建议安装virtualbox)

刷入镜像工具:

建议使用rufus制作u盘启动盘
https://rufus.ie/downloads/
如果双系统安装windows + ubuntu请参考如下链接:

Windows和Ubuntu双系统安装手册

安装相关库

1、openjdk 8 的安装 (aosp8.1版本需要,其他高版本aosp不需要,都是源码自带)
sudo apt-get install openjdk-8-jdk

2、设置默认 java 和 javac(可选)

由于本人当前 Ubuntu 上没有安装其他版本的 jdk,所以跳过此步骤
sudo update-alternatives --config java
sudo update-alternatives --config javac
3、 检查版本
java -version
打印如下:
openjdk version “1.8.0_252”
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

4、安装所需的软件软件包(注意一定要拷贝换行问题,最好先拷贝到txt上,再拷贝到命令行)

sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick protobuf-compiler python3-protobuf lib32readline-dev lib32z1-dev libdw-dev libelf-dev libgnutls28-dev lz4 libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc xxd zip zlib1g-dev  

5、安装libncurses5

需要如下方式安装libncurses5

wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2_amd64.deb && sudo dpkg -i libtinfo5_6.3-2_amd64.deb && rm -f libtinfo5_6.3-2_amd64.deb
wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.3-2_amd64.deb && sudo dpkg -i libncurses5_6.3-2_amd64.deb && rm -f libncurses5_6.3-2_amd64.deb

6、安装python2(aosp 8.1版本需要)

python2的配置
高版本ubuntu 24可能没有python2,无法直接使用sudo apt安装,所以需要下载python2源码编译,下面是步骤:

下载源码
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
tar xf Python-2.7.18.tar.xz
cd Python-2.7.18


编译安装
./configure --prefix=/usr/local/python2.7
make -j$(nproc)
sudo make install


添加到 PATH
echo 'export PATH=/usr/local/python2.7/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

源码下载

网络下载方法:
国内不可以访问 google 故无法下载 aosp 源码,国内清华大学源有相关镜像
参考链接:
https://mirror.tuna.tsinghua.edu.cn/help/AOSP/
可能会有一些错误,比如repo时候没反应,还是google网站不是清华大学的,建议查看这里
ubuntu 20.04 android 12/13
https://blog.youkuaiyun.com/learnframework/article/details/121345533

直接repo时候指定的分支为如下:

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

编译 aosp 代码

0、cd 源码根目录

1、 . build/envsetup.sh (注意这里是.+空格不是只有.,也可以直接用source build/envsetup.sh)

2、lunch
这里我们选择:6 –-- > aosp_x86_64

3、make

经历大概几个小时等待

出现如下打印代表成功:

build completed successfully (05:44:08 (hh:mm:ss)) ####

编译可能遇到错误:

1、会产一个jackserver错,解决方法点击这里(https://blog.youkuaiyun.com/learnframework/article/details/116861979))

2、如果有的机器有dex2oatd 时候报错,直接core dumped了,请使用关闭优化命令:
make WITH_DEXPREOPT=false,注意以后每次编译要一直带着make WITH_DEXPREOPT=false

4、执行命令:

emulator,出现如下图界面
在这里插入图片描述(注意只要terminal关闭后就需要重新进行
1、 . build/envsetup.sh
2、lunch
然后可以直接emulator,没有修改不需要make,有修改需要make
)

修改自己的第一行代码,在框架运行

安装 vim:
sudo apt-get install vim
下载 android studio:
链接: https://pan.baidu.com/s/1ReBs0rx2yE-5bmxIRCerFw?pwd=gyij 提取码: gyij

加载源代码到 AndroidStudio

执行以下四条命令:

  1. “. build/envsetup.sh” (source可以用 .代替,即". build/envsetup.sh")
  2. “lunch”,并选择要编译的项目
  3. “make idegen -j4” (这里的 -j4表示用 4线程来编译,可以不加)
  4. “development/tools/idegen/idegen.sh” (报错find: ‘out/target/product/generic_x86_64/root/d’: Permission denied没有关系不影响ipr和iml文件生成)

详细导入as查看链接:https://blog.youkuaiyun.com/learnframework/article/details/141384068

学完8.1后,aosp12/13高版本android环境搭建:

ubuntu 20.04 android 12/13
https://blog.youkuaiyun.com/learnframework/article/details/121345533

手把手教你aosp android 12 pixel 解锁oem 编译刷入大全
https://blog.youkuaiyun.com/learnframework/article/details/125269456

aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚
https://blog.youkuaiyun.com/learnframework/article/details/128438325

AOSP源码下载与编译 AOSP源码下载编译烧录,持续更新中 阅读详情

相关推荐

Ubuntu22.04 编译 AOSP

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

xiangzhihong8的专栏 1288

Ubuntu22.04系统搭建环境编译AOSP?

完成以上步骤后,您就可以在Ubuntu 22.04系统上成功搭建环境并编译AOSP了。根据您的需求和目标设备,您可以进行定制和配置,以满足特定的开发需求。请注意,AOSP编译需要较高的系统配置和较大的存储空间,确保您的系统满足这些要求。是您要构建的目标设备。这将下载AOSP的最新代码并进行同步。

高性价比服务器就选:蓝易云 1305

Ubuntu24.04安卓模拟器安装[代码]

本文详细介绍了在Ubuntu24.04系统上安装和配置Waydroid安卓模拟器的完整指南。Waydroid是一个基于容器的开源工具,允许用户在Linux系统上运行完整的Android系统,具有轻量级、高性能和良好的兼容性。文章涵盖了Waydroid的核心特性、技术原理、系统要求、安装步骤、常见问题及解决方案、应用场景以及性能优化建议。此外,还提供了手动下载镜像文件、初始化系统、启动模拟器以及配置网络的具体操作步骤,帮助用户顺利完成安装并解决可能遇到的问题。

记录一次unbuntu下搭建AOSP(Android源码 ROM)编译环境

不然可能可能会有编码问题,因为python用的asii码编码,asii是不含中文的可能调用文件路径py文件会出问题。注意点:路径里不要有中文!

Bell_xu的博客 437

ubuntu18.04安装R——无法连接上 dl.google.com:80 (6.6.6.6),连接超时&&E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

安装R的时候,sudo apt update 的时候出现错误: 查资料要修改/etc/apt/sources.list.d/google-chrome.list 文件 原来是: deb http://dl.google.com/linux/chrome/deb/ stable main 改为: deb [arch=amd64] http://dl.google.com/linux/chrom...

许希律的博客 4354

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

机器学习深度学习业余选手 479

Ubuntu 22.04系统搭建环境编译AOSP P

Ubuntu22.04编译AOSP时遇到的特殊报错问题处理

Ryan ZHENG的专栏 9162

肖特基二极管选型参数,结构原理,工艺与注意问题总结

肖特基二极管(Schottky Diode)是一种特殊的二极管,也被称为肖特基势垒二极管。它是利用金属与半导体接触形成的金属-半导体结原理制成的。与传统的PN结二极管相比,肖特基二极管具有更低的正向压降、更高的开关速度、更高的反向恢复时间以及更好的温度稳定性等特点。本文对肖特基二极管的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 815

Android源码环境搭建(aosp Ubuntu 16.04 20.04)

Android源码环境搭建(aosp Ubuntu 16.04) 作者:千里马 课程要求: 电脑配置:双核,内存最少 16G,硬盘 200G 以上,独立安装 Ubuntu16.4 系统 学员要求:最少 1 年以上应用开发经验,推荐在 3 年左右 Android 应用开发经验, 熟悉 Java 语言,可以看懂 C/C++ 1、安装 ubuntu16.04(因为这个版本可以直接安装 openjdk-8,如果其他版本自行找方法) 2、openjdk 8 的安装 sudo apt-get install openj

learnframework的博客 2万+

解释多智能体强化学习(Multi-Agent Reinforcement Learning)(面试题200合集,中频、重要)

多智能体强化学习通过扩展传统强化学习框架,研究多个智能体在动态、交互环境中的策略优化问题。它既有理论上的挑战(如非平稳性和均衡求解),也有广泛的实际应用前景。数学上,它依赖马尔可夫博弈模型,核心是设计算法让智能体在合作或竞争中达到最优。

qq_38334677的博客 990

Centos7 yum 报错「Errno 256」No more mirrors to try 解决方法

首先该问题的出现是由于网络的震荡导致,这是重点。(1)将源更换成阿里云的官方源,步骤参考如上(2)同时将zabbix的官方源更换成阿里云里面的zabbix镜像源,因为zabbix官方源根本网络不通,因为国家防火墙的拦截,导致网络不通。这是阿里源的zabbix镜像地址: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/修改系统中早期生成的zabbix.repo文件,如下:主要是把baseurl替换成阿里云的zabbix镜像地址即可。

专注基础架构领域 3878

AOSP开发环境搭建

AOSP开发环境搭建

ss520k的专栏 6776

Python 爬虫实战:爬取知乎问答与评论数据并分析

摘要:本文以Python为核心工具,系统讲解知乎问答与评论数据爬取的技术方案。通过分析知乎API接口结构,详细阐述Requests库结合正则表达式的数据获取方法,涵盖请求头构造、鉴权参数处理等关键技术。文章对比了HTML解析、API调用和Selenium模拟三种爬取方案的优劣,提供完整的代码实现,包括问题信息获取、回答列表爬取和评论数据提取。同时介绍了数据存储(JSON/Excel)和基础文本分析(词云生成)方法,并给出合规使用建议和技术优化方向,为开发者提供了一套可落地的知乎数据爬取与分析解决方案。

2503_91057718的博客 1822

一文学会从零搭建编译AOSP源码刷机全流程

本文将介绍从零搭建AOSP(Android Open Source Project)编译环境,并编译最新的android-14.0.0_r50分支生成ROM刷入Pixel 6设备的过程,便于我们学习研究Android Framework层源码

写代码的林克 3106

Java代码变更影响分析:从静态解析到动态调用图的实战全链路

本文介绍了Java代码提交影响分析的核心原理与实现方法。主要内容包括:1)静态分析技术,通过JavaParser解析AST构建调用图,记录类与方法间的调用关系;2)动态分析技术,使用ByteBuddy进行字节码增强,捕获运行时调用路径;3)JCCI工具实现,结合javalang、unidiff等技术分析代码改动影响,并将结果存储到SQLite数据库。文章提供了完整的代码示例,展示了从AST解析、动态调用跟踪到实际工具应用的完整技术栈,为代码变更影响分析提供了实用解决方案。

墨夶的博客 1253

《UDS/OBD诊断需求编辑工具》总目录

目录 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 2.1 编辑ODX-D诊断描述文件 2.2 编辑ODX-F刷写软件 该专栏主要负责介绍CANdela Studio和ODX Studio编辑CDD/ODX/PDX诊断描述文件。 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 【ODX介绍 】-1- 标准梳理 【ODX介绍】 -2-如何手..

「汽车电子助手」的博客 1万+

Ubuntu 24.04 + Android 15 (AOSP) 环境搭建与源码同步完整指南

本文详细介绍了在Ubuntu 24.04环境下编译Android 15源码的完整流程。重点解决了国内网络环境下常见问题:配置systemd-resolved固定DNS、使用清华镜像替代googlesource、优化repo工具和git网络设置。硬件建议16GB+内存和300GB+磁盘空间,系统需安装OpenJDK 17和基础开发工具。通过降低repo同步并发、设置HTTP参数等措施提高稳定性,并提供了离线备份方案作为补充。编译前需正确初始化环境变量和lunch目标,若内存不足可临时创建swap文件。文章强调

2203_75327677的博客 1622

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

基于Ubuntu24.04,下载并编译Android12系统源码 (一)

介绍在Ubuntu24.04系统中,如何下载并编译Android12源码

朱豪凯的博客 3415

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android AOSP系统编译,基于Ubuntu 24.04安装在移动硬盘

Android AOSP系统编译,基于Ubuntu 24.04安装在移动硬盘,即插即用

我的blog 1577

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用docker (Ubuntu 20.04)编译Android源码AOSP

另外,如果要开发Linux C/C++程序,新版本的系统会支持更新的编译器和对应的语言版本,旧版本的系统原则上可以单独更新编译器及相关依赖库,但操作比较麻烦,而且未必能够成功。编译AOSP源码,使用比较多的是Ubuntu 18.04和20.04,这2个版本的系统可以按照Google官方的操作步骤进行编译。(2)在容器内创建和外面Host OS中同样的用户(相同的uid、gid),这样容器内外修改文件不存在权限不一致的问题。2)把docker内的用户和文件路径和外面系统做好关联,避免权限等问题,方便开发。

yinminsumeng的博客 4184

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万+

Ubuntu20.4编译AOSP源码实践

Ubuntu20.4编译AOSP源码实践摘要 本文详细记录了在Ubuntu20.4系统上编译AOSP(android-8.1.0_r38)的完整流程。主要内容包括:1)虚拟机配置建议(8G内存、200G磁盘);2)依赖库安装指南(JDK8、Python2、Git等);3)使用清华源同步AOSP源码的方法;4)编译命令及参数设置;5)常见错误解决方案(SSL证书错误、Python版本冲突、Jack服务器连接问题等)。重点解决了源码同步中的网络连接问题、编译过程中Python版本冲突以及Jack服务器的TLS配

某互联网大厂安全架构师,从事移动安全行业8年 拒绝AI生成,拒绝抄袭搬运,输出优质原创 matrix_oc 699

aosp_002.ubuntu18.04搭建编译环境

搭建编译环境: 在python2环境进行操作 1、安装openjdk8 sudo apt-get install openjdk-8-jdk sudo apt-get install openjdk-8-jre 配置java版本 sudo update-alternatives --config java sudo update-alternatives --config javac...

记录生活 2125

AOSP下载编译与导入

本文大部分内容均来源于皇叔的博客,我在此基础上做了汇总并添加了一些自己遇到的问题及解决方案 1.什么是AOSP? AOSP(Android Open Source Project)是Google主导的Android开源系统项目,我们所知的Android原生系统及国内厂商定制的ROM诸如MIUI,ColorOs等均是在此基础上开发的,中文网站是https://source.android.google.cn/。 2.为什么要学习AOSP AOSP可以说是整个现在市面上所有Android系统的起点,研究其源码可

Rockphoenix的博客 3489
上一篇: 安卓系统log日志分析都有哪些高效工具notepad++?
下一篇: 剖析安卓App调用Runtime.exec背后原理
千里马学框架
博客等级 码龄6年 1万+粉丝 651原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

千里马学框架

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

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

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

打赏作者

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

抵扣说明:

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

余额充值