Ubuntu 22.04.3编译AOSP13刷机

news2024/10/6 12:25:20

文章目录

  • 设备信息
  • 下载AOSP并切换分支
  • 获取设备驱动
  • 编译系统
  • 编译遇到的问题Cannot allocate memory
  • Ubuntu设置USB调试
  • 刷机
  • 参考链接

设备信息

手机:Pixel 4XL

下载AOSP并切换分支

在清华大学开源软件镜像站下载初始化包aosp-latest.tar。
解压缩,切换到Pixel 4XL对应的AOSP 13分支然后同步代码。

tar xf aosp-latest.tar
cd aosp
repo init -b android-13.0.0_r31 #切换代码分支
repo sync

获取设备驱动

在https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn中获取build ID。
以android-13.0.0_r31为例,对应build ID为TP1A.221005.002.B2
示例
根据build ID在https://developers.google.com/android/drivers?hl=zh-cn中下载驱动文件。
示例
驱动文件解压缩后是sh脚本文件,把sh脚本文件移动到aosp根目录下并执行,输入 I ACCEPT 获取驱动文件。

编译系统

在aosp根目录执行下面命令。

source build/envsetup.sh
lunch XXX
m

编译遇到的问题Cannot allocate memory

解决方法:

ulimit -n 20480

分析部分:

从表面上看,分配内存失败,以为是内存不够,但是我这是64G的内存,以前在16G内存+16G虚拟内存情况下都能正常编译,现在转到服务器上怎么就有问题呢?报错期间,查看内存是有剩余的。期间从网上找了不同的解决方法,一个是去掉oat,WITH_DEXPREOPT 和WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY改为false,测试无效;另一个是修改dalvik.vm.dex2oat-Xmx 和dalvik.vm.image-dex2oat-Xmx等配置,调大,仍然无效。

没办法,自己看看dex2oatd代码,从报错的位置跟到mapmem,发现mmap报错位置是fd.get()==-1,难道是内有文件描述符的问题吗?通过cat /proc/sys/fs/file-nr命令查看,

10720 0 9223372036854775807服务器最大文件描述符很大,根本用不完,那就是每个用户的数量受限了?ulimit -n查看是1024,既然服务器这么大,那调整一下,ulimit -n 20480。

再次编译的时候,没有报错,一次通过,删除out目录,再次重新编译,也是一次通过。
原文链接:https://blog.csdn.net/fuyl1985/article/details/134378503

Ubuntu设置USB调试

Ubuntu设置后才能adb连接到手机。

sudo usermod -aG plugdev $LOGNAME
apt-get install android-sdk-platform-tools-common

刷机

adb reboot bootloader
fastboot devices #确认是否连接上手机
fastboot flashall -w #刷机

参考链接

https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn
https://yanke.info/?id=128
https://blog.csdn.net/fuyl1985/article/details/134378503
https://developer.android.com/studio/run/device.html?hl=zh-cn#setting-up
https://source.android.com/docs/setup/build/running?hl=zh-cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1247444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GCC】1:chatgpt:NetworkControllerInterface、GoogCcNetworkController

代码基于 mediasoup-sfu-cpp 中的m77版本。使用chatgpt辅助学习。网络状态估计器:开发中 D:\XTRANS\soup\mediasoup-sfu-cpp\deps\libwebrtc\libwebrtc\api\transport\network_control.h NetworkControllerInterface 网络控制器 此类,使用 网络状态和 通信状态 以 估计网络参…

快看!!电子杂志这样制作!几分钟的事

今天手把手教你怎么轻松制作电子杂志,不费力又不耗时。还能让你的杂志跟专业设计师们排排的相提并论,一起来学习吧! 首先,你需要准备一些图片、文字素材,以及一款适合你的电子杂志制作软件。目前市面上有很多电子杂志…

面试:ShardingSphere问题

文章目录 什么是ShardingSphere,它的主要功能是什么?ShardingSphere的核心模块有哪些?他们是如何工作的?ShardingSphere 的读写分离是如何实现的?如何配置ShardingSphere的数据分片策略?ShardingSphere支持…

Android Studio 显示build variants工具栏

工具栏: 如下图所示 依次点击View-->ToolWindows-->Build Variants。 在此记个笔记

MAC M系列芯片安装 openJDK17

文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下…

Odoo:行业领先的免费开源生产制造管理系统

