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&nbsp;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&nbsp;server&nbsp;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