FAFT: Support running firmware update tests without given a shellball

The firmware update tests require the shellball in the OS image be
the same as the active firmware. Otherwise, after executing the
shellball to AU, the active firmware will be overwritten to some
other different version. It is not expected.

So these tests need to pass a shellball file as a parameter. This
extra parameter prevents these tests running in the lab automatically

This change supports modifying the existing shellball to replace its
BIOS and EC images using the active ones. This way helps to make the
shellball and active firmware like the same.

BUG=chromium:591568
TEST=Ran the modified firmware update tests on Cyan, both the cases:
 - not given a shellball;
 - given a shellball.

Change-Id: I319584d730afd574ac2acffda41fb8174945cd78
Reviewed-on: https://chromium-review.googlesource.com/330263
Commit-Ready: Wai-Hong Tam <waihong@chromium.org>
Tested-by: Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: danny chan <dchan@chromium.org>
diff --git a/client/cros/faft/rpc_functions.py b/client/cros/faft/rpc_functions.py
index 464d632..f07def6 100755
--- a/client/cros/faft/rpc_functions.py
+++ b/client/cros/faft/rpc_functions.py
@@ -671,7 +671,14 @@
         """
         self._updater.resign_firmware(version)
 
-    def _updater_repack_shellball(self, append):
+    def _updater_extract_shellball(self, append=None):
+        """Extract shellball with the given append suffix.
+
+        @param append: use for the shellball name.
+        """
+        self._updater.extract_shellball(append)
+
+    def _updater_repack_shellball(self, append=None):
         """Repack shellball with new fwid.
 
         @param append: use for new fwid naming.