产品生命周期管理 用 Odoo 产品数据管理解决方案加速产品开发 研究、开发和设计新产品或者重新设计现有产品是所有制造企业的活力之源,但很多企业的设计部门和工程部门却完全脱离 ERP 系统。这导致工程师需要耗费大量时间来回答企业中其他部门就产品状态、修改级别…

虚拟机VMware下CentOS7.9对磁盘扩容

首先是在VMware虚拟下对机器进行关机,然后扩容后启动机器(操作简单,忽略,网上很多) 开始增加磁盘空间 查看磁盘空间 发现此时磁盘空间仍然没变化 df -lh 查看当前磁盘分区信息 fdisk -l 对新加磁盘空间进行分区操…

优秀的5款字体设计软件推荐

字体设计作为设计中的一个重要模块,如果字体软件选择正确,将给字体设计工作带来极大的便利,易于使用的字体设计软件,可以创造出优秀的排版设计。在日常工作中,设计师可能会在字体网站上下载字体,然后安装字…

仙女麻麻看过来~这是不是你们在找的外套?

分享女儿的秋冬穿搭 时尚与美观兼具的毛毛外套 洋气百搭不挑人穿 谁穿对都好看系列 经典宽松版型 不臃肿对身材包容性很强 小编墙裂推荐哦!!

高清动态壁纸软件Live Wallpaper Themes 4K mac中文版功能

Live Wallpaper & Themes 4K mac是一款提供各种高清动态壁纸和主题的应用程序。该应用程序提供了大量的动态壁纸和主题,包括自然、动物、城市、抽象等各种类别,可以满足用户不同的需求。除了壁纸和主题之外,该应用程序还提供了许多其他功…

pytest系列——pytest-base-url插件之配置可选的项目系统URL

前言 ①当我们的自动化代码完成之后,通常期望可以在不同的环境进行测试,此时可以将项目系统的URL单独拿出来,并且可以通过pytest.ini配置文件和支持pytest命令行方式执行。 ② pytest-base-url 是一个简单的pytest插件,它通过命…

NX二次开发UF_CSYS_set_wcs 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs Defined in: uf_csys.h int UF_CSYS_set_wcs(tag_t csys_id ) overview 概述 Sets the work coordinate system to the prototype coordinate system whose tag y…

STM32 寄存器配置笔记——USART配置中断接收乒乓缓存处理

一、概述 本文主要介绍如何配置USART接收中断,使用乒乓缓存的设计接收数据并将其回显在PC 串口工具上。以stm32f10为例,配置USART1 9600波特率。具体配置参考上一章节STM32 寄存器配置笔记——USART配置 打印。 乒乓缓存的设计应用场景:当后面…

经典的回溯算法题leetcode棋盘问题思路代码详解

目录 棋盘问题 leetcode51题.N皇后 对回溯算法感兴趣的朋友也可以多多支持一下我的其他文章。 回溯算法详解-CSDN博客 经典的回溯算法题leetcode组合问题整理及思路代码详解-CSDN博客 经典的回溯算法题leetcode子集问题思路代码详解-CSDN博客 经典的回溯算法题leetcode全…

C++类与对象(5)—流运算符重载、const、取地址

目录 一、流输出 1、实现单个输出 2、实现连续输出 二、流输入 总结: 三、const修饰 四、取地址 .取地址及const取地址操作符重载 五、[ ]运算符重载 一、流输出 1、实现单个输出 创建一个日期类。 class Date { public:Date(int year 1, int month 1,…

【VSCode】自定义转换大小写快捷键

文章目录 VSCode 是没有可以直接转换字母大小写的快捷键的,但是可以通过设置去定义 点击左下角设置按钮,并选择键盘快捷方式 在快捷方式里面搜索写,就能找到: 选择要设置的快捷键,并点击左侧的号 在键盘上按住你想设置…

3D卷积的理解

卷积核不仅需要在高宽这两个维度上进行滑动,还需要在时间维度上进行滑动

升级python后sudo apt-get update报错

sudo apt-get update 报错: sh: /usr/lib/cnf-update-db: /usr/bin/python3.7.5: bad interpreter: No such file or directory Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success if /usr/bin/test -w /var/lib/c…

分块矩阵知识点整理:

1.分块方法:横竖线不能拐弯,思想为将矩阵分块看作向量计算 2.标准型 不一定是方的 特殊性:经过分块后会出现单位矩阵和0矩阵 3.分块矩阵的运算: 1.加减乘的运算与向量运算相同 4.分块矩阵求转置: 1.将子块看作普通元素求转置 2…