Android分区

时间:2025-01-27 10:03:29

一、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分区大小时,我们一般对   文件进行修改, 文件是 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)