解密Android格式化为内部存储的损坏的SD卡

post-thumb

解密格式化为内部存储的损坏的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