鸿蒙应用开发中,HAP包的解包、打包和签名是必不可少的环节,而对So库的加固则是提升应用安全性的关键。本文结合官方工具,带你快速掌握完整流程,让HAP包处理更高效、应用更安全。
一、HAP解包:快速获取内部结构
解包是分析或修改HAP包的基础,鸿蒙官方工具app_unpacking_tool.jar
能帮你轻松实现。
核心命令
java -jar app_unpacking_tool.jar --mode hap --hap-path 目标HAP路径 --out-path 解包目录 --force true
实操示例
假设要解包test.hap
到unpacked_dir
文件夹,命令如下:
"C:\Program Files\Huawei\DevEco Studio\jbr\bin\java.exe" -jar "D:\tools\app_unpacking_tool.jar" --mode hap --hap-path D:\test.hap --out-path D:\unpacked_dir --force true
关键参数
--mode hap
:固定参数,指定解包类型为HAP--hap-path
:必填,待解包的HAP文件路径--out-path
:必填,解包后文件的存放目录--force true
:可选,强制覆盖已存在的输出目录
二、HAP打包:区分模型是关键
打包需用app_packing_tool.jar
,但要根据HAP包的模型(Stage/FA)选择参数,核心区别在于配置文件:
- Stage模型:核心配置为
module.json
- FA模型:核心配置为
config.json
Stage模型打包命令
java -jar app_packing_tool.jar --mode hap --json-path module.json路径 --resources-path 资源目录 --ets-path ets代码目录 --lib-path 库目录 --out-path 输出HAP路径 --force true
FA模型打包命令
java -jar app_packing_tool.jar --mode hap --json-path config.json路径 --dex-path dex文件目录 --lib-path 库目录 --resources-path 资源目录 --out-path 输出HAP路径 --force true
注意事项
打包参数需根据解包后的实际文件结构调整,例如解包后若有pack.info
或resources.index
,需添加--pack-info-path
和--index-path
参数。
三、HAP签名:合法安装的前提
签名是HAP包安装到设备的必要步骤,使用hap-sign-tool.jar
工具,需提前准备证书(.cer)、配置文件(.p7b)和密钥库(.p12)。
签名命令示例
"C:\Program Files\Huawei\DevEco Studio\jbr\bin\java.exe" -jar "D:\tools\hap-sign-tool.jar" sign-app -keyAlias myalias -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile D:\cert.cer -profileFile D:\profile.p7b -inFile D:\unSigned.hap -keystoreFile D:\keystore.p12 -outFile D:\signed.hap -keyPwd 123456 -keystorePwd 123456
核心参数说明
-signAlg
:签名算法,推荐SHA256withECDSA
-mode localSign
:本地签名模式,使用本地密钥库-inFile
/-outFile
:分别指定待签名HAP和签名后HAP的路径-keyPwd
/-keystorePwd
:密钥密码和密钥库密码,需与创建时一致
四、So库加固:用Virbox Protector筑牢安全防线
若应用包含So库,建议在解包后、打包前进行加固,流程为:解包→加固So库→替换原文件→打包→签名。
Virbox Protector加固命令
"C:\Program Files\senseshield\Virbox Protector 3\bin\virboxprotector_con.exe" "原So库路径" -m "需混淆函数" --imp-protect=1 --mem-check=1 --detect-dbg=1 --strip-dbginfo=1 --pack=0 -o "加固后So库路径"
实用功能解析
--imp-protect=1
:保护导入表,防止反编译分析--mem-check=1
:校验程序完整性,抵御篡改--detect-dbg=1
:检测调试行为,提升抗逆向能力-m
:指定函数进行代码混淆,增强隐蔽性--pack=0
:关闭压缩(必选,避免与鸿蒙系统冲突)
五、HAP安装:简单一步搞定
签名完成后,用hdc
工具安装:
hdc install D:\signed.hap
掌握以上流程,不仅能顺畅处理HAP包的解包、打包和签名,还能通过Virbox Protector对So库进行加固,让你的鸿蒙应用既合规又安全。赶紧动手试试吧!