Remove disk firmware upgrade check file
During postinstll, remove the check file to force a disk
firmware check at first reboot.
This change allows removing a cksum call at boot in disk firmware conf
file.
TEST=Install image with cros flash, check the file is removed and
recreated at boot.
TEST=Install image with USB key. Check sda1 partition does not
contain the check file anymore.
BUG=chromium:340883
Change-Id: I556291f8b74c50cef395ce3026e1aa7f2f8f6b6b
Reviewed-on: https://chromium-review.googlesource.com/186172
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
diff --git a/chromeos_postinst.cc b/chromeos_postinst.cc
index c4033e4..7ea4f71 100644
--- a/chromeos_postinst.cc
+++ b/chromeos_postinst.cc
@@ -150,10 +150,13 @@
return result;
}
-// Matches commandline arguments of chrome-chroot-postinst
+// Do post install stuff.
//
+// Install kernel, set up the proper bootable partition in
+// GPT table, update firmware if necessary and possible.
+//
+// install_config defines the root, kernel and boot partitions.
// src_version of the form "10.2.3.4" or "12.3.2"
-// install_dev of the form "/dev/sda3"
//
bool ChromeosChrootPostinst(const InstallConfig& install_config,
string src_version,
@@ -270,12 +273,20 @@
// Create a file indicating that the install is completed. The file
// will be used in /sbin/chromeos_startup to run tasks on the next boot.
// See comments above about removing ureadahead files.
- if (!Touch("/mnt/stateful_partition/.install_completed")) {
- printf("Touch(/mnt/stateful_partition/.install_completed) FAILED\n");
+ string stateful_mnt = "/mnt/stateful_partition";
+ string install_completed = stateful_mnt + "/.install_completed";
+ if (!Touch(install_completed)) {
+ printf("Touch(%s) FAILED\n", install_completed.c_str());
if (is_factory_install)
return false;
}
+ // If present, remove firmware checking completion file to force a disk
+ // firmware check at reboot.
+ string disk_fw_check_complete = stateful_mnt +
+ "/unencrypted/cache/.disk_firmware_upgrade_completed";
+ unlink(disk_fw_check_complete.c_str());
+
// In postinst in future, we may provide an option (ex, --update_firmware).
string firmware_tag_file = (install_config.root.mount() +
"/root/.force_update_firmware");