Update factory installer, factory test
* Fix build breaks
* Update to work with EFI bios

Review URL: http://codereview.chromium.org/2132008
diff --git a/memento_updater.sh b/memento_updater.sh
index 33db417..b39a3ce 100755
--- a/memento_updater.sh
+++ b/memento_updater.sh
@@ -77,11 +77,11 @@
   fi
 fi
 
-if ( set -o noclobber; echo "$$" > "$PID_FILE") 2> /dev/null; 
+if ( set -o noclobber; echo "$$" > "$PID_FILE") 2> /dev/null;
 then
   true
 else
-  log "Failed to acquire lockfile: $PID_FILE." 
+  log "Failed to acquire lockfile: $PID_FILE."
   log "Held by $(cat $PID_FILE)"
   exit 1
 fi
@@ -152,7 +152,7 @@
   INSTALL_DEV=$(echo $LOCAL_DEV | tr '35' '53')
 fi
 NEW_PART_NUM=${INSTALL_DEV##*/*[a-z]}
-# The kernel needs to be installed to its own partition. 
+# The kernel needs to be installed to its own partition.
 # partitions 2&3 are image A, partitions 4&5 are image B.
 if [ -z "${FLAGS_kernel_partition}" ]; then
   KINSTALL_DEV=$(echo $INSTALL_DEV | tr '35' '24')
@@ -170,12 +170,12 @@
 ROOT_DEV=${INSTALL_DEV%%[0-9]*}
 
 # Do some device sanity checks.
-if ! expr match "$LOCAL_DEV" '^/dev/[a-z][a-z]*[123458]$' > /dev/null
+if [ ! -b "$LOCAL_DEV" ]
 then
   log "didnt find good local device. local: $LOCAL_DEV install: $INSTALL_DEV"
   exit 1
 fi
-if ! expr match "$INSTALL_DEV" '^/dev/[a-z][a-z]*[123458]$' > /dev/null
+if [ ! -b "$INSTALL_DEV" ]
 then
   log "didnt find good install device. local: $LOCAL_DEV install: $INSTALL_DEV"
   exit 1
@@ -284,7 +284,7 @@
   MOUNTPOINT=/tmp/newpart
   mkdir -p "$MOUNTPOINT"
   mount "$INSTALL_DEV" "$MOUNTPOINT"
-  
+
   # Check version of new software if not forcing a dst partition
   if [ -z "${FLAGS_dst_partition}" ]; then
     NEW_VERSION=$(grep ^GOOGLE_RELEASE "$MOUNTPOINT"/etc/lsb-release | \
@@ -307,42 +307,28 @@
       fi
     fi
   fi
-  
+
   "$MOUNTPOINT"/postinst "$INSTALL_DEV" 2>&1 | cat >> "$MEMENTO_AU_LOG"
   [ "${PIPESTATUS[*]}" = "0 0" ]
   POSTINST_RETURN_CODE=$?
   umount "$MOUNTPOINT"
   rmdir "$MOUNTPOINT"
-  
+
   # If it failed, don't update MBR but just to be safe, zero out a page of
   # install device.
   abort_update_if_cmd_failed_long "$POSTINST_RETURN_CODE" "$MOUNTPOINT"/postinst
   # postinstall on new partition succeeded.
 fi
 
-# flush linux caches; seems to be necessary
-sync
-echo 3 > /proc/sys/vm/drop_caches
-# Configure the PMBR to boot the new image.
-# TODO: ChromeOS EFI BIOS will need a different command to set the GPT
-# partition attributes bits to mark the new image as bootable.
-# NOTE: This won't work for ARM, because we'll need to regenerate the U-Boot
-# script when the kernel size and location are changed. Luckily it won't
-# matter because we'll ship with the GPT-based selection process. The U-Boot
-# script is just a temporary hack for bringup.
-# FIX: The current gpt tool requires a -b arg to specify the PMBR bootcode. We
-# don't want to change the code, so we have to extract it, then put it back.
-# We'll fix this RSN.
-dd if=${ROOT_DEV} bs=512 count=1 of=/tmp/oldpmbr.bin
-gpt -S boot -i $NEW_PART_NUM -b /tmp/oldpmbr.bin ${ROOT_DEV} 2>&1 | \
-  cat >> "$MEMENTO_AU_LOG"
-abort_update_if_cmd_failed
-
 if [ -z "${FLAGS_dst_partition}" ]; then
   # mark update as complete so we don't try to update again
   touch "$UPDATED_COMPLETED_FILE"
 fi
 
+# Flush linux caches; seems to be necessary
+sync
+echo 3 > /proc/sys/vm/drop_caches
+
 # tell user to reboot
 log Autoupdate applied. You should now reboot
 echo UPDATED