subsys-toolchain-hdc-guide.md 11.6 KB
Newer Older
D
duangavin123 已提交
1
# hdc_std使用指导
M
mamingshuai 已提交
2

D
duangavin123 已提交
3

D
duangavin123 已提交
4
hdc_std(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。
M
mamingshuai 已提交
5 6


D
duangavin123 已提交
7
下文将介绍hdc_std的环境准备和常用命令及使用举例。
M
mamingshuai 已提交
8 9


D
duangavin123 已提交
10 11 12
## 环境准备

**hdc_std 工具获取方式:**
M
mamingshuai 已提交
13

14
通过OpenHarmony sdk获取,hdc_std在sdk的toolchains目录下。
15

M
mamingshuai 已提交
16 17 18 19
**使用举例:**

下面以windows侧使用方式举例:

20
获取windows的sdk,将hdc_std.exe放到磁盘某个位置即可使用。
M
mamingshuai 已提交
21 22


D
duangavin123 已提交
23 24 25 26 27 28
## 注意事项

- 使用hdc_std,如果出现异常,可以尝试通过hdc_std kill命令杀掉hdc_std服务,或者通过hdc_std start -r命令重启服务进程进行解决。

- 如果出现hdc_std list targets获取不到设备信息,通过任务管理器查看是否有hdc_std进程存在,如果进程存在,可以通过杀掉该进程进行解决。

M
mamingshuai 已提交
29

D
duangavin123 已提交
30
## option相关的命令
M
mamingshuai 已提交
31

D
duangavin123 已提交
32
option涉及以下命令:
M
mamingshuai 已提交
33 34


D
duangavin123 已提交
35 36
- **-h/help -v/version**
  用于显示hdc相关的帮助、版本信息。
M
mamingshuai 已提交
37

D
duangavin123 已提交
38 39
    **表1** 命令说明
  
40
  | 返回值 | 返回值说明| 
D
duangavin123 已提交
41 42
  | -------- | -------- |
  | 返回对应信息 | 帮助或者版本信息 | 
M
mamingshuai 已提交
43

D
duangavin123 已提交
44
  使用方法:
M
mamingshuai 已提交
45

D
duangavin123 已提交
46 47 48 49
    
  ```
  hdc_std -h / hdc_std help
  ```
M
mamingshuai 已提交
50

D
duangavin123 已提交
51 52 53 54
    
  ```
  hdc_std -v / hdc_std version
  ```
M
mamingshuai 已提交
55

56 57 58 59 60 61 62
- **-l 0-5**
  用于指定运行时日志等级,默认为LOG_INFO。

    **表2** 命令说明
  
  | 参数 | 参数说明 | 
  | -------- | -------- |
63 64 65 66 67 68
  |  0 | LOG_OFF  |
  |  1 | LOG_FATAL|
  |  2 | LOG_WARN |
  |  3 | LOG_INFO |
  |  4 | LOG_DEBUG|
  |  5 | LOG_ALL  |
69 70 71 72 73 74 75

  使用方法:

  ```
  hdc_std -l5 start
  ```

D
duangavin123 已提交
76 77 78
- **-t key**
  用于连接指定设备标识为key的设备。

79
    **表3** 命令说明
D
duangavin123 已提交
80
  
81
  | 参数 | 参数说明 | 
D
duangavin123 已提交
82 83 84 85 86 87
  | -------- | -------- |
  | key | 为 IP地址:port 格式,或者USB序列号 | 
  | **返回值** | **返回值说明** | 
  | ①error:&nbsp;device&nbsp;'\*\*\*'&nbsp;not&nbsp;found<br/>②Nothing&nbsp;to&nbsp;do... | ①设备不存在<br/>②附加的命令不存在 | 

  使用方法:
M
mamingshuai 已提交
88

D
duangavin123 已提交
89
  该option需要与具体的操作命令搭配使用,下面以shell命令举例:
M
mamingshuai 已提交
90

D
duangavin123 已提交
91
  hdc_std list targets  (获取设备信息)
M
mamingshuai 已提交
92

D
duangavin123 已提交
93
  hdc_std  -t  _key_  shell  (-t后面添加的_key_ 需要替换为上面查询的设备信息)
M
mamingshuai 已提交
94

D
duangavin123 已提交
95 96
  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
  > 一台开发机可支持多个设备连接,每个设备有其唯一的设备标识,如果通过网络与设备连接,其标识为IP地址:port格式,如果通过usb连接则标识为设备sn号。该命令需要跟随具体操作命令。
M
mamingshuai 已提交
97

98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
- **checkserver**
  用于获取client-server版本。

    **表4** 命令说明
  
  | 返回值 | 返回值说明| 
  | -------- | -------- |
  | Client version:  server version: | client-server版本号 |

  使用方法:

  ```
  hdc_std checkserver
  ```

D
duangavin123 已提交
113 114

## 查询设备列表的命令
M
mamingshuai 已提交
115 116 117

查询设备列表涉及以下命令:

D
duangavin123 已提交
118 119 120 121 122
  
```
list targets[-v]
```

M
mamingshuai 已提交
123 124 125

显示所有已经连接的目标设备列表

D
duangavin123 已提交
126

127
  **表5** 命令说明
D
duangavin123 已提交
128

129
| 参数 | 参数说明| 
D
duangavin123 已提交
130 131 132 133 134
| -------- | -------- |
| -v | 添加-v选项,则会打印设备详细信息 | 
| **返回值** | **返回值说明** | 
| ①返回设备信息<br/>②[Empty] | ①已经连接的设备列表信息<br/>②没有查询到设备信息 | 

M
mamingshuai 已提交
135 136 137 138

使用方法:


D
duangavin123 已提交
139 140 141 142 143 144 145 146 147 148
  
```
hdc_std list targets
```


  
```
hdc_std list targets -v
```
M
mamingshuai 已提交
149

D
duangavin123 已提交
150 151

## 服务进程相关命令
M
mamingshuai 已提交
152 153 154 155

服务进程涉及以下命令:


D
duangavin123 已提交
156 157
- **target mount**
  以读写模式挂载系统分区。
M
mamingshuai 已提交
158

159
    **表6** 命令说明
D
duangavin123 已提交
160
  
161
  | 参数 | 参数说明 | 
D
duangavin123 已提交
162 163 164 165
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | ①Mount&nbsp;finish<br/>②返回具体信息 | ①成功情况下返回的信息<br/>②失败情况下的具体信息 | 
M
mamingshuai 已提交
166

D
duangavin123 已提交
167
  使用方法:
M
mamingshuai 已提交
168

D
duangavin123 已提交
169 170 171 172
    
  ```
  hdc_std target mount
  ```
M
mamingshuai 已提交
173

174 175 176 177 178 179 180 181 182 183 184 185
- **target boot**
  设备重启。

  使用方法:

 
  ```
  hdc_std target boot
  ```

- **smode [-r]**
  授予后台服务进程root权限, 使用-r参数取消授权。
M
mamingshuai 已提交
186

D
duangavin123 已提交
187
  使用方法:
M
mamingshuai 已提交
188

D
duangavin123 已提交
189 190 191 192
    
  ```
  hdc_std smode
  ```
M
mamingshuai 已提交
193

D
duangavin123 已提交
194 195
    
  ```
196
  hdc_std smode -r
D
duangavin123 已提交
197
  ```
M
mamingshuai 已提交
198

D
duangavin123 已提交
199 200 201
- **kill [-r]**
  终止服务进程。

202
    **表7** 命令说明
D
duangavin123 已提交
203
  
204
  | 参数 | 参数说明 | 
D
duangavin123 已提交
205 206 207 208 209 210 211 212 213 214
  | -------- | -------- |
  | -r | 触发服务重启 | 
  | **返回值** | **返回值说明** | 
  | ①Kill&nbsp;server&nbsp;finish<br/>②返回具体信息 | ①成功情况下返回的信息<br/>②失败情况下的具体信息 | 

    使用方法:
    
  ```
  hdc_std kill
  ```
M
mamingshuai 已提交
215

D
duangavin123 已提交
216 217
- **start [-r]**
  启动服务进程。
M
mamingshuai 已提交
218

219
    **表8** 命令说明
D
duangavin123 已提交
220
  
221
  | 参数 | 参数说明 |
D
duangavin123 已提交
222 223 224 225 226 227 228 229 230 231 232
  | -------- | -------- |
  | -r | 如果服务进程已经启动,-r选项会触发服务进程重新启动 | 
  | **返回值** | **返回值说明** | 
  | 无 | 无 | 

    使用方法:
    
  ```
  hdc_std start
  ```

233 234
客户端远程访问服务器

235
1.- **kill** 
236 237
  关闭sever。

238
2.- **-s [ip:]port -m** 
239 240 241 242 243 244 245 246
  启动server。

  使用方法:

```
hdc_std -s severIP:8710 -m
```

247
3.- **-s [ip:]port command**
248 249 250 251 252 253 254 255
  指定server执行指令。

  使用方法:

```
hdc_std -s severIP:8710 list targets
```

D
duangavin123 已提交
256 257

## 网络相关的命令
M
mamingshuai 已提交
258 259 260 261

网络部分涉及以下命令:


D
duangavin123 已提交
262 263
- **tconn host[:port][-remove]**
  通过【ip地址:端口号】来指定连接的设备
M
mamingshuai 已提交
264

265
    **表9** 命令说明
D
duangavin123 已提交
266
  
267
  | 参数 | 参数说明 | 
D
duangavin123 已提交
268 269 270 271 272
  | -------- | -------- |
  | host[:port] | 为IP地址:port格式 | 
  | -remove | 表示断开与指定设备的连接 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 
M
mamingshuai 已提交
273

D
duangavin123 已提交
274 275 276 277 278 279 280 281 282
  使用方法(举例):

    
  ```
  hdc_std tconn 192.168.0.100:8710
  ```

- **tmode usb**
  执行后设备端对应daemon进程重启,并首先选用usb连接方式。
M
mamingshuai 已提交
283

284
    **表10** 命令说明
D
duangavin123 已提交
285
  
286
  | 参数 | 参数说明 | 
D
duangavin123 已提交
287 288 289 290
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 
M
mamingshuai 已提交
291

D
duangavin123 已提交
292
  使用方法:
M
mamingshuai 已提交
293

D
duangavin123 已提交
294 295 296 297 298 299 300 301
    
  ```
  hdc_std tmode usb
  ```

- **tmode port port-number**
  执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备失败,再选择usb连接。

302
    **表11** 命令说明
D
duangavin123 已提交
303
  
304 305
  | 参数 | 参数说明 |
  | -------- | -------- | 
D
duangavin123 已提交
306 307 308 309 310 311 312 313 314 315 316 317 318 319
  | port-number | listen连接的网络端口号 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法:

    
  ```
  hdc_std tmode port 8710
  ```

  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
  > 执行完毕后,远端daemon将会退出并重启,默认启用TCP连接,如果不加上listen端口则listen随机端口。

320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368
- **fport localnode remotenode**
  端口转发,指定 主机端口 转发数据到 设备侧端口。

  使用方法:

    
  ```
  hdc_std fport tcp:1234 tcp:1080
  ```

- **rport remotenode localnode**
  端口转发,指定 设备侧端口 转发数据到 主机端口。

  使用方法:

    
  ```
  hdc_std rport tcp:2080 tcp:2345 
  ```

- **fport ls**
  列出全部转发端口转发任务。

    **表12** 命令说明
  
  | 参数 | 参数说明 | 
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | 'tcp:1234 tcp:1080'     [Forward] | 正向端口转发任务 | 
  | 'tcp:2080 tcp:2345'     [Reverse] | 反向端口转发任务 | 

  使用方法:

    
  ```
  hdc_std fport ls 
  ```

- **fport rm**
  删除指定端口转发任务。

  使用方法:

    
  ```
  hdc_std fport rm tcp:1234 tcp:1080 
  ```

D
duangavin123 已提交
369 370

## 文件相关的命令
M
mamingshuai 已提交
371 372 373

文件部分涉及以下命令:

D
duangavin123 已提交
374 375 376 377

- **file send local remote**
  发送文件至远端设备。

378
    **表13** 命令说明
D
duangavin123 已提交
379
  
380
  | 参数 | 参数说明 | 
D
duangavin123 已提交
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396
  | -------- | -------- |
  | local | 本地待发送文件路径 | 
  | remote | 远程待接收文件路径 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②返回传输结果 | ①失败情况下的具体信息<br/>②成功传输的结果信息 | 

  使用方法(举例):

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

- **file recv [-a] remote local**
  从远端设备接收文件至本地。

397
    **表14** 命令说明
D
duangavin123 已提交
398
  
399
  | 参数 | 参数说明 | 
D
duangavin123 已提交
400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415
  | -------- | -------- |
  | -a | 文件保留时间戳模式 | 
  | local | 本地待接收文件路径 | 
  | remote | 远程待发送文件路径 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法(举例):

    
  ```
  hdc_std file recv  /data/local/tmp/a.txt   ./a.txt
  ```


## 应用相关的命令
M
mamingshuai 已提交
416 417 418 419

应用部分涉及以下命令:


D
duangavin123 已提交
420 421
- **install [-r/-d/-g] _package_**
  安装OpenHarmony APP package。
M
mamingshuai 已提交
422

423
    **表15** 命令说明
D
duangavin123 已提交
424
  
425
  | 参数 | 参数说明 | 
D
duangavin123 已提交
426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443
  | -------- | -------- |
  | package | OpenHarmony应用安装包文件名 | 
  | -r | 替换已存在应用 | 
  | -d | 允许降级安装 | 
  | -g | 应用动态授权 | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法(举例):

    
  ```
  hdc_std install hwadmin.hap
  ```

- **uninstall [-k] package**
  卸载OpenHarmony应用。

444
    **表16** 命令说明
D
duangavin123 已提交
445
  
446
  | 参数 | 参数说明 | 
D
duangavin123 已提交
447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463
  | -------- | -------- |
  | package | OpenHarmony应用安装包 | 
  | -k | 保留/data/cache | 
  | **返回值** | **返回值说明** | 
  | ①返回具体信息<br/>②无 | ①失败情况下的具体信息<br/>②成功情况下无返回值 | 

  使用方法(举例):

    
  ```
  hdc_std uninstall package
  ```


## 调试相关的命令

调试涉及以下命令:
M
mamingshuai 已提交
464 465


D
duangavin123 已提交
466 467
- **hilog**
  支持抓取log信息。
M
mamingshuai 已提交
468

469
    **表17** 命令说明
D
duangavin123 已提交
470
  
471
  | 参数 | 参数说明 | 
D
duangavin123 已提交
472 473 474 475
  | -------- | -------- |
  | 无 | 无 | 
  | **返回值** | **返回值说明** | 
  | 返回具体信息 | 抓取的日志信息 | 
D
duangavin123 已提交
476

D
duangavin123 已提交
477
  抓取hilog日志:
D
duangavin123 已提交
478

D
duangavin123 已提交
479 480 481 482
    
  ```
  hdc_std hilog
  ```
D
duangavin123 已提交
483

D
duangavin123 已提交
484
  清理hilog缓存日志:
D
duangavin123 已提交
485

D
duangavin123 已提交
486 487 488 489
    
  ```
  hdc_std shell "hilog -r"
  ```
D
duangavin123 已提交
490

D
duangavin123 已提交
491 492
- **shell [_command_]**
  远程执行命令或进入交互命令环境。
D
duangavin123 已提交
493

494
    **表18** 命令说明
D
duangavin123 已提交
495
  
496 497
  | 参数 | 参数说明 |
  | -------- | -------- |  
D
duangavin123 已提交
498 499 500
  | command | 需要执行的单次命令 | 
  | **返回值** | **返回值说明** | 
  | 返回具体信息 | shell后面执行命令的结果信息 | 
D
duangavin123 已提交
501

D
duangavin123 已提交
502
  使用方法:
D
duangavin123 已提交
503

D
duangavin123 已提交
504 505 506 507
    
  ```
  hdc_std shell
  ```
D
duangavin123 已提交
508

509 510 511 512 513 514 515 516 517 518
- **jpid**
  获取可调试进程列表。

  使用方法:

    
  ```
  hdc_std jpid
  ```

D
duangavin123 已提交
519

D
duangavin123 已提交
520
## 常见问题
D
duangavin123 已提交
521 522


D
duangavin123 已提交
523
### hdc_std连接不到设备
D
duangavin123 已提交
524

D
duangavin123 已提交
525 526
- **现象描述**
  执行 "hdc_std list targets"命令后结果为:[Empty]
D
duangavin123 已提交
527

D
duangavin123 已提交
528 529 530 531 532 533 534
- **解决方法**
  1. 设备没有被识别:
      在设备管理器中查看是否有hdc设备,在通用串行总线设备中会有“HDC Device”信息。如果没有,hdc无法连接。此时需要断开并重联PC和OpenHarmony设备之间的USB连接,或者烧写最新的镜像。
  2. hdc_std工作异常:
      可以执行"hdc kill"或者"hdc start -r"杀掉hdc服务或者重启hdc服务,然后再执行hdc list targets查看是否已经可以获取设备信息。
  3. hdc_std与设备不匹配:
      如果设备烧写的是最新镜像,hdc_std也需要使用最新版本。
D
duangavin123 已提交
535 536


D
duangavin123 已提交
537
### hdc_std运行不了
D
duangavin123 已提交
538

D
duangavin123 已提交
539 540
- **现象描述**
  点击hdc_std.exe文件无法运行。
D
duangavin123 已提交
541

D
duangavin123 已提交
542 543
- **解决方法**
  hdc_std.exe不需要安装,直接放到磁盘上就能使用,也可以添加到环境变量中。通过打开cmd执行hdc_std命令直接使用。