RK3588基于Android分区划分

RK3588基于Android分区划分

Parameter文件主要用于定义分区表,可以支持两种分区格式:一个是GPT格式,另一个是传统 CMDLINE分区。

项目编译完成后,会在“out”目录下生成“parameter.txt”分区表文件,大致内容如下:

FIRMWARE_VER:14.0MACHINE_MODEL: rk3576_u MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE: rk3576_u CHECK_MASK: 0x80 PWR_HLD:0,0,A,0,1 TYPE: GPT CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00002000(security),0x00002000@0x00004000(uboot),0x00002000@0x00006000(trust),0x00002000@0x00008000(misc),0x00002000@0x0000a000(dtbo),0x00000800@0x0000c000(vbmeta),0x00020000@0x0000c800(boot),0x00030000@0x0002c800(recovery),0x000c0000@0x0005c800(backup),0x000c0000@0x0011c800(cache),0x00020000@0x001dc800(metadata),0x00000400@0x001fc800(frp),0x00000800@0x001fcc00(baseparameter),0x00614000@0x001fd400(super),-@0x00811400(userdata:grow)
生成关系: RebuildParameter.mk ➔ 生成 parameter.txt 读取关系: Partitions.mk ➔ 读取 parameter.txt ➔ 设置 BOARD_*_SIZE

分区信息

单个分区说明: 例如: 0x00002000@0x00008000(boot),@符号之前的数值是分区大小,@符号之后的数值是分区的起 始位置,括号里面的字符是分区的名字。所有数值的单位是 sector ,1个 sector 为512Bytes.上例中,boot 分区起始位置为0x8000 sectors位置,大小为0x2000 sectors(4MB).

各个分区作用:

分区名 起始地址(扇区)大小(扇区)大小(MB)功能说明 security 0x00002000 0x000020004MB 安全存储分区,存放加密密钥、安全证书等敏感数据,用于 Secure Boot 和 DRM 保护 uboot 0x00004000 0x000020004MB U-Boot 引导程序分区,负责硬件初始化和内核加载 trust 0x00006000 0x000020004MB TEE(可信执行环境)固件分区,运行安全操作系统如 OP-TEE misc 0x00008000 0x000020004MB Android 恢复模式状态存储,记录 OTA 状态和 BootLoader 通信数据 dtbo 0x0000a000 0x000020004MB Device Tree Overlay 分区,存放动态硬件配置二进制文件 vbmeta 0x0000c000 0x000008001MB Android Verified Boot(AVB)元数据,验证 boot/recovery 镜像完整性 boot 0x0000c800 0x0002000064MB Android Boot 镜像分区,包含 Linux 内核和 initramfs recovery 0x0002c800 0x0003000096MB 恢复系统分区,用于 OTA 更新、工厂重置和系统修复 backup 0x0005c800 0x000c0000384MB 关键固件备份分区(uboot/trust),支持系统回滚和修复 cache 0x0011c800 0x000c0000384MB Android 缓存分区,存储临时数据和 OTA 下载包,可被 Recovery 格式化 metadata 0x001dc800 0x0002000064MB Android14+ 强制分区,存储文件系统加密密钥(FBE)和元数据 frp 0x001fc800 0x000004000.5MB Factory Reset Protection 分区,防止未授权重置(Google 账号锁)baseparameter 0x001fcc00 0x000008001MB 基础硬件参数分区,存储屏幕校准、传感器配置等由内核读取的参数 super 0x001fd400 0x006140003104MB Android 动态分区容器,包含 system/vendor/product 等只读镜像(支持 A/B 更新)userdata 0x00811400 - 剩余空间 用户数据分区(应用/媒体文件等),grow 表示占用所有剩余空间

Android 14添加了生成parameter.txt的工具,支持根据配置参数编译出parameter.txt。如果没有配置 模板文件,则会寻找添加修改好的parameter.txt文件。
修改parameter.txt

找到(或指定)模板文件:

PRODUCT_PARAMETER_TEMPLATE :=device/rockchip/common/scripts/parameter_tools/parameter.in

修改配置分区大小(例如):

BOARD_SUPER_PARTITION_SIZE :=2688548864BOARD_DTBOIMG_PARTITION_SIZE :=xxxx BOARD_BOOTIMAGE_PARTITION_SIZE :=xxxxx BOARD_CACHEIMAGE_PARTITION_SIZE :=xxxx

不使用parameter生成parameter.txt

添加一个parameter.txt文件到你的device目录下即可: 例如:device/rockchip/rk3576/rk3576_u/parameter.txt
使用工具生成parameter.txt

parameter_tools --input device/rockchip/common/scripts/parameter_tools/parameter.in --firmware-version14.0--machine-model rk3576 --manufacturer rockchip --machine rk3576_u -- partition-list uboot_a:4096K,trust_a:4M,misc:4M,dtbo_a:4M,vbmeta_a:4M,boot_a:33554432,backup:30 0M,security:4M,cache:300M,metadata:4096,frp:512K,super:2G --output parameter_new.tx

