diff --git a/debian/changelog b/debian/changelog
index 889755a..789472e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+excelsior-bootloader (2-1) mendel-eagle; urgency=medium
+
+  * Fix install-bootloader.sh
+
+ -- Coral Team <coral-support@google.com>  Mon, 21 Sep 2020 16:28:18 -0700
+
 excelsior-bootloader (1-2) mendel-day; urgency=medium
 
   * Add support for both 1G memory and 2G memory.
diff --git a/usr/sbin/install-bootloader.sh b/usr/sbin/install-bootloader.sh
index cb14d8b..207184e 100755
--- a/usr/sbin/install-bootloader.sh
+++ b/usr/sbin/install-bootloader.sh
@@ -4,7 +4,7 @@
 # $2 -- Block device
 function check_emmc_matches {
   local CURRENT=$(mktemp)
-  local SIZE=$(stat -c%s $1)
+  local SIZE=$(stat -L -c%s $1)
   dd if=/dev/$2 of=${CURRENT} \
     count=${SIZE} \
     bs=512 \
@@ -12,7 +12,7 @@
   diff ${CURRENT} $1
   local DIFF_RETURN_CODE=$?
   rm ${CURRENT}
-  echo ${DIFF_RETURN_CODE}
+  return ${DIFF_RETURN_CODE}
 }
 
 # $1 -- Filesystem path
@@ -21,7 +21,8 @@
   for i in `seq 1 5`
   do
     dd if=$1 of=/dev/$2 bs=512
-    local EMMC_MATCHES=$(check_emmc_matches $1 $2)
+    $(check_emmc_matches $1 $2)
+    local EMMC_MATCHES=$?
     if [[ ${EMMC_MATCHES} -eq 0 ]]; then
       UPDATE_SUCCESS=true
       break
@@ -30,9 +31,12 @@
   echo ${UPDATE_SUCCESS}
 }
 
-BL2_MATCHES=$(check_emmc_matches /boot/bl2.img mmcblk0boot0)
-FIP_BIN_MATCHES=$(check_emmc_matches /boot/fip.bin mmcblk0p1)
-U_BOOT_ENV_MATCHES=$(check_emmc_matches /boot/u-boot-env.bin mmcblk0boot1)
+check_emmc_matches /boot/bl2.img mmcblk0boot0
+BL2_MATCHES=$?
+check_emmc_matches /boot/fip.bin mmcblk0p1
+FIP_BIN_MATCHES=$?
+check_emmc_matches /boot/u-boot-env.bin mmcblk0boot1
+U_BOOT_ENV_MATCHES=$?
 
 if [[ ${BL2_MATCHES} -ne 0 ]]; then
   MMCBLK_RO_PATH=/sys/block/mmcblk0boot0/force_ro
@@ -54,7 +58,7 @@
   fi
 fi
 
-if [[ ${FIP_BIN_MATCHS} -ne 0 ]]; then
+if [[ ${FIP_BIN_MATCHES} -ne 0 ]]; then
   UPDATE_SUCCESS=$(write_emmc /boot/fip.bin mmcblk0p1)
   if [[ "${UPDATE_SUCCESS}" != true ]]; then
     echo "Failed to update fip.bin! Rebooting is unsafe!"
@@ -62,8 +66,20 @@
   fi
 fi
 
-if [[ ${U_BOOT_ENV_MATCHS} -ne 0 ]]; then
+if [[ ${U_BOOT_ENV_MATCHES} -ne 0 ]]; then
+  MMCBLK_RO_PATH=/sys/block/mmcblk0boot1/force_ro
+
+  # Get the read-only setting for the bootloader
+  MMCBLK_RO=$(cat ${MMCBLK_RO_PATH})
+
+  # Disable read-only on bootloader block device
+  echo 0 > ${MMCBLK_RO_PATH}
+
   UPDATE_SUCCESS=$(write_emmc /boot/u-boot-env.bin mmcblk0boot1)
+
+  # Restore whatever the setting was before
+  echo ${MMCBLK_RO} > ${MMCBLK_RO_PATH}
+
   if [[ "${UPDATE_SUCCESS}" != true ]]; then
     echo "Failed to update u-boot-env.bin! Rebooting is unsafe!"
     exit 1
