[Verizon Samsung Galaxy S III] pelo88:
Alright, progress so far:

After reviewing the success this other cat had on the Droid Incredible with CM9, I am trying to make my way through the following:

shrink the /data partition by 16KiB (this was to make room for the crypto footer at the end of the partition)

move /data/data to /data, remove that partition (it was blocking unmounting of /data); the Ext4All mod does this

modify init.rc to uncomment "#setprop vold.post_fs_data_done 1" (this tells 'vold' that the filesystem is ready during preparation for in-place encryption)

enable SHA256 hash in kernel

I don't think #2 matters. I was excited to see that /init.rc does indeed have that command in need of an uncomment. I was equally excited when adb cat /proc/crypto showed me this:

name : sha256
driver : sha256-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 32

Seems Ziggy's kernal has sha256 support still within.

Now for the speedbump. There's no fstab available to read for adb to see on the sgs3. Gone are the easy days of hacking the G1, lol.

I'm trying to get around that in order to test out the math on the resize through the benign adb terminal.

cat /proc/mounts instead of cat /etc/fstab (since there is no fstab).

Here's my info:

# cat /proc/mounts | grep "/data " | cut -d ' ' -f 1
/dev/block/platform/msm_sdcc.1/by-name/userdata
# /data/tune2fs -l /dev/block/platform/msm_sdcc.1/by-name/userdata
tune2fs 1.41.3 (12-Oct-2008)
Filesystem volume name: <none>
Last mounted on: /data
Filesystem UUID: 57f8f4bc-abf4-655f-bf67-946fc0f9f25b
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal resize_inode filetype needs_recovery extent sparse_super large_file
Filesystem flags: unsigned_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Panic
Filesystem OS type: Linux
Inode count: 802816
Block count: 3208188
Reserved block count: 0
Free blocks: 713792
Free inodes: 777791
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 783
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Last mount time: Mon Apr 27 00:37:42 1970
Last write time: Mon Apr 27 00:37:42 1970
Mount count: 10
Maximum mount count: -1
Last checked: Wed Dec 31 16:00:00 1969
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: tea
Journal backup: inode blocks

That makes block count:

# /data/tune2fs -l /dev/block/platform/msm_sdcc.1/by-name/userdata | grep "Block count" | awk '{ print $3 }'
3208188

And block size:

# /data/tune2fs -l /dev/block/platform/msm_sdcc.1/by-name/userdata | grep "Block size" | awk '{ print $3 }'
4096

Making blocks to shink by = 16384 / 4096 which equals 4 blocks.

And making the new number of blocks I should have equal to 3208188 - 4 or 3208184 blocks.

The final command would be:

resize2fs /dev/block/platform/msm_sdcc.1/by-name/userdata 3208184

Now I don't have a resize2fs executable compiled for android. In fact, the tune2fs in synergy (or from the busybox app or wherever I got mine) didn't work either. I had to use one found here pushed to /sdcard/, moved to /data/ and chmod +x'd: http://xdaforums.com/showthread.php?t=819580

****Scratch that. This post's "fix" zip has resize2fs in it's zip: http://xdaforums.com/showthread.php?t=2122702

****And no, you can't unmount /data in adb while the phone is on, lol. Can't resize here. Next is to resize in recovery. Tomorrow is another day, I'm done for now.

So. Progress all in all. Next I think the cryptfs.c file needs to be looked at to avoid number 2 up above and add in the unmount to /data/data/ before unmounting /data/.