【发布时间】:2015-02-22 19:43:37
【问题描述】:
我正在尝试查找哪个分区用于什么,例如/boot,/recovery,/system,来自adb shell。虽然这对于当前挂载的分区来说是微不足道的(使用mount 或df 命令,参见例如how to identify names of the partitions),但对于当前未挂载的分区(例如/recovery 在“用户模式”)。
有一个tutorial at XDA,但它不适用于我尝试过的任何设备:
-
cat /proc/mtd:这是空的或不存在的 -
cat /proc/emmc:这是空的或不存在的 -
cat /proc/dumchar_info:不存在(MTK/联发科) -
ls -al /dev/block/platform/*/by-name: 要么不存在,要么没有想要的详细信息 -
parted刚刚在/dev/block/mmcblk1上生成了一个Error: Can't have a partition outside the disk!(而只是缺少/dev/block/mmcblk0的“名称”列)。
所以我很茫然。我知道有像DiskInfo 这样的应用程序可以显示这些详细信息,因此必须存储在设备上的某个位置。但是,在我的情况下,修改设备(通过安装应用程序)不是一种选择。
所以基本上我的问题归结为:
此信息存储在 Android 设备的什么位置?
如果可能,首选通用方法。如果不是这样,几种方法 (if..elseif..fi) 的“试错”也可以。
对于背景:一个示例用法是“我只想检索/boot 分区”(通过dd 获取它的图像)。先抓取所有分区,然后再评估是不行的——太费时了,并且产生了太多数据;)——这已经描述了意图:编写一个小工具来检索特定的磁盘映像。
【问题讨论】:
-
您正在寻找哪些在
/proc/mounts中找不到的信息(大小、位置、安装) -
@jan 如上所述,每个分区“用于”什么。例如。派生自
mount,或者,正如您所说的,/proc/mounts,/dev/block/mmcblk1p21持有system分区。但是请注意,作为mount命令本身,它只保存当前挂载的分区。但我还需要那些 当前未安装的(例如正常启动时的recovery)。大小是次要的利益。识别对我来说很重要。 -
我只需要
ls -l /dev/block/platform/omap/omap_hsmmc.0/by-name来获取指向实际设备的分区名称列表。 -
@jan 同意——如果可能的话(请参阅我的问题:
/dev/block/platform/*/by-name: 在某些设备上不存在。 -
@Andreyua 你已经看到 from the shell 部分,以及 修改设备(通过安装应用程序) ) 不是一个选项 限制?