Android Framework 常见解决方案(28)system分区自定义方案

1 原理说明

一般在定制系统时,都会做预置apk和各类其他资源,很有可能超出系统默认设置的系统分区大小,也就会导致编译system时因超出默认设置的分区大小而失败。一般的做法是修改android framework时,修改对应项目的BOARD_SYSTEMIMAGE_PARTITION_SIZE的值。

BOARD_SYSTEMIMAGE_PARTITION_SIZE是在 Android 系统构建过程中使用的板级配置变量之一。它在 Android 框架中的主要作用是指定系统镜像(system partition)的大小。系统镜像是 Android 设备上的一个分区,包含了操作系统的核心文件和系统应用。详细解读如下:

  • 分区大小的设置:BOARD_SYSTEMIMAGE_PARTITION_SIZE 的值通常以字节为单位设置。例如,如果你想为系统分区分配 2GB 的空间,你会将此变量设置为 2147483648(即 2GB 的字节数)。
  • 系统镜像的作用:系统镜像包含了启动 Android 系统所需的基本组件,如内核、系统库、框架和必要的系统应用。这些组件对于系统的稳定运行至关重要。
  • 影响因素:设置 BOARD_SYSTEMIMAGE_PARTITION_SIZE 会影响到系统镜像分区的大小,进而影响到可以安装的系统应用数量和更新的频率。如果分区设置得太小,可能会导致空间不足,无法安装新的系统更新或应用。
  • 构建过程中的应用:在构建 Android 系统镜像时,构建系统会读取 BoardConfig.mk 文件中的 BOARD_SYSTEMIMAGE_PARTITION_SIZE 值,并据此创建相应大小的系统镜像分区。这个值是在设备的构建配置中定义的,不同的设备和项目可能有不同的需求。
  • 动态分区:在 Android 7.0(API 级别 24)及以后的版本中,Android 引入了动态分区的概念。动态分区允许系统根据需要动态调整各个分区的大小,而不是在制造时就固定下来。BOARD_SYSTEMIMAGE_PARTITION_SIZE 在这种情况下可能会与其他分区大小参数一起使用,以实现动态调整。
  • 开发者和制造商的考虑:对于开发者和设备制造商来说,合理配置 BOARD_SYSTEMIMAGE_PARTITION_SIZE 是非常重要的。它需要考虑到设备的存储容量、预期的系统更新频率、预装应用的数量等因素。同时,延伸来说,不仅是BOARD_SYSTEMIMAGE_PARTITION_SIZE,其他分区的设置也可以按需自定义设置。

总结来说,BOARD_SYSTEMIMAGE_PARTITION_SIZE 是一个关键的板级配置变量,它决定了 Android 设备上系统镜像分区的大小。这个大小设置需要综合考虑多种因素,以确保系统运行的稳定性和足够的存储空间。在构建 Android 系统时,正确配置这个变量对于确保系统正常运行和更新至关重要。

2 修改方案(通用)

要修改 BOARD_SYSTEMIMAGE_PARTITION_SIZE,在相应项目的 BoardConfig.mk 文件中进行更改。修改后需要重新编译system.img。

修改文件为:AOSP/device/{你的产品配置目录}/BoardConfig.mk,修改内容如下(这里以一个BoardConfig.mk为例,将原本的BOARD_SYSTEMIMAGE_PARTITION_SIZE从3G修改为5G):

