From 9470702fa4711ef247e0e41921d9cc2f9fa3458e Mon Sep 17 00:00:00 2001 From: kxtzownsu Date: Tue, 5 Mar 2024 23:43:28 -0500 Subject: [PATCH] guh im so tired of CrOS 121, but i need my crostini --- builder/scripts/factory_install.sh | 94 ++++++++++++ builder/scripts/functions.sh | 154 ++++++++++++++++++++ builder/scripts/versions/factory_install.sh | 94 ------------ builder/scripts/versions/functions.sh | 154 -------------------- 4 files changed, 248 insertions(+), 248 deletions(-) delete mode 100644 builder/scripts/versions/factory_install.sh delete mode 100644 builder/scripts/versions/functions.sh diff --git a/builder/scripts/factory_install.sh b/builder/scripts/factory_install.sh index e69de29..bc92206 100644 --- a/builder/scripts/factory_install.sh +++ b/builder/scripts/factory_install.sh @@ -0,0 +1,94 @@ +#!/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 + +# source the file multiple times because it wasn't working :3 +. ./functions.sh +. ./tpmutil.sh +source ./functions.sh +source ./tpmutil.sh + +version=1 +GITHUB_URL="https://github.com/kxtzownsu/KVS" +tpmver=$(tpmc tpmver) + +if [ "$tpmver" == "2.0" ]; then + tpmdaemon="trunksd" +else + tpmdaemon="tscd" +fi + +echo $tpmdaemon + +# 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 tpmutil.sh + mkdir /mnt/state &2> /dev/zero + mount /dev/disk/by-label/KVS /mnt/state +elif [ "$(crossystem mainfw_type)" == "developer" ]; then + # panic "non-reco" + echo "" + clear +fi + +credits(){ + echo "KVS: Kernel Version Switcher" + echo "V$version" + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-" + echo "kxtzownsu - Writing KVS, Providing kernver 0 & kernver 1 files." + echo "??? - Providing kernver 2 files." + echo "TBD - Providing kernver 3 files." + echo "Google - Writing the `tpmc` command :3" +} + +endkvs(){ + # reboot now + stopwatch +} + + +main(){ + echo "KVS: Kernel Version Switcher v$version" + echo "Current kernver: $kernver" + echo "=-=-=-=-=-=-=-=-=-=-" + echo "1) Set New kernver" + echo "2) Backup kernver (WIP, Kinda Broken)" + echo "3) Credits" + echo "4) Exit" + read -rep "> " sel + + selection $sel +} + + +#while true; do +# main +#done + +panic "tpmd-not-killed" \ No newline at end of file diff --git a/builder/scripts/functions.sh b/builder/scripts/functions.sh index e69de29..a18df80 100644 --- a/builder/scripts/functions.sh +++ b/builder/scripts/functions.sh @@ -0,0 +1,154 @@ +#!/bin/bash + +style_text() { + printf "\033[31m\033[1m\033[5m$1\033[0m\n" +} + +panic(){ + case "$1" in + "invalid-kernver") + style_text "KVS PANIC" + printf "\033[31mERR\033[0m" + printf ": Invalid Kernel Version. Please make a GitHub issue at \033[3;34m$GITHUB_URL\033[0m with a picture of this information.\n" + echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "tpm_kernver: $(crossystem tpm_kernver)" + echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" + echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" + echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" + echo "Please shutdown your device now using REFRESH+PWR" + sleep infinity + ;; + "mount-error") + style_text "KVS PANIC" + printf "\033[31mERR\033[0m" + printf ": Unable to mount stateful. Please make a GitHub issue at \033[3;34m$GITHUB_URL\033[0m with a picture of this information.\n" + echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "tpm_kernver: $(crossystem tpm_kernver)" + echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" + echo "state mounted: $([ -d /mnt/state/ ] && grep -qs '/mnt/state ' /proc/mounts && echo true || echo false)" + echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" + echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" + echo "Please shutdown your device now using REFRESH+PWR" + sleep infinity + ;; + "non-reco") + style_text "KVS PANIC" + printf "\033[31mERR\033[0m" + printf ": Wrong Boot Method. To fix: boot the shim using the recovery method. (ESC+REFRESH+PWR) and \033[31mNOT\033[0m USB Boot.\n" + echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "tpm_kernver: $(crossystem tpm_kernver)" + echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" + echo "fw mode: $(crossystem mainfw_type)" + echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" + echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" + echo "Please shutdown your device now using REFRESH+PWR" + sleep infinity + ;; + "tpmd-not-killed") + style_text "KVS PANIC" + printf "\033[31mERR\033[0m" + printf ": $tpmdaemon unable to be killed. Please make a GitHub issue at \033[3;34m$GITHUB_URL\033[0m with a picture of this information.\n" + echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "tpm_kernver: $(crossystem tpm_kernver)" + echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" + echo "tpmd ($tpmdaemon) running: $(status $tpmdaemon | grep stopped && echo true || echo false)" + echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" + echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" + echo "Please shutdown your device now using REFRESH+PWR" + sleep infinity + ;; + "*") + echo "Panic ID unable to be found: $1" + echo "Exiting script to prevent crash, please make an issue at \033[3;34m$GITHUB_URL\033[0m." + esac +} + +stopwatch() { + display_timer() { + printf "[%02d:%02d:%02d]\n" $hh $mm $ss + } + hh=0 #hours + mm=0 #minutes + ss=0 #seconds + + while true; do + clear + echo "Initiated reboot, if this doesn't reboot please manually reboot with REFRESH+PWR" + echo "Time since reboot initiated:" + display_timer + ss=$((ss + 1)) + # if seconds reach 60, increment the minutes + if [ $ss -eq 60 ]; then + ss=0 + mm=$((mm + 1)) + fi + # if minutes reach 60, increment the hours + if [ $mm -eq 60 ]; then + mm=0 + hh=$((hh + 1)) + fi + sleep 1 + done +} + +selection(){ + case $1 in + "1") + echo "Please Enter Target kernver (0-3)" + read -rep "> " kernver + case $kernver in + "0") + echo "Setting kernver 0" + write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver0) + ;; + "1") + echo "Setting kernver 1" + write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver1) + ;; + "2") + echo "Setting kernver 2" + write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver2) + ;; + "3") + echo "Setting kernver 3" + write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver3) + ;; + *) + echo "Invalid kernver. Please check your input." + main + ;; + esac ;; + "2") + case $currentkernver in + "0x00000000") + echo "Current kernver: 0" + echo "Outputting to stateful/kernver-out" + cp /mnt/realstate/kvs/kernver0 /mnt/state/kernver-out + ;; + "0x00010001") + echo "Current kernver: 1" + echo "Outputting to stateful/kernver-out" + cp /mnt/realstate/kvs/kernver1 /mnt/state/kernver-out + ;; + "0x00010002") + echo "Current kernver: 2" + echo "Outputting to stateful/kernver-out" + cp /mnt/realstate/kvs/kernver2 /mnt/state/kernver-out + ;; + "0x00010003") + echo "Current kernver: 3" + echo "Outputting to stateful/kernver-out" + cp /mnt/realstate/kvs/kernver3 /mnt/state/kernver-out + ;; + *) + panic "invalid-kernver" + ;; + esac ;; + "3") + credits + ;; + "4") + endkvs + ;; + esac +} diff --git a/builder/scripts/versions/factory_install.sh b/builder/scripts/versions/factory_install.sh deleted file mode 100644 index bc92206..0000000 --- a/builder/scripts/versions/factory_install.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/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 - -# source the file multiple times because it wasn't working :3 -. ./functions.sh -. ./tpmutil.sh -source ./functions.sh -source ./tpmutil.sh - -version=1 -GITHUB_URL="https://github.com/kxtzownsu/KVS" -tpmver=$(tpmc tpmver) - -if [ "$tpmver" == "2.0" ]; then - tpmdaemon="trunksd" -else - tpmdaemon="tscd" -fi - -echo $tpmdaemon - -# 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 tpmutil.sh - mkdir /mnt/state &2> /dev/zero - mount /dev/disk/by-label/KVS /mnt/state -elif [ "$(crossystem mainfw_type)" == "developer" ]; then - # panic "non-reco" - echo "" - clear -fi - -credits(){ - echo "KVS: Kernel Version Switcher" - echo "V$version" - echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-" - echo "kxtzownsu - Writing KVS, Providing kernver 0 & kernver 1 files." - echo "??? - Providing kernver 2 files." - echo "TBD - Providing kernver 3 files." - echo "Google - Writing the `tpmc` command :3" -} - -endkvs(){ - # reboot now - stopwatch -} - - -main(){ - echo "KVS: Kernel Version Switcher v$version" - echo "Current kernver: $kernver" - echo "=-=-=-=-=-=-=-=-=-=-" - echo "1) Set New kernver" - echo "2) Backup kernver (WIP, Kinda Broken)" - echo "3) Credits" - echo "4) Exit" - read -rep "> " sel - - selection $sel -} - - -#while true; do -# main -#done - -panic "tpmd-not-killed" \ No newline at end of file diff --git a/builder/scripts/versions/functions.sh b/builder/scripts/versions/functions.sh deleted file mode 100644 index a18df80..0000000 --- a/builder/scripts/versions/functions.sh +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash - -style_text() { - printf "\033[31m\033[1m\033[5m$1\033[0m\n" -} - -panic(){ - case "$1" in - "invalid-kernver") - style_text "KVS PANIC" - printf "\033[31mERR\033[0m" - printf ": Invalid Kernel Version. Please make a GitHub issue at \033[3;34m$GITHUB_URL\033[0m with a picture of this information.\n" - echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" - echo "tpm_kernver: $(crossystem tpm_kernver)" - echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" - echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" - echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" - echo "Please shutdown your device now using REFRESH+PWR" - sleep infinity - ;; - "mount-error") - style_text "KVS PANIC" - printf "\033[31mERR\033[0m" - printf ": Unable to mount stateful. Please make a GitHub issue at \033[3;34m$GITHUB_URL\033[0m with a picture of this information.\n" - echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" - echo "tpm_kernver: $(crossystem tpm_kernver)" - echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" - echo "state mounted: $([ -d /mnt/state/ ] && grep -qs '/mnt/state ' /proc/mounts && echo true || echo false)" - echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" - echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" - echo "Please shutdown your device now using REFRESH+PWR" - sleep infinity - ;; - "non-reco") - style_text "KVS PANIC" - printf "\033[31mERR\033[0m" - printf ": Wrong Boot Method. To fix: boot the shim using the recovery method. (ESC+REFRESH+PWR) and \033[31mNOT\033[0m USB Boot.\n" - echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" - echo "tpm_kernver: $(crossystem tpm_kernver)" - echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" - echo "fw mode: $(crossystem mainfw_type)" - echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" - echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" - echo "Please shutdown your device now using REFRESH+PWR" - sleep infinity - ;; - "tpmd-not-killed") - style_text "KVS PANIC" - printf "\033[31mERR\033[0m" - printf ": $tpmdaemon unable to be killed. Please make a GitHub issue at \033[3;34m$GITHUB_URL\033[0m with a picture of this information.\n" - echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=" - echo "tpm_kernver: $(crossystem tpm_kernver)" - echo "fwid: $(dmidecode -s bios-version) (compiled: $(dmidecode -s bios-release-date))" - echo "tpmd ($tpmdaemon) running: $(status $tpmdaemon | grep stopped && echo true || echo false)" - echo "date: $(date +"%m-%d-%Y %I:%M:%S %p")" - echo "model: $(cat /sys/class/dmi/id/product_name) $(cat /sys/class/dmi/id/product_version)" - echo "Please shutdown your device now using REFRESH+PWR" - sleep infinity - ;; - "*") - echo "Panic ID unable to be found: $1" - echo "Exiting script to prevent crash, please make an issue at \033[3;34m$GITHUB_URL\033[0m." - esac -} - -stopwatch() { - display_timer() { - printf "[%02d:%02d:%02d]\n" $hh $mm $ss - } - hh=0 #hours - mm=0 #minutes - ss=0 #seconds - - while true; do - clear - echo "Initiated reboot, if this doesn't reboot please manually reboot with REFRESH+PWR" - echo "Time since reboot initiated:" - display_timer - ss=$((ss + 1)) - # if seconds reach 60, increment the minutes - if [ $ss -eq 60 ]; then - ss=0 - mm=$((mm + 1)) - fi - # if minutes reach 60, increment the hours - if [ $mm -eq 60 ]; then - mm=0 - hh=$((hh + 1)) - fi - sleep 1 - done -} - -selection(){ - case $1 in - "1") - echo "Please Enter Target kernver (0-3)" - read -rep "> " kernver - case $kernver in - "0") - echo "Setting kernver 0" - write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver0) - ;; - "1") - echo "Setting kernver 1" - write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver1) - ;; - "2") - echo "Setting kernver 2" - write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver2) - ;; - "3") - echo "Setting kernver 3" - write_tpm 0x1008 $(cat /mnt/realstate/kvs/kernver3) - ;; - *) - echo "Invalid kernver. Please check your input." - main - ;; - esac ;; - "2") - case $currentkernver in - "0x00000000") - echo "Current kernver: 0" - echo "Outputting to stateful/kernver-out" - cp /mnt/realstate/kvs/kernver0 /mnt/state/kernver-out - ;; - "0x00010001") - echo "Current kernver: 1" - echo "Outputting to stateful/kernver-out" - cp /mnt/realstate/kvs/kernver1 /mnt/state/kernver-out - ;; - "0x00010002") - echo "Current kernver: 2" - echo "Outputting to stateful/kernver-out" - cp /mnt/realstate/kvs/kernver2 /mnt/state/kernver-out - ;; - "0x00010003") - echo "Current kernver: 3" - echo "Outputting to stateful/kernver-out" - cp /mnt/realstate/kvs/kernver3 /mnt/state/kernver-out - ;; - *) - panic "invalid-kernver" - ;; - esac ;; - "3") - credits - ;; - "4") - endkvs - ;; - esac -}