From bafe36ac5a7b1d45ccd15d70329fa458b4801eb1 Mon Sep 17 00:00:00 2001 From: leiguangyu Date: Fri, 14 Oct 2022 10:45:10 +0800 Subject: [PATCH] change name hdc_std to hdc Signed-off-by: leiguangyu Change-Id: If61b48e20ff6f3dd05dcefae5aa6a79924f0f655 --- BUILD.gn | 4 +- README.md | 6 +- README_zh.md | 92 +++++++++++++------------- scripts/build_standalone_linux_host.sh | 6 +- src/common/forward.cpp | 2 +- 5 files changed, 55 insertions(+), 55 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index ba46f9a2..f7812c04 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -144,7 +144,7 @@ ohos_executable("hdcd") { part_name = "hdc" } -ohos_executable("hdc_std") { +ohos_executable("hdc") { use_exceptions = true ldflags = [] libs = [] @@ -242,7 +242,7 @@ ohos_executable("hdc_std") { group("hdc_target") { deps = [ - ":hdc_std", + ":hdc", ":hdcd", ] } diff --git a/README.md b/README.md index ca67cac6..c95373c2 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## Introduction -HDC (OpenHarmony Device Connector) is a command-line tool for developers to connect and debug the device. The PC-side development machine uses the command-line tool hdc_std (for convenience, collectively referred to as hdc below). This tool needs to support deployment on Windows/Linux /Mac and other systems to connect and debug communication with OpenHarmony devices (or simulators). The PC-side hdc tool needs to release corresponding versions for the above development machine operating system platforms, and the device-side hdc daemon needs to follow the device image release including support for the simulator. The following will introduce the commonly used commands and usage examples of hdc. +HDC (OpenHarmony Device Connector) is a command-line tool for developers to connect and debug the device. The PC-side development machine uses the command-line tool hdc (for convenience, collectively referred to as hdc below). This tool needs to support deployment on Windows/Linux /Mac and other systems to connect and debug communication with OpenHarmony devices (or simulators). The PC-side hdc tool needs to release corresponding versions for the above development machine operating system platforms, and the device-side hdc daemon needs to follow the device image release including support for the simulator. The following will introduce the commonly used commands and usage examples of hdc. ## Architecture @@ -41,7 +41,7 @@ Compilation steps of hdc pc executable file: 1. Compile command: Please refer to https://gitee.com/openharmony/build/blob/master/README_zh.md to compile the sdk instructions, execute the specified sdk compile command to compile the entire sdk, hdc will be compiled Pack it inside. -2. Compile: Run the sdk compilation command adjusted above on the target development machine, and the normal compilation of hdc_std will be output to the relevant directory of the sdk platform; Note: Only the windows/linux version tools can be compiled in the ubuntu environment, and the mac version needs to be on the macos development machine Compile. +2. Compile: Run the sdk compilation command adjusted above on the target development machine, and the normal compilation of hdc will be output to the relevant directory of the sdk platform; Note: Only the windows/linux version tools can be compiled in the ubuntu environment, and the mac version needs to be on the macos development machine Compile. ### Getting instructions on pc @@ -58,7 +58,7 @@ For compilation, please refer to the separate section above. Prebuilt is no long [3. Support operating environment](#section161941989593) -The linux version is recommended to be 64-bit above ubuntu 16.04, and other similar versions are also available; libc++.so quotes errors, please use ldd/readelf and other commands to check the library. Windows version is recommended. Windows 10 64-bit is recommended. If the lower version of the windows winusb library is missing, please use zadig to update the library. . +The linux version is recommended to be 64-bit above ubuntu 16.04, and other similar versions are also available; libc++.so quotes errors, please use ldd/readelf and other commands to check the library. Windows version is recommended. Windows 10 64-bit is recommended. If the lower version of the windows winusb library is missing, please use zadig to update the library. . ## More help and docs diff --git a/README_zh.md b/README_zh.md index e6e4ebbb..ad7b1ffd 100644 --- a/README_zh.md +++ b/README_zh.md @@ -13,13 +13,13 @@ ## 简介 -HDC(OpenHarmony Device Connector) 是为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc_std,该工具需支持部署在Windows/Linux/Mac等系统上与OpenHarmony设备(或模拟器)进行连接调试通信。PC端hdc_std工具需要针对以上开发机操作系统平台分别发布相应的版本,设备端hdc daemon需跟随设备镜像发布包括对模拟器进行支持。下文将介绍hdc_std的常用命令及使用举例。 +HDC(OpenHarmony Device Connector) 是为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc,该工具需支持部署在Windows/Linux/Mac等系统上与OpenHarmony设备(或模拟器)进行连接调试通信。PC端hdc工具需要针对以上开发机操作系统平台分别发布相应的版本,设备端hdc daemon需跟随设备镜像发布包括对模拟器进行支持。下文将介绍hdc的常用命令及使用举例。 ## 架构 hdc主要有三部分组成: -1. hdc client部分:运行于开发机上的客户端,用户可以在开发机命令终端(windows cmd/linux shell)下请求执行相应的hdc_std命令,运行于开发机器,其它的终端调试IDE也包含hdc client。 +1. hdc client部分:运行于开发机上的客户端,用户可以在开发机命令终端(windows cmd/linux shell)下请求执行相应的hdc命令,运行于开发机器,其它的终端调试IDE也包含hdc client。 2. hdc server部分:作为后台进程也运行于开发机器,server管理client和设备端daemon之间通信包括连接的复用、数据通信包的收发,以及个别本地命令的直接处理。 @@ -32,9 +32,9 @@ hdc主要有三部分组成: ├── hdc # hdc代码目录 │ └── src │ ├── common # 设备端和host端公用的代码目录 -│ ├── daemon # 设备端的代码目录 +│ ├── daemon # 设备端的代码目录 │ ├── host # host端的代码目录 -│ └── test # 测试用例的代码目录 +│ └── test # 测试用例的代码目录 ``` ### pc端编译说明 @@ -42,9 +42,9 @@ hdc主要有三部分组成: hdc pc端可执行文件编译步骤: -1. 编译命令:编译sdk命令 请参考https://gitee.com/openharmony/build/blob/master/README_zh.md 仓编译sdk说明, 执行其指定的sdk编译命令来编译整个sdk, hdc_std会被编译打包到里面。 +1. 编译命令:编译sdk命令 请参考https://gitee.com/openharmony/build/blob/master/README_zh.md 仓编译sdk说明, 执行其指定的sdk编译命令来编译整个sdk, hdc会被编译打包到里面。 -2. 编译:在目标开发机上运行上面调整好的sdk编译命令, 正常编译hdc_std会输出到sdk平台相关目录下; 注意: ubuntu环境下只能编译windows/linux版本工具,mac版需要在macos开发机上编译。 +2. 编译:在目标开发机上运行上面调整好的sdk编译命令, 正常编译hdc会输出到sdk平台相关目录下; 注意: ubuntu环境下只能编译windows/linux版本工具,mac版需要在macos开发机上编译。 ### pc端获取说明 @@ -66,7 +66,7 @@ linux版本建议ubuntu 18.04以上 64位,其他相近版本也可;libc++.so ### Linux端USB设备权限说明 -在Linux下在非root权限下使用hdc_std会出现无法找到设备的情况,此问题原因为用户USB操作权限问题,解决方法如下: +在Linux下在非root权限下使用hdc会出现无法找到设备的情况,此问题原因为用户USB操作权限问题,解决方法如下: 1. 开启非root用户USB设备操作权限 该操作方法简单易行,但是可能存在潜在安全问题,请根据使用场景自行评估 @@ -76,7 +76,7 @@ linux版本建议ubuntu 18.04以上 64位,其他相近版本也可;libc++.so 2. 永久修改 USB 设备权限 1)使用lsusb命令找出USB设备的vendorID和productID 2)创建一个新的udev规则 - + 编辑UDEV加载规则,用设备的"idVendor"和"idProduct"来替换默认值。MODE="0666"表示USB设备的权限 GROUP代表用户组,要确保此时登录的系统用户在该用户组中 可用 "usermod -a -G username groupname" 将用户添加到用户组中 @@ -90,14 +90,14 @@ linux版本建议ubuntu 18.04以上 64位,其他相近版本也可;libc++.so ``` 3. su 切换到root用户下运行测试程序 ``` - sudo hdc_std list targets + sudo hdc list targets ``` ### 命令帮助 -hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --help查看: +hdc当前常用命令如下,未尽命令使用hdc -h或者hdc --help查看: -**表 1** hdc_std常用命令列表 +**表 1** hdc常用命令列表 @@ -108,73 +108,73 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he - -

Option

-t key

用于指定连接该指定设备识Key

-

举例:hdc_std -t *****(设备id) shell

+

举例:hdc -t *****(设备id) shell

-s socket

用于指定服务监听的socket配置

-

举例:hdc_std -s ip:port

+

举例:hdc -s ip:port

-h/help -v/version

用于显示hdc_std相关的帮助、版本信息

+

用于显示hdc相关的帮助、版本信息

-l 0-5

用于指定运行时日志等级

-

举例: hdc_std -l5 start

+

举例: hdc -l5 start

checkserver

用于获取client-server版本

-

举例: hdc_std checkserver

+

举例: hdc checkserver

list targets[-v]

显示所有已经连接的目标设备列表,-v选项显示详细信息

-

举例: hdc_std list targets

+

举例: hdc list targets

target mount

以读写模式挂载/vendor、/data等分区,因为安全性问题,需要挂在根目录或者/system分区
请单独使用'hdc_std shell mount -o rw,remount /'等命令

-

举例: hdc_std target mount

+

以读写模式挂载/vendor、/data等分区,因为安全性问题,需要挂在根目录或者/system分区
请单独使用'hdc shell mount -o rw,remount /'等命令

+

举例: hdc target mount

target boot

重启设备

-

举例: hdc_std target boot

+

举例: hdc target boot

smode [-r]

授予后台服务进程root权限, 使用-r参数取消授权

-

举例: hdc_std smode

+

举例: hdc smode

kill [-r]

终止hdc服务进程, -r选项会触发再次重启hdc server

-

举例: hdc_std kill

+

举例: hdc kill

start [-r]

启动hdc服务进程, -r选项会触发重启hdc server

-

举例: hdc_std start

+

举例: hdc start

tconn host[:port][-remove]

通过【ip地址:端口号】来指定连接的设备

使用TCP模式连接设备,需在USB模式工作下使用tmode tcp切换至TCP工作模式,或者在
系统属性值中设置persist.hdc.mode属性值为tcp,如果需要监听固定TCP端口需要再设置
persist.hdc.port的端口号,反之则TCP监听端口随机

-

举例: hdc_std tconn 192.168.0.100:10178

+

举例: hdc tconn 192.168.0.100:10178

tmode usb

@@ -190,25 +190,25 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he

file send local remote

从host端发送文件至设备

-

举例: hdc_std file send E:\a.txt /data/local/tmp/a.txt

+

举例: hdc file send E:\a.txt /data/local/tmp/a.txt

file recv [-a] remote local

从设备端拉出文件至本地host端

-

举例: hdc_std file recv /data/local/tmp/a.txt ./a.txt

+

举例: hdc file recv /data/local/tmp/a.txt ./a.txt

fport localnode remotenode

端口转发主机端口 转发数据到 设备侧端口

-

举例: hdc_std fport tcp:1234 tcp:1080

+

举例: hdc fport tcp:1234 tcp:1080

rport remotenode localnode

端口转发设备侧端口 转发数据到 主机端口

-

举例: hdc_std rport tcp:1234 tcp:1080

+

举例: hdc rport tcp:1234 tcp:1080

fport ls

@@ -219,13 +219,13 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he

fport rm

删除指定转发任务

-

举例: hdc_std fport rm tcp:1234 tcp:1080

+

举例: hdc fport rm tcp:1234 tcp:1080

install [-r/-d/-g] package

安装OpenHarmony package

-

举例: hdc_std install E:\***.hap

+

举例: hdc install E:\***.hap

uninstall [-k] package

@@ -236,13 +236,13 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he

hilog

支持查看抓取hilog调试信息

-

举例: hdc_std hilog

+

举例: hdc hilog

shell [command]

远程执行命令或进入交互命令环境

-

举例: hdc_std shell

+

举例: hdc shell

jpid

@@ -253,48 +253,48 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he
-以下是常用hdc_std命令示例,供开发者参考: +以下是常用hdc命令示例,供开发者参考: - 查看设备连接信息 ``` - hdc_std list targets + hdc list targets ``` - 往设备中推送文件 ``` - hdc_std file send E:\a.txt /data/local/tmp/a.txt + hdc file send E:\a.txt /data/local/tmp/a.txt ``` - 从设备中拉取文件 ``` - hdc_std file recv /data/local/tmp/a.txt ./a.txt + hdc file recv /data/local/tmp/a.txt ./a.txt ``` - 安装应用 ``` - hdc_std install E:\***.hap + hdc install E:\***.hap ``` - 查看日志 ``` - hdc_std hilog + hdc hilog ``` - 进入命令行交互模式 ``` - hdc_std shell + hdc shell ``` - TCP网络连接。 ``` - hdc_std tconn 192.168.0.100:10178 + hdc tconn 192.168.0.100:10178 ``` @@ -302,21 +302,21 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he 工具使用过程中碰到问题,可以参考如下流程自助排查: -* step1: 先检查pc(host)端hdc_std 和L2设备端hdcd版本是否一致(-v 查看版本): +* step1: 先检查pc(host)端hdc 和L2设备端hdcd版本是否一致(-v 查看版本): - step1a: 版本不一致请更新使用一致版本再验证; - step1b: 版本一致请继续下面排查step2步骤; * step2: 检查pc(host)端设备管理器设备信息是否正常(设备是否正常加载显示、驱动、id是否正常): - step2a: 设备管理器设备异常或无设备, 请结合板测试设备端串口下确认下usb部分设备枚举上报是否异常; - - step2b: 设备管理器设备正常时, 1)list targets 是否正常;2)hdc_std kill 后重试是否正常; + - step2b: 设备管理器设备正常时, 1)list targets 是否正常;2)hdc kill 后重试是否正常; -**注意:客户端和设备端版本保持一致(hdc_std -v,hdcd -v参数查看版本)!** +**注意:客户端和设备端版本保持一致(hdc -v,hdcd -v参数查看版本)!** ## FAQ - 1. list targets无设备: ``` 请参考上面《使用问题自查说明》小节 1)检查设备是否连接正常;2)host端设备管理器设备信息是否正常;3)两端工具版本是否一致;4)设备端hdcd是否启动正常; - 如果仍然无法解决问题,请尝试下面两种方法进行恢复 1)执行命令hdc_std kill来重启pc侧hdc服务;2)重启端侧设备; + 如果仍然无法解决问题,请尝试下面两种方法进行恢复 1)执行命令hdc kill来重启pc侧hdc服务;2)重启端侧设备; ``` - 2. 同样版本windows下正常,linux下无设备: @@ -333,6 +333,6 @@ hdc_std当前常用命令如下,未尽命令使用hdc_std -h或者hdc_std --he ``` 推送文件前参考执行如下命令: - hdc_std smode - hdc_std shell mount -o rw,remount / + hdc smode + hdc shell mount -o rw,remount / ``` diff --git a/scripts/build_standalone_linux_host.sh b/scripts/build_standalone_linux_host.sh index 1abe91fd..5c790007 100755 --- a/scripts/build_standalone_linux_host.sh +++ b/scripts/build_standalone_linux_host.sh @@ -85,11 +85,11 @@ function build_hdc () export LDFLAGS="-Wl,--copy-dt-needed-entries" export CXXFLAGS="-std=c++17 -ggdb -O0" - g++ ${DEFINES} ${CXXFLAGS} ${INCLUDES} $(find src/common/ src/host/ \( -name "*.cpp" -or -name "*.c" \)) -lusb-1.0 -ldl -lpthread $STATICLIB -o hdc_std + g++ ${DEFINES} ${CXXFLAGS} ${INCLUDES} $(find src/common/ src/host/ \( -name "*.cpp" -or -name "*.c" \)) -lusb-1.0 -ldl -lpthread $STATICLIB -o hdc - if [ -f hdc_std ]; then + if [ -f hdc ]; then echo build success - cp hdc_std $cwddir + cp hdc $cwddir else echo build fail fi diff --git a/src/common/forward.cpp b/src/common/forward.cpp index aac6839b..60d90b7e 100644 --- a/src/common/forward.cpp +++ b/src/common/forward.cpp @@ -323,7 +323,7 @@ bool HdcForwardBase::DetechForwardType(HCtxForward ctxPoint) } else if (sFType == "localabstract") { // daemon shell: /system/bin/socat abstract-listen:linux-abstract - // daemon shell: /system/bin/socat - abstract-connect:linux-abstract - // host: hdc_std fport tcp:8080 localabstract:linux-abstract + // host: hdc fport tcp:8080 localabstract:linux-abstract ctxPoint->type = FORWARD_ABSTRACT; } else if (sFType == "localreserved") { sNodeCfg = harmonyReservedSocketPrefix + sNodeCfg;