#过年不停更# OpenHarmony使用交叉编译的三方二进制丰富系统命令 原创 精华

碼磚民工
发布于 2022-2-16 08:39
浏览
7收藏

【春节不停更,此文正在参加「星光计划-春节更帖活动」】

@toc

一、简介

L2(3.0) 设备开发调试时,想修改文档内容。往往需要windows上修改好,然后再通过hdc_std.exe发送到开发板中去,类似的命令缺失很多。最主要是L2不完善,基本命令不丰富。
该文档以添加vi命令为例,利用别人交叉编译好的busybox来给系统添加vi命令。

二、编译

编译,实际上是创建vi到busybox的链接,交叉编译好的busybox见附件。

2.1 编译配置:test\example\partB\busybox\BUILD.gn


import("//build/ohos.gni")
ohos_prebuilt_executable("busybox.exe") {
  source = "./busybox"
  symlink_target_name = [
      "vi"
  ]
  install_enable = true
  subsystem_name = "sub_example"
  part_name = "partB"
}

group("busybox") {
  deps = [
    ":busybox.exe"
  ]
}

2.2 编译配置: test\example\ohos.build

{
    "subsystem": "sub_example",
    "parts": {
        "partB": {
            "module_list": [
                "//test/example/partB/module:module_lib",
                "//test/example/partB/busybox:busybox"
		
            ],
            "inner_kits": [
                {
                    "type": "so",
                    "name": "//test/example/partB/module:module_lib",
                    "header": {
                        "header_files": [
                            "module.h"
                        ],
                        "header_base": "//test/example/partB/module/include"
                    }
                }
            ],
            "system_kits": [],
            "test_list": []
        },
        "partA": {
            "module_list": [
                "//test/example/partA/feature1:libhelloworl1_lib",
                "//test/example/partA/feature2:helloworld2_bin"
            ],
            "inner_kits": [],
            "system_kits": [],
            "test_list": []
        }
    }
}

这里的编译配置是在【OpenHarmony 设备开发之helloworld】基础上添加的。也可以在其他子系统中添加。

2.3 全量编译

./build.sh --product-name Hi3516DV300 --ccache

#过年不停更# OpenHarmony使用交叉编译的三方二进制丰富系统命令-鸿蒙开发者社区

三、重新烧写系统后

进入系统终端,执行:vi --help
#过年不停更# OpenHarmony使用交叉编译的三方二进制丰富系统命令-鸿蒙开发者社区

vi命令已经有了,可以使用了。
使用别人编译好的闭源动态库参考:【如何使用的闭源库】

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
busybox.rar 589.9K 34次下载
已于2022-11-18 11:06:37修改
9
收藏 7
回复
举报
4条回复
按时间正序
/
按时间倒序
民之码农
民之码农

666

1
回复
2022-2-16 11:04:09
科技维度
科技维度

大佬,等待更新

 

1
回复
2022-3-22 16:29:50
胡泉河_2021
胡泉河_2021

大佬, busybox 的交叉编译是不是要鸿蒙环境里面编译成鸿蒙专用的可执行文件?

回复
2022-8-11 16:44:37
碼磚民工
碼磚民工 回复了 胡泉河_2021
大佬, busybox 的交叉编译是不是要鸿蒙环境里面编译成鸿蒙专用的可执行文件?

我感觉是相同的内核,可能是一类构架的芯片的能识别的可执行程序格式差不多,如果没有依赖库偏差,可能就能运行。用鸿蒙环境编译,不会存在格式问题,也不存在依赖库找不到的问题(不同标准库的加载器不同)。

已于2022-8-12 10:41:30修改
2
回复
2022-8-12 08:50:52
回复
    相关推荐