Android設備mtd

參考文檔: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           
-----------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章