# KEYSTONE(I1056bb73cc2f8796ed941b5dd7b333ef15c60891,b/147756744)
BUILD_BROKEN_NINJA_USES_ENV_VARS := SDCLANG_AE_CONFIG SDCLANG_CONFIG SDCLANG_CONFIG_AOSP SDCLANG_SA_ENABLED
BUILD_BROKEN_NINJA_USES_ENV_VARS += TEMPORARY_DISABLE_PATH_RESTRICTIONS
BUILD_BROKEN_USES_BUILD_HOST_SHARED_LIBRARY := true
BUILD_BROKEN_USES_BUILD_HOST_EXECUTABLE := true
BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
BUILD_BROKEN_USES_BUILD_HOST_STATIC_LIBRARY := true#Enable VNDK Compliance
BOARD_VNDK_VERSION:=current
RECOVERY_SNAPSHOT_VERSION := current
RAMDISK_SNAPSHOT_VERSION := current
Q_BU_DISABLE_MODULE := true###### Dynamic Partition Handling ####
ifneq ($(strip $(BOARD_DYNAMIC_PARTITION_ENABLE)),true)
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
BOARD_VENDORIMAGE_PARTITION_SIZE := 1073741824
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472 #3G
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 5368709120 #5G
BOARD_PRODUCTIMAGE_PARTITION_SIZE := 838860800
ifeq ($(ENABLE_AB), true)
AB_OTA_PARTITIONS ?= system
endif
else
TARGET_COPY_OUT_PRODUCT := product
TARGET_COPY_OUT_SYSTEM_EXT := system_ext
BOARD_USES_PRODUCTIMAGE := true
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
BOARD_SUPER_PARTITION_SIZE := 12884901888
BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions
BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := system system_ext product
BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 6438256640
BOARD_EXT4_SHARE_DUP_BLOCKS := true
ifeq ($(ENABLE_AB), true)
AB_OTA_PARTITIONS ?= system system_ext product vbmeta_system
endif
endif

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

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

相关文章

干货 | 探索CUTTag:从样本到文库,实验步步为营!

CUT&Tag(Cleavage Under Targets and Tagmentation)是一种新型DNA-蛋白互作研究技术,主要用于研究转录因子或组蛋白修饰在全基因组上的结合或分布位点。相比于传统的ChIP-seq技术,CUT&Tag反应在细胞内进行,创新…

ccf 201703-1分蛋糕

// 分蛋糕 import java.util.Scanner;public class 分蛋糕 {public static void main(String[] args) {Scanner input new Scanner(System.in);int n input.nextInt(); // 蛋糕块数int k input.nextInt(); // 分发蛋糕的重量标准int[] arr new int[n];// 录入每块蛋糕的重量…

51单片机入门:LED点阵屏

LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种场合,如:广告屏、公告牌等。 分类: 按颜色:单色、双色、全彩&#x…

nuxt3配置打包静态资源在某一路径下

export default defineNuxtConfig({app: {baseURL: "/account-project"} });

ruoyi-nbcio-plus基于vue3的flowable流程设计器组件的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

银行ITSS体系下低代码运维体系实践分享

前言 自2021年中国人民银行发布《金融科技发展规划(2022-2025年)》以来,商业银行迈入数字化转型的高阶阶段。在此背景下,为了进一步提高金融科技的管理水平,商业银行需要改变传统金融运维模式,对已有运维体…

JUC:实现一个简易的数据库连接池(享元模式)

