【安卓13】解决带GMS编译报super分区空间不足错误

1、错误信息

在这里插入图片描述

2、解决方案

不同供应商修改分区大小的文件路径不一样,但是万变不离其宗,根据报错信息全局搜索关键词BOARD_SUPER_PARTITION_SIZE
这里以RK供应商和AML供应商修改为例:

(1)RK改法:

根目录下输入指令查:grep -rn BOARD_SUPER_PARTITION_SIZE device
在这里插入图片描述
看到上面报错信息没,就是在计算动态分区分配内存的时候报错,分配的内存总量是BOARD_SUPER_PARTITION_SIZE的一半3263168512,大约是3G,这个值是根据super分区大小计算出来的,所以我们要修改super分区大小,改这个文件:device/rockchip/common/BoardConfig_AB.mk
修改这里,修改的大小要大于报错信息里面提示的所需内存,比如报错大概需要3.8G的内存,原本super分区大小是定义了6G,6G的一半小于3.8G,所以报错,我们这里把内存增加到8G,改完之后重新编译即可正常编译
在这里插入图片描述

(2)AML改法

同样是修改BoardConfig_AB.mk文件,只不过文件路径变了
修改路径:device/amlogic/t7_an400/boardConfig.mk
这个文件修改内容不一样,大家一样可以改BOARD_SUPER_PARTITION_SIZE这个变量的大小,具体大小需要根据报错信息看,这个大小跟编译GMS包的内容有关
在这里插入图片描述

放在最后

其他供应商的修改方法也大差不差,大致思路:首先看报错信息,哪个分区大小不足就改哪个,全局搜索分区变量名,确认修改范围。

super分区普及:
1.super分区是什么
  super分区也叫做dynamic动态分区,动态分区是Android的用户空间分区系统,在Android R版本开始引入,目的是为了解决system和vender等分区size不能动态调整的问题。例如物理分区表配置固定size后,如果软件版本对system,verdor分区size需要频繁调整时,需要修改物理分区表和重新编译gpt表,使用起来不是很便利。
  引入super动态分区之后,将system,vendor等分区一起“打包”在super分区中,物理分区表只有super,不再单独配置system,vendor等分区的配置,其中的子分区可以动态的调整大小。编译的时候,会将system,vendor等分区的信息以metadata形式记录下来,生成super.img时会根据matadata信息进行处理
  另外super分区中的子分区,也可以通过fastbootd以fastboot的方式刷入,或者使用lpunpack解压开。

2.super分区工作原理
  动态分区时使用Linux内核中的dm-linear device-mapper模块实现的,Linear是指将device,mapper设备的线性范围映射到另一个设备的线性范围
属于LVM逻辑卷管理。
  Super分区包含列出了每个子分区的名称和块范围的metadata元数据。
  在开机init的first stage第一阶段运行期间,会解析并验证metadata元数据并创建虚拟block设备来表示每个子分区,创建logical逻辑分区出来。在init启动的第一阶段会去加载和处理,采用和以前类似的AVB校验流程,验证通过后,super包含的几个分区全部采用hashtree类型做dm-verity验证。在运行过程中对访问的block数据进行dm-verity安全校验。校验通过过,分别挂载这几个逻辑子分区。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【技巧】Git 版本控制工具没有图标提示怎么办?

Git 版本控制工具在日常开发中使用率是非常高的,多数情况下会安装 TortoiseGit 之类的插件,让文件夹显示图标,方便观察文件的状态。但是有时装完插件之后发现,文件夹/文件并没有图标显示,可以按照以下思路进行排查&…

Kafka 3.x.x 入门到精通(01)——对标尚硅谷Kafka教程

Kafka 3.x.x 入门到精通(01)——对标尚硅谷Kafka教程 1. Kafka入门1.1 概述1.1.1 初识Kafka1.1.2 消息队列1.1.3 生产者-消费者模式1.1.4 消息中间件对比1.1.5 ZooKeeper 1.2 快速上手1.2.1 环境安装1.2.1.1 安装Java8(略)1.2.1.2…

windows下git提交修改文件名大小写提交无效问题

windows系统不区分大小写,以及git提交忽略大小写,git仓库已存在文件A.js,本地修改a.js一般是没有提交记录的,需要手动copy一份出来A.js,再删除A.js文件提交仓库删除后,再提交修改后的a.js文件。 windows决…

MySQL主从结构搭建

说明:本文介绍如何搭建MySQL主从结构; 原理 主从复制原理如下: (1)master数据写入,更新binlog; (2)master创建一个dump线程向slave推送binlog; &#xff…

Pytest精通指南(28)钩子函数-测试报告(pytest-html)

文章目录 前言应用场景插件安装参数分析使用方法拓展-定制化报告 前言 在软件开发过程中,测试是确保代码质量的关键环节。 而测试报告则是测试过程中不可或缺的输出物,它为我们提供了关于测试用例执行情况的详细信息,帮助我们快速定位和解决问…

二叉树的先序、中序和后序遍历,以及二叉树的高度

1、二叉树的三种遍历方式 前序遍历: 访问根节点前序遍历左子树前序遍历右子树示例:对于节点 A(左子树为 B,右子树为 C),遍历顺序为 A -> B -> C。 中序遍历: 中序遍历左子树访问根节点中…

23年新算法,SAO-SVM,基于SAO雪消融算法优化SVM支持向量机回归预测(多输入单输出)-附代码

SAO-SVM是一种基于SAO雪消融算法优化的支持向量机(SVM)回归预测方法,适用于多输入单输出的情况。下面是一个简要的概述,包括如何使用SAO-SVM进行回归预测的步骤: 步骤: 1. 数据准备: 收集并准…

计算机服务器中了devicdata勒索病毒怎么处理,devicdata勒索病毒解密工具流程

随着网络技术的不断发展与应用,越来越多的企业离不开网络,通过网络可以开展各项工作业务,网络也为企业的生产运营提供各类极大便利,大大提高了生产效率,但网络在为企业提供便利的同时,也为企业的数据安全带…

机器学习中常见的数据分析,处理方式(以泰坦尼克号为例)

数据分析 读取数据查看数据各个参数信息查看有无空值如何填充空值一些特殊字段如何处理读取数据查看数据中的参数信息实操具体问题具体分析年龄问题 重新划分数据集如何删除含有空白值的行根据条件删除一些行查看特征和标签的相关性 读取数据 查看数据各个参数信息 查看有无空…

青否交互式数字人核心技术是什么?

交互式数字人核心技术 : (1)形象克隆 拍摄真人出镜,正视镜头说话的5-8分钟绿幕视频,即可复刻出口型、动作、神态等1:1的数字人形象,行业高精度中文唇形驱动技术,性能优势与性价比处于全国领先水平。 &#…

Photoshop 2024 25.4蓝猫版_支持参数滤波器和Ai神经滤镜

网盘下载 Photoshop 2024 (Beta) 蓝猫版v25.4.0(2426)全新功能:支持参数滤波器和AI神经滤镜。 最新的PS 25.4 Beta版新增了参数滤波器(Parametric Filters)功能,而正式版的PS 2024还没有这个功能,只有Beta版才有&…

WebSocket的原理、作用、API、常见注解和生命周期的简单介绍,附带SpringBoot示例

文章目录 原理作用客户端 API服务端 API生命周期常见注解SpringBoot示例 WebSocket是一种 通信协议 ,它在 客户端和服务器之间建立了一个双向通信的网络连接 。WebSocket是一种基于TCP连接上进行 全双工通信 的 协议 。 WebSocket允许客户端和服务器在 单个TCP连接上…