新加一个分区

以新建baseparameter分区为例进行说明:
修改BoardConfig.mk添加新分区

在产品的BoardConfig.mk中定义:

device/rockchip/rk3576/rk3576_u/BoardConfig.mk +++ b/BoardConfig.mk @@ -494,4 +494,11 @@ ifeq($(strip$(BOARD_TWRP_ENABLE)),true)+BOARD_WITH_SPECIAL_PARTITIONS :=baseparameter:1M

在RebuildParameter.mk中添加BOARD_WITH_SPECIAL_PARTITIONS

device/rockchip/common/build/rockchip/RebuildParameter.mk +ifneq($(strip$(BOARD_WITH_SPECIAL_PARTITIONS)),)+partition_list :=$(partition_list),$(BOARD_WITH_SPECIAL_PARTITIONS)+endif

直接在parameter.txt中添加新分区

将项目编译完成后的“out”目录下生成“parameter.txt”分区表文件拷贝至项目目录下,然后修改“parameter.txt”分区表文件

device/rockchip/rk3576/rk3576_u/parameter.txt 中内容如下:

FIRMWARE_VER:14.0MACHINE_MODEL: rk3576_u MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE: rk3576_u CHECK_MASK: 0x80 PWR_HLD:0,0,A,0,1 TYPE: GPT CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00002000(security),0x00004000@0x00004000(uboot),0x00001000@0x00008000(waveform),0x00002000@0x00009000(misc),0x00002000@0x0000b000(dtbo),0x00000800@0x0000d000(vbmeta),0x00020000@0x0000d800(boot),0x00030000@0x0002d800(recovery),0x000c0000@0x0005d800(backup),0x000c0000@0x0011d800(cache),0x00020000@0x001dd800(metadata),0x00000400@0x001fd800(frp),0x00000800@0x001fdc00(baseparameter),0x004b0000@0x001fe400(super),0x010000@0x006ae400(logo),@0x006be400(userdata:grow)

可以修改CMDLINE中的分区字段,添加新分区并调整各个分区大小。

在编译的时候,编译脚本会判断如果有parameter.txt文件就会跳过RebuildParameter.mk生成 parameter.txt

CMDLINE字段定义了各个分区的起始地址、大小和名称,每个分区描述使用"大小@起始地址(分区名)"的格式表示。例如,"0x00002000@0x00002000(security)"表示security分区大小为0x00002000(十六进制,单位为扇区),起始地址为0x00002000。开发者可以通过修改这些参数来调整现有分区的大小,或者添加新的分区。在添加新分区时,需要特别注意确保各分区之间不会重叠,并且要合理分配存储空间,避免影响系统正常运行。 一个重要的编译机制是,当项目目录下存在parameter.txt文件时,编译脚本会自动跳过RebuildParameter.mk中生成parameter.txt的步骤,直接使用项目目录下的文件。这一特性使得开发者可以直接手动编辑parameter.txt文件,而不用担心编译过程中自己的修改被覆盖

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

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

相关文章

基于LoRa的多参量环境传感器设计与应用实践

在工业物联网(IIoT)和智慧场景快速落地的今天,环境数据的采集已从“单点、有线、静态”走向“多维、无线、实时”。尤其在农业、化工、仓储、文博等对环境敏感的领域,传统传感器因布线复杂、功能单一、维护成本高等问题&#xff0…

django-flask基于python的大学生考研服务系统设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着考研人数逐年增加,大学生对高效、个性化的考研服务需求日益增长。基于Python的Django-Flask框架设计并…

iReport分页技巧:告别混乱,详解分组报表与合计设置

在报表开发中,处理大数据集时,高效的分页功能至关重要。iReport作为一款经典的报表设计工具,其分页机制直接影响到报表的性能、可读性与打印输出的规范性。掌握其分页原理与配置技巧,能让我们设计出更专业、更用户友好的报表文档。…

收藏!AI大模型训练师:低门槛拿高薪,风口赛道适配程序员小白

可能有朋友对这个数字没概念,换算一下就很直观:这意味着一个AI产品,一年能稳定赚下十几个亿人民币。这组数据没有花哨的概念包装,直接把AI行业的“赚钱能力”摆到了台面上——现在的AI早已不是实验室里的理论模型,而是…

安胃颗粒医保能报多少?报销流程和比例全解析

安胃颗粒是治疗慢性胃炎、胃脘胀痛的常用中成药,其被纳入国家医保药品目录后,切实减轻了患者的用药经济负担。对于广大参保人来说,最关心的是具体能报销多少、如何操作以及有哪些需要注意的地方。本文将围绕这些实际问题进行说明。 安胃颗粒医…

3.10 商业级图像生成工作流:从创意到成品的完整流程

