I recently bought a 2nd hand Android mobile (Samsung) to install Cyanogenmod on. The process is quite straightforward from the documentation on the CM website. I installed TWRP using Heimdall and wiped the system partitions from the recovery before installing CM 12.1.
Once running Cyanogenmod, I wasn't able to activate device encryption though. Unsuccessfully tried several of the tips out there, like disabling Selinux before starting the encryption process. After retrying with an active adb logcat, I found this message in the log:
...which in turn lead me to this thread on the Cyanogenmod forums (cache). The hint to resize the data partition is correct, but it's not actually required to reformat the filesystem, as Android comes with a resize2fs. So I booted into TWRP recovery and connected to the system via adb shell. Turns out that /data is mounted on /dev/block/mmcblk0p24:
After unmounting /data and /sdcard, I had a quick look at the partition with tune2fs:
So, 1421307 blocks of 4096 bytes. Since the forum thread was not quite clear on how much space is required to facilitate encryption, I decided to shrink the filesystem by 8 blocks (32k):
...rebooted into CM, and successfully activated system encryption without further problems.
Once running Cyanogenmod, I wasn't able to activate device encryption though. Unsuccessfully tried several of the tips out there, like disabling Selinux before starting the encryption process. After retrying with an active adb logcat, I found this message in the log:
Copy to clipboard
E/Cryptfs ( 183): Orig filesystem overlaps crypto footer region. Cannot encrypt in place.
...which in turn lead me to this thread on the Cyanogenmod forums (cache). The hint to resize the data partition is correct, but it's not actually required to reformat the filesystem, as Android comes with a resize2fs. So I booted into TWRP recovery and connected to the system via adb shell. Turns out that /data is mounted on /dev/block/mmcblk0p24:
Copy to clipboard
# df [..] /dev/block/mmcblk0p24 5584700 931020 4653680 17% /data /dev/block/mmcblk0p24 5584700 931020 4653680 17% /sdcard
After unmounting /data and /sdcard, I had a quick look at the partition with tune2fs:
Copy to clipboard
# tune2fs -l /dev/block/mmcblk0p24 tune2fs 1.42.9 (28-Dec-2013) Filesystem volume name: Last mounted on: /data Filesystem UUID: 17e3f4bc-acf2-631e-af53-921ea0c9e21a Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode filetype extent sparse_super large_file uninit_bg Filesystem flags: unsigned_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Remount read-only Filesystem OS type: Linux Inode count: 355520 Block count: 1421307 Reserved block count: 0 Free blocks: 1163420 Free inodes: 353516 First block: 0 Block size: 4096 Fragment size: 4096 [..]
So, 1421307 blocks of 4096 bytes. Since the forum thread was not quite clear on how much space is required to facilitate encryption, I decided to shrink the filesystem by 8 blocks (32k):
Copy to clipboard
# e2fsck -fy /dev/block/mmcblk0p24 # resize2fs /dev/block/mmcblk0p24 1421299
...rebooted into CM, and successfully activated system encryption without further problems.