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

news/2024/10/21 10:08:34/
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.ppmy.cn/news/1435832.html

相关文章

【前端】vue数组去重的3种方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数组去重说明二、Vue数组去重的3种方法 前言 随着开发语言及人工智能工具的普及,使得越来越多的人会主动学习使用一些开发工具,本文…

安信可 ESP_01SWIFI模块的使用 (电脑通过usb转tll模块连接wifi模块进行调试)

一:需要用到的模块 (1)安信可的ESP_01wifi模块 ESP-01是深圳安信可科技基于ESP8266芯片开发的串口wifi模块,模组集成了透传功能,即买即用,支持串口指令集,用户通过串口即可实现网络访问…

kafka可视化工具Kafka Tool安装使用

kafka可视化工具Kafka Tool安装使用 Kafka Tool是一款 Kafka 的可视化客户端工具,可以非常方便的查看 Topic 的队列信息、消费者信息以及 kafka 节点信息。 这款软件支持在 Windows、Mac 和 Linux 上面运行,我们到其官网选择合适的版本下载安装即可&am…

【C++庖丁解牛】C++11---统一的列表初始化 | auto | decltype | nullptr | STL中一些变化

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1. C11简介2. 统一的列表…

【数据库】Oracle11g与Oceanbase3.2.3对比

一、数据库体系结构对比 数据库的体系结构是从某一个角度来分析和考察数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。 Oracle11g作为传统关系数据库的代表、Oceanbase作为分布式关系数据库的代表,体系结构上的设计差别很大。 &a…

C语言如何⽤指针为函数传递数组?

一、问题 如何⽤指针为函数传递数组呢? 二、解答 我们可以知道数组名就是数组的⾸地址,当实参向形参传递数组名时,实际上就是传递数组的地址,当形参得到该地址后,就与主调函数中的实参指向同⼀数组。 那么在被调函数中…

VS调试、debug和release、栈区底层简单介绍、const 修饰指针变量介绍

文章目录 前言一、调试二、debug和release三、调试需要多用,多熟悉四、栈区底层简单介绍五、优秀的代码:常见的coding技巧: 六、const 修饰指针变量1. const 出现在 * 左边2. const 出现在 * 右边 七、strcpy函数的仿写1.版本12. 版本23. 版本34. 版本4 …

区域气象-大气化学在线耦合模式:WRF-Chem模式安装、调试、运行方法;WRF-Chem数据准备、前处理、后处理及相关参数设置等

大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因素是控制大气污染的关键自然因素。大气污染问题既是局部、当地的,也是区域的,甚至是全球的。本地的污染物排放除了对当地造成严重影响外,同时还会在…