# 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




## 📖 项目简介
**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文件分析变得简单高效**
**🤝 欢迎贡献代码和提出改进建议**