讨论广场 问答详情
鸿蒙V6.1版本,内置不了hap
esksjhe 2026-08-17 16:21:41
84 评论 分享

我自己开发了一个录音hap,根据板子的UDID自动签名后放入到SDK里去内置到固件里,结果发现在一块板子上有内置进去,在其他板子上就不行,报错。有没有大佬麻烦看看能不能解决,附件有完整的日志,下图是具体报错

84 评论 分享
相关文件下载
hilog.001.rar
354.04 KB
下载
写回答
全部评论(5)
问题 根因 解决办法
current device is not authorized HAP 签名绑定了板子 A 的 UDID,刷到板子 B 上 去掉 device-id 绑定,改用通用签名
手动重命名 HAP 与本次错误无关 建议保持 bundleName 与文件名一致

最可能的情况:你的自动签名脚本在 device-ids 里写死了第一块板子的 UDID,导致其他板子校验失败。检查一下签名配置文件或签名命令,把设备绑定去掉即可

2026-08-19 16:06:15
4 楼
2026-08-19 15:03:45

可以先到预装目录(根据你的hap会有不同,名字类似/system/app/com.xxx.hapname/),到该目录下直接执行 bm install -p ./xxx.hap看它报什么错。

预装失败大概率是权限配置错误,你可以先在开发板上调试,通过之后再重新打包。配置文件路径/system/etc/app涉及install_list.json,install_list_capability.json,这里面有些系统预装HAP的配置可参考

预装HAP配置 /system/etc/app/目录 
install_list.json install_list_capability.json

手动拷贝文件
PS D:\tmp> hdc shell mount / -o rw,remount
PS D:\tmp> hdc file send install_list_capability.json /system/etc/app/install_list_capability.json

另外要注意检查这个文件有没有错误(sha256sum, 文件大小)。调试好了再去系统源码下修改,仓库vendor/hihope/rk3568(这是dayu200默认的路径,产品变了路径可能不一样)

2026-08-17 17:35:14

换板子了可以重新签名试下,你用的是"自动签名"生成的调试签名,这个 HAP 的签名里绑定了那块板子的 UDID。 你按某块板的 UDID 签出来的 HAP,只有那块板能装上。

2026-08-17 16:54:54
1 楼

哦对了,编译出hap后我有手动重命名hap的名字

2026-08-17 16:31:04