Android分区

文章详细介绍了Android系统的典型分区结构,包括bootloader、boot、recovery、system、cache、data等,并聚焦于RK3288平台如何通过修改parameter.txt文件来扩大vendor和system分区的大小。通过示例展示了修改过程,涉及分区名称、大小和类型的调整。

一、Android系统的分区结构通常包括以下几个关键分区:

  1. bootloader(引导加载程序):包含引导加载程序和相关引导配置文件,负责将系统引导到操作系统。

  2. boot(引导):包含内核映像和设备树文件,负责启动Android系统。

  3. recovery(恢复):用于设备恢复和刷写操作,包含恢复引导加载程序、恢复内核和RAM磁盘映像等。

  4. system(系统):包含Android系统核心文件,如操作系统、应用程序和库文件等。

  5. cache(缓存):存储应用程序的临时文件和缓存文件。

  6. data(数据):存储用户数据、应用程序数据和个人设置等。

  7. userdata(用户数据):存储用户数据和设置,如联系人、日历、消息等。

  8. misc(杂项):包含一些杂项和临时文件。

  9. metadata(元数据):存储有关分区的元数据信息。

  10. vendor(厂商):存储厂商自定义的文件和设置。

二、RK3288扩大Android分区大小

        在扩大Android分区大小时,我们一般对 parameter.txt  文件进行修改,parameter.txt 文件是 Rockchip RK3288 平台上的一个重要配置文件,它存储了设备的分区信息和启动参数。

这是一个典型的 parameter.txt 文件的示例:

# Android Partition
PART_PARTITION_TYPE       = NORMAL
PART_BLKSZ                = 512

# Partition layout
# Name               Size            Bootable             Type
preloader_a        0x00000000         false               raw
reserved           0x00000000         false               raw
boot               0x00000800         true                boot
recovery           0x00000800         false               recovery
misc               0x00000800         false               raw
metadata           0x00001000         false               raw
staging_kernel     0x00180000         false               kernel
staging_ramdisk    0x00200000         false               ramdisk
staging_second     0x00040000         false               second
dtb                0x00008000         false               raw
reserved1          0x00000000         false               raw
logo               0x00020000         false               raw
tee                0x00c00000         false               raw
crypt              0x01000000         false               ext4
system             0x10000000         false               ext4
cache              0x08000000         false               ext4
userdata           0x0c000000         false               ext4
reserved2          0x00000000         false               raw
otapackage         0x00000000         false               raw

该文件列出了不同分区的名称、大小(以十六进制表示)和类型。您可以根据需求修改各个分区的大小,以实现分区扩大。

现以扩大vendor分区与system分区为例,如下

1.扩大vendor分区

diff --git a/device/rockchip/rk3288/parameter.txt b/device/rockchip/rk3288/parameter.txt
index 0e0ac62562..056028024e 100755
--- a/device/rockchip/rk3288/parameter.txt
+++ b/device/rockchip/rk3288/parameter.txt
@@ -7,4 +7,4 @@ ATAG: 0x60000800
 MACHINE: 3288
 CHECK_MASK: 0x80
 PWR_HLD: 0,0,A,0,1
-CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00000800@0x00008000(baseparameter),0x00008000@0x00008800(resource),0x0000C000@0x00010800(kernel),0x00010000@0x0001C800(boot),0x00010000@0x0002C800(recovery),0x00038000@0x0003C800(backup),0x00040000@0x00074800(cache),0x00400000@0x000B4800(system),0x00008000@0x004B4800(metadata),0x00000040@0x004BC800(verity_mode),0x00019000@0x004BC840(vendor0),0x00019000@0x004D5840(vendor1),-@0x004EE840(userdata)

+CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00000800@0x00008000(baseparameter),0x00008000@0x00008800(resource),0x0000C000@0x00010800(kernel),0x00010000@0x0001C800(boot),0x00010000@0x0002C800(recovery),0x00038000@0x0003C800(backup),0x00040000@0x00074800(cache),0x00400000@0x000B4800(system),0x00008000@0x004B4800(metadata),0x00000040@0x004BC800(verity_mode),0x00059000@0x004BC840(vendor0),0x00059000@0x00515840(vendor1),-@0x0056E840(userdata)

根据以上提供的参数配置,我们可以得到以下信息:

  • 机器型号为 rk30board,推测是基于RK30芯片的设备。
  • Android版本为 Android 。

其他参数配置包括:

  • 控制台:console=ttyFIQ0
  • 基带版本:androidboot.baseband=N/A
  • SELinux策略:androidboot.selinux=permissive
  • 初始化程序路径:init=/init
  • initrd地址:0x62000000
  • initrd大小:0x00800000
  • MTD分区配置:mtdparts
    • uboot: 0x00002000@0x00002000
    • trust: 0x00002000@0x00004000
    • misc: 0x00002000@0x00006000
    • baseparameter: 0x00000800@0x00008000
    • resource: 0x00008000@0x00008800
    • kernel: 0x0000C000@0x00010800
    • boot: 0x00010000@0x0001C800
    • recovery: 0x00010000@0x0002C800
    • backup: 0x00038000@0x0003C800
    • cache: 0x00040000@0x00074800
    • system: 0x00400000@0x000B4800
    • metadata: 0x00008000@0x004B4800
    • verity_mode: 0x00000040@0x004BC800
    • vendor0: 0x00019000@0x004BC840
    • vendor1: 0x00019000@0x004D5840
    • oem: 0x00100000@0x004EE840
    • logo: 0x00008000@0x005EE840
    • userdata: -@0x005F6840

2.扩大system分区的大小

diff --git a/device/rockchip/rk3288/parameter.txt b/device/rockchip/rk3288/parameter.txt
index 62cc6d992b..61cf6b8d3c 100755
--- a/device/rockchip/rk3288/parameter.txt
+++ b/device/rockchip/rk3288/parameter.txt
@@ -7,4 +7,4 @@ ATAG: 0x60000800
 MACHINE: 3288
 CHECK_MASK: 0x80
 PWR_HLD: 0,0,A,0,1
-CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00000800@0x00008000(baseparameter),0x00008000@0x00008800(resource),0x0000C000@0x00010800(kernel),0x00010000@0x0001C800(boot),0x00010000@0x0002C800(recovery),0x00038000@0x0003C800(backup),0x00040000@0x00074800(cache),0x00400000@0x000B4800(system),0x00008000@0x004B4800(metadata),0x00000040@0x004BC800(verity_mode),0x00019000@0x004BC840(vendor0),0x00019000@0x004D5840(vendor1),0x00100000@0x004EE840(oem),0x00008000@0x005EE840(logo),-@0x005F6840(userdata)
+CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00000800@0x00008000(baseparameter),0x00008000@0x00008800(resource),0x0000C000@0x00010800(kernel),0x00010000@0x0001C800(boot),0x00010000@0x0002C800(recovery),0x00038000@0x0003C800(backup),0x00040000@0x00074800(cache),0x00500000@0x000B4800(system),0x00008000@0x005B4800(metadata),0x00000040@0x005BC800(verity_mode),0x00019000@0x005BC840(vendor0),0x00019000@0x005D5840(vendor1),0x00100000@0x005EE840(oem),0x00008000@0x006EE840(logo),-@0x006F6840(userdata)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风从不入睡、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值