1 root {
2    device_info {
3        match_attr = "hdf_manager";
4        template host {
5            hostName = "";
6            priority = 100;
7            uid = "";
8            gid = [""];
9            caps = [""];
10            template device {
11                template deviceNode {
12                    policy = 0;
13                    priority = 100;
14                    preload = 0;
15                    permission = 0664;
16                    moduleName = "";
17                    serviceName = "";
18                    deviceMatchAttr = "";
19                }
20            }
21        }
22        platform :: host {
23            hostName = "sample_host";
24            priority = 50;
25            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
26            sample_device :: device {
27                device0 :: deviceNode {
28                    policy = 2;
29                    priority = 100;
30                    preload = 2;
31                    moduleName = "libsample_driver.z.so";
32                    serviceName = "sample_driver_service";
33                }
34                device1 :: deviceNode {
35                    policy = 2;
36                    priority = 100;
37                    preload = 2;
38                    moduleName = "libsample1_driver.z.so";
39                    serviceName = "sample1_driver_service";
40                }
41            }
42        }
43        usb :: host {
44            hostName = "usb_host";
45            priority = 50;
46            caps = ["DAC_OVERRIDE"];
47            usb_device :: device {
48                device0 :: deviceNode {
49                    policy = 2;
50                    priority = 100;
51                    moduleName = "libusb_driver.z.so";
52                    serviceName = "usb_interface_service";
53                    deviceMatchAttr = "usb_device_interface_driver";
54                }
55            }
56        }
57        usbfn :: host {
58            hostName = "usbfn_host";
59            priority = 50;
60            caps = ["DAC_OVERRIDE"];
61            usb_pnp_manager_device :: device {
62                device0 :: deviceNode {
63                    policy = 2;
64                    priority = 70;
65                    moduleName = "libusb_pnp_manager.z.so";
66                    serviceName = "usb_pnp_manager";
67                }
68            }
69            usbfn_device :: device {
70                device0 :: deviceNode {
71                    policy = 2;
72                    priority = 80;
73                    moduleName = "libusbfn.z.so";
74                    serviceName = "usbfn";
75                    deviceMatchAttr = "usbfn_driver";
76                }
77            }
78            ecm_device :: device {
79                device0 :: deviceNode {
80                    policy = 2;
81                    priority = 81;
82                    moduleName = "libusbfn_cdcecm.z.so";
83                    serviceName = "usbfn_cdcecm";
84                    deviceMatchAttr = "usbfn_cdcecm_driver";
85                }
86            }
87            acm_device :: device {
88                device0 :: deviceNode {
89                    policy = 2;
90                    priority = 100;
91                    moduleName = "libusbfn_cdcacm.z.so";
92                    serviceName = "usbfn_cdcacm";
93                    deviceMatchAttr = "usbfn_cdcacm_driver";
94                }
95            }
96        }
97        power :: host {
98            hostName = "power_host";
99            priority = 50;
100            uid = "power_host";
101            gid = ["power_host"];
102            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "BLOCK_SUSPEND"];
103            power_device :: device {
104                device0 :: deviceNode {
105                    policy = 2;
106                    priority = 100;
107                    moduleName = "libpower_driver.z.so";
108                    serviceName = "power_interface_service";
109                }
110            }
111            battery_device :: device {
112                device0 :: deviceNode {
113                    policy = 2;
114                    priority = 100;
115                    moduleName = "libbattery_driver.z.so";
116                    serviceName = "battery_interface_service";
117                }
118            }
119            thermal_device :: device {
120                device0 :: deviceNode {
121                    policy = 2;
122                    priority = 100;
123                    moduleName = "libthermal_driver.z.so";
124                    serviceName = "thermal_interface_service";
125                }
126            }
127        }
128        wlan :: host {
129            hostName = "wifi_host";
130            priority = 50;
131            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
132            gid = ["wifi_host", "wifi_group"];
133            wifi_c_device :: device {
134                device0 :: deviceNode {
135                    policy = 2;
136                    priority = 100;
137                    moduleName = "libwifi_hdi_c_device.z.so";
138                    serviceName = "wlan_interface_service";
139                }
140            }
141        }
142        wpa :: host {
143            hostName = "wpa_host";
144            priority = 50;
145            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
146            initconfig = ["\"permission\" : [\"ohos.permission.ACCESS_CERT_MANAGER\"]", "\"secon\" : \"u:r:wifi_host:s0\""];
147            uid = "wifi";
148            gid = ["wifi", "wifi_group", "wifi_host"];
149            wpa_device :: device {
150                device0 :: deviceNode {
151                    policy = 2;
152                    preload = 2;
153                    priority = 100;
154                    moduleName = "libwpa_hdi_c_device.z.so";
155                    serviceName = "wpa_interface_service";
156                }
157            }
158        }
159        hostapd :: host {
160            hostName = "hostapd_host";
161            priority = 50;
162            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
163            initconfig = ["\"secon\" : \"u:r:wifi_host:s0\""];
164            uid = "wifi";
165            gid = ["wifi", "wifi_group", "wifi_host"];
166            wpa_device :: device {
167                device0 :: deviceNode {
168                    policy = 2;
169                    preload = 2;
170                    priority = 100;
171                    moduleName = "libhostapd_hdi_c_device.z.so";
172                    serviceName = "hostapd_interface_service";
173                }
174            }
175        }
176        audio :: host {
177            hostName = "audio_host";
178            priority = 50;
179            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
180            audio_device :: device {
181                device0 :: deviceNode {
182                    policy = 2;
183                    priority = 100;
184                    moduleName = "libhdi_audio_primary_server.z.so";
185                    serviceName = "audio_hdi_service";
186                }
187            }
188            audio_usb_device :: device {
189                device0 :: deviceNode {
190                    policy = 2;
191                    priority = 100;
192                    moduleName = "libhdi_audio_usb_server.z.so";
193                    serviceName = "audio_hdi_usb_service";
194                }
195            }
196            audio_a2dp_device :: device {
197                device0 :: deviceNode {
198                    policy = 2;
199                    priority = 100;
200                    moduleName = "libhdi_audio_a2dp_server.z.so";
201                    serviceName = "audio_hdi_a2dp_service";
202                }
203            }
204            audio_pnp_device :: device {
205                device0 :: deviceNode {
206                    policy = 2;
207                    priority = 110;
208                    moduleName = "libhdi_audio_pnp_server.z.so";
209                    serviceName = "audio_hdi_pnp_service";
210                }
211            }
212            idl_audio_device :: device {
213                device0 :: deviceNode {
214                    policy = 2;
215                    priority = 100;
216                    moduleName = "libaudio_manager_service.z.so";
217                    serviceName = "audio_manager_service";
218                }
219            }
220        }
221        hdi_server :: host {
222            hostName = "camera_host";
223            priority = 50;
224            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "SYS_RAWIO"];
225            camera_device :: device {
226                 device0 :: deviceNode {
227                     policy = 2;
228                     priority = 100;
229                     moduleName = "libcamera_host_service_1.0.z.so";
230                     serviceName = "camera_service";
231                 }
232             }
233
234	    display_device :: device {
235                device0 :: deviceNode {
236                    policy = 2;
237                    priority = 120;
238                    moduleName = "libhdi_video_layer_service.z.so";
239                    serviceName = "hdi_video_layer_service";
240                }
241            }
242        }
243
244        input_hal :: host {
245            hostName = "input_user_host";
246            priority = 50;
247            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
248            input_device :: device {
249                device0 :: deviceNode {
250                    policy = 2;
251                    priority = 150;
252                    moduleName = "libhdf_input_hotplug.z.so";
253                    serviceName = "input_service";
254                }
255            }
256            input_hdi_device :: device {
257                device0 :: deviceNode {
258                    policy = 2;
259                    priority = 100;
260                    moduleName = "libinput_driver.z.so";
261                    serviceName = "input_interfaces_service";
262                }
263            }
264        }
265
266        display_gralloc :: host {
267            hostName = "display_gralloc_host";
268            priority = 40;
269            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
270            input_device :: device {
271                device0 :: deviceNode {
272                    policy = 2;
273                    priority = 160;
274                    moduleName = "libhdi_display_gralloc_stub.z.so";
275                    serviceName = "hdi_display_gralloc_service";
276                }
277            }
278        }
279
280        codec :: host {
281            hostName = "codec_host";
282            priority = 50;
283            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
284            codec_device :: device {
285                device0 :: deviceNode {
286                    policy = 2;
287                    priority = 200;
288                    moduleName = "libcodec_server.z.so";
289                    serviceName = "codec_hdi_service";
290                }
291            }
292        }
293        riladapter :: host {
294            hostName = "riladapter_host";
295            priority = 50;
296            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
297            riladapter_device :: device {
298                device0 :: deviceNode {
299                    policy = 2;
300                    priority = 100;
301                    moduleName = "libhril_hdf.z.so";
302                    serviceName = "cellular_radio1";
303                }
304            }
305        }
306        sensor :: host { 
307            hostName = "sensor_host"; 
308            priority = 50;
309            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
310            sensor_device :: device { 
311                device0 :: deviceNode { 
312                    policy = 2; 
313                    priority = 100; 
314                    moduleName = "libsensor_driver.z.so"; 
315                    serviceName = "sensor_interface_service"; 
316                } 
317            } 
318        }
319        vibrator :: host {
320            hostName = "vibrator_host";
321            priority = 50;
322            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
323            vibrator_device :: device {
324                device0 :: deviceNode {
325                    policy = 2;
326                    priority = 100;
327                    moduleName = "libvibrator_driver.z.so";
328                    serviceName = "vibrator_interface_service";
329                }
330            }
331        }
332        light :: host {
333            hostName = "light_host";
334            priority = 50;
335            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
336            light_device :: device {
337                device0 :: deviceNode {
338                    policy = 2;
339                    priority = 100;
340                    moduleName = "liblight_driver.z.so";
341                    serviceName = "light_interface_service";
342                }
343            }
344        }
345    }
346}
347