主要是学习享元模式。 享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享尽可能多的对象来最小化内存使用和提高性能。在该模式中,对象被分为两种状态:内部状态和外部状态。 内部状态(Intr…

红黑树插入机制深度剖析与实践指南

红黑树插入机制深度剖析与实践指南 一、红黑树的基本概念二、插入操作的初步2.1 RB-INSERT-FIXUP过程2.2 循环的不变性2.2.1 情况1:叔节点是红色2.2.2情况2和情况3:叔节点是黑色 三、插入操作的复杂性分析四、伪代码4.1 RB-INSERT 过程4.2 RB-INSERT-FIX…

亚信安慧AntDB:以数据之名,书写创新篇章

随着大数据时代的到来,对数据库的需求愈发强烈。在这一背景下,国产数据库逐渐崭露头角,亚信安慧AntDB作为重要的代表产品之一正积极参与到激烈的市场竞争中。亚信安慧AntDB不仅追求技术的革新和突破,同时也致力于满足用户日益增长…

4月06日,每日信息差

第一、中国电建设计承建的西藏八宿县100兆瓦保障性并网风电项目2日举行开工仪式。项目海拔高达5300米,刷新了之前同样由中国电建设计承建的西藏措美哲古风电场5200米的世界海拔最高风电场纪录 第二、宫崎骏新片《你想活出怎样的人生》上映第4天,中国内地…

理解PostgreSQL中的postmaster.pid

在PG中,一个简要的体系结构图可以大致画成下边的样子: Server端基本上分成backend process和若干background process。这些process都是一个名为postmaster进程的子进程。而postmaster则是postgres进程的别名。 进程概况 [14:42:08-postgrescentos1:/pg…

2024.4.2-day07-CSS 盒子模型(显示模式、盒子模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.2 学习笔记CSS标签元素显示模式1 块元素2 行内元素3 行内块元素4…

myweb项目资料集

项目要求 前后端分离后端采用 flask 框架前端采用 vue3 框架 后端部分 Flask 3 框架: https://dormousehole.readthedocs.io/en/latest/quickstart.html Session: https://blog.csdn.net/zhangvalue/article/details/93892241 MySQL 操作&#xf…

嵌入式学习48-单片机1

51单片机—————8位单片机 裸机驱动 无系统 linux驱动 有系统 驱动-----反映硬件变化 MCU 微控器 MPU CPU GPU 图像处理 IDE 集成开发环境 peripheral 外设 SOC: system on chip P0:8bit——8个引脚 位运算 & …

美国CPC认证是什么?为什么必须办理CPC认证呢?

美国CPC认证,全称为Childrens Product Certificate,是儿童产品认证的意思。它主要针对的是在美国市场销售的儿童产品,如玩具、家具、童车、餐椅、床上用品等。CPC认证要求产品安全性高,符合美国加州65、16 CFR等法规要求&#xff…

AI赋能写作:探索设计模式的魅力

设计模式是软件开发中的一种指导性概念,它提供了一套被广泛接受的解决方案,用于常见的设计问题。设计模式有助于提高软件的可重用性、可扩展性和可维护性,并促进团队之间的沟通。 以下是一些常见的设计模式: 创建型模式&#xff1…

艺术与科技的结合,将如何重塑我们对美的认知和创造?AI绘画,是机器的冷冰冰的计算,还是另一种形式的创造力的展现?

在这个充满创新与想象力的时代,人工智能不仅仅是科技的前沿,更是艺术的新领域。今天,我要与大家分享的,不仅仅是一幅幅由AI绘制的奇妙画卷,更是一场关于未来艺术的探索之旅。 你是否曾想象过,未来的画家不再…

15 个最佳 Word 文档恢复工具 [免费下​​载]

MS Word 文档恢复的重要性 对于严重依赖 Microsoft Word 创建和编辑文档的个人和企业来说,MS Word 文档恢复是一个至关重要的方面。 文件损坏、系统崩溃和其他意外事件可能会导致 Word 文档中存储的重要数据丢失。 及时恢复这些文档有助于节省时间、精力和资源。 本…

ChatGPT Excel 大师

原文:ChatGPT Excel Mastery 译者:飞龙 协议:CC BY-NC-SA 4.0 序言 欢迎来到 Excel 掌握的变革之旅,在这里,尖端技术和永恒专业知识在“ChatGPT Excel 掌握:释放专家技巧和窍门的力量”中融合。在当今快节…

隐私计算实训营学习八:隐语SCQL的开发实践

文章目录 一、SCQL使用集成最佳实践1.1 SCQL使用流程1.2 SCQL部署1.3 SCQL使用示例 二、SCQL工作原理三、使用SecretNote上手体验SCQL 一、SCQL使用集成最佳实践 1.1 SCQL使用流程 SCQL使用: SCQL 开放 API 供⽤户使⽤/集成。可以使⽤SCDBClient上⼿体验(类似与My…