From 17dc231dc96f4927bfe74cf43ea027187d00049c Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 1 Feb 2019 14:45:22 +0100 Subject: [PATCH] update: fix running without androguard Soon, we can rip out all the aapt parsing stuff, but not yet! --- fdroidserver/common.py | 2 +- tests/update.TestCase | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 16dd101a..535a3f2a 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -2528,7 +2528,7 @@ def get_first_signer_certificate(apkpath): elif len(cert_files) == 1: cert_encoded = get_certificate(apk.read(cert_files[0])) - if not cert_encoded: + if not cert_encoded and use_androguard(): apkobject = _get_androguard_APK(apkpath) certs = apkobject.get_certificates_der_v2() if len(certs) > 0: diff --git a/tests/update.TestCase b/tests/update.TestCase index 1d3db8a7..d46dc9ee 100755 --- a/tests/update.TestCase +++ b/tests/update.TestCase @@ -255,9 +255,13 @@ class UpdateTest(unittest.TestCase): self.assertEqual(good_fingerprint, sig, 'python sig was: ' + str(sig)) # check that v1 and v2 have the same certificate - import hashlib - from binascii import hexlify - from androguard.core.bytecodes.apk import APK + try: + import hashlib + from binascii import hexlify + from androguard.core.bytecodes.apk import APK + except ImportError: + print('WARNING: skipping rest of test since androguard is missing!') + return apkobject = APK(apkpath) cert_encoded = apkobject.get_certificates_der_v2()[0] self.assertEqual(good_fingerprint, sig,