3.10 商业级图像生成工作流:从创意到成品的完整流程 引言 在前面的章节中,我们学习了AI图像生成的各项技术:从基础的文生图,到精准控制的ControlNet,再到风格迁移和3D生成。但掌握技术只是第一步,更重要的是如何将这些技术整合成一个完整的商业级工作流,从创意构思到最…

OpenGL ES 2.0学习指南:移动图形开发核心技能详解

OpenGL ES 2.0是移动设备上广泛使用的图形渲染API标准,它通过可编程的着色器管线,赋予了开发者对图形处理流程前所未有的控制力。掌握它意味着你能在手机和平板上高效地渲染2D/3D图形、实现复杂的视觉效果,这是移动游戏和高性能图形应用开发的…

JS避免四舍五入:截断小数的几种实用方法

在处理JavaScript数值计算时,我们经常遇到小数精度问题。默认情况下,Math.round()等函数会进行四舍五入,但在财务计算、数据统计等场景中,我们往往需要直接截断小数而不进行舍入。本文将介绍几种在JavaScript中实现不四舍五入处理…

3.9 AI图像生成常见问题与解决方案:从“失真”到“逼真”的艺术

3.9 AI图像生成常见问题与解决方案:从“失真”到“逼真”的艺术 引言:为什么你的AI绘画总是“差点意思”? 在学习了AI绘画的基础技术(3.1)和各种工具(3.3-3.6)后,你可能已经能生成一些看起来还不错的图片。但更多时候,你可能会遇到各种令人头疼的问题: “为什么生成…

VC60必学快捷键:编辑调试快人一步

对于Visual C 6.0的老用户而言,熟练掌握其快捷键是大幅提升开发效率的关键。它能让你的双手尽量停留在键盘上,减少在菜单和鼠标间的频繁切换,让编码和调试过程更加流畅。下面我将从代码编辑、程序调试和项目管理三个最常用的场景,…

4.1 短视频爆款密码:AI一键生成高质量自媒体内容

4.1 短视频爆款密码:AI一键生成高质量自媒体内容 在移动互联网时代,短视频已成为信息传播和内容消费的主流形式。从抖音到快手,从B站到小红书,短视频平台日活跃用户数以亿计,创造了巨大的流量红利和商业价值。然而,对于内容创作者而言,如何在激烈的竞争中脱颖而出,制作…

pthread_create和fork到底有啥区别?看完这篇就懂怎么选了

在Linux系统编程中,pthread_create和fork是实现并发操作的两种核心方法。虽然它们都能创建新的执行流,但底层机制和适用场景存在本质区别。理解这些差异对于设计高效、稳定的后台服务至关重要,直接影响到程序的资源利用率、通信效率和可维护性…

django-flask基于python的大学生就业数据分析系统

目录基于Python的大学生就业数据分析系统(Django/Flask框架)关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Python的大学生就业数据分析系统&#xff08…

4.2 视频剪辑新纪元:无需专业技能也能做出大片效果

4.2 视频剪辑新纪元:无需专业技能也能做出大片效果 视频剪辑曾经是一项需要专业技能和昂贵设备的复杂工作,只有经过专业训练的剪辑师才能胜任。然而,随着AI技术的飞速发展和智能工具的普及,视频剪辑正在经历一场深刻的变革。如今,即使是没有任何剪辑经验的新手,也能借助…

JSP网页中如何实现大文件的分段上传与续传示例?

《码农的20G文件上传历险记:从IE8到破产边缘》 各位老铁们好啊!我是辽宁那个靠PHP续命的码农老王,最近接了个让我怀疑人生的外包需求——用100块钱预算实现20G文件上传系统还得兼容IE8!这需求比沈阳冬天的大风还让人凌乱啊&#…

基于SpringBoot的船运物流管理系统毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一套基于SpringBoot框架的船运物流管理系统,以提升船运物流行业的运营效率和管理水平。具体研究目的如下:提高船运物…

django-flask基于python的大学生心理健康测评与分析平台

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着大学生心理健康问题日益受到社会关注,开发高效、便捷的心理健康测评与分析平台成为迫切需求。基于Pyt…

在JAVA web中如何实现多平台大文件上传的示例?

大文件传输解决方案设计与实施建议 需求分析与现状评估 作为上海IT行业软件公司项目负责人,针对贵司提出的大文件传输功能需求,我进行了全面分析: 核心需求: 单文件100G传输能力文件夹层级结构保持高可靠性断点续传(支持浏览器刷…

django-flask基于python的大学生心理测试系统设计与实现

目录摘要关键词关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着大学生心理健康问题日益受到关注,设计并实现一套高效、便捷的心理测试系统具有重要意义。基于P…

基于SpringBoot的西安旅游系统毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于SpringBoot框架的西安旅游系统,以实现以下研究目的: 首先,通过对西安旅游资源的深入挖掘和分析&#…