Firmware Extractor:多格式Android固件提取的一站式解决方案
面向ROM开发者与安全研究员的专业工具套件
在Android固件分析领域,开发者常面临格式碎片化、工具链复杂、提取流程冗长等痛点。Firmware Extractor作为开源解决方案,通过整合20+专业工具模块,实现了从各类厂商固件中一键提取系统镜像的能力,其核心优势在于对三星.tar.md5、LG.kdz、OPPO.ozip等15+特殊格式的原生支持,以及A/B分区payload.bin、动态分区super.img等复杂结构的自动化处理,显著降低了固件分析的技术门槛。
核心价值解析
跨厂商格式兼容能力
场景:某ROM开发团队需要为不同品牌设备构建自定义系统
问题:三星、LG、华为等厂商采用私有固件格式,传统工具需手动切换适配
解决方案:工具内置kdztools(LG专用)、ruuveal(三星加密镜像处理)等模块,自动识别固件类型并调用对应解析引擎,实现"一键拖入,全格式支持"的无缝体验⚙️
动态分区深度解析
场景:安全研究员需要从Android 12+设备固件中提取vendor分区
问题:动态分区super.img采用稀疏格式与逻辑分区表,传统工具无法直接解包
解决方案:集成lpunpack与simg2img工具链,先将稀疏镜像转换为原始镜像,再按动态分区表拆分出system、vendor、product等独立分区,完整保留文件系统结构
环境配置与核心操作
环境准备
# 克隆项目仓库(包含所有工具子模块)
git clone --recurse-submodules https://gitcode.com/gh_mirrors/fi/Firmware_extractor
cd Firmware_extractor
# 赋予执行权限
chmod +x extractor.sh patcher.sh
chmod +x tools/* # 确保所有工具可执行
基础提取流程
# 基本用法:提取固件到指定目录
./extractor.sh /path/to/firmware.zip ./output_dir
# 高级选项:强制使用指定工具(如处理LG KDZ格式)
./extractor.sh --tool kdztools /path/to/firmware.kdz ./output_dir
# 验证提取结果
ls ./output_dir # 应包含boot.img, system.img等关键镜像
file ./output_dir/system.img # 确认文件类型为ext4文件系统
结果验证方法
- 检查输出目录文件完整性:至少包含boot、system、vendor等核心镜像
- 使用
file命令验证镜像格式:显示"Android sparse image"或"ext4 filesystem" - 挂载验证(需root权限):
mount -o loop system.img /mnt可正常访问文件系统
专业工具模块技术解析
payload-dumper-go
工具原理:基于Go语言实现的A/B分区解析器,通过解析payload.bin中的manifest文件,提取包含的镜像条目
适用场景:处理Google Pixel系列及原生Android设备的OTA更新包
使用限制:需要完整的payload.bin与对应的metadata文件,不支持加密OTA包
simg2img与lpunpack组合
工具原理:simg2img将Android稀疏镜像(sparse image)转换为原始镜像(raw image),lpunpack则依据super.img中的lp_metadata解析动态分区
适用场景:Android 10+设备的动态分区提取
使用限制:需要设备特定的分区布局信息,部分厂商定制化动态分区可能导致解析失败
厂商专用工具集
| 工具名称 | 支持格式 | 核心功能 | 局限性 |
|---|---|---|---|
| kdztools | LG .kdz | 解密并提取KDZ固件中的bin文件 | 不支持最新LG加密算法 |
| ruuveal | 三星.tar.md5 | 移除三星固件签名校验 | 需要对应型号的密钥文件 |
| pacExtractor.py | MTK .pac | 解析联发科打包格式 | 对新型号支持有限 |
典型应用案例
ROM定制开发流程
- 使用Firmware Extractor提取官方固件的system、vendor分区
- 通过patcher.sh对system.img进行解包修改
- 重新打包生成自定义ROM镜像
- 使用工具链中的packsparseimg生成可刷写的稀疏镜像
安全漏洞分析场景
- 提取boot.img进行内核漏洞分析
- 解析system分区中的预装应用APK
- 通过ext2rd工具直接读取ext4镜像中的敏感文件
- 利用otadump分析OTA差分更新包的安全机制
社区支持与贡献指南
Firmware Extractor采用MIT开源协议,欢迎通过以下方式参与项目建设:
- 问题反馈:提交issue时需包含固件格式、错误日志及设备型号
- 代码贡献:通过PR提交新格式支持或工具优化,需遵循PEP 8编码规范
- 文档完善:补充新工具使用说明或格式解析原理
- 密钥分享:贡献新厂商设备的密钥文件至tools/keyfiles目录
项目核心维护者会在48小时内响应issue,重大功能更新周期为季度迭代。用户可通过项目内置的./extractor.sh --update命令获取工具链最新版本。
通过持续优化格式支持与提取效率,Firmware Extractor已成为Android固件分析领域的基础设施工具,其模块化设计确保了对新设备、新格式的快速适配能力,为移动生态系统的开源探索提供了关键技术支撑。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
HY-Embodied-0.5这是一套专为现实世界具身智能打造的基础模型。该系列模型采用创新的混合Transformer(Mixture-of-Transformers, MoT) 架构,通过潜在令牌实现模态特异性计算,显著提升了细粒度感知能力。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00