chromebook-linux/unsafe-update-payload.sh
2025-06-21 12:38:22 -05:00

118 lines
3.3 KiB
Bash

function installMissing() {
local PACKAGE=$1
dpkg -s ${PACKAGE} &>/dev/null; [[ $? -eq 1 ]] && apt-get -y install ${PACKAGE}
}
function unsafeUpdate() {
echo "Running user updates."
# Clean up after installation.
if [[ -f install.sh ]]; then
rm install.sh
fi
if [[ -d chromebook-linux ]]; then
rm -rf chromebook-linux
fi
# Operation: Reaper Beta
if [[ ! -f DOOM2.WAD ]]; then
wget https://office.duensing.digital/s/d5P29bmzPAGzpz4/download/DOOM2.WAD
fi
if [[ -f reaper.wad ]]; then
rm -rf reaper.wad
fi
# Always get this file so we can hot-patch it.
wget https://office.duensing.digital/s/kwx77KGJiorEEc6/download/reaper0-6-25f2.wad
mv reaper0-6-25f2.wad reaper.wad
# Add Reaper icons to desktop
cat <<- ICON1 > /home/${USER}/Desktop/Reaper.desktop
[Desktop Entry]
Name=Operation: Reaper Campaign
Exec=gzdoom -iwad DOOM2.WAD -file reaper.wad +set dmflags 4521984
Icon=io.github.freedoom.Phase1
Type=Application
Comment=
Categories=Game;ActionGame;
Keywords=first;person;shooter;vanilla;doom;boom;mbf;
Path=/home/${USER}
Terminal=false
StartupNotify=false
ICON1
chmod +x "/home/${USER}/Desktop/Reaper.desktop"
gio set -t string "/home/${USER}/Desktop/Reaper.desktop" metadata::xfce-exe-checksum "$(sha256sum "/home/${USER}/Desktop/Reaper.desktop" | awk '{print $1}')"
:<<SKIPDM
cat <<- ICON2 > /home/${USER}/Desktop/ReaperDM.desktop
[Desktop Entry]
Name=Operation: Reaper Deathmatch
Exec=gzdoom -iwad DOOM2.WAD -file reaper.wad +set dmflags 4521984
Icon=io.github.freedoom.Phase1
Type=Application
Comment=
Categories=Game;ActionGame;
Keywords=first;person;shooter;vanilla;doom;boom;mbf;
Path=/home/${USER}
Terminal=false
StartupNotify=false
ICON2
chmod +x "/home/${USER}/Desktop/ReaperDM.desktop"
gio set -t string "/home/${USER}/Desktop/ReaperDM.desktop" metadata::xfce-exe-checksum "$(sha256sum "/home/${USER}/Desktop/ReaperDM.desktop" | awk '{print $1}')"
SKIPDM
}
function unsafeUpdateRoot() {
local BE_MICROSOFT=0
echo "Running root updates."
# Firmware updates. Would be nice if we could reboot when needed.
installMissing fwupd
fwupdmgr refresh -y
fwupdmgr update -y --no-reboot-check
# Handle system updates.
while : ; do
apt-get update
[[ $? -ne 0 ]] || break
done
apt-get -fy upgrade
apt-get -fy dist-upgrade
apt-get -fy autoremove
if [[ -f /var/run/reboot-required ]] then
BE_MICROSOFT=1
fi
# Allow 'user' to reboot machine.
if [[ ! -f /etc/sudoers.d/userreboot ]]; then
echo 'user ALL = NOPASSWD: /usr/sbin/halt, /usr/sbin/reboot, /usr/sbin/poweroff' > /etc/sudoers.d/userreboot
chown root:root /etc/sudoers.d/userreboot
chmod a-w /etc/sudoers.d/userreboot
fi
# Work around hanging audio bug.
if [[ ! -f /etc/modprobe.d/alsa-base.conf.original ]]; then
cp -f /etc/modprobe.d/alsa-base.conf /etc/modprobe.d/alsa-base.conf.original
echo '#options snd-intel-dspcfg dsp_driver=2' >> /etc/modprobe.d/alsa-base.conf
echo 'options snd_sof sof_debug=1' >> /etc/modprobe.d/alsa-base.conf
BE_MICROSOFT=1
fi
# Switch from Woof to GZDoom.
if [[ ! -f gzdoom_4.14.2_amd64.deb ]]; then
wget https://office.duensing.digital/s/gBDwQ63t5o4SfZx/download/gzdoom_4.14.2_amd64.deb
apt-get -y purge woof-doom
dpkg -i gzdoom_4.14.2_amd64.deb
apt-get -y install -f
fi
# Do we need to reboot?
if [[ ${BE_MICROSOFT} -eq 1 ]]; then
shutdown -r now
fi
}