[Sony Xperia M] elmkzgirxp:
[MENTION=4343949]PecanCM[/MENTION] Will we ever see support for systemless SuperSU root?

EDIT: Or at least make it qualified for a /system installation because it automatically decides to do a systemless install. Here is the code from 'update-binary' which states the requirements:

# use only on 6.0+, tries to read current boot image and detect if we can do a system install
# without any boot image patching. Requirements:
# - /data readable
# - not pre-patched by SuperSU
# - dm-verity disabled
# - init loads from /data/security/current/sepolicy
# - sepolicy has init load_policy or permissive init
# It symlink/patches the relevant files to /data, and sets SYSTEMLESS variable if not already set
detect_systemless_required() {
OLD_SYSTEMLESS=$SYSTEMLESS
if [ "$OLD_SYSTEMLESS" = "detect" ]; then
# we don't override a pre-set true/false value
SYSTEMLESS=true
fi

# check /data mounted
if (! is_mounted /data); then
return
fi

# find boot image partition
find_boot_image

CONTINUE=true
if [ -z "$BOOTIMAGE" ]; then
# no boot image partition detected, abort
return
fi

# extract ramdisk from boot image
rm -rf /sutmp
mkdir /sutmp

check_zero "" "" "" "LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --bootimg-extract-ramdisk $BOOTIMAGE /sutmp/ramdisk.packed"
check_zero "" "" "" "LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --ungzip /sutmp/ramdisk.packed /sutmp/ramdisk"
if (! $CONTINUE); then return; fi

# detect SuperSU patch
LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --patch-test /sutmp/ramdisk
if [ $? -ne 0 ]; then
return
fi

# detect dm-verity in use
for i in `LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --cpio-ls /sutmp/ramdisk | grep fstab`; do
rm -f /sutmp/fstab

check_zero "" "" "" "LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --cpio-extract /sutmp/ramdisk $i /sutmp/fstab"
if (! $CONTINUE); then return; fi

VERIFY=$(cat /sutmp/fstab | grep verify | grep system)
if [ $? -eq 0 ]; then
# verify flag found, dm-verity probably enabled, modifying /system may prevent boot
return
fi
done

# detect init loading from /data/security/current/sepolicy
check_zero "" "" "" "LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --cpio-extract /sutmp/ramdisk init /sutmp/init"
if (! $CONTINUE); then return; fi

CURRENT=$(cat /sutmp/init | grep "/data/security/current/sepolicy")
if [ $? -ne 0 ]; then
# this init doesn't load from the default sepolicy override location
return
fi

# extract sepolicy
check_zero "" "" "" "LD_LIBRARY_PATH=$RAMDISKLIB $BIN/sukernel --cpio-extract /sutmp/ramdisk sepolicy /sutmp/sepolicy"
if (! $CONTINUE); then return; fi

GO=false

# detect init permissive
if (! $GO); then
INIT_PERMISSIVE=$(LD_LIBRARY_PATH=$RAMDISKLIB $BIN/supolicy --dumpav /sutmp/sepolicy | grep "[TYPE]" | grep " init (PERMISSIVE) ")
if [ $? -eq 0 ]; then
GO=true
fi
fi

# detect init load_policy
if (! $GO); then
INIT_LOAD_POLICY=$(LD_LIBRARY_PATH=$RAMDISKLIB $BIN/supolicy --dumpav /sutmp/sepolicy | grep "[AV]" | grep " ALLOW " | grep " init-->kernel (security) " | grep "load_policy")
if [ $? -eq 0 ]; then
GO=true
fi
fi

# copy files to /data
if (! $GO); then return; fi

rm -rf /data/security/*
mkdir /data/security/current
set_perm 1000 1000 0755 /data/security/current u:object_r:security_file:s0

LD_LIBRARY_PATH=$RAMDISKLIB $BIN/supolicy --file /sutmp/sepolicy /data/security/current/sepolicy
set_perm 1000 1000 0644 /data/security/current/sepolicy u:object_r:security_file:s0

for i in seapp_contexts file_contexts file_contexts.bin property_contexts service_contexts selinux_version; do
ln -s /$i /data/security/current/$i
done

ln -s /system/etc/security/mac_permissions.xml /data/security/current/mac_permissions.xml

# if we reach this point, we can do a system install
if [ "$OLD_SYSTEMLESS" = "detect" ]; then
# we don't override a pre-set true/false value
SYSTEMLESS=false
fi
}

The current workaround for this is to force a system installation through 'update-binary', and to flash an earlier version without systemless feature and flash a later version. It would be really neat if we don't have to do this every now and then.

EDIT 2: How to force a /system install in 'update-binary':

if [ -z "$NOOVERRIDE" ]; then
# read override variables
getvar SYSTEMLESS
getvar PATCHBOOTIMAGE
getvar BOOTIMAGE
getvar STOCKBOOTIMAGE
getvar BINDSYSTEMXBIN
getvar PERMISSIVE
getvar KEEPVERITY
getvar KEEPFORCEENCRYPT
fi
if [ -z "$SYSTEMLESS" ]; then
# detect if we need systemless, based on Android version and boot image
SYSTEMLESS=detect
fi

Set SYSTEMLESS from detect to false. It's on line 753 as of v2.74-2.