Exemplo n.º 1
0
def addOneFileToApkRoot(apk, srcFile):
    if not file_utils.isExistFile(apk):
        log_utils.getLogger().debug('%s not exist' % apk)
        return False
    if not file_utils.isExistFile(srcFile):
        log_utils.getLogger().debug('%s not exist' % srcFile)
        return False
    with zipfile.ZipFile(apk, 'a', zipfile.ZIP_DEFLATED) as f:
        name = os.path.basename(srcFile)
        if name in f.namelist():
            log_utils.getLogger().debug('%s was existed in root' % name)
            return False
        else:
            f.write(srcFile, name)
            log_utils.getLogger().debug('addOneFileToApkRoot done')
            return True
Exemplo n.º 2
0
def addRootFileToApkRoot(apk,
                         srcDir,
                         ignoreList=[
                             'AndroidManifest.xml', 'apktool.yml',
                             'plugin.xml', 'script.py', 'script.pyo',
                             'script.pyc'
                         ]):
    if not file_utils.isExistFile(apk):
        return False
    if not file_utils.isExistDir(srcDir):
        return False
    with zipfile.ZipFile(apk, 'a', zipfile.ZIP_DEFLATED) as f:
        name_list = f.namelist()
        for file in os.listdir(srcDir):
            targetFile = os.path.join(srcDir, file)
            if os.path.isfile(targetFile):
                if file in ignoreList:
                    # 如果在忽略列表中
                    log_utils.getLogger().debug(
                        'addRootFileToApkRoot: %s is in the ignore list' %
                        file)
                    continue
                if file in name_list:
                    log_utils.getLogger().warning(
                        'addRootFileToApkRoot :%s is in the name_list, zipFile %s has a same name file!'
                        % (file, apk))
                    raise PackException(
                        pack_exception.ZIP_DEFLATED_ADD_FILE_EXCEPTION,
                        'addRootFileToApkRoot :%s is in the name_list, zipFile %s has a same name file!'
                        % (file, apk))
                else:
                    f.write(targetFile, file)
            else:
                continue
        return True
Exemplo n.º 3
0
def addFilesToApkRoot(apk, srcDir):
    if not file_utils.isExistFile(apk):
        log_utils.getLogger().debug('%s not exist' % apk)
        return False
    if not file_utils.isExistDir(srcDir):
        log_utils.getLogger().debug('%s not exist' % srcDir)
        return False
    with zipfile.ZipFile(apk, 'a', zipfile.ZIP_DEFLATED) as f:
        name_list = f.namelist()
        for parent, dirnames, filenames in os.walk(srcDir):
            for file in filenames:
                sourceFile = os.path.join(parent, file)
                targetFile = sourceFile[len(srcDir):]
                if targetFile in name_list:
                    log_utils.getLogger().debug('%s was existed in root' % targetFile)
                    return False
                else:
                    f.write(sourceFile, targetFile)
                    log_utils.getLogger().debug('add file %s to apk root' % targetFile);
        return True