update: find aapt when it is not in the PATH
This is some very messy logic built up since 2010. This will all go away once we have a python3 version of androguard available. The removed imports and `dir(APK)` is to silence pyflakes closes #303
This commit is contained in:
parent
c348186ad6
commit
0345d2c79f
|
@ -544,7 +544,7 @@ def get_apk_metadata_androguard(apkfile):
|
|||
def get_metadata_from_apk(app, build, apkfile):
|
||||
"""get the required metadata from the built APK"""
|
||||
|
||||
if common.set_command_in_config('aapt'):
|
||||
if common.SdkToolsPopen(['aapt', 'version'], output=False):
|
||||
vercode, version, foundid, nativecode = get_apk_metadata_aapt(apkfile)
|
||||
else:
|
||||
vercode, version, foundid, nativecode = get_apk_metadata_androguard(apkfile)
|
||||
|
|
|
@ -1727,7 +1727,7 @@ def isApkAndDebuggable(apkfile, config):
|
|||
if get_file_extension(apkfile) != 'apk':
|
||||
return False
|
||||
|
||||
if set_command_in_config('aapt'):
|
||||
if SdkToolsPopen(['aapt', 'version'], output=False):
|
||||
return get_apk_debuggable_aapt(apkfile)
|
||||
else:
|
||||
return get_apk_debuggable_androguard(apkfile)
|
||||
|
|
|
@ -1128,7 +1128,7 @@ def scan_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk):
|
|||
apk['antiFeatures'].add('KnownVuln')
|
||||
|
||||
try:
|
||||
if common.set_command_in_config('aapt'):
|
||||
if SdkToolsPopen(['aapt', 'version'], output=False):
|
||||
scan_apk_aapt(apk, apkfile)
|
||||
else:
|
||||
scan_apk_androguard(apk, apkfile)
|
||||
|
|
|
@ -4,12 +4,8 @@ import inspect
|
|||
import logging
|
||||
import optparse
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
import yaml
|
||||
from binascii import unhexlify
|
||||
|
||||
localmodule = os.path.realpath(
|
||||
os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..'))
|
||||
|
@ -53,9 +49,10 @@ class UpdateTest(unittest.TestCase):
|
|||
fdroidserver.update.options.clean = True
|
||||
fdroidserver.update.options.delete_unknown = True
|
||||
|
||||
self.assertTrue(fdroidserver.common.set_command_in_config('aapt'))
|
||||
self.assertTrue(fdroidserver.common.SdkToolsPopen('aapt'))
|
||||
try:
|
||||
from androguard.core.bytecodes.apk import APK
|
||||
dir(APK)
|
||||
except ImportError:
|
||||
raise Exception("androguard not installed!")
|
||||
|
||||
|
@ -89,4 +86,4 @@ if __name__ == "__main__":
|
|||
|
||||
newSuite = unittest.TestSuite()
|
||||
newSuite.addTest(unittest.makeSuite(UpdateTest))
|
||||
unittest.main()
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in New Issue