shakalaca
9/20/2016 - 1:42 PM

Switch root on / off

Switch root on / off

#!/system/bin/sh

if [ -f /system/xbin/su_ ]; then
    /system/xbin/supolicy --live "allow init system_file file { write }"

    mount -o rw,remount /system

    mv /system/xbin/su_ /system/xbin/su
    mv /system/xbin/daemonsu_ /system/xbin/daemonsu
    mv /system/bin/.ext_ /system/bin/.ext
    rm /system/bin/app_process
    rm /system/bin/app_process_ro
    ln -s /system/xbin/daemonsu /system/bin/app_process

    if [ -f /system/bin/app_process64 ]; then
        mv /system/bin/app_process64 /system/bin/app_process64_original
        rm /system/bin/app_process64_ro
        ln -s /system/xbin/daemonsu /system/bin/app_process64
    else
        mv /system/bin/app_process32 /system/bin/app_process32_original
        rm /system/bin/app_process32_ro
        ln -s /system/xbin/daemonsu /system/bin/app_process32
    fi

    reboot
fi

stop qrngd
#!/system/bin/sh

if [ -f /data/su.img ]; then

    # systemless root
    if [ -d /su/bin2 ]; then
        mv /su/bin2 /su/bin
    fi

    if [ -d /su/xbin_bind ]; then
        mount -o bind /su/xbin_bind /system/xbin
    fi

    if [ -f /data/.reset_selinux ]; then
        rm /data/.reset_selinux
        setenforce 0
    fi

else

    # traditional root
    if [ -f /system/xbin/su_ ]; then
        mount -o rw,remount /system

        mv /system/xbin/su_ /system/xbin/su
        mv /system/xbin/daemonsu_ /system/xbin/daemonsu
        mv /system/bin/.ext_ /system/bin/.ext
        rm /system/bin/app_process
        mv /system/bin/app_process_ro /system/bin/app_process

        if [ -f /system/bin/app_process64 ]; then
            mv /system/bin/app_process64 /system/bin/app_process64_original
            mv /system/bin/app_process64_ro /system/bin/app_process64
        else
            mv /system/bin/app_process32 /system/bin/app_process32_original
            mv /system/bin/app_process32_ro /system/bin/app_process32
        fi

        mount -o ro,remount /system

        setenforce 0
    fi

fi
#!/system/bin/sh

if [ -f /data/su.img ]; then

    # systemless root
    if [[ -f /data/su_.img ]] && [[ -f /su/etc/.dirty ]]; then
        echo su.img is clean, do nothing
    else
        mv /data/su.img /data/su_.img
        cp /data/su_.img /data/su.img
        chmod 644 /data/su.img
        touch /su/etc/.dirty
    fi

    if [ -d /su/bin ]; then
        mv /su/bin /su/bin2
    fi

    if [ -d /su/xbin_bind ]; then
        umount /system/xbin
    fi

    SELINUX=`getenforce`
    if [ "$SELINUX" == "Permissive" ]; then
        touch /data/.reset_selinux
        setenforce 1
    fi

else

    # traditional root
    if [ -f /system/xbin/su ]; then
        mount -o rw,remount /system

        mv /system/xbin/su /system/xbin/su_
        mv /system/xbin/daemonsu /system/xbin/daemonsu_
        mv /system/bin/.ext /system/bin/.ext_
        mv /system/bin/app_process /system/bin/app_process_ro

        if [ -L /system/bin/app_process64 ]; then
            ln -s app_process64 /system/bin/app_process
            mv /system/bin/app_process64 /system/bin/app_process64_ro
            mv /system/bin/app_process64_original /system/bin/app_process64
        else
            ln -s app_process32 /system/bin/app_process
            mv /system/bin/app_process32 /system/bin/app_process32_ro
            mv /system/bin/app_process32_original /system/bin/app_process32
        fi

        MODEL=`getprop ro.product.model`

        # ZE500KL / ZE601KL / ZE550KL / ZD551KL
        if [ "$MODEL" == "ASUS_Z00ED" ] || [ "$MODEL" == "ASUS_Z00UD" ] || [ "$MODEL" == "ASUS_Z00LD" ] || [ "$MODEL" == "ASUS_Z011D" ]; then
            cp /data/data/com.corner23.android.rootswitch/files/qrngd /system/bin/qrngd
            chmod 755 /system/bin/qrngd
            chcon u:object_r:system_file:s0 /system/bin/qrngd
        # ZE550ML / ZE551ML / A500CG / A600CG
        elif [ "$MODEL" == "ASUS_Z00AD" ] || [ "$MODEL" == "ASUS_Z008D" ] || [ "$MODEL" == "ASUS_T00F" ] || [ "$MODEL" == "ASUS_T00G" ]; then
            cp /data/data/com.corner23.android.rootswitch/files/ct_monitor /system/bin/ct_monitor
            chmod 755 /system/bin/ct_monitor
            chcon u:object_r:system_file:s0 /system/bin/ct_monitor
        fi

        mount -o ro,remount /system

        setenforce 1
    fi

fi
#!/system/bin/sh

if [ -f /system/xbin/su_ ]; then
    # grant permission for changing & executing files (copy from ota survival program)
    /system/xbin/supolicy --live "allow init system_file file { write setattr relabelfrom rename }"
    /system/xbin/supolicy --live "allow init install_recovery_exec file { setattr relabelfrom relabelto rename }"
    /system/xbin/supolicy --live "allow init zygote_exec lnk_file { unlink } "

    mount -o rw,remount /system

    mv /system/xbin/su_ /system/xbin/su
    mv /system/xbin/daemonsu_ /system/xbin/daemonsu
    mv /system/bin/.ext_ /system/bin/.ext
    rm /system/bin/app_process
    rm /system/bin/app_process_ro
    ln -s /system/xbin/daemonsu /system/bin/app_process

    if [ -f /system/bin/app_process64 ]; then
        mv /system/bin/app_process64 /system/bin/app_process64_original
        rm /system/bin/app_process64_ro
        ln -s /system/xbin/daemonsu /system/bin/app_process64
    else
        mv /system/bin/app_process32 /system/bin/app_process32_original
        rm /system/bin/app_process32_ro
        ln -s /system/xbin/daemonsu /system/bin/app_process32
    fi

    reboot
fi

stop ct_monitor