Using the SD card as Adopted Storage encrypts it. How can it be decrypted?
1 Answer
How to decrypt adopted storage.
Your device must be rooted.
Using a file browser like ES Explorer, browse to
/data/misc/vold
.The
.key
file there is the encryption key of your adopted storage. You can read it with this command:hexdump -e '1/1 "%.2x"' the_key_file.key
Open that file with a hex editor to view the 16-byte key.
On any GNU/Linux distro you can do this first mount your SD card, in my case SD card was mounted at
/dev/sdb2
.Then run this command:
dmsetup create crypt1 --table "0 `blockdev --getsize /dev/sdb2` crypt aes-cbc-essiv:sha256 <Put the 16-byte hex key here> 0 /dev/sdb2 0"
Some types of errors/warnings can be ignored.
- If your key is correct you can mount it by
mount -t ext4 /dev/mapper/crypt1 /mnt/1/
- Finally you can run
cd /mnt/1
to browse the decrypted storage.
-
2Are you certain you came up with all of this on your own? I've doubts given this search query: google.co.in/…– Firelord ♦May 21, 2016 at 21:29
-
2In that case consider explaining in detail the step 5. If possible, provide sources to support your technical claim. Thanks!– Firelord ♦May 21, 2016 at 21:46
-
1@Firelord well its clear that android likes to use EXT4 for apps and with a bit of searching i noticed how its done here source.android.com/security/encryption– poqdavidMay 21, 2016 at 21:52
-
2Related: Corrupt SD card formatted as internal storage. The answer is similar, but gives an alternative approach to finding the 16-byte key.– Izzy ♦May 22, 2016 at 16:05
-
3You can use
hexdump -e '1/1 "%.2x"' the_key_file.key
to convert binary to hex. Aug 23, 2016 at 16:01
.exe
would restrict it to Windows ;), updated our adoptable-storage tag-wiki and upvoted both your answers. Now you've enough rep to enter our chat room if you like :)