根据每个分区的前几个字节来判断。
su权限下,dump每个分区的前512字节。
for ii in /dev/block/m*; do \
BASE=`../busybox basename $ii`; \
dd if=$ii of=$BASE count=1 2> /dev/null; \
done
搜索boot img标志ANDROID
发现了两个结果,原因是因为boot分区和recovery分区使用了相同的格式。
最后,根据头部信息区分出boot分区,因为recovery分区的ramdosk_size要比boot大。
ramdosk_size = 0x0B7658
ramdosk_size = 0x234738
根据recovery分区的ramdosk_size要比boot大的原则,判断mmcblk0p20分区为boot分区。
验证一下: