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