鸿蒙(HarmonyOS)应用的打包文件格式为.app(类似Android的APK/AAB),其内部结构基于模块化设计,支持跨设备部署。
以下是鸿蒙APP文件的详细解析
一、文件格式概述
1. 扩展名:.hap
2. 本质:ZIP压缩包(可重命名为.zip后解压查看内容)。
3. 开发语言:主要使用ArkTS/TypeScript,部分支持Java/Kotlin。
4. 构建工具:华为提供Hvigor(类似Gradle)或Webpack进行打包。
鸿蒙系统应用的标准扩展名是.hap,全称为HarmonyOS Ability Package
鸿蒙系统的应用打包格式不仅限于.hap,还包括.HAR(Harmony Archive,静态共享包)和.HSP(Harmony Shared Package,动态共享包)。.HAR用于实现多个模块或工程共享资源,而.HSP用于共享代码和资源,需与宿主应用一起发布,与宿主应用同进程且具有相同的包名和生命周期
二、文件内部结构(解压后)
example.app
├── classes.dex # 应用字节码(ArkTS编译后的JS/Java字节码)
├── resources.index # 资源索引表
├── resources # 资源文件(图片、布局、多语言等)
│ ├── base
│ ├── en_US
│ └── zh_CN
├── module.json5 # 模块配置文件(入口、权限、设备适配等)
├── signature # 应用签名信息
│ └── ... # 包含证书和签名文件
└── assets # 原始资源(字体、二进制文件等)
三、核心文件解析
1. module.json
作用:模块入口声明,定义能力、权限、设备类型适配等。
关键字段
{
"module": {
"name": "entry", // 模块名称
"type": "entry", // 入口模块
"deviceTypes": ["phone"], // 支持的设备类型
"abilities": [{
"name": "MainAbility",
"srcEntry": "./ets/MainAbility.ts"
}]
}
}
2. resources.index
作用:资源索引表,优化多设备资源加载效率。
生成方式:由IDE自动生成,支持按设备类型(如手机、平板)匹配资源。
3. classes.dex
内容:ArkTS/TS代码编译后的字节码(JS引擎或方舟编译器优化后的字节码)。
反编译工具:可使用jadx或华为DevEco Studio调试工具查看近似源码。
四、安全机制
1. 签名机制:
(1).必须使用华为提供的hapsigner工具签名。
(2).签名文件(.p7b)和证书(.cer)存储在signature目录。
2. 完整性校验:安装时系统验证签名哈希,防止篡改。
五、解析方法
1. 手动解压
mv example.app example.zip && unzip example.zip
2. 查看资源配置
使用DevEco Studio直接打开.app文件,IDE自动解析资源索引。
3. 反编译字节码
工具:jadx、Bytecode Viewer(仅支持部分Java代码)。
限制:ArkTS编译的JS字节码需通过DevEco调试工具查看。
六、开发工具链
1. IDE:华为DevEco Studio(内置解析、调试、打包功能)。
2. 命令行工具
打包
hvigor assembleHap
签名
hapsigner sign --key key.pem --cert cert.pem --in example.app --out example_signed.app
七、注意事项
逆向限制:鸿蒙应用的部分逻辑可能封装为Native库(.so文件),需结合IDA Pro分析。
跨设备兼容性:module.json5中定义的deviceTypes字段决定应用可运行的设备类型。
法律合规:未经授权的反编译或修改可能违反华为开发者协议。
鸿蒙(Harmony OS)中Native层的SDK详细解析
通过以上解析,开发者可以深入了解鸿蒙应用的打包机制,便于进行安全分析、性能优化或跨设备适配。建议优先使用华为官方工具(如DevEco Studio)进行合法调试和开发。
安卓逆向工具
链接: https://pan.baidu.com/s/1NtCrt7xgxwXoH_kdW8E_-A
提取码: 4d3i
ROM逆向工具
链接: https://pan.baidu.com/s/1NtCrt7xgxwXoH_kdW8E_-A
提取码: 4d3i
Android逆向分析视频教程
链接: https://pan.baidu.com/s/1og7J6mOS8dpRVE6Ulvn9BA
提取码: ztcy
华为鸿蒙2.0开发文档及API
鸿蒙开发者官网
https://developer.harmonyos.com/cn/home
鸿蒙应用开发文档
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/start-first-page-0000000000038014
鸿蒙API文档
https://developer.harmonyos.com/cn/docs/documentation/doc-references/overview-0000001054518434
鸿蒙官网
https://www.harmonyos.com
鸿蒙OS代码仓库
https://www.openatom.org/
https://gitee.com/openharmony
https://openharmony.gitee.com
鸿蒙源码获取方法
https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-0000001050769927
华为鸿蒙操作系统
https://github.com/Awesome-HarmonyOS/HarmonyOS
华为开发者联盟论坛
https://developer.huawei.com/consumer
鸿蒙HarmonyOS官方API文档
https://developer.harmonyos.com/cn/documentation
鸿蒙应用开发工具DevEco Studio
https://developer.harmonyos.com/cn/develop/deveco-studio
Android系统在线源码
http://androidxref.com
http://aospxref.com/
Android系统所有版本
https://www.androidos.net.cn/sourcecode
Android Kernel系统所有版本
https://www.androidos.net.cn/sourcecode
Android系统核心服务
https://www.androidos.net.cn/androidservice
推荐阅读
原文始发于微信公众号(哆啦安全):鸿蒙(HarmonyOS)APP文件格式解析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论