autoupdate: Set the hash_sha256 in devserver (omaha) response

The new changes in update_engine requires the new hex based sha256 hash sent by
omaha to be checked. But, currently in devserver we only sent base64 ecndoed
sha256. This CL adds hash_sha256 in the package tag of the response by
calculating the hex based sha256 hash of the payload.

TEST=cros flash

Change-Id: I4449d90513db2dcd1424a6693ec7ce172135d689
Commit-Ready: Amin Hassani <>
Tested-by: Amin Hassani <>
Reviewed-by: Xixuan Wu <>
Reviewed-by: Don Garrett <>
diff --git a/ b/
index 95a5254..58d033b 100644
--- a/
+++ b/
@@ -6,6 +6,8 @@
 from __future__ import print_function
+import base64
+import binascii
 import datetime
 import os
 import time
@@ -58,7 +60,7 @@
         <manifest version="999999.0.0">
             <package hash="%(sha1)s" name="%(filename)s" size="%(size)s"
-                     required="true"/>
+                     hash_sha256="%(hash_sha256)s" required="true"/>
             <action event="postinstall"
@@ -170,6 +172,8 @@
   response_values = GetCommonResponseValues(appid)
   response_values['sha1'] = sha1
   response_values['sha256'] = sha256
+  # sha256 is base64 encoded, encode it to hex.
+  response_values['hash_sha256'] = binascii.hexlify(base64.b64decode(sha256))
   response_values['size'] = size
   response_values['url'] = url
   (codebase, filename) = os.path.split(url)