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            }
35        }
36        bluetooth :: host {
37            hostName = "blue_host";
38            priority = 50;
39            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN"];
40            bluetooth_device :: device {
41                device0 :: deviceNode {
42                    policy = 2;
43                    priority = 100;
44                    moduleName = "libbluetooth_hdi_server.z.so";
45                    serviceName = "BtHciService";
46                }
47            }
48        }
49        audio_bluetooth :: host {
50            hostName = "a2dp_host";
51            priority = 50;
52            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
53            bluetooth_device :: device {
54                device0 :: deviceNode {
55                    policy = 2;
56                    priority = 100;
57                    preload = 2;
58                    moduleName = "libaudio_bluetooth_hdi_adapter_server.z.so";
59                    serviceName = "audio_bluetooth_hdi_service";
60                }
61            }
62        }
63         usb :: host {
64            hostName = "usb_host";
65            priority = 50;
66            caps = ["DAC_OVERRIDE"];
67            usb_device :: device {
68                device0 :: deviceNode {
69                    policy = 2;
70                    priority = 100;
71                    moduleName = "libusb_driver.z.so";
72                    serviceName = "usb_interface_service";
73                    deviceMatchAttr = "usb_device_interface_driver";
74                }
75            }
76        }
77        usbfn :: host {
78            hostName = "usbfn_host";
79            priority = 50;
80            caps = ["DAC_OVERRIDE"];
81            usb_pnp_manager_device :: device {
82                device0 :: deviceNode {
83                    policy = 2;
84                    priority = 70;
85                    moduleName = "libusb_pnp_manager.z.so";
86                    serviceName = "usb_pnp_manager";
87                }
88            }
89            usbfn_device :: device {
90                device0 :: deviceNode {
91                    policy = 2;
92                    priority = 80;
93                    moduleName = "libusbfn.z.so";
94                    serviceName = "usbfn";
95                    deviceMatchAttr = "usbfn_driver";
96                }
97            }
98            ecm_device :: device {
99                device0 :: deviceNode {
100                    policy = 2;
101                    priority = 81;
102                    moduleName = "libusbfn_cdcecm.z.so";
103                    serviceName = "usbfn_cdcecm";
104                    deviceMatchAttr = "usbfn_cdcecm_driver";
105                }
106            }
107            acm_device :: device {
108                device0 :: deviceNode {
109                    policy = 2;
110                    priority = 100;
111                    moduleName = "libusbfn_cdcacm.z.so";
112                    serviceName = "usbfn_cdcacm";
113                    deviceMatchAttr = "usbfn_cdcacm_driver";
114                }
115            }
116        }
117        power :: host {
118            hostName = "power_host";
119            priority = 50;
120            uid = "power_host";
121            gid = ["power_host"];
122            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
123            power_device :: device {
124                device0 :: deviceNode {
125                    policy = 2;
126                    priority = 100;
127                    moduleName = "libpower_driver.z.so";
128                    serviceName = "power_interface_service";
129                }
130            }
131            battery_device :: device {
132                device0 :: deviceNode {
133                    policy = 2;
134                    priority = 100;
135                    moduleName = "libbattery_driver.z.so";
136                    serviceName = "battery_interface_service";
137                }
138            }
139            thermal_device :: device {
140                device0 :: deviceNode {
141                    policy = 2;
142                    priority = 100;
143                    moduleName = "libthermal_driver.z.so";
144                    serviceName = "thermal_interface_service";
145                }
146            }
147        }
148        wlan :: host {
149            hostName = "wifi_host";
150            priority = 50;
151            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
152            gid = ["wifi_host", "wifi_group"];
153            wifi_device :: device {
154                device0 :: deviceNode {
155                    policy = 2;
156                    priority = 100;
157                    moduleName = "libwifi_hdi_c_device.z.so";
158                    serviceName = "wlan_hal_service";
159                }
160            }
161        }
162        wpa :: host {
163            hostName = "wpa_host";
164            priority = 50;
165            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
166            initconfig = ["\"permission\" : [\"ohos.permission.ACCESS_CERT_MANAGER\"]", "\"secon\" : \"u:r:wifi_host:s0\""];
167            uid = "wifi";
168            gid = ["wifi", "wifi_group", "wifi_host"];
169            wpa_device :: device {
170                device0 :: deviceNode {
171                    policy = 2;
172                    preload = 2;
173                    priority = 100;
174                    moduleName = "libwpa_hdi_c_device.z.so";
175                    serviceName = "wpa_interface_service";
176                }
177            }
178        }
179        hostapd :: host {
180            hostName = "hostapd_host";
181            priority = 50;
182            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
183            initconfig = ["\"secon\" : \"u:r:wifi_host:s0\""];
184            uid = "wifi";
185            gid = ["wifi", "wifi_group", "wifi_host"];
186            wpa_device :: device {
187                device0 :: deviceNode {
188                    policy = 2;
189                    preload = 2;
190                    priority = 100;
191                    moduleName = "libhostapd_hdi_c_device.z.so";
192                    serviceName = "hostapd_interface_service";
193                }
194            }
195        }
196        audio :: host {
197            hostName = "audio_hdi_server_host";
198            priority = 50;
199            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
200            audio_device :: device {
201                device0 :: deviceNode {
202                    policy = 2;
203                    priority = 100;
204                    moduleName = "libhdi_audio_primary_server.z.so";
205                    serviceName = "audio_hdi_service";
206                }
207            }
208            audio_usb_device :: device {
209                device0 :: deviceNode {
210                    policy = 2;
211                    priority = 100;
212                    moduleName = "libhdi_audio_usb_server.z.so";
213                    serviceName = "audio_hdi_usb_service";
214                }
215            }
216            audio_a2dp_device :: device {
217                device0 :: deviceNode {
218                    policy = 2;
219                    priority = 100;
220                    moduleName = "libhdi_audio_a2dp_server.z.so";
221                    serviceName = "audio_hdi_a2dp_service";
222                }
223            }
224            audio_pnp_device :: device {
225                device0 :: deviceNode {
226                    policy = 2;
227                    priority = 110;
228                    moduleName = "libhdi_audio_pnp_server.z.so";
229                    serviceName = "audio_hdi_pnp_service";
230                }
231            }
232        }
233        hdi_server :: host {
234            hostName = "camera_host";
235            priority = 50;
236            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
237            camera_device :: device {
238                 device0 :: deviceNode {
239                     policy = 2;
240                     priority = 100;
241                     moduleName = "libcamera_hdi_impl.z.so";
242                     serviceName = "camera_service";
243                 }
244             }
245	        display_device :: device {
246                device0 :: deviceNode {
247                    policy = 2;
248                    priority = 120;
249                    moduleName = "libhdi_media_layer_service.z.so";
250                    serviceName = "hdi_media_layer_service";
251                }
252            }
253        }
254        input_hal :: host {
255            hostName = "input_user_host";
256            priority = 50;
257            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
258            input_device :: device {
259                device0 :: deviceNode {
260                    policy = 2;
261                    priority = 150;
262                    moduleName = "libhdf_input_hotplug.z.so";
263                    serviceName = "input_service";
264                }
265            }
266            input_hdi_device :: device {
267                device0 :: deviceNode {
268                    policy = 2;
269                    priority = 100;
270                    moduleName = "libinput_driver.z.so";
271                    serviceName = "input_interfaces_service";
272                }
273            }
274        }
275
276        display_gralloc :: host {
277            hostName = "disp_gralloc_host";
278            priority = 40;
279            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
280            input_device :: device {
281                device0 :: deviceNode {
282                    policy = 2;
283                    priority = 160;
284                    moduleName = "libhdi_display_gralloc_stub.z.so";
285                    serviceName = "hdi_display_gralloc_service";
286                }
287            }
288        }
289        sensor :: host { 
290            hostName = "sensor_host"; 
291            priority = 50; 
292            gid = ["sensor_host", "uhdf_driver"];
293            sensor_device :: device { 
294                device0 :: deviceNode { 
295                    policy = 2; 
296                    priority = 100; 
297                    moduleName = "libsensor_driver.z.so"; 
298                    serviceName = "sensor_interface_service"; 
299                } 
300            } 
301        }
302        motion :: host { 
303            hostName = "motion_host"; 
304            priority = 50; 
305            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
306            motion_device :: device { 
307                device0 :: deviceNode { 
308                    policy = 2; 
309                    priority = 100; 
310                    moduleName = "libmotion_driver.z.so"; 
311                    serviceName = "motion_interface_service"; 
312                } 
313            } 
314        }
315        vibrator :: host {
316            hostName = "vibrator_host";
317            priority = 50;
318            vibrator_device :: device {
319                device0 :: deviceNode {
320                    policy = 2;
321                    priority = 100;
322                    moduleName = "libvibrator_driver.z.so";
323                    serviceName = "vibrator_interface_service";
324                }
325            }
326        }
327        light :: host {
328            hostName = "light_host";
329            priority = 50;
330            light_device :: device {
331                device0 :: deviceNode {
332                    policy = 2;
333                    priority = 100;
334                    moduleName = "liblight_driver.z.so";
335                    serviceName = "light_interface_service";
336                }
337            }
338        }
339
340        codec :: host {
341            hostName = "codec_host";
342            priority = 50;
343            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
344            codec_omx_device :: device {
345                device0 :: deviceNode {
346                    policy = 2;
347                    priority = 100;
348                    moduleName = "libcodec_hdi_omx_server.z.so";
349                    serviceName = "codec_hdi_omx_service";
350                    deviceMatchAttr = "codec_component_capabilities";
351                }
352            }
353            codec_device :: device {
354                device0 :: deviceNode {
355                    policy = 2;
356                    priority = 100;
357                    moduleName = "libcodec_server.z.so";
358                    serviceName = "codec_hdi_service";
359                    deviceMatchAttr = "media_codec_capabilities";
360                }
361            }
362        }
363
364        distributed_camera_host :: host {
365            hostName = "dcamera_host";
366            priority = 50;
367            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
368            distributed_camera_device :: device {
369                device0 :: deviceNode {
370                    policy = 2;
371                    priority = 100;
372                    preload = 2;
373                    moduleName = "libdistributed_camera_host_config.z.so";
374                    serviceName = "distributed_camera_service";
375                }
376                device1 :: deviceNode {
377                    policy = 2;
378                    priority = 100;
379                    preload = 2;
380                    moduleName = "libdistributed_camera_provider_config.z.so";
381                    serviceName = "distributed_camera_provider_service";
382                }
383            }
384        }
385        face_auth :: host {
386            hostName = "face_auth_host";
387            priority = 50;
388            uid = "useriam";
389            gid = ["useriam"];
390            face_auth_device :: device {
391                device0 :: deviceNode {
392                    policy = 2;
393                    priority = 200;
394                    moduleName = "libface_auth_driver.z.so";
395                    serviceName = "face_auth_interface_service";
396                }
397            }
398        }
399
400        pin_auth :: host {
401            hostName = "pin_auth_host";
402            priority = 50;
403            uid = "useriam";
404            gid = ["useriam"];
405            pin_auth_device :: device {
406                device0 :: deviceNode {
407                    policy = 2;
408                    priority = 200;
409                    moduleName = "libpin_auth_driver.z.so";
410                    serviceName = "pin_auth_interface_service";
411                }
412            }
413        }
414
415        user_auth :: host {
416            hostName = "user_auth_host";
417            priority = 50;
418            uid = "useriam";
419            gid = ["useriam"];
420            user_auth_device :: device {
421                device0 :: deviceNode {
422                    policy = 2;
423                    priority = 200;
424                    moduleName = "libuser_auth_driver.z.so";
425                    serviceName = "user_auth_interface_service";
426                }
427            }
428        }
429
430        fingerprint_auth :: host {
431            hostName = "fingerprint_auth_host";
432            priority = 50;
433            uid = "useriam";
434            gid = ["useriam"];
435            fingerprint_device :: device {
436                device0 :: deviceNode {
437                    policy = 2;
438                    priority = 200;
439                    moduleName = "libfingerprint_auth_driver.z.so";
440                    serviceName = "fingerprint_auth_interface_service";
441                }
442            }
443        }
444    }
445}
446