解密Android格式化为内部存储的损坏的SD卡
解密格式化为内部存储的损坏的SD卡
当SD卡被Android手机格式化为内部存储后如何恢复数据
前提:
1.手机已经root
2.手机未重置刷机等,保证 key 还在
3.手机文件浏览器,比如ES Explorer或者Root Explorer
4.十六进制编辑器,比如WinHex或者010Editor
5.Linux系统, 虚拟机安装桌面环境,推荐Ubuntu20
6.读卡器,将SD卡挂载到Linux内
具体步骤:
1.找到解密的key文件, 使用Root Explorer打开 /data/misc/vold 目录,会看到一个或多个以expand开头key结尾的文件,复制最新的那个到 /data/media/0 目录,
2.将手机关机进入Recovery系统模式,电脑端打开手机的内部存储可以看到刚才复制出来的key文件,使用010Editor打开这个文件,将其内容以十六进制方式复制出来备用,类似下面这种形式:
AB 36 E5 0B A6 B2 2F 04 19 F7 AE DC C0 37 3C C3
3.将手机SD卡取出,插入到读卡器中,打开Ubuntu20虚拟机,将SD挂载到Ubuntu20虚拟机,终端执行命令
dmsetup create crypt1 –table “0 blockdev --getsize /dev/sdb2
crypt aes-cbc-essiv:sha256 AB36E50BA6B22F0419F7AEDCC0373CC3 0 /dev/sdb2 0”
注意事项:
/dev/sda2 是SD卡挂载到Ubuntu20虚拟机后分区大的那个名称,aes-cbc-essiv:sha256 后面跟的是前面从自己设备获取到的key文件,一定替换后再执行
4.第三步执行成功之后,在Ubuntu20的磁盘管理器可以看到新挂在的设备名称:
/dev/mapper/crypt1
然后终端执行下面的命令:
mount -t f2fs /dev/mapper/crypt1 /mnt/
5.终端执行
cd /mnt
就能看到被格式化为内部存储的损坏的SD卡中的内容了
参考:
1.https://forum.xda-developers.com/t/how-to-decrypt-and-split-adopted-storage.3383666/
2.https://source.android.com/devices/storage/adoptable?hl=zh-cn
3.https://nelenkov.blogspot.com/2015/06/decrypting-android-m-adopted-storage.html
4.https://android.stackexchange.com/questions/135803/how-to-decrypt-the-corrupt-sd-card-formatted-as-internal-storage
5.https://android.stackexchange.com/questions/145443/how-to-decrypt-adopted-storage
6.https://olathoresen.medium.com/reading-files-from-android-sd-cards-a5b3296f3b29