• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# hdc使用指导
2
3
4hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。
5
6
7下文将介绍hdc的环境准备和常用命令及使用举例。
8
9
10## 环境准备
11
12**hdc 工具获取方式:**
13
14通过OpenHarmony sdk获取,hdc在sdk的toolchains目录下。
15
16**使用举例:**
17
18下面以windows侧使用方式举例:
19
20获取windows的sdk,将hdc.exe放到磁盘某个位置即可使用。
21
22
23## 注意事项
24
25- 使用hdc,如果出现异常,可以尝试通过hdc kill命令杀掉hdc服务,或者通过hdc start -r命令重启服务进程进行解决。
26
27- 如果出现hdc list targets获取不到设备信息,通过任务管理器查看是否有hdc进程存在,如果进程存在,可以通过杀掉该进程进行解决。
28
29
30## option相关的命令
31
32option涉及以下命令:
33
34
35- **-h/help -v/version**
36  用于显示hdc相关的帮助、版本信息。
37
38    **表1** 命令说明
39
40  | 返回值 | 返回值说明|
41  | -------- | -------- |
42  | 返回对应信息 | 帮助或者版本信息 |
43
44  使用方法:
45
46
47  ```
48  hdc -h / hdc help
49  ```
50
51
52  ```
53  hdc -v / hdc version
54  ```
55
56- **-l 0-5**
57  用于指定运行时日志等级,默认为LOG_INFO。
58
59    **表2** 命令说明
60
61  | 参数 | 参数说明 |
62  | -------- | -------- |
63  | 0 | LOG_OFF  |
64  | 1 | LOG_FATAL|
65  | 2 | LOG_WARN |
66  | 3 | LOG_INFO |
67  | 4 | LOG_DEBUG|
68  | 5 | LOG_ALL  |
69
70  使用方法:
71
72  ```
73  hdc -l5 start
74  ```
75
76- **-t key**
77  用于连接指定设备标识为key的设备。
78
79    **表3** 命令说明
80
81  | 参数 | 参数说明 |
82  | -------- | -------- |
83  | key | 为 IP地址:port 格式,或者USB序列号 |
84  | **返回值** | **返回值说明** |
85  | ①error:&nbsp;device&nbsp;'\*\*\*'&nbsp;not&nbsp;found<br/>②Nothing&nbsp;to&nbsp;do... | ①设备不存在<br/>②附加的命令不存在 |
86
87  使用方法:
88
89  该option需要与具体的操作命令搭配使用,下面以shell命令举例:
90
91  hdc list targets  (获取设备信息)
92
93  hdc  -t  _key_  shell  (-t后面添加的_key_ 需要替换为上面查询的设备信息)
94
95  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
96  > 一台开发机可支持多个设备连接,每个设备有其唯一的设备标识,如果通过网络与设备连接,其标识为IP地址:port格式,如果通过USB连接则标识为设备sn号。该命令需要跟随具体操作命令。
97
98- **checkserver**
99  用于获取client-server版本。
100
101    **表4** 命令说明
102
103  | 返回值 | 返回值说明|
104  | -------- | -------- |
105  | Client version:  server version: | client-server版本号 |
106
107  使用方法:
108
109  ```
110  hdc checkserver
111  ```
112
113
114## 查询设备列表的命令
115
116查询设备列表涉及以下命令:
117
118
119```
120list targets[-v]
121```
122
123
124显示所有已经连接的目标设备列表
125
126
127  **表5** 命令说明
128
129| 参数 | 参数说明|
130| -------- | -------- |
131| -v | 添加-v选项,则会打印设备详细信息 |
132| **返回值** | **返回值说明** |
133| ①返回设备信息<br/>②[Empty] | ①已经连接的设备列表信息<br/>②没有查询到设备信息 |
134
135
136使用方法:
137
138
139
140```
141hdc list targets
142```
143
144
145
146```
147hdc list targets -v
148```
149
150
151## 服务进程相关命令
152
153服务进程涉及以下命令:
154
155
156- **target mount**
157  以读写模式挂载系统分区。
158
159    **表6** 命令说明
160
161  | 参数 | 参数说明 |
162  | -------- | -------- |
163  | 无 | 无 |
164  | **返回值** | **返回值说明** |
165  | ①Mount&nbsp;finish<br/>②返回具体信息 | ①成功情况下返回的信息<br/>②失败情况下的具体信息 |
166
167  使用方法:
168
169
170  ```
171  hdc target mount
172  ```
173
174- **target boot**
175  设备重启。
176
177  使用方法:
178
179
180  ```
181  hdc target boot
182  ```
183
184- **smode [-r]**
185  授予后台服务进程root权限, 使用-r参数取消授权。
186
187  使用方法:
188
189
190  ```
191  hdc smode
192  ```
193
194
195  ```
196  hdc smode -r
197  ```
198
199- **kill [-r]**
200  终止服务进程。
201
202    **表7** 命令说明
203
204  | 参数 | 参数说明 |
205  | -------- | -------- |
206  | -r | 触发服务重启 |
207  | **返回值** | **返回值说明** |
208  | ①Kill&nbsp;server&nbsp;finish<br/>②返回具体信息 | ①成功情况下返回的信息<br/>②失败情况下的具体信息 |
209
210    使用方法:
211
212  ```
213  hdc kill
214  ```
215
216- **start [-r]**
217  启动服务进程。
218
219    **表8** 命令说明
220
221  | 参数 | 参数说明 |
222  | -------- | -------- |
223  | -r | 如果服务进程已经启动,-r选项会触发服务进程重新启动 |
224  | **返回值** | **返回值说明** |
225  | 无 | 无 |
226
227    使用方法:
228
229  ```
230  hdc start
231  ```
232
233
234## 网络相关的命令
235
236网络部分涉及以下命令:
237
238
239- **tconn host[:port][-remove]**
240  通过【ip地址:端口号】来指定连接的设备
241
242    **表9** 命令说明
243
244  | 参数 | 参数说明 |
245  | -------- | -------- |
246  | host[:port] | 为IP地址:port格式 |
247  | -remove | 表示断开与指定设备的连接 |
248  | **返回值** | **返回值说明** |
249  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 |
250
251  使用方法(举例):
252
253
254  ```
255  hdc tconn 192.168.0.100:8710
256  ```
257
258- **tmode usb**
259  执行后设备端对应daemon进程重启,并首先选用USB连接方式。
260
261    **表10** 命令说明
262
263  | 参数 | 参数说明 |
264  | -------- | -------- |
265  | 无 | 无 |
266  | **返回值** | **返回值说明** |
267  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 |
268
269  使用方法:
270
271
272  ```
273  hdc tmode usb
274  ```
275
276- **tmode port port-number**
277  执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备失败,再选择USB连接。
278
279    **表11** 命令说明
280
281  | 参数 | 参数说明 |
282  | -------- | -------- |
283  | port-number | listen连接的网络端口号 |
284  | **返回值** | **返回值说明** |
285  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 |
286
287  使用方法:
288
289
290  ```
291  hdc tmode port 8710
292  ```
293
294  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
295  > 执行完毕后,远端daemon将会退出并重启,默认启用TCP连接,如果不加上listen端口则listen随机端口。
296
297- **fport localnode remotenode**
298  端口转发,指定 主机端口 转发数据到 设备侧端口。
299
300  使用方法:
301
302
303  ```
304  hdc fport tcp:1234 tcp:1080
305  ```
306
307- **rport remotenode localnode**
308  端口转发,指定 设备侧端口 转发数据到 主机端口。
309
310  使用方法:
311
312
313  ```
314  hdc rport tcp:2080 tcp:2345
315  ```
316
317- **fport ls**
318  列出全部转发端口转发任务。
319
320    **表12** 命令说明
321
322  | 参数 | 参数说明 |
323  | -------- | -------- |
324  | 无 | 无 |
325  | **返回值** | **返回值说明** |
326  | 'tcp:1234 tcp:1080'     [Forward] | 正向端口转发任务 |
327  | 'tcp:2080 tcp:2345'     [Reverse] | 反向端口转发任务 |
328
329  使用方法:
330
331
332  ```
333  hdc fport ls
334  ```
335
336- **fport rm**
337  删除指定端口转发任务。
338
339  使用方法:
340
341
342  ```
343  hdc fport rm tcp:1234 tcp:1080
344  ```
345
346
347## 文件相关的命令
348
349文件部分涉及以下命令:
350
351
352- **file send local remote**
353  发送文件至远端设备。
354
355    **表13** 命令说明
356
357  | 参数 | 参数说明 |
358  | -------- | -------- |
359  | local | 本地待发送文件路径 |
360  | remote | 远程待接收文件路径 |
361  | **返回值** | **返回值说明** |
362  | ①返回具体信息<br/>②返回传输结果 | ①失败情况下的具体信息<br/>②成功传输的结果信息 |
363
364  使用方法(举例):
365
366
367  ```
368  hdc file send E:\a.txt   /data/local/tmp/a.txt
369  ```
370
371- **file recv [-a] remote local**
372  从远端设备接收文件至本地。
373
374    **表14** 命令说明
375
376  | 参数 | 参数说明 |
377  | -------- | -------- |
378  | -a | 文件保留时间戳模式 |
379  | local | 本地待接收文件路径 |
380  | remote | 远程待发送文件路径 |
381  | **返回值** | **返回值说明** |
382  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 |
383
384  使用方法(举例):
385
386
387  ```
388  hdc file recv  /data/local/tmp/a.txt   ./a.txt
389  ```
390
391
392## 应用相关的命令
393
394应用部分涉及以下命令:
395
396
397- **install [-r/-d/-g] _package_**
398  安装OpenHarmony APP package。
399
400    **表15** 命令说明
401
402  | 参数 | 参数说明 |
403  | -------- | -------- |
404  | package | OpenHarmony应用安装包文件名 |
405  | -r | 替换已存在应用 |
406  | -d | 允许降级安装 |
407  | -g | 应用动态授权 |
408  | **返回值** | **返回值说明** |
409  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 |
410
411  使用方法(举例):
412
413
414  ```
415  hdc install hwadmin.hap
416  ```
417
418- **uninstall [-k] package**
419  卸载OpenHarmony应用。
420
421    **表16** 命令说明
422
423  | 参数 | 参数说明 |
424  | -------- | -------- |
425  | package | OpenHarmony应用安装包 |
426  | -k | 保留/data/cache |
427  | **返回值** | **返回值说明** |
428  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 |
429
430  使用方法(举例):
431
432
433  ```
434  hdc uninstall package
435  ```
436
437
438## 调试相关的命令
439
440调试涉及以下命令:
441
442
443- **hilog**
444  支持抓取log信息。
445
446    **表17** 命令说明
447
448  | 参数 | 参数说明 |
449  | -------- | -------- |
450  | 无 | 无 |
451  | **返回值** | **返回值说明** |
452  | 返回具体信息 | 抓取的日志信息 |
453
454  抓取hilog日志:
455
456
457  ```
458  hdc hilog
459  ```
460
461  清理hilog缓存日志:
462
463
464  ```
465  hdc shell "hilog -r"
466  ```
467
468- **shell [_command_]**
469  远程执行命令或进入交互命令环境。
470
471    **表18** 命令说明
472
473  | 参数 | 参数说明 |
474  | -------- | -------- |
475  | command | 需要执行的单次命令 |
476  | **返回值** | **返回值说明** |
477  | 返回具体信息 | shell后面执行命令的结果信息 |
478
479  使用方法:
480
481
482  ```
483  hdc shell
484  ```
485
486- **jpid**
487  获取可调试进程列表。
488
489  使用方法:
490
491
492  ```
493  hdc jpid
494  ```
495
496
497## 常见问题
498
499
500### hdc连接不到设备
501
502- **现象描述**
503  执行 "hdc list targets"命令后结果为:[Empty]
504
505- **解决方法**
506  1. 设备没有被识别:
507      在设备管理器中查看是否有hdc设备,在通用串行总线设备中会有“HDC Device”信息。如果没有,hdc无法连接。此时需要断开并重联PC和OpenHarmony设备之间的USB连接,或者烧写最新的镜像。
508  2. hdc工作异常:
509      可以执行"hdc kill"或者"hdc start -r"杀掉hdc服务或者重启hdc服务,然后再执行hdc list targets查看是否已经可以获取设备信息。
510  3. hdc与设备不匹配:
511      如果设备烧写的是最新镜像,hdc也需要使用最新版本。
512
513
514### hdc运行不了
515
516- **现象描述**
517  点击hdc.exe文件无法运行。
518
519- **解决方法**
520  1. 运行环境异常:
521      linux版本建议ubuntu 18.04以上 64位,其他相近版本也可;libc++.so引用错误请使用ldd/readelf等命令检查库引用 windows版本建议windows10 64位,如果低版本windows winusb库缺失,请使用zadig更新库。对于复合设备,需要使用zadig工具安装libusb-win32驱动。
522  2. 如何运行hdc.exe523      hdc.exe不需要安装,直接放到磁盘上就能使用,也可以添加到环境变量中。通过打开cmd执行hdc命令直接使用。
524
525
526### hdc client如何远程访问hdc server
527
528- **使用场景**
529
530  本地client指定远程server上的设备,执行hdc命令。
531
532- **连接步骤**
533  1. 关闭本地sever:
534      ```
535      hdc kill
536      ```
537  2. **-s [ip:]port -m** 启动远程server:
538      ```
539      hdc -s severIP:8710 -m
540      ```
541  3. **-s [ip:]port command** 指定server执行指令:
542      ```
543      hdc -s severIP:8710 list targets
544      ```
545