Ps. 此种方法理论上只能适用于升过级或者进入过recovery的机器使用。
1. cd /cache/recovery
ls -l
2. 把文件拷贝到主机
cat last_log > /data/local/tmp/last_log
chmod 777 /data/local/tmp/last_log
adb pull /data/local/tmp/last_log c:\
3. 查看文件内容
文件开头会有如下内容
发现mmcblk0块包含了很多的内容,包括mbr、uboot、bootimg等内容。
在上面的图片中,我们可以看到bootimg在mmcblk0块中的偏移为0x9a8000(第三列为偏移),大小为0x600000(第二列为大小)。
4. dd出bootimg
dd if=/dev/block/mmcblk0 skip=2472 count=1536 bs=4096 of=/data/local/tmp/boot.img
其中skip为跳过的大小,0x9a8000/4096(十进制) = 2472(十进制) (下同)
count为要读取的次数,0x600000/4096 = 1536
bs为每次读取的字节数,以页为代为,0x1000,,即4096
Ps. 上述数字不支持16进制,只支持10进制。
5. 把文件拖出来查看
确实是boot.img的标准格式
6. 剩下的就是怎么解密的问题了。