简介
hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与真实设备或者模拟器进行交互。
环境准备
hdc工具通过HarmonyOS SDK获取,存放于SDK的toolchains目录下,使用时将SDK的toolchains目录添加到环境变量。
- Windows环境变量设置方法:
在此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量中,添加HDC端口变量名为:HDC_SERVER_PORT,变量值可设置为任意未被占用的端口,如7035。
环境变量配置完成后,关闭并重启DevEco Studio。
注意事项
- 使用hdc,如果出现异常,可以尝试通过hdc kill -r命令杀掉并重启hdc服务。
- 如果出现hdc list targets获取不到设备信息的情况,可以通过任务管理器查看是否有hdc进程存在。若进程存在,则通过hdc kill -r命令杀掉该进程。
说明
- 命令行中被[]修饰的参数表示可选参数。
- 命令行中的参数若是斜体,表示在使用时该参数需替换为具体的信息,例如:file send local remote命令中的local和remote,使用时需替换为本地待发送和远端待接收的文件路径。
简单使用
以真机为例:真机用的hmscore文件夹下的3.1.0,如果是开发板则是OpenharmonySDK安装路径下的设备版本:9/10\toolchains\hdc.exe
查找HDC位置:打开Setting,SDK存放位置下找到\hmscore\3.1.0\toolchains
在当前目录打开CMD 命令窗:查看真机版本和类型:(如果是Windows PowerShell,则:.\hdc -v)
$>hdc -v
Ver: 1.2.0a
$>hdc list targets
54g5h4f54h44f54hrrty4 device
$>hdc -c shell
getprop hw_sc.build.os.apiversion
getprop hw_sc.build.os.releasetype
HWPCT:/ $ getprop hw_sc.build.os.apiversion
6
HWPCT:/ $ getprop hw_sc.build.os.releasetype
Release
开发指导
全局option
Option | 说明 |
---|---|
-t [key] [command] | 指定连接唯一标识的目标设备。 |
-h | 打印hdc帮助信息。 |
-v | 打印hdc版本信息。 |
-n/-c | 手机/平板镜像为3.1及以上版本时,如果开发者需要操作(安装/卸载等)API 9的应用,使用 -n或不带 -n; |
-n/-c | 手机/平板镜像为3.1及以上版本时,如果开发者需要操作(安装/卸载等)应用为API 8及以下版本,使用 -c; |
-n/-c | 手机/平板镜像为3.1之前版本,如果开发者需要操作(安装/卸载等)应用为API 8及以下版本,使用 -c。 |
1.显示hdc相关的帮助信息,命令格式如下:
hdc -h
-
返回值:
返回hdc的帮助信息。 -
使用方法:
hdc -h
2. 显示hdc的版本信息,命令格式如下:
hdc -v
-
返回值:
返回hdc的版本信息。 -
使用方法:
hdc -v
3. 连接设备时,若仅有一台,无需指定设备标识。若有多台,一次仅能连接一台,每次连接时需要指定连接设备的标识,命令格式如下:
hdc -t [key] [command]
- 参数
参数名 | 说明 |
---|---|
key | IP地址或USB序列号。 |
command | hdc支持的命令。 |
-
返回值:
若连接的设备不存在,返回 Invalid arguments ***。若附件的命令不存在,返回unknown command ***。 -
使用方法:
该方法需要与具体的操作命令搭配使用,下面以shell命令举例:
hdc list targets (获取设备信息)
hdc -t [key] shell (-t后面添加的key需要替换为查询到的某一个设备信息)
说明
一台开发机可连接多个设备,每个设备有唯一的标识。如果通过网络连接设备,标识为IP地址,如果通过usb连接,标识为USB序列号。该命令需要跟随具体的操作命令。
查询相关命令行
命令 | 说明 |
---|---|
help | 打印hdc帮助信息。 |
version | 打印hdc版本信息。 |
list targets [-v] | 查询已连接的所有目标设备,添加-v选项,则会打印设备详细信息。 |
显示所有已经连接的设备列表,命令格式如下:
hdc list targets[-v]
-
返回值
若没有查询到设备信息,返回[Empty]。若查询到已经连接的的设备,返回设备列表。 -
使用方法:
hdc list targets
hdc list targets -v
服务进程相关命令
命令 | 说明 |
---|---|
target mount | 读写模式挂载系统分区。 |
target boot | 重启目标设备,查看目标列表可用list targets命令。 |
smode [off] | 授予设备端hdc后台服务进程root权限, 使用off参数取消授权。 |
kill | 终止hdc服务进程。 |
- 以读写模式挂载系统分区,命令格式如下:
hdc target mount
-
返回值
挂载成功,返回remount succeeded。挂载失败,返回具体的失败信息。 -
使用方法:
hdc target mount
- 授予设备端hdc后台服务进程root权限,命令格式如下:
hdc smode [off]
- 使用方法:
hdc smode
hdc smode off // 取消root权限
- 终止hdc服务进程,命令格式如下:
hdc kill [-r]
-
返回值
服务进程终止成功,无返回值。服务进程终止失败,返回具体的失败信息。 -
使用方法:
hdc kill
hdc kill -r
网络相关命令
命令 | 说明 |
---|---|
fport ls | 展示全部“端口转发主机端口转发数据到设备侧端口”的转发任务。 |
fport local remote | 端口转发主机端口转发数据到设备侧端口。 |
fport rm local remote | 删除指定“端口转发主机端口转发数据到设备侧端口”的转发任务。 |
rport ls | 展示全部“端口转发设备侧端口转发数据到主机端口”的转发任务 |
rport local remote | 端口转发设备侧端口转发数据到主机端口 |
rport rm local remote | 删除指定“端口转发设备侧端口转发数据到主机端口”的转发任务 |
文件相关命令
命令 | 说明 |
---|---|
file send local remote | 从本地发送文件至远端设备。 |
file recv remote local | 从远端设备发送文件至本地。 |
- 从本地发送文件至远端设备,命令格式如下:
hdc file send local remote
- 参数
参数名 | 说明 |
---|---|
local | 本地待发送的文件路径。 |
remote | 远程待接收的文件路径。 |
-
返回值
文件发送成功,返回传输成功的结果信息。文件发送失败,返回传输失败的具体信息。 -
使用方法:
hdc file send E:\example.txt /data/local/tmp/example.txt
- 从远端设备发送文件至本地,命令格式如下:
hdc file recv remote local
参数
参数名 | 说明 |
---|---|
local | 本地待接收的文件路径。 |
remote | 远程待发送的文件路径。 |
-
返回值
文件接收成功,返回传输成功的结果信息。文件接收失败,返回传输失败的具体信息。 -
使用方法:
hdc file recv /data/local/tmp/a.txt ./a.txt
app相关命令
命令 | 说明 |
---|---|
install packageFile | 安装指定的应用package文件。 |
uninstall packageName | 卸载指定的应用包package包名。 |
- 安装HarmonyOS package,命令格式如下:
hdc install packageFile
参数
参数名 | 说明 |
---|---|
packageFile | HarmonyOS应用安装包文件。 |
-
返回值:
packageFile安装成功,无返回值。packageFile安装失败,返回具体的失败信息。 -
使用方法,以安装com.example.hello包为例:
hdc install E:\com.example.hello.hap
- 卸载HarmonyOS应用,命令格式如下:
hdc uninstall packageName
- 参数:
参数名 | 说明 |
---|---|
packageName | 应用安装包包名。 |
-
返回值:
packageName卸载成功,无返回值。packageName卸载失败,返回具体的失败信息。 -
使用方法,以卸载com.example.hello包为例:
hdc uninstall com.example.hello
调试相关命令
命令 | 说明 |
---|---|
shell [COMMAND] | 交互命令,COMMAND表示需要执行的单次命令。其中当OS镜像API≥9时,不支持交互式进入设备,仅支持交互式命令。 |
jpid | 显示可调试应用列表。 |
track-jpid | 动态显示可调试应用列表。 |
hilog [options] | 打印设备端的日志信息,options表示hilog支持的参数,可通过hdc hilog -h查阅支持的参数列表 。 |
- 抓取log信息,命令格式如下:
hdc hilog [options]
-
返回值:
返回抓取到的日志信息。 -
使用方法:
hdc hilog
- 交互命令,命令格式如下:
hdc shell [COMMAND]
- 返回值:
返回shell后面执行命令的结果信息。 - 使用方法:
hdc shell ps -ef
hdc 其他操作
hdc discover
hdc tconn
hdc bugreport
hdc jpid
hdc keygen FILE
获取/设置设备param
param --help
Command not found
Command list:
param ls [-r] [name] --display system parameter //显示某个或所有系统参数信息
param get [name] --get system parameter //获取某参数信息
param set name value --set system parameter //设置某参数值
param wait name [value] [timeout] --wait system parameter //
param dump [verbose] --dump system parameter
param shell [name] --shell system parameter
//查看系统参数persist.sys.hilog.debug.on信息
#param ls -r persist.sys.hilog.debug.on
Parameter information:
selinux : u:object_r:hilog_param:s0 //selinux权限信息
dac : shell(rww) log(rww) (r-w) //(Discretionary Access Control)自主访问控制方式管理
name : persist.sys.hilog.debug.on //param名称
value: false //param当前值
获取系统参数persist.sys.hilog.debug.on值
#param get persist.sys.hilog.debug.on
false
设置系统参数persist.sys.hilog.debug.on值为true,并param get确认
#param set persist.sys.hilog.debug.on true
Set parameter persist.sys.hilog.debug.on true success
#param get persist.sys.hilog.debug.on
true
查看系统运行bit模式
param get const.product.cpu.abilist
arm64-v8a
替换开机logo
开机logo文件源码路径:
device\board\hihope\rk3568\kernel\logo.bmp
device\board\hihope\rk3568\kernel\logo_kernel.bmp
由于替换后增量编译对应的img文件未更新,因此需要单独编译后更新或删除/out重新编译-打包-烧录
注意:开机logo图片对分辨率和文件格式要求未知,替换需谨慎
替换开机动画
开机动画文件源码路径:
foundation/graphic/graphic_2d/frameworks/bootanimation/data/bootpic.zip
挂载系统根目录
hdc shell mount -o remount,rw /
修改bootpic.zip权限
hdc shell chmod 777 /system/etc/init/bootpic.zip
替换设备开机动画
hdc file send C:\Users\xxx\Desktop\hdcLog\bootpic.zip /system/etc/init/bootpic.zip
其他资料链接
aa工具
bm工具
param工具
HDC-OpenHarmony设备连接器
自动化测试框架使用指导
SmartPerf性能工具使用指导
wukong稳定性工具使用指导
ADB 用法大全