对于Android文件系统一些片面的理解

本文主要介绍了Android系统的分区,包括zram0分区的作用——作为虚拟内存使用,以及在内存不足时如何操作数据。还探讨了mmcblk0等分区,以及如何查看和理解分区信息。同时提到了分区表的配置文件和分区的挂载点,强调了USRDATA分区的特性,并指出分区管理对系统稳定性和安全性的重要性。
摘要由CSDN通过智能技术生成

在android源码中是没有partitions这个文件的,估计是在编译时产生的,但是在out目录下没有proc目录
# cat /proc/partitions
major minor  #blocks  name
 254        0     496040 zram0
 179        0   15267840 mmcblk0
 179        1       3072 mmcblk0p1
 179        2       5120 mmcblk0p2
 179        3      10240 mmcblk0p3
 179        4      10240 mmcblk0p4
 179        5      49152 mmcblk0p5
 179        6        256 mmcblk0p6
 179        7        384 mmcblk0p7
 179        8      16384 mmcblk0p8
 179        9      16384 mmcblk0p9
 179       10       6144 mmcblk0p10
 179       11        512 mmcblk0p11
 179       12       8192 mmcblk0p12
 179       13      10240 mmcblk0p13
 179       14       1024 mmcblk0p14
 179       15       5120 mmcblk0p15
 179       16       5120 mmcblk0p16
 179       17       2048 mmcblk0p17
 179       18       2048 mmcblk0p18
 179       19      36224 mmcblk0p19
 179       20    2621440 mmcblk0p20
 179       21     434176 mmcblk0p21
 179       22   12006912 mmcblk0p22
 179       23      16384 mmcblk0p23
 179       96       4096 mmcblk0rpmb
 179       64       4096 mmcblk0boot1
 179       32       4096 mmcblk0boot0

根据以上信息,zram0分区是用于作为swap的,就是被当作虚拟内存吧,因为实际上emmc属于外存设备。
在内存空间不够时,会把非前台的应用的数据压缩从内存移到zram0,当该应用被再次调起时,就把数据从
zram0中换回到内存中,这样的方案会比直接杀掉该应用更快启动。

分区表在:
device/mediatek/build/build/tools/ptgen/MT8163/partition_table_MT8163.xls
修改分区大小可以在这个文件中配置:
device/yongyida/yyd8163_tb_m/BoardConfig.mk
看编译后已经生成的分区大小:
out/target/product/yyd8163_tb_m/obj/PTGEN/partition_size.mk
有很多分区挂载配置在该路径的文件:
vendor/mediatek/proprietary/hardware/fstab/mt8163/fstab.in
使用以下命令可以:
ls -l /dev/block/platform/mtk-msdc.0/11230000.MSDC0/by-name/
lrwxrwxrwx root     root              2018-01-19 15:29 boot -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              2018-01-19 15:29 cache -> /dev/block/mmcblk0p21
lrwxrwxrwx root     root              2018-01-19 15:29 dkb -> /dev/block/mmcblk0p18
lrwxrwxrwx root     root              2018-01-19 15:29 expdb -> /dev/block/mmcblk0p13
lrwxrwxrwx root     root              2018-01-19 15:29 flashinfo -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2018-01-19 15:29 frp -> /dev/block/mmcblk0p14
lrwxrwxrwx root     root              2018-01-19 15:29 kb -> /dev/block/mmcblk0p17
lrwxrwxrwx root     root              2018-01-19 15:29 lk -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              2018-01-19 15:29 logo -> /dev/block/mmcblk0p12
lrwxrwxrwx root     root              2018-01-19 15:29 metadata -> /dev/block/mmcblk0p19
lrwxrwxrwx root     root              2018-01-19 15:29 nvram -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2018-01-19 15:29 para -> /dev/block/mmcblk0p11
lrwxrwxrwx root     root              2018-01-19 15:29 persist -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2018-01-19 15:29 proinfo -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2018-01-19 15:29 protect1 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2018-01-19 15:29 protect2 -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2018-01-19 15:29 recovery -> /dev/block/mmcblk0p9
lrwxrwxrwx root     root              2018-01-19 15:29 seccfg -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2018-01-19 15:29 secro -> /dev/block/mmcblk0p10
lrwxrwxrwx root     root              2018-01-19 15:29 system -> /dev/block/mmcblk0p20
lrwxrwxrwx root     root              2018-01-19 15:29 tee1 -> /dev/block/mmcblk0p15
lrwxrwxrwx root     root              2018-01-19 15:29 tee2 -> /dev/block/mmcblk0p16
lrwxrwxrwx root     root              2018-01-19 15:29 userdata -> /dev/block/mmcblk0p22

root@xxx:/ # ls /dev/block/mmcblk0*
/dev/block/mmcblk0
/dev/block/mmcblk0boot0
/dev/block/mmcblk0boot1
/dev/block/mmcblk0rpmb
/dev/block/mmcblk0p1
/dev/block/mmcblk0p2
/dev/block/mmcblk0p3
/dev/block/mmcblk0p4
/dev/block/mmcblk0p5
/dev/block/mmcblk0p6
/dev/block/mmcblk0p7
/dev/block/mmcblk0p8
/dev/block/mmcblk0p9
/dev/block/mmcblk0p10
/dev/block/mmcblk0p11
/dev/block/mmcblk0p12
/dev/block/mmcblk0p13
/dev/block/mmcblk0p14
/dev/block/mmcblk0p15
/dev/block/mmcblk0p16
/dev/block/mmcblk0p17
/dev/block/mmcblk0p18
/dev/block/mmcblk0p19
/dev/block/mmcblk0p20
/dev/block/mmcblk0p21
/dev/block/mmcblk0p22
/dev/block/mmcblk0p23
/dev/block/mmcblk0p24
/dev/block/mmcblk0p25
/dev/block/mmcblk0p26
/dev/block/mmcblk0p27
/dev/block/mmcblk0p28
/dev/block/mmcblk0p29
/dev/block/mmcblk0p30
/dev/block/mmcblk0p31
/dev/block/mmcblk0p32
想知道更多也可以自己到/dev/block下看看。


device/mediatek/build/build/tools/ptgen/MT8163/partition_table_MT8163.xls
分区表分区名字和挂载点的对应表



增加一个叫Test的分区:

USRDATA分区就是任何用户都可以读写的分区,不可设置大小,大小等于emmc总容量减去其他分区的大小。

增加一个分区请看mtk文档:Partition Layout Introduction and Customization

mmcblk0 为 eMMC 的块设备;
mmcblk0boot0 和 mmcb

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值