X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/1f0393876d891d0e32a995d0bf7259cc6505afdc..d2c283d7fcd6a1f778d362e7cda73c39988e0d0f:/tools/helpers/images.py diff --git a/tools/helpers/images.py b/tools/helpers/images.py index aaeadff..b54a301 100644 --- a/tools/helpers/images.py +++ b/tools/helpers/images.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later import logging import zipfile -import requests +import json import hashlib import os import tools.config @@ -22,11 +22,11 @@ def sha256sum(filename): def get(args): cfg = tools.config.load(args) system_ota = cfg["waydroid"]["system_ota"] - system_request = requests.get(system_ota) - if system_request.status_code != 200: + system_request = helpers.http.retrieve(system_ota) + if system_request[0] != 200: raise ValueError( - "Failed to get system OTA channel: {}".format(system_ota)) - system_responses = system_request.json()["response"] + "Failed to get system OTA channel: {}, error: {}".format(args.system_ota, system_request[0])) + system_responses = json.loads(system_request[1].decode('utf8'))["response"] if len(system_responses) < 1: raise ValueError("No images found on system channel") @@ -36,6 +36,10 @@ def get(args): args, system_response['url'], system_response['filename'], cache=False) logging.info("Validating system image") if sha256sum(images_zip) != system_response['id']: + try: + os.remove(images_zip) + except: + pass raise ValueError("Downloaded system image hash doesn't match, expected: {}".format( system_response['id'])) logging.info("Extracting to " + args.images_path) @@ -47,11 +51,11 @@ def get(args): break vendor_ota = cfg["waydroid"]["vendor_ota"] - vendor_request = requests.get(vendor_ota) - if vendor_request.status_code != 200: + vendor_request = helpers.http.retrieve(vendor_ota) + if vendor_request[0] != 200: raise ValueError( - "Failed to get vendor OTA channel: {}".format(vendor_ota)) - vendor_responses = vendor_request.json()["response"] + "Failed to get vendor OTA channel: {}, error: {}".format(vendor_ota, vendor_request[0])) + vendor_responses = json.loads(vendor_request[1].decode('utf8'))["response"] if len(vendor_responses) < 1: raise ValueError("No images found on vendor channel") @@ -61,6 +65,10 @@ def get(args): args, vendor_response['url'], vendor_response['filename'], cache=False) logging.info("Validating vendor image") if sha256sum(images_zip) != vendor_response['id']: + try: + os.remove(images_zip) + except: + pass raise ValueError("Downloaded vendor image hash doesn't match, expected: {}".format( vendor_response['id'])) logging.info("Extracting to " + args.images_path)