Android设备mtd

来源:互联网 发布:网络游戏源码 编辑:程序博客网 时间:2024/05/21 10:49

参考文档:Android 存储设备


在最初没有mmc和emmc时候,android基本使用nand,onenand,nor,ecc nor作为存储设备,MTD(Memory Technology Devices)是可以直接在这些原始设备上操作的。android机器启动后,可以通过命令cat proc/mtd,来查看。

随着,mmc,emmc,CompactFlash等带有FTL(Flash Translate Lay)存储设备的出现,mtd系统已经不能操作。


cat /proc/mtd
但是 采用了 emmc期间以后这个分区是看不到了(可能也是被内核给隐藏了)


root@android:/dev/block # cat /proc/partitions
major minor  #blocks  name


 253        0     131072 zram0
 179        0    7570432 mmcblk0   ---第一个挂载的主分区
 179        1    4846592 mmcblk0p1     ----第一个主分区的第一个分区,一下依次类推
 179        2      16384 mmcblk0p2
 179        3          1 mmcblk0p3
 179        5      16384 mmcblk0p5
 179        6      16384 mmcblk0p6
 179        7     524288 mmcblk0p7
 179        8    1572864 mmcblk0p8
 179        9      16384 mmcblk0p9
 179       10      32768 mmcblk0p10
 179       11     458752 mmcblk0p11
 179       12      16384 mmcblk0p12
 179       13      16384 mmcblk0p13
 
但是问题来了,看不到以前的比较直观的分区名字了,不知道mmcblk0p11 对应哪个区域是cache data ?猜?
还好你可以到/dev/block目录下,可以查看文件的别名链接。大功告成。

root@android:/dev/block # ls -al
lrwxrwxrwx root     root              1970-01-01 08:00 UDISK -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              1970-01-01 08:00 boot -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              1970-01-01 08:00 bootloader -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              1970-01-01 08:00 cache -> /dev/block/mmcblk0p11
lrwxrwxrwx root     root              1970-01-01 08:00 data -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              1970-01-01 08:00 databk -> /dev/block/mmcblk0p13
lrwxrwxrwx root     root              1970-01-01 08:00 env -> /dev/block/mmcblk0p5
brw------- root     root       7,   0 1970-01-01 08:00 loop0
brw------- root     root       7,   1 1970-01-01 08:00 loop1
brw------- root     root       7,   2 1970-01-01 08:00 loop2
brw------- root     root       7,   3 1970-01-01 08:00 loop3
brw------- root     root       7,   4 1970-01-01 08:00 loop4
brw------- root     root       7,   5 1970-01-01 08:00 loop5
brw------- root     root       7,   6 1970-01-01 08:00 loop6
brw------- root     root       7,   7 1970-01-01 08:00 loop7
lrwxrwxrwx root     root              1970-01-01 08:00 misc -> /dev/block/mmcblk0p9
brw------- root     root     179,   0 1970-01-01 08:00 mmcblk0
brw------- root     root     179,   1 1970-01-01 08:00 mmcblk0p1
brw------- root     root     179,  10 1970-01-01 08:00 mmcblk0p10
brw------- root     root     179,  11 1970-01-01 08:00 mmcblk0p11
brw------- root     root     179,  12 1970-01-01 08:00 mmcblk0p12
brw------- root     root     179,  13 1970-01-01 08:00 mmcblk0p13
brw------- root     root     179,   2 1970-01-01 08:00 mmcblk0p2
brw------- root     root     179,   3 1970-01-01 08:00 mmcblk0p3
brw------- root     root     179,   5 1970-01-01 08:00 mmcblk0p5
brw------- root     root     179,   6 1970-01-01 08:00 mmcblk0p6
brw------- root     root     179,   7 1970-01-01 08:00 mmcblk0p7
brw------- root     root     179,   8 1970-01-01 08:00 mmcblk0p8
brw-rw---- root     system   179,   9 1970-01-01 08:00 mmcblk0p9
drwxr-xr-x root     root              1970-01-01 08:00 platform
lrwxrwxrwx root     root              1970-01-01 08:00 private -> /dev/block/mmcblk0p12
lrwxrwxrwx root     root              1970-01-01 08:00 recovery -> /dev/block/mmcblk0p10
lrwxrwxrwx root     root              1970-01-01 08:00 system -> /dev/block/mmcblk0p7
drwx------ root     root              1970-01-01 08:00 vold
brw------- root     root     253,   0 1970-01-01 08:00 zram0


可以对照下 df 看看分区大小是不是一样的,同时知道了 blk以后就可以轻松的dd 拷贝出需要的分区文件了。
root@android:/dev/block # df
Filesystem             Size   Used   Free   Blksize
/dev                   165M    32K   165M   4096
/mnt/secure            165M     0K   165M   4096
/mnt/asec              165M     0K   165M   4096
/mnt/obb               165M     0K   165M   4096
/system                504M   414M    90M   4096
/cache                 444M    21M   423M   1024
/data                    1G   233M     1G   4096
/mnt/private            15M    12K    15M   4096
/mnt/sdcard              4G     3M     4G   4096
/mnt/secure/asec         4G     3M     4G   4096

PS:

如果有串口工具的话:可以看到分区大小的打印(有些平台有,有些没有),有些平台还支持进入uboot后正常的命令行支持。
这个时候在正常开机下不能修改的boot.img的内容,比如build.prop就可以修改了。


--------fastboot partitions--------
-total partitions:11-
-name-        -start-       -size-      
bootloader  : 1000000       1000000     
env         : 2000000       1000000     
boot        : 3000000       1000000     
system      : 4000000       20000000    
data        : 24000000      60000000    
misc        : 84000000      1000000     
recovery    : 85000000      2000000     
cache       : 87000000      1c000000    
private     : a3000000      1000000     
databk      : a4000000      1000000     
UDISK       : a5000000      0           
-----------------------------------

0 0
原创粉丝点击