PortValhalla/scripts/PopOS/secure-boot.sh

47 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
# Elevate script
if [ ! "$UID" -eq 0 ]
then
sudo bash "$BASH_SOURCE"
else
# Create context directory
workingDirectory=$(pwd)
contextRoot=$(mktemp -d)
cd $contextRoot
# Initialize variables
esp=/boot/efi
defaultBootDir=$esp/EFI/BOOT
microsoftBootDir=$esp/EFI/Microsoft/Boot
systemdDirName=/EFI/systemd
systemdFullName=$esp$systemdDirName
systemdFile=$systemdFullName/systemd-bootx64.efi
loaderBaseName=loader.efi
systemdLoaderFile=$systemdFullName/$loaderBaseName
# Install PreLoader
wget https://blog.hansenpartnership.com/wp-uploads/2013/HashTool.efi
wget https://blog.hansenpartnership.com/wp-uploads/2013/PreLoader.efi
cp {HashTool,PreLoader}.efi $systemdFullName
cp $systemdFile $systemdLoaderFile
efibootmgr --unicode --disk /dev/nvme0n1 --part 0 --create --label "PreLoader" --loader $systemdDirName/PreLoader.efi
# Add fallbacks
cp ./HashTool.efi $defaultBootDir
cp $systemdFile $defaultBootDir/$loaderBaseName
cp ./PreLoader.efi $defaultBootDir/BOOTx64.EFI
# Add Microsoft fallbacks
mkdir -p $microsoftBootDir
cp ./PreLoader.efi $microsoftBootDir/bootmgfw.efi
cp ./HashTool.efi $microsoftBootDir
cp $systemdFile $microsoftBootDir/$loaderBaseName
# Remove context directory
cd $workingDirectory
rm -rf $contextRoot
fi