2025-12-18 11:58:38 +00:00
|
|
|
|
"""
|
|
|
|
|
|
APK解析工具
|
2025-12-19 09:44:51 +00:00
|
|
|
|
用于从APK文件中提取版本信息(使用 pyaxmlparser)
|
2025-12-18 11:58:38 +00:00
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def parse_apk_with_androguard(apk_path):
|
|
|
|
|
|
"""
|
2025-12-19 09:44:51 +00:00
|
|
|
|
解析APK文件,提取版本信息
|
|
|
|
|
|
使用 pyaxmlparser 库(轻量级,~1MB)
|
2025-12-18 11:58:38 +00:00
|
|
|
|
"""
|
|
|
|
|
|
try:
|
2025-12-19 09:44:51 +00:00
|
|
|
|
from pyaxmlparser import APK
|
2025-12-18 11:58:38 +00:00
|
|
|
|
|
|
|
|
|
|
apk = APK(apk_path)
|
2026-01-16 02:07:41 +00:00
|
|
|
|
|
|
|
|
|
|
# 提取所有需要的信息
|
|
|
|
|
|
package_name = apk.package
|
2025-12-19 09:44:51 +00:00
|
|
|
|
version_code = apk.version_code
|
|
|
|
|
|
version_name = apk.version_name
|
2026-01-16 02:07:41 +00:00
|
|
|
|
app_name = apk.application
|
|
|
|
|
|
min_sdk_version = apk.get_min_sdk_version()
|
|
|
|
|
|
target_sdk_version = apk.get_target_sdk_version()
|
2025-12-18 11:58:38 +00:00
|
|
|
|
|
2026-01-16 02:07:41 +00:00
|
|
|
|
print(f"APK解析成功: package={package_name}, version_code={version_code}, version_name={version_name}, app_name={app_name}")
|
2025-12-18 11:58:38 +00:00
|
|
|
|
|
|
|
|
|
|
return {
|
2026-01-16 02:07:41 +00:00
|
|
|
|
'package_name': package_name,
|
2025-12-18 11:58:38 +00:00
|
|
|
|
'version_code': int(version_code) if version_code else None,
|
2026-01-16 02:07:41 +00:00
|
|
|
|
'version_name': version_name,
|
|
|
|
|
|
'app_name': app_name,
|
|
|
|
|
|
'min_sdk_version': min_sdk_version,
|
|
|
|
|
|
'target_sdk_version': target_sdk_version
|
2025-12-18 11:58:38 +00:00
|
|
|
|
}
|
2025-12-19 09:44:51 +00:00
|
|
|
|
except ImportError:
|
|
|
|
|
|
print("错误: pyaxmlparser 未安装")
|
|
|
|
|
|
print("请运行: pip install pyaxmlparser")
|
|
|
|
|
|
return None
|
2025-12-18 11:58:38 +00:00
|
|
|
|
except Exception as e:
|
2025-12-19 09:44:51 +00:00
|
|
|
|
print(f"APK解析失败: {str(e)}")
|
2025-12-18 11:58:38 +00:00
|
|
|
|
import traceback
|
|
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
return None
|