This is an old revision of the document!
Rooting works without problems with the default firmware from 04.2016.
After a SElinux update from ~23.05.2016 root is LOST. Re-flashing Super-SU or an updated CF-autoroot does not help
Flashing the default bootloader from a sammobile stock firmware does not help - the device got stuck in a bootloop
After flashing the complete system with the stock firmware from 16.04.2016 the device boots again and all data is still there (dalvik cache wiped in between from TWRP recovery)
Now with the default bootloader it is possible to re-root the device with the latest CF-autoroot
Make sure to disable further updates and update Super-SU to 2.74.
more information: https://plus.google.com/+Chainfire/posts/XMFgencRR11
TBD
It is possible to use a cryptfile as home partition in the linux chroot. Either mount a (huge) file or create a second partition on SDcard.
Android doesn't recognize the SDcard, if you don't format it correctly: The first Sdcard partition must be formatted to exfat. The Partition type must be FAT32 LBA and bootflag must be set: Then android 6 will recognize it. The second partition will be trigger a “corrupted sd” message, but the first one will be mounted.
Commands to setup crypted partition:
openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/mmcblk0_foo
cryptsetup -c aes-xts-plain64 --key-size 512 --hash sha512 -y luksFormat /dev/mmcblk0p2 cryptsetup luksOpen /dev/mmcblk0p2 sdhome mkfs.ext4 -j -m 1 -O dir_index,filetype -L homecrypt /dev/mapper/sdhome
Note: on a old android device i used these settings, because the kernel does not support the cipher above:
cryptsetup luksDump ... Cipher name: twofish Cipher mode: cbc-plain Hash spec: sha1
Test:
mount /dev/mapper/sdhome /mnt/sd/ # cop< stuff .. umount /mnt/sd cryptsetup luksClose /dev/mapper/sdhome # retry
Mount the partition in linux bootscript:
busybox mkdir $chrootdir/dev/block/ busybox -o bind /dev/block/ /$chrootdir/dev/block
Then inside the chroot, it can be mounted
cryptsetup luksOpen /dev/block/mmcblk0p2 sdhome mount /dev/mapper/home /mnt/sd