From 144f9f8a49b83c9a1930d16e579059485e6ad9fb Mon Sep 17 00:00:00 2001 From: Sen Jiang Date: Tue, 26 Sep 2017 15:49:45 -0700 Subject: update_device.py: use the appid from request. Recent changes in update_engine are now comparing the appid against the product id. Test: applied a local OTA Change-Id: I2907e94a89bea5ebfa8236c96eec7601af8ad4e5 --- scripts/update_device.py | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'scripts/update_device.py') diff --git a/scripts/update_device.py b/scripts/update_device.py index a5be0a59..ca7518da 100755 --- a/scripts/update_device.py +++ b/scripts/update_device.py @@ -25,6 +25,7 @@ import socket import subprocess import sys import threading +import xml.etree.ElementTree import zipfile import update_payload.payload @@ -184,6 +185,18 @@ class UpdateHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.send_error(404, 'File not found') return + content_length = int(self.headers.getheader('Content-Length')) + request_xml = self.rfile.read(content_length) + xml_root = xml.etree.ElementTree.fromstring(request_xml) + appid = None + for app in xml_root.iter('app'): + if 'appid' in app.attrib: + appid = app.attrib['appid'] + break + if not appid: + self.send_error(400, 'No appid in Omaha request') + return + self.send_response(200) self.send_header("Content-type", "text/xml") self.end_headers() @@ -194,28 +207,30 @@ class UpdateHandler(BaseHTTPServer.BaseHTTPRequestHandler): payload = update_payload.Payload(f) payload.Init() - xml = ''' + response_xml = ''' - + - + - + - + - ''' % (DEVICE_PORT, payload.metadata_size, payload_hash, stat.st_size) - self.wfile.write(xml.strip()) + '''.format(appid=appid, port=DEVICE_PORT, + metadata_size=payload.metadata_size, payload_hash=payload_hash, + payload_size=stat.st_size) + self.wfile.write(response_xml.strip()) return -- cgit v1.2.3