# qcom_parser_tool **Repository Path**: rulei_zhou/qcom_parser_tool ## Basic Information - **Project Name**: qcom_parser_tool - **Description**: Qualcom ramdump parser tools - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TrustZone Parser GUI
![Python](https://img.shields.io/badge/Python-3.7%2B-blue.svg) ![PyQt6](https://img.shields.io/badge/PyQt6-6.2%2B-green.svg) ![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey.svg) ![License](https://img.shields.io/badge/License-MIT-yellow.svg)
## 📖 项目简介 **TrustZone Parser GUI** 是一个专为高通骁龙平台设计的二进制文件解析工具,提供直观的图形界面来分析系统崩溃数据。该工具集成了6种不同类型的解析器,支持 TrustZone、Ramdump、AOP、RPM、ADSP、CDSP 等多种处理器 dump 文件的解析工作。 ### 🎯 主要目标 - 简化高通平台的崩溃数据分析流程 - 为嵌入式系统工程师提供统一的解析工具 - 降低dump文件分析的技术门槛 - 提高调试和故障排除效率 ### ✨ 核心特性 - 🔧 **多解析器支持** - 集成6种专业解析器 - 🖥️ **现代化GUI** - 基于PyQt6的直观用户界面 - 🌐 **跨平台兼容** - 支持Windows、Linux、macOS - ⚙️ **灵活配置** - JSON驱动的平台配置系统 - 📊 **实时进度** - 可视化解析进度和详细日志 - 🧩 **模块化架构** - 工厂模式,易于扩展新解析器 - 🇨🇳 **中文本地化** - 完整的中文界面和错误提示 ## 🚀 快速开始 ### 系统要求 - **操作系统**: Windows 10+, Ubuntu 18.04+, macOS 10.14+ - **Python版本**: Python 3.7+ - **内存要求**: 最少 512MB 可用内存 - **磁盘空间**: 至少 100MB 可用空间 ### 安装步骤 #### 方式一:开发环境运行 ```bash # 1. 克隆项目 git clone https://github.com/your-repo/tz_parser_gui.git cd tz_parser_gui # 2. 安装依赖 pip install -r requirements.txt # 3. 运行应用 python run.py ``` #### 方式二:打包版本运行 ```bash # 1. 下载打包版本 # 从 Releases 页面下载对应平台的可执行文件 # 2. 直接运行 # Windows: 双击 TrustZoneParser.exe # Linux: ./TrustZoneParser # macOS: open TrustZoneParser.app ``` ### 构建可执行文件 ```bash # 基本构建(单文件) python tools/build.py # 开发模式构建(目录形式,便于调试) python tools/build.py --onedir --console # 清理并重新构建 python tools/build.py --clean # 检查依赖完整性 python tools/build.py --check-deps ``` ## 📖 使用指南 ### 基本操作流程 #### 1. 启动和配置 ``` 1. 启动应用程序 2. 从下拉菜单选择目标平台(如:SM6225) 3. 点击"浏览..."选择包含dump文件的目录 4. 系统自动验证各解析器的输入文件 ``` #### 2. 执行解析 ``` 1. 切换到所需解析器的标签页 2. 确认状态显示为"文件就绪"(绿色) 3. 点击"开始解析"按钮 4. 观察实时进度和日志输出 5. 解析完成后查看输出结果 ``` ### 解析器详解 | 解析器 | 输入文件 | 输出目录 | 主要功能 | |--------|----------|----------|----------| | **TrustZone** | `OCIMEM.BIN` | `../tz_parser` | 解析TrustZone区域内存镜像 | | **Ramdump** | dump路径 | `../ramdump_parser_out` | 解析系统内存转储 | | **AOP** | dump路径 | `../aop_out` | 解析Always-On Processor数据 | | **RPM** | dump路径 | `../rpm_parser` | 解析Resource Power Manager数据 | | **ADSP** | `DDRCS0_0.BIN` | `../ADSP.VT.5.4.3.c1/adsp_proc` | 解析Audio DSP崩溃数据 | | **CDSP** | `DDRCS0_0.BIN` | `../CDSP.VT.2.4.1/cdsp_proc` | 解析Compute DSP崩溃数据 | ### 高级功能 #### 批量解析 - 同时启动多个解析器 - 并行处理不同类型的dump数据 - 统一查看所有输出结果 #### 配置自定义 ```json // config/platform_config.json 示例 { "platform": "sm6225", "description": "SM6225 平台 - 高通骁龙6225", "parsers": { "trustzone": { "tool_path": "path/to/trustzone/tools", "parameters": { "symbols": { "type": "path", "default": "${dump_parent}/symbols" } } } } } ``` ## 🏗️ 技术架构 ### 系统架构图 ``` ┌─────────────────────────────────────────────┐ │ GUI Layer (PyQt6) │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Main Window │ │ ParserPanel │ │ │ └─────────────┘ └─────────────┘ │ │ ↓ ↓ │ │ ┌──────────────────────────────────┐ │ │ │ Factory Layer │ │ │ │ ParserFactory │ │ │ └──────────────────────────────────┘ │ │ ↓ │ │ ┌──────────────────────────────────┐ │ │ │ Parser Layer │ │ │ │ ┌─────────────┐ │ │ │ │ │ BaseParser │ │ │ │ │ └─────────────┘ │ │ │ │ ↓ ↓ ↓ ↓ │ │ │ │ TZ Ram AOP RPM ADSP CDSP │ │ │ └──────────────────────────────────┘ │ │ ↓ │ │ ┌──────────────────────────────────┐ │ │ │ Configuration Layer │ │ │ │ ParameterManager │ │ │ │ platform_config.json │ │ │ └──────────────────────────────────┘ │ └─────────────────────────────────────────────┘ ``` ### 设计模式 - **工厂模式**: 动态创建和管理解析器实例 - **抽象基类**: `BaseParser` 定义统一解析接口 - **模板方法**: 标准化解析流程 - **观察者模式**: GUI通过信号槽观察解析状态 - **配置驱动**: JSON配置文件控制所有行为 ### 核心组件 #### BaseParser (抽象基类) ```python class BaseParser(ABC): def parse(self, dump_path, log_callback=None) -> Dict[str, Any] def run_strings_command(self, input_file, output_file) -> bool def run_parser_script(self, dump_path, input_log, output_file) -> bool ``` #### ParserFactory (解析器工厂) ```python @staticmethod def create_parser(parser_type: str, tool_path: str, platform: str) -> BaseParser: # 动态创建解析器实例 @staticmethod def get_available_parsers() -> List[str]: # 获取所有可用解析器 ``` ## 🛠️ 开发指南 ### 环境配置 ```bash # 安装开发依赖 pip install PyQt6>=6.2.0 PyInstaller>=5.0.0 pip install black flake8 mypy isort # 代码质量检查 black src/ tools/ tests/ flake8 src/ tools/ tests/ mypy src/tz_parser_pyqt6.py isort src/ tools/ tests/ ``` ### 添加新解析器 1. **创建解析器模块** ```python # tools/newparser/parser.py from ..base_parser import BaseParser class NewParser(BaseParser): def get_parser_name(self) -> str: return "NewParser" def get_input_file_name(self) -> str: return "INPUT.BIN" def get_output_dir_name(self) -> str: return "../newparser_out" ``` 2. **注册解析器** ```python # tools/parser_factory.py PARSER_TYPES = { "newparser": ("tools.newparser.parser", "NewParser"), # ... 其他解析器 } ``` 3. **更新配置** ```json { "platform": "your_platform", "parsers": { "newparser": { "tool_path": "tools/newparser", "input_file": "INPUT.BIN", "output_dir": "../newparser_out" } } } ``` ### 测试 ```bash # 功能测试 python test_parameter_parsing.py python test_end_to_end.py python test_parser_architecture.py # 跨平台测试 python tests/test_cross_platform.py -v python tests/test_terminal_fix.py -v ``` ## 📁 项目结构 ``` tz_parser_gui/ ├── run.py # 主启动脚本 ├── requirements.txt # 依赖管理 ├── AGENTS.md # 开发指南 ├── src/ # 源代码目录 │ ├── tz_parser_pyqt6.py # 主GUI程序 │ ├── platform_config.py # 平台配置管理 │ └── __init__.py ├── tools/ # 解析器工具目录 │ ├── base_parser.py # 基础解析器抽象类 │ ├── parser_factory.py # 解析器工厂 │ ├── parameter_manager.py # 参数管理器 │ ├── build.py # 打包构建脚本 │ ├── trustzone/ # TrustZone解析器 │ ├── ramdump/ # Ramdump解析器 │ ├── aop/ # AOP解析器 │ ├── rpm/ # RPM解析器 │ ├── adsp/ # ADSP解析器 │ ├── cdsp/ # CDSP解析器 │ └── spec/ # PyInstaller配置 │ └── tz_parser_pyqt6.spec ├── config/ # 配置文件目录 │ └── platform_config.json # 平台配置 ├── tests/ # 测试目录 │ ├── test_cross_platform.py │ └── test_terminal_fix.py ├── docs/ # 文档目录 │ └── PROJECT_DOCUMENTATION.md ├── test_parameter_parsing.py # 参数解析测试 ├── test_end_to_end.py # 端到端测试 └── test_parser_architecture.py # 架构测试 ``` ## 🔧 配置系统 ### 平台配置文件 **位置**: `config/platform_config.json` **支持的平台**: - **SM6225**: 高通骁龙6225平台 - 可扩展支持其他平台 **配置变量**: - `${tool_path}`: 工具路径 - `${dump_path}`: dump文件路径 - `${dump_parent}`: dump文件父目录 - `${output}`: 输出文件路径 - `${symbols}`: 符号文件路径 - `${input_log}`: 输入日志文件路径 ### 解析器参数 每个解析器支持自定义参数: - **symbols路径**: 符号文件位置 - **错误代码字典**: 错误码到描述的映射 - **目标平台**: 具体的目标硬件平台 - **脚本参数**: Python解析脚本的命令行参数 ## 🧪 故障排除 ### 常见问题 #### 1. 应用启动失败 **问题**: 双击exe文件无响应 **解决方案**: ```bash # 检查Python环境 python --version # 检查PyQt6安装 python -c "import PyQt6; print('PyQt6安装成功')" # 安装缺失的依赖 pip install PyQt6>=6.2.0 ``` #### 2. 解析器创建失败 **问题**: "无法创建解析器"错误 **解决方案**: - 检查 `config/platform_config.json` 文件格式 - 验证 `tool_path` 路径是否正确 - 确认对应的解析器模块文件存在 #### 3. 输入文件未找到 **问题**: 状态标签显示"文件缺失"(橙色) **解决方案**: - 确认选择目录包含对应的输入文件 - 检查文件名是否匹配(如:OCIMEM.BIN) - 验证文件权限和可读性 #### 4. 解析脚本执行失败 **问题**: Python脚本执行错误 **解决方案**: - 检查Python解释器路径配置 - 验证Python版本兼容性 - 查看详细日志中的错误信息 ### 调试技巧 ```bash # 启用详细日志 python tools/build.py --console # 开发模式运行 python run.py --debug # 查看系统环境 python -c "import sys; print('\n'.join(f'{k}={v}' for k, v in sys.path))" ``` ## 📊 性能优化 ### 大文件处理 - 使用进度条显示处理状态 - 避免一次性加载大文件到内存 - 支持流式处理和分块读取 - 提供取消操作的中断机制 ### 内存优化 - 及时释放临时对象 - 使用生成器处理大文本 - 避免循环引用和内存泄漏 - 智能缓存机制 ### 并发处理 - 支持多个解析器并行执行 - 独立线程处理不同解析任务 - 线程安全的日志输出 - 异步更新GUI状态 ## 🤝 贡献指南 ### 开发流程 1. **Fork 项目**到你的GitHub账户 2. **创建功能分支**: `git checkout -b feature/amazing-feature` 3. **开发功能**: 遵循项目代码规范 4. **添加测试**: 确保功能正常工作 5. **提交更改**: `git commit -m "Add amazing feature"` 6. **推送分支**: `git push origin feature/amazing-feature` 7. **创建Pull Request**: 详细描述功能和变更 ### 代码规范 - **缩进**: 4个空格 - **行长度**: 最大120字符 - **命名**: PascalCase类名,snake_case函数/变量名 - **注释**: 优先使用中文注释 - **类型注解**: 推荐使用类型提示 ### 提交规范 ```bash # 功能添加 git commit -m "feat: 添加新的ADSP解析器支持" # 问题修复 git commit -m "fix: 修复Windows路径处理问题" # 文档更新 git commit -m "docs: 更新README.md安装说明" ``` ## 📞 支持和帮助 ### 获取帮助 - **文档**: 查看 `docs/PROJECT_DOCUMENTATION.md` 获取详细技术文档 - **示例**: 参考 `config/platform_config.json` 了解配置格式 - **代码**: 阅读 `tools/README.md` 了解解析器架构 ### 社区支持 - **Issues**: [GitHub Issues](https://github.com/your-repo/tz_parser_gui/issues) - **讨论**: [GitHub Discussions](https://github.com/your-repo/tz_parser_gui/discussions) - **Wiki**: [项目Wiki](https://github.com/your-repo/tz_parser_gui/wiki) ### 联系信息 - **维护者**: 项目维护团队 - **邮箱**: support@example.com - **官方网站**: https://example.com/tz-parser-gui ## 📜 更新日志 ### v2.0.0 (2024-01-31) - ✨ 新增PyQt6图形界面 - 🔧 集成6种解析器支持 - 🌐 实现跨平台兼容性 - ⚙️ 添加配置驱动的参数管理 - 📊 支持实时进度显示 - 🧩 采用模块化工厂模式架构 ### 未来计划 - 🔄 添加更多平台支持 - 🌐 支持英文界面 - 🔌 集成在线更新机制 - 📈 添加使用统计和分析 - 🧪 改进错误诊断和建议 ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ---
**🎯 专为高通骁龙平台设计的专业解析工具** **🚀 让复杂的dump文件分析变得简单高效** **🤝 欢迎贡献代码和提出改进建议**