imetting_backend/app/utils/apk_parser.py

44 lines
1.3 KiB
Python
Raw Permalink Normal View History

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