Autotest: firmware_UpdateKernelVersion and firmware_UpdateKernelDataKeyVersion

These two tests individually modify kernel version and kernel data key version.
On runtime, they modify kernel b directly, and reboot. Then, check the version,
and recovery.

BUG=chrome-os-partner:12442
TEST=run_remote_tests.sh --remote=$REMOTE_IP --board=$BOARD --servo
    firmware_UpdateKernelVersion(or firmware_UpdateKernelDataKeyVersion)

Change-Id: Ic3ad3caed47ed6cdffc41d6df6f4696b74d350b7
Reviewed-on: https://gerrit.chromium.org/gerrit/31208
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Commit-Ready: Chun-Ting Chang <ctchang@chromium.org>
Tested-by: Chun-Ting Chang <ctchang@chromium.org>
diff --git a/client/cros/faft_client.py b/client/cros/faft_client.py
index 12863a8..d3c88a9 100644
--- a/client/cros/faft_client.py
+++ b/client/cros/faft_client.py
@@ -472,6 +472,17 @@
         """Increase kernel version for the requested section."""
         self._modify_kernel_version(section, 1)
 
+
+    def retrieve_kernel_version(self, section):
+        """Return kernel version."""
+        return self._kernel_handler.get_version(section)
+
+
+    def retrieve_kernel_datakey_version(self, section):
+        """Return kernel datakey version."""
+        return self._kernel_handler.get_datakey_version(section)
+
+
     def diff_kernel_a_b(self):
         """Compare kernel A with B.
 
@@ -551,7 +562,7 @@
                                    'RW_FWID_A'))
 
         [fwid] = self.run_shell_command_get_output(
-                'eu-strings RW_FWID_A')
+                "cat RW_FWID_A | tr '\\0' '\\t' | cut -f1")
 
         return fwid
 
@@ -657,6 +668,16 @@
         return self._temp_path
 
 
+    def get_keys_path(self):
+        """Get keys path in temporary directory."""
+        return self._keys_path
+
+
+    def resign_kernel_with_keys(self, section, key_path=None):
+        """Resign kernel with temporary key."""
+        self._kernel_handler.resign_kernel(section, key_path)
+
+
     def cleanup(self):
         """Cleanup for the RPC server. Currently nothing."""
         pass