improve crossystem implementation
This commit is contained in:
parent
9064700b0f
commit
58faaa5b1d
|
@ -81,7 +81,7 @@ Driver support depends on the device you are using shimboot on. This list is for
|
||||||
3. Enable developer mode on your Chromebook. If the Chromebook is enrolled, follow the instructions on the [sh1mmer website](https://sh1mmer.me) (see the "Executing on Chromebook" section).
|
3. Enable developer mode on your Chromebook. If the Chromebook is enrolled, follow the instructions on the [sh1mmer website](https://sh1mmer.me) (see the "Executing on Chromebook" section).
|
||||||
4. Plug the USB into your Chromebook and enter recovery mode. It should detect the USB and run the shimboot bootloader.
|
4. Plug the USB into your Chromebook and enter recovery mode. It should detect the USB and run the shimboot bootloader.
|
||||||
5. Boot into Debian and log in with the username and password that you configured earlier. The default username/password for the prebuilt images is `user/user`.
|
5. Boot into Debian and log in with the username and password that you configured earlier. The default username/password for the prebuilt images is `user/user`.
|
||||||
6. Expand the rootfs partition so that it fills up the entire disk by running `sudo growpart /dev/sdX 4` (replacing `sdX` with the block device corresponding to your disk) to expand the partition, then running `sudo resize2fs /dev/sdX` to expand the filesystem.
|
6. Expand the rootfs partition so that it fills up the entire disk by running `sudo growpart /dev/sdX 4` (replacing `sdX` with the block device corresponding to your disk) to expand the partition, then running `sudo resize2fs /dev/sdX4` to expand the filesystem.
|
||||||
|
|
||||||
## FAQ:
|
## FAQ:
|
||||||
|
|
||||||
|
|
|
@ -243,7 +243,7 @@ get_donor_selection() {
|
||||||
|
|
||||||
if [ "$selection" = "$i" ]; then
|
if [ "$selection" = "$i" ]; then
|
||||||
echo "selected $part_path as the donor partition"
|
echo "selected $part_path as the donor partition"
|
||||||
read -p "would you like to spoof verfied mode? this is useful if you're planning on using chrome os while enrolled. (y/n): " use_crossystem
|
read -p "would you like to spoof verified mode? this is useful if you're planning on using chrome os while enrolled. (y/n): " use_crossystem
|
||||||
|
|
||||||
if [ "$use_crossystem" = "y" ] || [ "$use_crossystem" = "n" ]; then
|
if [ "$use_crossystem" = "y" ] || [ "$use_crossystem" = "n" ]; then
|
||||||
boot_chromeos $target $part_path $use_crossystem
|
boot_chromeos $target $part_path $use_crossystem
|
||||||
|
@ -306,9 +306,12 @@ boot_chromeos() {
|
||||||
rm -rf $donor_mount
|
rm -rf $donor_mount
|
||||||
|
|
||||||
if [ -e "/newroot/etc/init/tpm-probe.conf" ]; then
|
if [ -e "/newroot/etc/init/tpm-probe.conf" ]; then
|
||||||
echo "hiding the tpm from upstart"
|
echo "applying chrome os flex patches"
|
||||||
mkdir -p /newroot/tmp/empty
|
mkdir -p /newroot/tmp/empty
|
||||||
mount -o bind /newroot/tmp/empty /sys/class/tpm
|
mount -o bind /newroot/tmp/empty /sys/class/tpm
|
||||||
|
|
||||||
|
cat /newroot/etc/lsb-release | sed "s/DEVICETYPE=OTHER/DEVICETYPE=CHROMEBOOK/" > /newroot/tmp/lsb-release
|
||||||
|
mount -o bind /newroot/tmp/lsb-release /newroot/etc/lsb-release
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "patching chrome os rootfs"
|
echo "patching chrome os rootfs"
|
||||||
|
|
|
@ -3,27 +3,23 @@
|
||||||
#a much cleaner implemenation of fakemurk's crossystem.sh
|
#a much cleaner implemenation of fakemurk's crossystem.sh
|
||||||
|
|
||||||
crossystem_old=/tmp/crossystem_old
|
crossystem_old=/tmp/crossystem_old
|
||||||
crossystem_dict="cros_debug 0
|
declare -A crossystem_dict=(
|
||||||
dev_boot_legacy 0
|
["cros_debug"]="1"
|
||||||
dev_boot_signed_only 1
|
["dev_boot_legacy"]="0"
|
||||||
dev_boot_usb 0
|
["dev_boot_signed_only"]="1"
|
||||||
devsw_boot 0
|
["devsw_boot"]="0"
|
||||||
devsw_cur 0
|
["devsw_cur"]="0"
|
||||||
block_devmode 1
|
["block_devmode"]="1"
|
||||||
mainfw_act A
|
["mainfw_act"]="A"
|
||||||
mainfw_type normal
|
["mainfw_type"]="normal"
|
||||||
recovery_reason 0
|
["recovery_reason"]="0"
|
||||||
recovery_request 0
|
["recovery_request"]="0"
|
||||||
recoverysw_boot 0
|
["recoverysw_boot"]="0"
|
||||||
recoverysw_cur 0"
|
["recoverysw_cur"]="0"
|
||||||
|
)
|
||||||
dict_set() {
|
|
||||||
local newline=$'\n'
|
|
||||||
crossystem_dict="$crossystem_dict$newline$1 $2"
|
|
||||||
}
|
|
||||||
|
|
||||||
dict_get() {
|
dict_get() {
|
||||||
echo "$crossystem_dict" | grep "^$1 " | cut -d " " -f 2-
|
echo "${crossystem_dict[$1]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_arg() {
|
parse_arg() {
|
||||||
|
@ -37,13 +33,13 @@ parse_arg() {
|
||||||
elif [[ "$arg" =~ "?" ]]; then
|
elif [[ "$arg" =~ "?" ]]; then
|
||||||
key=$(echo $arg | cut -d "?" -f 1)
|
key=$(echo $arg | cut -d "?" -f 1)
|
||||||
query=$(echo $arg | cut -d "?" -f 2)
|
query=$(echo $arg | cut -d "?" -f 2)
|
||||||
if ! [ "$(dict_get $key)" = "$query" ]; then
|
if ! [ "${crossystem_dict[$key]}" = "$query" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#get value mode
|
#get value mode
|
||||||
elif [ "$(dict_get $arg)" ]; then
|
elif [ "${crossystem_dict[$arg]}" ]; then
|
||||||
printf "$(dict_get $arg)"
|
printf "${crossystem_dict[$arg]}"
|
||||||
|
|
||||||
#value not found - print help and exit
|
#value not found - print help and exit
|
||||||
else
|
else
|
||||||
|
@ -60,18 +56,19 @@ while IFS= read -r line; do
|
||||||
line=$(echo $line | cut -d "#" -f 1)
|
line=$(echo $line | cut -d "#" -f 1)
|
||||||
key=$(echo $line | cut -d "=" -f 1 | xargs)
|
key=$(echo $line | cut -d "=" -f 1 | xargs)
|
||||||
value=$(echo $line | cut -d "=" -f 2 | xargs)
|
value=$(echo $line | cut -d "=" -f 2 | xargs)
|
||||||
if [ -z "$(dict_get $key)" ]; then
|
if [ -z "${crossystem_dict[$key]}" ]; then
|
||||||
dict_set "$key" "$value"
|
crossystem_dict["$key"]="$value"
|
||||||
fi
|
fi
|
||||||
done <<< "$crossystem_out"
|
done <<< "$crossystem_out"
|
||||||
|
|
||||||
#crossystem called with no arguments, print out all properties
|
#crossystem called with no arguments, print out all properties
|
||||||
if [ -z "$1" ] || [ "$1" = "--all" ]; then
|
if [ -z "$1" ] || [ "$1" = "--all" ]; then
|
||||||
while IFS= read -r line; do
|
keys="${!crossystem_dict[@]}"
|
||||||
key=$(echo $line | cut -d " " -f 1)
|
keys="$(echo "$keys" | tr " " "\n" | sort)"
|
||||||
value=$(echo $line | cut -d " " -f 2-)
|
for key in $keys; do
|
||||||
|
value="${crossystem_dict[$key]}"
|
||||||
echo "$key = $value"
|
echo "$key = $value"
|
||||||
done <<< "$crossystem_dict"
|
done
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -87,7 +87,7 @@ For these images, the root password is "root". The name of the default user is "
|
||||||
3. Enable developer mode on your Chromebook. If the Chromebook is enrolled, follow the instructions on the <a href="https://sh1mmer.me">sh1mmer website</a> (see the "Executing on Chromebook" section).
|
3. Enable developer mode on your Chromebook. If the Chromebook is enrolled, follow the instructions on the <a href="https://sh1mmer.me">sh1mmer website</a> (see the "Executing on Chromebook" section).
|
||||||
4. Plug the USB into your Chromebook and enter recovery mode. It should detect the USB and run the shimboot bootloader.
|
4. Plug the USB into your Chromebook and enter recovery mode. It should detect the USB and run the shimboot bootloader.
|
||||||
5. Boot into Debian and log in with the username and password that you configured earlier. The default username/password for the prebuilt images is `user/user`.
|
5. Boot into Debian and log in with the username and password that you configured earlier. The default username/password for the prebuilt images is `user/user`.
|
||||||
6. Expand the rootfs partition so that it fills up the entire disk by running `sudo growpart /dev/sdX 4` (replacing `sdX` with the block device corresponding to your disk) to expand the partition, then running `sudo resize2fs /dev/sdX` to expand the filesystem.
|
6. Expand the rootfs partition so that it fills up the entire disk by running `sudo growpart /dev/sdX 4` (replacing `sdX` with the block device corresponding to your disk) to expand the partition, then running `sudo resize2fs /dev/sdX4` to expand the filesystem.
|
||||||
|
|
||||||
<b id="copyright">Copyright:</b>
|
<b id="copyright">Copyright:</b>
|
||||||
Shimboot is licensed under the <a href="https://www.gnu.org/licenses/gpl-3.0.txt">GNU GPL v3</a>. Unless otherwise indicated, all code has been written by me, <a href="https://ading.dev">ading2210</a>.
|
Shimboot is licensed under the <a href="https://www.gnu.org/licenses/gpl-3.0.txt">GNU GPL v3</a>. Unless otherwise indicated, all code has been written by me, <a href="https://ading.dev">ading2210</a>.
|
||||||
|
|
Loading…
Reference in New Issue