def __setup_apk_storage(self): ''' Open APK storage if not already done. Storage will only be set up per process, not for each task! Raises ------ StorageException Error while opening. ''' from androlyze.storage.apk import ApkStorageFactory if self.__apk_storage is None: self.__apk_storage = ApkStorageFactory.get_apk_storage(settings)
def _create_storage(self, import_db, custom_mongodb_name = None): ''' Create the storage object. Be sure the `settings` already has been initialized. Parameters ---------- import_db : str The path to the import database. custom_mongodb_name : str, optional (default is None) Use `custom_mongodb_name` as database name instead of the value from config file. ''' settings = self.settings # load after androguard path has been set from androlyze.storage.apk import ApkStorageFactory from androlyze.storage.RedundantStorage import RedundantStorage # If not enabled pass None to Analyzer and don't store in the file sys at all STORAGE_DIR = None if settings.get_bool((SECTION_FILE_SYSTEM, KEY_FILE_SYSTEM_WRITE_RESULTS_TO_FILE_SYSTEM)): STORAGE_DIR = settings[(SECTION_FILE_SYSTEM, KEY_FILE_SYSTEM_RESULT_DIR)] # get mongodb specific stuff mongodb_name = custom_mongodb_name # read mongodb settings from config _mongodb_name, mongodb_ip, mongodb_port, mongodb_username, mongodb_passwd, mongodb_use_ssl, mongodb_ca_cert = settings.get_mongodb_settings() # take from config if not suppliad if mongodb_name is None: mongodb_name = _mongodb_name return RedundantStorage(import_db, STORAGE_DIR, # db connection mongodb_name, mongodb_ip, mongodb_port, # auth result_db_username = mongodb_username, result_db_passwd = mongodb_passwd, # ssl result_db_use_ssl=mongodb_use_ssl, ssl_ca_cert=mongodb_ca_cert, #create storage only on demand from the config distributed_apk_storage_factory = lambda: ApkStorageFactory.get_apk_storage(settings) )