====== Android: come leggere una scheda SD crittografata ====== Come leggere il contenuto di una **SD card** usata con **crittografia** su un dispositivo **Android**. Estraendo dal telefono la SD card e inserendola in un PC GNU/Linux si può vedere il seguente schema di partizione (quella che interessa è la seconda partizione): Disk /dev/sdb: 29,72 GiB, 31914983424 bytes, 62333952 sectors Disk model: STORAGE DEVICE Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 78B76F02-A9D9-4974-B648-F277E7C43CEF Device Start End Sectors Size Type /dev/sdb1 2048 34815 32768 16M unknown /dev/sdb2 34816 62333918 62299103 29,7G unknown **Senza la chiave crittografica è impossibile decifrare il contenuto della SD card**, questa va recuperata dal dispositivo Android. È necessario avere accesso root al telefono oppure avere un dump della memoria. Il file interessato si trova nella cartella **/data/misc/vold**, si tratta di un file di 16 byte: -rw------- 1 root root 16 2021-06-03 15:30 expand_b532da9c958f42df86808af649186da6.key Copiare il file sul PC e visualizzarne il contenuto in esadecimale: od -t x1 expand_b532da9c958f42df86808af649186da6.key 0000000 f8 de 0d b9 d7 c0 38 f4 72 53 f5 98 e7 bc 24 a2 0000020 Vedere la **dimensione in byte** del volume: blockdev --getsize /dev/sdb2 62299103 Quindi è possibile attivare il volume crittografato con: dmsetup create crypt1 \ --table "0 62299103 crypt aes-cbc-essiv:sha256 f8de0db9d7c038f47253f598e7bc24a2 0 /dev/sdb2 0" In questo modo diventa disponibile il device **/dev/mapper/crypt1**, che può essere montato (in questo esempio in modalità read-only) con: mount -o ro /dev/mapper/crypt1 /mnt/ Il filesystem potrebbe essere **ext4** oppure **f2fs**. Per smontare la scheda SD: umount /mnt dmsetup remove crypt1 ===== Web References ===== * **[[https://nelenkov.blogspot.com/2015/06/decrypting-android-m-adopted-storage.html|Decrypting Android M adopted storage]]**