# ohos_build_file_pusher **Repository Path**: hongwen000/ohos_build_file_pusher ## Basic Information - **Project Name**: ohos_build_file_pusher - **Description**: OpenHarmony自动化文件推送工具,提高开发效率。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2023-12-29 - **Last Updated**: 2024-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: OpenHarmony ## README # OpenHarmony 构建文件推送工具 ## 概述 OpenHarmony 构建文件推送工具旨在简化OpenHarmony项目的开发流程。该工具在重新编译OpenHarmony后,能够检测构建产物(如动态链接库)的更改,并将这些更改的文件推送到设备上。这种方法减少了重复刷机和应用安装所需的时间。 ## 工作原理 该工具基于扫描编译产物的时间戳运行。在重新编译OpenHarmony之前,必须至少运行一次该工具,以便于后续检测修改过的文件。该工具需要同时访问编译产物和设备上的文件,如果你的OpenHarmony构建在服务器上,可以参考下文的服务器端编译开发场景。 ## 系统要求 - Python 3.8或更高版本(在Python 3.11上测试过)。 - OpenHarmony环境,并且系统路径中包含`hdc`。 - 访问和推送目标设备文件所需的权限(`hdc`在smode下以root权限运行)。 - 依赖 `jsonschema`,请安装该库: `pip install jsonschema` ## 功能特性 | 功能 | 描述 | 状态 | |-------------------|------------------------------------------------------|------| | 变更检测 | 检测设备上现有文件在编译后的变更 | ✅ | | 新文件检测 | 识别新添加的文件 | ❌ | ## 使用方法 以下表格定义了工具的使用参数: | 参数 | 描述 | |-----------------------|----------------------------------------------------| | `-t`, `--connectkey` | 目标设备的设备序号(必需)。 | | `-d`, `--build_dir` | 包含OpenHarmony构建文件的目录(必需)。 | | `--build_package_dir` | OpenHarmony构建的镜像目录,反映设备的目录结构。默认为 build_dir下的'packages/phone'文件夹。 | | `-p`, `--push` | 可选标志,用于在无需人工确认的情况下将新文件推送到设备。 | ## 示例命令 1. 对于本地连接的设备: ``` python hdc_push_buildfiles.py -t 150100424a5444345209d957be1db900 -d /mnt/nvme1/openharmony/out/rk3568/ ``` 2. 对于通过网络连接的设备: ``` python hdc_push_buildfiles.py -t '127.0.0.1:61752' -d /mnt/nvme1/openharmony/out/rk3568/ ``` ![运行截图](img/screenshot.png) ## 服务器端编译开发场景 在OpenHarmony的开发中,一种常见的模式是在服务器端进行编译,而将设备连接至本地计算机。由于该工具需要运行在服务器端服务器,从而访问服务器生成的编译产物,因此在该场景下无法直接通过`hdc`连接设备。为了解决这一限制,我们提供了一个基于网络转发的方法,允许服务器通过`hdc`与设备建立连接。具体操作步骤如下: 1. **设置设备端hdc TCP监听:** 在本地计算机上打开`hdc shell`,执行命令 `param set persist.hdc.mode all` 以使OpenHarmony设备的hdc守护进程监听TCP端口。 2. **重启OpenHarmony设备:** 重启OpenHarmony设备以重新启动hdc守护进程。 3. **确保设备网络连接:** 确保OpenHarmony设备已连接至网络,可以通过开发板的有线接口或设备设置中的WiFi功能实现。hdc自带的端口转发功能在4.0 Release版本下尝试过,但无法正常工作。 4. **获取设备IP地址:** 在本地计算机的`hdc shell`中执行`ifconfig`命令,查看`eth`或`wlan`网口的IP地址,并确保该IP地址与本地计算机位于同一可互访的子网中。 5. **设置SSH远程转发:** 在服务器端选择一个用于`hdc`的端口,并使用SSH设置远程端口转发。命令格式为 `ssh -R remote_port:oh_device_ip:5555 server`。例如,若设备IP为192.168.61.28,选择的远程端口为19464,服务器名为server1,则命令为: ``` ssh -R 19464:192.168.61.28:5555 server1 ``` 6. **验证连接:** 在服务器server1上,使用命令 `hdc tconn 127.0.0.1:19464` 来连接至本地的OpenHarmony设备。通过执行`hdc shell`来检查是否成功建立连接。 ## 安装 克隆仓库或将源代码下载到本地机器。确保安装了Python 3.8或更高版本,并且脚本具有执行权限。 ## 贡献 欢迎大家测试修改代码!