登录 立即注册

首页 > 绿虎论坛 > 电脑 > 鸿蒙PC (发帖)

标题: 使用 CodeArts IDE 的 binary-sign-tool 命令为任意 ELF 签名,让其有权限在鸿蒙 HiShell 中执行

作者: @Ta

时间: 1天前发布,19小时前修改

点击: 178

需要鸿蒙6系统,鸿蒙5不支持。打开开发者模式后,从应用商店的应用尝鲜里安装 CodeArts IDE。如果你安装过 Termony,打不开 CodeArts IDE 的终端,请先卸载 Termony 然后重启电脑。

注意:签名只是让ELF有权限运行,不能让原本就不兼容鸿蒙的ELF在鸿蒙里正常运行。
如果ELF不是静态链接的程序,并且依赖glibc,那大概率不能在鸿蒙内正常运行。
如果ELF依赖其他.so库,那所有.so库也都需要签名,并且需要配置LD_LIBRARY_PATH环境变量指向so所在文件夹。

签名命令:

binary-sign-tool sign -inFile ELF文件名 -outFile ELF文件名 -selfSign 1

批量签名命令:

签名当前目录及其子目录下的所有ELF文件:

find . -type f -exec file '{}' ';' | grep --line-buffered ': ELF ' | awk -F': ELF ' '{print $1}' | while read f; do echo "$f"; binary-sign-tool sign -inFile "$f" -outFile "$f" -selfSign 1; done

示例:

以这个从 Termony 项目里提取的 busybox 命令为例:busybox(1.77 MB)

签名前:

image.png(50.55 KB)

签名:

binary-sign-tool sign -inFile busybox -outFile busybox -selfSign 1

image.png(337.26 KB)

签名后:

image.png(248.4 KB)


[隐藏样式|查看源码]


『回复列表(1|隐藏机器人聊天)』

1.

已知限制:

  1. 自签名ELF似乎没有JIT权限。想要JIT权限还是得打包成public hnp塞到hap里安装。

ff60da1e6708913ed44598e698f7573b.png(121.92 KB)

  1. 自签名ELF似乎也没有调用 tcsetpgrp、tcsetattr 等终端控制 API 的权限,导致 htop 命令不能正常输出,less 命令完全无法使用。打包成public hnp塞到hap里安装是没问题的。

image.png(39.56 KB)

(/@Ta/2025-12-15 23:29//)

回复需要登录

12月16日 03:53 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1