一、Android系统的分区结构通常包括以下几个关键分区:
-
bootloader(引导加载程序):包含引导加载程序和相关引导配置文件,负责将系统引导到操作系统。
-
boot(引导):包含内核映像和设备树文件,负责启动Android系统。
-
recovery(恢复):用于设备恢复和刷写操作,包含恢复引导加载程序、恢复内核和RAM磁盘映像等。
-
system(系统):包含Android系统核心文件,如操作系统、应用程序和库文件等。
-
cache(缓存):存储应用程序的临时文件和缓存文件。
-
data(数据):存储用户数据、应用程序数据和个人设置等。
-
userdata(用户数据):存储用户数据和设置,如联系人、日历、消息等。
-
misc(杂项):包含一些杂项和临时文件。
-
metadata(元数据):存储有关分区的元数据信息。
-
vendor(厂商):存储厂商自定义的文件和设置。
二、RK3288扩大Android分区大小
在扩大Android分区大小时,我们一般对 文件进行修改, 文件是 Rockchip RK3288 平台上的一个重要配置文件,它存储了设备的分区信息和启动参数。
这是一个典型的 文件的示例:
# 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/ b/device/rockchip/rk3288/
index 0e0ac62562..056028024e 100755
--- a/device/rockchip/rk3288/
+++ b/device/rockchip/rk3288/
@@ -7,4 +7,4 @@ ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
-CMDLINE: console=ttyFIQ0 =N/A =permissive =rk30board =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 =N/A =permissive =rk30board =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
- 基带版本:=N/A
- 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/ b/device/rockchip/rk3288/
index 62cc6d992b..61cf6b8d3c 100755
--- a/device/rockchip/rk3288/
+++ b/device/rockchip/rk3288/
@@ -7,4 +7,4 @@ ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
-CMDLINE: console=ttyFIQ0 =N/A =permissive =rk30board =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 =N/A =permissive =rk30board =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)