赞
踩
以下演示内容在window的操作系统
APK
包实现from androguard.core.bytecodes.apk import APK # 获取本地apk路径 apk_path = 'local_path/test.apk' # 加载APK文件 apk = APK(apk_path) # 获取包名(Package Name) package_name = apk.get_package() # 获取应用程序名称(Application Name) application_name = apk.get_app_name() # 获取应用程序版本名称(Version Name) version_name = apk.get_androidversion_name() # 获取应用程序版本号(Version Code) version_code = apk.get_androidversion_code() # 编译版本号(目标SDK版本) target_sdk_version = apk.get_target_sdk_version() # sha1_签名信息 sha1 = apk.get_certificate(apk.get_signature_name()).sha1_fingerprint """ APK架构信息 armeabi:基于ARM架构的32位设备,适用于较旧的ARM处理器。 armeabi-v7a:基于ARM架构的32位设备,适用于大多数ARMv7处理器及以上。 arm64-v8a:基于ARM架构的64位设备,适用于ARMv8处理器及以上。 x86:基于x86架构的32位设备,适用于x86处理器。 x86_64:基于x86架构的64位设备,适用于x86_64处理器。 """ architecture = { "armeabi": False, "armeabi-v7a": False, "arm64-v8a": False, "x86": False, "x86_64": False } apk_files = apk.get_files() for file in apk_files: for key, value in architecture.items(): if value == False and file.startswith('lib/' + key + '/'): architecture[key] = True print('application_name:', application_name) print('package_name:', package_name) print('version_code:', version_code) print('version_name:', version_name) print('target_sdk_version:', target_sdk_version) print('architecture:', architecture) print('SHA1:', sha1)
aapt
命令实现aapt
下载完成后注意配置环境变量!!!
地址:https://www.mediafire.com/file/e8ww8wbgcowbti4/aapt
import os import re import subprocess #获取当前操作系统 current_os = os.name # 根据当前操作系统选择换行符 if current_os == 'nt': # Windows系统 line_break = '\r\n' elif current_os == 'posix': # Linux、Unix-like系统 line_break = '\n' else: # 其他操作系统,默认使用换行符'\n' line_break = '\n' # 使用aapt命令获取APK信息 (apk_path:替换为你的APK文件路径) command = ['aapt', 'dump', 'badging', apk_path] result = subprocess.run(command, capture_output=True) # 解析输出以获取常见信息 output = result.stdout.decode('utf-8', 'ignore') lines = output.split(line_break) package_name = re.search(r"package: name='(.*?)'", lines[0]).group(1) version_code = re.search(r"versionCode='(.*?)'", lines[0]).group(1) version_name = re.search(r"versionName='(.*?)'", lines[0]).group(1) sdk_version = re.search(r"sdkVersion:'(.*?)'", lines[1]).group(1) is_arch32 = lines[len(lines)-2].find("armeabi-v7a") != -1 is_arch64 = lines[len(lines)-2].find("arm64-v8a") != -1 # 打印获取的信息 print("Package Name:", package_name) print("Version Code:", version_code) print("Version Name:", version_name) print("SDK Version:", sdk_version) print("是否支持32位:", is_arch32) print("是否支持64位:", is_arch64)
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。