Le chiffrement exige que 16 Ko restent inutilisés par le système de fichiers sur la partition userdata. . Vous pouvez vérifier si c'est le cas en
- Faire
adb logcat > android.log
sur un ordinateur
- activer d'abord les options pour les développeurs
- Vous pourriez avoir besoin de Root, mais je ne pense pas que ce soit le cas.
- Lancer le processus de cryptage dans les paramètres
Si c'est le cas, vous verrez ce qui suit dans les journaux :
E Cryptfs : Orig filesystem overlaps crypto footer region. Cannot encrypt in place.
Pour résoudre ce problème, vous devez redimensionner votre partition de données utilisateur.
S'il s'agit de ext4, je pense que vous pouvez utiliser resize2fs
pour ce faire. Je ne suis pas sûr de savoir comment faire.
S'il s'agit de f2fs, le processus est un peu plus complexe :
Redémarrez avec TWRP. Faire adb shell
sur un ordinateur. fdisk -l /dev/block/sda
pour afficher la structure de la partition. Vous verrez quelque chose comme ceci :
Logical sector size: 4096
Disk identifier (GUID): 98101b32-bbe2-4bf2-a06e-2bb33d000c20
Partition table holds up to 16 entries
First usable sector is 6, last usable sector is 14145530
Number Start (sector) End (sector) Size Code Name
1 6 7 8192 0700 ssd
2 8 8199 32.0M 0700 persist
3 8200 73735 256M 0700 cache
4 73736 73991 1024K 0700 misc
5 73992 74119 512K 0700 keystore
6 74120 74151 128K 0700 devcfg
7 74152 74183 128K 0700 devcfgbak
8 74184 74311 512K 0700 frp
9 74312 76871 10.0M 0700 oem_dycnvbk
10 76872 79431 10.0M 0700 oem_stanvbk
11 79432 79687 1024K 0700 param
12 79688 81711 8096K 0700 reserve1
13 81712 85759 15.8M 0700 reserve2
14 85760 85887 512K 0700 config
15 85888 14145530 53.6G 0700 userdata
Notez-le :
- la "taille du secteur logique"
- le numéro de partition des données utilisateur
- le secteur de départ pour les données utilisateur
- le secteur final pour les données de l'utilisateur
Faites une sauvegarde de cette partition. Vous volonté Si vous ne le faites pas, vous perdrez les données qu'il contient, car il sera explicitement effacé. Je crois que TWRP a une fonction pour faire cela, mais j'ai utilisé un tarball&. adb pull
:
En adb shell
:
~ # mount /dev/block/sda15
~ # tar -cpzf /mnt/fs.tar.gz /mnt/
tar: removing leading '/' from member names
tar: /mnt/misc/camera/cam_socket2: socket ignored
...
tar: /mnt/fs.tar.gz: file is the archive; skipping
puis adb pull /mnt/fs.tar.gz
Démontez la partition en utilisant umount /mnt
Ensuite, effacez une partie du système de fichiers existant pour vous assurer que nous n'aurons pas d'avertissement lors de la création du nouveau système de fichiers : dd if=/dev/zero of=/dev/block/sda<partition number> bs=1M count=128
. C'est le point de non-retour.
Créez un nouveau système de fichiers en utilisant les nombres que vous avez notés précédemment : calculez partition_size = end_sector - start_sector - (16384 / logical_sector_size)
manuellement, et notez ce numéro.
Exécutez ensuite mkfs.f2fs /dev/block/sda<partition number> <partition_size>
pour créer une nouvelle partition de la taille appropriée.
Montez-le et utilisez adb push fs.tar.gz /mnt/
pour envoyer vos données sauvegardées. cd /mnt; tar -xf fs.tar.gz; mv mnt/* .; rm -rf mnt fs.tar.gz
pour l'extraire, et le tour est joué !
Redémarrez et réessayez de crypter ! Avec un peu de chance, tout fonctionnera.