Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
                                )