前提是已设置ANDROID_HOME环境变量,使用aapt工具获取apk的信息,保存至脚本所在目录下的PackageInfo.txt文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import os import tempfile import re tempFile = tempfile.gettempdir() def get_aapt(): if "ANDROID_HOME" in os.environ: rootDir = os.path.join(os.environ[ "ANDROID_HOME" ], "build-tools" ) for path, subdir, files in os.walk(rootDir): if "aapt.exe" in files: return os.path.join(path, "aapt.exe" ) else : return "ANDROID_HOME not exist" def get_current_package_name(): pattern = re. compile (r "[a-zA-Z0-9\.]+/.[a-zA-Z0-9\.]+" ) os.popen( "adb wait-for-device" ) out = os.popen( "adb shell dumpsys input | findstr FocusedApplication" ).read() package_name = pattern.findall(out)[ 0 ].split( "/" )[ 0 ] return package_name def get_match_apk(package_name): list = [] for packages in os.popen( "adb shell pm list packages -f " + package_name).readlines(): list .append(packages.split( ":" )[ - 1 ].split( "=" )[ 0 ]) apk_name = list [ 0 ].split( "/" )[ - 1 ] os.popen( "adb pull " + list [ 0 ] + " " + tempFile) return tempFile + "\\" + apk_name if __name__ = = "__main__" : os.popen(get_aapt() + \ " dump badging " + \ get_match_apk(get_current_package_name()) + \ " > PackageInfo.txt" ) os.popen( "del " + tempFile + "\\*.apk" ) |
联系客服