1e41f4b71Sopenharmony_ci# hdc 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciOpenHarmony Device Connector (hdc) is a command-line tool used for debugging. You can use it on a Windows, Linux, or macOS system to interact with real devices or simulators. 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ciThe following describes how to obtain and use hdc. 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci## How to Obtain 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci**Obtaining hdc** 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ciObtain hdc from the **toolchains** directory of the OpenHarmony SDK. 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci**Example** 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ciThe following uses the Windows operating system as an example: 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ciObtain the SDK for Windows, and copy **hdc.exe** from **toolchains** to a directory on the disk. 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci## NOTICE 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci- If an exception occurs when you are using hdc, run the **hdc kill** command to terminate the hdc service or run the **hdc start -r** command to restart the service process. 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci- If no device information is obtained after **hdc list targets** is executed, check whether the hdc process exists in the **Task Manager**. If yes, terminate the process. 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci## Option-related Commands 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ciThe following commands are available: 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci- **-h/help -v/version** 36e41f4b71Sopenharmony_ci Displays hdc help or version information. 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci **Table 1** Command description 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci | Return Value| Description| 41e41f4b71Sopenharmony_ci | -------- | -------- | 42e41f4b71Sopenharmony_ci | Required information| hdc help or version information.| 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci Example: 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci ``` 48e41f4b71Sopenharmony_ci hdc -h / hdc help 49e41f4b71Sopenharmony_ci ``` 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci ``` 53e41f4b71Sopenharmony_ci hdc -v / hdc version 54e41f4b71Sopenharmony_ci ``` 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci- **-l 0-5** 57e41f4b71Sopenharmony_ci Sets the levels of the logs generated during the running of the tool. The default value is **LOG_INFO**. 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci **Table 2** Command description 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci | Parameter| Description| 62e41f4b71Sopenharmony_ci | -------- | -------- | 63e41f4b71Sopenharmony_ci | 0 | LOG_OFF | 64e41f4b71Sopenharmony_ci | 1 | LOG_FATAL| 65e41f4b71Sopenharmony_ci | 2 | LOG_WARN | 66e41f4b71Sopenharmony_ci | 3 | LOG_INFO | 67e41f4b71Sopenharmony_ci | 4 | LOG_DEBUG| 68e41f4b71Sopenharmony_ci | 5 | LOG_ALL | 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci Example: 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci ``` 73e41f4b71Sopenharmony_ci hdc -l5 start 74e41f4b71Sopenharmony_ci ``` 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci- **-t key** 77e41f4b71Sopenharmony_ci Connects to a device based on the specified key. 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci **Table 3** Command description 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci | Parameter| Description| 82e41f4b71Sopenharmony_ci | -------- | -------- | 83e41f4b71Sopenharmony_ci | key | Key that identifies the device to connect. The value can be in the *IP address:port number* format or be a USB serial number.| 84e41f4b71Sopenharmony_ci | Return Value| Description| 85e41f4b71Sopenharmony_ci | 1. error: device '\*\*\*' not found<br>2. Nothing to do ...| 1. The device does not exist.<br>2. The command appended to **-t key** does not exist.| 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci Example: 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci **-t key** must be used with a command. The following uses **shell** as an example: 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci **hdc list targets** (Obtain device information.) 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci **hdc -t *key* shell** (Replace *key* with the device identifier obtained) 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci > **NOTE**<br> 96e41f4b71Sopenharmony_ci > You can connect to multiple devices from the device you use for development. Each device has a unique key. The key can be *IP address:port number* for a device to be connected over the network or the serial number for a device to be connected through USB. A specific command must be used with this command. 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci- **checkserver** 99e41f4b71Sopenharmony_ci Obtains the client and server version information. 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci **Table 4** Command description 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci | Return Value| Description| 104e41f4b71Sopenharmony_ci | -------- | -------- | 105e41f4b71Sopenharmony_ci | Client version: server version: | Client and server version information.| 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci Example: 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci ``` 110e41f4b71Sopenharmony_ci hdc checkserver 111e41f4b71Sopenharmony_ci ``` 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci## Displaying Device Information 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ciRun the following command to display all connected devices: 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci``` 120e41f4b71Sopenharmony_cilist targets[-v] 121e41f4b71Sopenharmony_ci``` 122e41f4b71Sopenharmony_ci 123e41f4b71Sopenharmony_ci**Table 5** Command description 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci| Parameter| Description| 126e41f4b71Sopenharmony_ci| -------- | -------- | 127e41f4b71Sopenharmony_ci| -v | Displays detailed device information.| 128e41f4b71Sopenharmony_ci| Return Value| **Description**| 129e41f4b71Sopenharmony_ci| 1. Device information<br>2. [Empty]| 1. A list of connected devices.<br>2. No device information is found.| 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ciExample: 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci``` 137e41f4b71Sopenharmony_cihdc list targets 138e41f4b71Sopenharmony_ci``` 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci``` 143e41f4b71Sopenharmony_cihdc list targets -v 144e41f4b71Sopenharmony_ci``` 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci## Service Process Commands 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ciThe following commands are available: 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci- **target mount** 153e41f4b71Sopenharmony_ci Mounts the **/system** partition in read/write mode. 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci **Table 6** Command description 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci | Parameter| Description| 158e41f4b71Sopenharmony_ci | -------- | -------- | 159e41f4b71Sopenharmony_ci | –| –| 160e41f4b71Sopenharmony_ci | Return Value| **Description**| 161e41f4b71Sopenharmony_ci | 1. Mount finish<br>2. Error information| 1. The operation is successful.<br>2. The operation fails.| 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci Example: 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci ``` 167e41f4b71Sopenharmony_ci hdc target mount 168e41f4b71Sopenharmony_ci ``` 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci- **target boot** 171e41f4b71Sopenharmony_ci Boots the device. 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci Example: 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci ``` 177e41f4b71Sopenharmony_ci hdc target boot 178e41f4b71Sopenharmony_ci ``` 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci- **smode [-r]** 181e41f4b71Sopenharmony_ci Grants the **root** permission to the background hdc service. Use **off** to revoke the granted permissions. 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci Example: 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci ``` 187e41f4b71Sopenharmony_ci hdc smode 188e41f4b71Sopenharmony_ci ``` 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci ``` 192e41f4b71Sopenharmony_ci hdc smode -r 193e41f4b71Sopenharmony_ci ``` 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci- **kill [-r]** 196e41f4b71Sopenharmony_ci Terminates the hdc process. 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci **Table 7** Command description 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci | Parameter| Description| 201e41f4b71Sopenharmony_ci | -------- | -------- | 202e41f4b71Sopenharmony_ci | -r | Restarts the hdc process.| 203e41f4b71Sopenharmony_ci | Return Value| **Description**| 204e41f4b71Sopenharmony_ci | 1. Kill server finish<br>2. Error information| 1. The operation is successful.<br>2. The operation fails.| 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci Example: 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ci ``` 209e41f4b71Sopenharmony_ci hdc kill 210e41f4b71Sopenharmony_ci ``` 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci- **start [-r]** 213e41f4b71Sopenharmony_ci Starts the hdc process. 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci **Table 8** Command description 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci | Parameter| Description| 218e41f4b71Sopenharmony_ci | -------- | -------- | 219e41f4b71Sopenharmony_ci | -r | Restarts the hdc process if it has started.| 220e41f4b71Sopenharmony_ci | Return Value| Description| 221e41f4b71Sopenharmony_ci | –| –| 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci Example: 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci ``` 226e41f4b71Sopenharmony_ci hdc start 227e41f4b71Sopenharmony_ci ``` 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci## Network Commands 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ciThe following commands are available: 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci- **tconn host[:port][-remove]** 236e41f4b71Sopenharmony_ci Connects to a device with the specified IP address and port number. 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci **Table 9** Command description 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci | Parameter| Description| 241e41f4b71Sopenharmony_ci | -------- | -------- | 242e41f4b71Sopenharmony_ci | host[:port] | IP address and port number for the device to connect.| 243e41f4b71Sopenharmony_ci | -remove | Disconnects from the specified device.| 244e41f4b71Sopenharmony_ci | Return Value| Description| 245e41f4b71Sopenharmony_ci | 1. Error information<br>2. –| 1. The operation fails.<br>2. The operation is successful.| 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci Example: 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci ``` 251e41f4b71Sopenharmony_ci hdc tconn 192.168.0.100:8710 252e41f4b71Sopenharmony_ci ``` 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci- **tmode usb** 255e41f4b71Sopenharmony_ci Restarts the daemon process and connects to the device using USB preferentially. 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci **Table 10** Command description 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci | Parameter| Description| 260e41f4b71Sopenharmony_ci | -------- | -------- | 261e41f4b71Sopenharmony_ci | –| –| 262e41f4b71Sopenharmony_ci | Return Value| Description| 263e41f4b71Sopenharmony_ci | 1. Error information<br>2. –| 1. The operation fails.<br>2. The operation is successful.| 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci Example: 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci 268e41f4b71Sopenharmony_ci ``` 269e41f4b71Sopenharmony_ci hdc tmode usb 270e41f4b71Sopenharmony_ci ``` 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci- **tmode port port-number** 273e41f4b71Sopenharmony_ci Restarts the daemon process and connects to the device over TCP preferentially. If the TCP connection fails, a USB connection will be initiated. 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ci **Table 11** Command description 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ci | Parameter| Description| 278e41f4b71Sopenharmony_ci | -------- | -------- | 279e41f4b71Sopenharmony_ci | port-number | Port used to connect to the device.| 280e41f4b71Sopenharmony_ci | Return Value| Description| 281e41f4b71Sopenharmony_ci | 1. Error information<br>2. –| 1. The operation fails.<br>2. The operation is successful.| 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_ci Example: 284e41f4b71Sopenharmony_ci 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci ``` 287e41f4b71Sopenharmony_ci hdc tmode port 8710 288e41f4b71Sopenharmony_ci ``` 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci > **NOTE**<br> 291e41f4b71Sopenharmony_ci > After this command is executed, the remote daemon process exits and restarts, and a TCP connection is set up by default. If the port number is not specified in the command, a random port will be used to connect to the device. 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci- **fport localnode remotenode** 294e41f4b71Sopenharmony_ci Forwards data from a host port to a device port. 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci Example: 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci ``` 300e41f4b71Sopenharmony_ci hdc fport tcp:1234 tcp:1080 301e41f4b71Sopenharmony_ci ``` 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci- **rport remotenode localnode** 304e41f4b71Sopenharmony_ci Forwards data from a device port to a host port. 305e41f4b71Sopenharmony_ci 306e41f4b71Sopenharmony_ci Example: 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci ``` 310e41f4b71Sopenharmony_ci hdc rport tcp:2080 tcp:2345 311e41f4b71Sopenharmony_ci ``` 312e41f4b71Sopenharmony_ci 313e41f4b71Sopenharmony_ci- **fport ls** 314e41f4b71Sopenharmony_ci Lists all port forwarding tasks. 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci **Table 12** Command description 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci | Parameter| Description| 319e41f4b71Sopenharmony_ci | -------- | -------- | 320e41f4b71Sopenharmony_ci | –| –| 321e41f4b71Sopenharmony_ci | Return Value| **Description**| 322e41f4b71Sopenharmony_ci | 'tcp:1234 tcp:1080' [Forward] | Forward port forwarding task.| 323e41f4b71Sopenharmony_ci | 'tcp:2080 tcp:2345' [Reverse] | Reverse port forwarding task.| 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci Example: 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ci ``` 329e41f4b71Sopenharmony_ci hdc fport ls 330e41f4b71Sopenharmony_ci ``` 331e41f4b71Sopenharmony_ci 332e41f4b71Sopenharmony_ci- **fport rm** 333e41f4b71Sopenharmony_ci Deletes a port forwarding task. 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci Example: 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci 338e41f4b71Sopenharmony_ci ``` 339e41f4b71Sopenharmony_ci hdc fport rm tcp:1234 tcp:1080 340e41f4b71Sopenharmony_ci ``` 341e41f4b71Sopenharmony_ci 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ci## File Commands 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ciThe following commands are available: 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci 348e41f4b71Sopenharmony_ci- **file send local remote** 349e41f4b71Sopenharmony_ci Sends a file to a remote device. 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci **Table 13** Command description 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci | Parameter| Description| 354e41f4b71Sopenharmony_ci | -------- | -------- | 355e41f4b71Sopenharmony_ci | local | Path of the file to send.| 356e41f4b71Sopenharmony_ci | remote | Destination path on the remote device.| 357e41f4b71Sopenharmony_ci | Return Value| Description| 358e41f4b71Sopenharmony_ci | 1. Error information<br>2. File transfer result| 1. The operation fails.<br>2. The operation is successful.| 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci Example: 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci ``` 364e41f4b71Sopenharmony_ci hdc file send E:\a.txt /data/local/tmp/a.txt 365e41f4b71Sopenharmony_ci ``` 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ci- **file recv [-a] remote local** 368e41f4b71Sopenharmony_ci Receives a file from a remote device. 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci **Table 14** Command description 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci | Parameter| Description| 373e41f4b71Sopenharmony_ci | -------- | -------- | 374e41f4b71Sopenharmony_ci | -a | Retains the file timestamp.| 375e41f4b71Sopenharmony_ci | local | Destination path on the local device.| 376e41f4b71Sopenharmony_ci | remote | File path on the remote device.| 377e41f4b71Sopenharmony_ci | Return Value| Description| 378e41f4b71Sopenharmony_ci | 1. Error information<br>2. –| 1. The operation fails.<br>2. The operation is successful.| 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci Example: 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci ``` 384e41f4b71Sopenharmony_ci hdc file recv /data/local/tmp/a.txt ./a.txt 385e41f4b71Sopenharmony_ci ``` 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci## App Commands 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ciThe following commands are available: 391e41f4b71Sopenharmony_ci 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci- **install [-r/-d/-g] *package*** 394e41f4b71Sopenharmony_ci Installs an OpenHarmony app. 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci **Table 15** Command description 397e41f4b71Sopenharmony_ci 398e41f4b71Sopenharmony_ci | Parameter| Description| 399e41f4b71Sopenharmony_ci | -------- | -------- | 400e41f4b71Sopenharmony_ci | package | OpenHarmony app installation package.| 401e41f4b71Sopenharmony_ci | -r | Replaces the existing app.| 402e41f4b71Sopenharmony_ci | -d | Allows downgrade installation.| 403e41f4b71Sopenharmony_ci | -g | Grants permissions dynamically.| 404e41f4b71Sopenharmony_ci | Return Value| Description| 405e41f4b71Sopenharmony_ci | 1. Error information<br>2. –| 1. The operation fails.<br>2. The operation is successful.| 406e41f4b71Sopenharmony_ci 407e41f4b71Sopenharmony_ci Example: 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci ``` 411e41f4b71Sopenharmony_ci hdc install hwadmin.hap 412e41f4b71Sopenharmony_ci ``` 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_ci- **uninstall [-k] package** 415e41f4b71Sopenharmony_ci Uninstalls an OpenHarmony app. 416e41f4b71Sopenharmony_ci 417e41f4b71Sopenharmony_ci **Table 16** Command description 418e41f4b71Sopenharmony_ci 419e41f4b71Sopenharmony_ci | Parameter| Description| 420e41f4b71Sopenharmony_ci | -------- | -------- | 421e41f4b71Sopenharmony_ci | package | OpenHarmony app installation package.| 422e41f4b71Sopenharmony_ci | -k | Retains **/data/cache**.| 423e41f4b71Sopenharmony_ci | Return Value| Description| 424e41f4b71Sopenharmony_ci | 1. Error information<br>2. –| 1. The operation fails.<br>2. The operation is successful.| 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci Example: 427e41f4b71Sopenharmony_ci 428e41f4b71Sopenharmony_ci 429e41f4b71Sopenharmony_ci ``` 430e41f4b71Sopenharmony_ci hdc uninstall package 431e41f4b71Sopenharmony_ci ``` 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci## Debugging Commands 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ciThe following commands are available: 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ci- **hilog** 440e41f4b71Sopenharmony_ci Obtains logs for debugging. 441e41f4b71Sopenharmony_ci 442e41f4b71Sopenharmony_ci **Table 17** Command description 443e41f4b71Sopenharmony_ci 444e41f4b71Sopenharmony_ci | Parameter| Description| 445e41f4b71Sopenharmony_ci | -------- | -------- | 446e41f4b71Sopenharmony_ci | –| –| 447e41f4b71Sopenharmony_ci | Return Value| **Description**| 448e41f4b71Sopenharmony_ci | Log obtained| Log information obtained.| 449e41f4b71Sopenharmony_ci 450e41f4b71Sopenharmony_ci Example: Obtain log information. 451e41f4b71Sopenharmony_ci 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_ci ``` 454e41f4b71Sopenharmony_ci hdc hilog 455e41f4b71Sopenharmony_ci ``` 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci Clear the cached logs. 458e41f4b71Sopenharmony_ci 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci ``` 461e41f4b71Sopenharmony_ci hdc shell "hilog -r" 462e41f4b71Sopenharmony_ci ``` 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci- **shell [_command_]** 465e41f4b71Sopenharmony_ci Executes a command remotely or enters an interactive command environment. 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci **Table 18** Command description 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ci | Parameter| Description| 470e41f4b71Sopenharmony_ci | -------- | -------- | 471e41f4b71Sopenharmony_ci | command | Command to execute.| 472e41f4b71Sopenharmony_ci | Return Value| **Description**| 473e41f4b71Sopenharmony_ci | Returned information| Command execution result.| 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci Example: 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci ``` 479e41f4b71Sopenharmony_ci hdc shell 480e41f4b71Sopenharmony_ci ``` 481e41f4b71Sopenharmony_ci 482e41f4b71Sopenharmony_ci- **jpid** 483e41f4b71Sopenharmony_ci Obtains the list of processes that can be debugged. 484e41f4b71Sopenharmony_ci 485e41f4b71Sopenharmony_ci Example: 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci ``` 489e41f4b71Sopenharmony_ci hdc jpid 490e41f4b71Sopenharmony_ci ``` 491e41f4b71Sopenharmony_ci 492e41f4b71Sopenharmony_ci 493e41f4b71Sopenharmony_ci## FAQs 494e41f4b71Sopenharmony_ci 495e41f4b71Sopenharmony_ci 496e41f4b71Sopenharmony_ci### Failed to Connect the Target Device 497e41f4b71Sopenharmony_ci 498e41f4b71Sopenharmony_ci- **Symptom** 499e41f4b71Sopenharmony_ci After the **hdc list targets** command is executed, **[Empty]** is displayed. 500e41f4b71Sopenharmony_ci 501e41f4b71Sopenharmony_ci- **Solution** 502e41f4b71Sopenharmony_ci - The device cannot be identified. 503e41f4b71Sopenharmony_ci Check whether **HDC Device** exists under the **Universal Serial Bus controllers** in the **Device Manager**. If **HDC Device** does not exist, the device cannot be connected. In this case, disconnect and then reconnect the USB connection between the test PC and the OpenHarmony device, or burn the latest image. 504e41f4b71Sopenharmony_ci - hdc works improperly. 505e41f4b71Sopenharmony_ci Run the **hdc kill** command to terminate the hdc process or run the **hdc start -r** command to restart the hdc service. Then, run the **hdc list targets** command to check whether device information can be obtained. 506e41f4b71Sopenharmony_ci - The hdc version does not match the device. 507e41f4b71Sopenharmony_ci If the latest image is burnt on the device, the latest hdc version must be used. 508e41f4b71Sopenharmony_ci 509e41f4b71Sopenharmony_ci 510e41f4b71Sopenharmony_ci### Failed to Run hdc 511e41f4b71Sopenharmony_ci 512e41f4b71Sopenharmony_ci- **Symptom** 513e41f4b71Sopenharmony_ci The **hdc.exe** file cannot be executed. 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci- **Solution** 516e41f4b71Sopenharmony_ci 1. Check the running environment. 517e41f4b71Sopenharmony_ci Ubuntu 18.04 64-bit or later is recommended for Linux.<br>If **libc++.so** is incorrectly referenced, run the **ldd** or **readelf** command to check the referenced library. <br>Windows 10 64-bit is recommended for Windows. If the Windows winusb library of an earlier version is missing, use Zadig to update the library. For composite devices, use Zadig tool to install the libusb-win32 driver. 518e41f4b71Sopenharmony_ci 2. Run **hdc.exe**. 519e41f4b71Sopenharmony_ci **hdc.exe** requires no installation. You can use it after placing it to a local directory or adding the tool path to environment variables. Run **cmd** and then the **hdc** command to start the tool. 520e41f4b71Sopenharmony_ci 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ci### Accessing a hdc Server from the hdc Client 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci- **Scenario** 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci Use hdc to connect to a remote server from the local client. 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci- **Procedure** 529e41f4b71Sopenharmony_ci 1. Shut down the local hdc server. 530e41f4b71Sopenharmony_ci ``` 531e41f4b71Sopenharmony_ci hdc kill 532e41f4b71Sopenharmony_ci ``` 533e41f4b71Sopenharmony_ci 2. Run **-s [ip:]port -m** to start the remote server. 534e41f4b71Sopenharmony_ci ``` 535e41f4b71Sopenharmony_ci hdc -s severIP:8710 -m 536e41f4b71Sopenharmony_ci ``` 537e41f4b71Sopenharmony_ci 3. Run **-s [ip:]port** *command* to execute a command on the remote server. 538e41f4b71Sopenharmony_ci ``` 539e41f4b71Sopenharmony_ci hdc -s severIP:8710 list targets 540e41f4b71Sopenharmony_ci ``` 541