109 lines
2.4 KiB
Bash
Executable File
109 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# KVS: Kernel Version Switcher
|
|
# Written by kxtzownsu / kxtz#8161
|
|
# https://kxtz.dev
|
|
# Licensed under GNU Affero GPL v3
|
|
|
|
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
|
|
echo "$0 $(printf '\033[1;31mMUST\033[0m') be ran as root/sudo!"
|
|
exit
|
|
fi
|
|
|
|
version=1
|
|
GITHUB_URL="https://github.com/kxtzownsu/KVS"
|
|
tpmver=$(tpmc tpmver)
|
|
|
|
if [ "$tpmver" == "2.0" ]; then
|
|
tpmdaemon="trunksd"
|
|
else
|
|
tpmdaemon="tscd"
|
|
fi
|
|
|
|
# give me thy kernver NOW
|
|
case "$(crossystem tpm_kernver)" in
|
|
"0x00000000")
|
|
kernver="0"
|
|
;;
|
|
"0x00010001")
|
|
kernver="1"
|
|
;;
|
|
"0x00010002")
|
|
kernver="2"
|
|
;;
|
|
"0x00010003")
|
|
kernver="3"
|
|
;;
|
|
*)
|
|
panic "invalid-kernver"
|
|
;;
|
|
esac
|
|
|
|
# detect if booted from usb boot or from recovery boot
|
|
if [ "$(crossystem mainfw_type)" == "recovery" ]; then
|
|
source /usr/share/kvs/tpmutil.sh
|
|
source /usr/share/kvs/functions.sh
|
|
mkdir -p /mnt/state &2>1 /dev/null
|
|
mount /dev/disk/by-label/KVS /mnt/state
|
|
stop $tpmdaemon
|
|
clear
|
|
elif [ "$(crossystem mainfw_type)" == "developer" ]; then
|
|
source /usr/sbin/kvs/tpmutil.sh
|
|
source /usr/sbin/kvs/functions.sh
|
|
# panic "non-reco"
|
|
# sleep infinity
|
|
clear
|
|
. ../share/kvs/functions.sh
|
|
. ../share/kvs/tpmutil.sh
|
|
source ../share/kvs/functions.sh
|
|
source ../share/kvs/tpmutil.sh
|
|
style_text "YOU ARE RUNNING A DEBUG VERSION OF KVS, THIS WAS OPTIMIZED TO RUN ON CHROMEOS ONLY! ALL ACTIONS ARE PURELY VISUAL AND NOT FUNCTIONAL IN THIS MODE!!!"
|
|
sleep 5
|
|
clear
|
|
fi
|
|
|
|
credits(){
|
|
clear
|
|
echo "KVS: Kernel Version Switcher v$version"
|
|
echo "Current kernver: $kernver"
|
|
echo "TPM Version: $tpmver"
|
|
echo "TPMD: $tpmdaemon"
|
|
echo "-=-=-=-=-=-=-=-=-=-=-"
|
|
echo "kxtzownsu - Writing KVS, Providing kernver 0 & kernver 1 files."
|
|
echo "planetearth1363 - Providing kernver 2 files."
|
|
echo "miimaker - Providing kernver 3 files."
|
|
echo "OlyB - Helping me figure out the shim builder, seriously, thanks."
|
|
echo "Google - Writing the 'tpmc' command :3"
|
|
echo "-=-=-=-=-=-=-=-=-=-=-"
|
|
echo "Press ENTER to return to the main menu"
|
|
read -r
|
|
}
|
|
|
|
endkvs(){
|
|
# reboot now
|
|
stopwatch
|
|
}
|
|
|
|
|
|
main(){
|
|
echo "KVS: Kernel Version Switcher v$version"
|
|
echo "Current kernver: $kernver"
|
|
echo "TPM Version: $tpmver"
|
|
echo "TPMD: $tpmdaemon"
|
|
echo "-=-=-=-=-=-=-=-=-=-=-"
|
|
echo "1) Set New kernver"
|
|
echo "2) Backup kernver"
|
|
echo "3) Bash Shell"
|
|
echo "4) Credits"
|
|
echo "5) Exit"
|
|
printf '\x1b[?25h'
|
|
read -rep "$(printf '\x1b[?25h')> " sel
|
|
|
|
selection $sel
|
|
}
|
|
|
|
|
|
while true; do
|
|
clear
|
|
main
|
|
done
|