简介

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]
  • 参数
参数名说明
keyIP地址或USB序列号。
commandhdc支持的命令。
  • 返回值:
    若连接的设备不存在,返回 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服务进程。
  1. 以读写模式挂载系统分区,命令格式如下:
hdc target mount
  • 返回值
    挂载成功,返回remount succeeded。挂载失败,返回具体的失败信息。

  • 使用方法:

hdc target mount
  1. 授予设备端hdc后台服务进程root权限,命令格式如下:
hdc smode [off]
  • 使用方法:
hdc smode  
hdc smode off  // 取消root权限
  1. 终止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从远端设备发送文件至本地。
  1. 从本地发送文件至远端设备,命令格式如下:
hdc file send local remote
  • 参数
参数名说明
local本地待发送的文件路径。
remote远程待接收的文件路径。
  • 返回值
    文件发送成功,返回传输成功的结果信息。文件发送失败,返回传输失败的具体信息。

  • 使用方法:

hdc file send E:\example.txt /data/local/tmp/example.txt
  1. 从远端设备发送文件至本地,命令格式如下:
hdc file recv remote local

参数

参数名说明
local本地待接收的文件路径。
remote远程待发送的文件路径。
  • 返回值
    文件接收成功,返回传输成功的结果信息。文件接收失败,返回传输失败的具体信息。

  • 使用方法:

hdc file recv  /data/local/tmp/a.txt   ./a.txt

app相关命令

命令说明
install packageFile安装指定的应用package文件。
uninstall packageName卸载指定的应用包package包名。
  1. 安装HarmonyOS package,命令格式如下:
hdc install packageFile

参数

参数名说明
packageFileHarmonyOS应用安装包文件。
  • 返回值:
    packageFile安装成功,无返回值。packageFile安装失败,返回具体的失败信息。

  • 使用方法,以安装com.example.hello包为例:

hdc install E:\com.example.hello.hap
  1. 卸载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查阅支持的参数列表 。
  1. 抓取log信息,命令格式如下:
hdc hilog [options]
  • 返回值:
    返回抓取到的日志信息。

  • 使用方法:

hdc hilog 
  1. 交互命令,命令格式如下:
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 用法大全

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