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            critical = [];
11            template device {
12                template deviceNode {
13                    policy = 0;
14                    priority = 100;
15                    preload = 0;
16                    permission = 0664;
17                    moduleName = "";
18                    serviceName = "";
19                    deviceMatchAttr = "";
20                }
21            }
22        }
23        platform :: host {
24            hostName = "sample_host";
25            priority = 50;
26            gid = ["sample_host", "uhdf_driver"];
27            sample_device :: device {
28                device0 :: deviceNode {
29                    policy = 2;
30                    priority = 100;
31                    preload = 2;
32                    moduleName = "libsample_driver.z.so";
33                    serviceName = "sample_driver_service";
34                }
35                device1 :: deviceNode {
36                    policy = 2;
37                    priority = 100;
38                    preload = 2;
39                    moduleName = "libsample1_driver.z.so";
40                    serviceName = "sample1_driver_service";
41                }
42            }
43        }
44        bluetooth :: host {
45            hostName = "blue_host";
46            priority = 50;
47            caps = ["NET_ADMIN"];
48            bluetooth_device :: device {
49                device0 :: deviceNode {
50                    policy = 2;
51                    priority = 100;
52                    moduleName = "libbluetooth_hci_hdi_driver.z.so";
53                    serviceName = "hci_interface_service";
54                }
55            }
56        }
57        audio_bluetooth :: host {
58            hostName = "a2dp_host";
59            priority = 50;
60            bluetooth_device :: device {
61                device0 :: deviceNode {
62                    policy = 2;
63                    priority = 100;
64                    preload = 2;
65                    moduleName = "libaudio_bluetooth_hdi_adapter_server.z.so";
66                    serviceName = "audio_bluetooth_hdi_service";
67                }
68            }
69        }
70        usb :: host {
71            hostName = "usb_host";
72            priority = 50;
73            caps = ["DAC_OVERRIDE"];
74            usb_pnp_manager_device :: device {
75                device0 :: deviceNode {
76                    policy = 2;
77                    priority = 70;
78                    moduleName = "libusb_pnp_manager.z.so";
79                    serviceName = "usb_pnp_manager";
80                }
81            }
82            usbfn_device :: device {
83                device0 :: deviceNode {
84                    policy = 2;
85                    priority = 80;
86                    preload = 2;
87                    moduleName = "libusbfn.z.so";
88                    serviceName = "usbfn";
89                    deviceMatchAttr = "usbfn_driver";
90                }
91            }
92            ecm_device :: device {
93                device0 :: deviceNode {
94                    policy = 2;
95                    priority = 81;
96                    preload = 2;
97                    moduleName = "libusbfn_cdcecm.z.so";
98                    serviceName = "usbfn_cdcecm";
99                    deviceMatchAttr = "usbfn_cdcecm_driver";
100                }
101            }
102            acm_device :: device {
103                device0 :: deviceNode {
104                    policy = 2;
105                    priority = 100;
106                    preload = 2;
107                    moduleName = "libusbfn_cdcacm.z.so";
108                    serviceName = "usbfn_cdcacm";
109                    deviceMatchAttr = "usbfn_cdcacm_driver";
110                }
111            }
112            mtp_device :: device {
113                device0 :: deviceNode {
114                    policy = 2;
115                    priority = 90;
116                    preload = 2;
117                    moduleName = "libusbfn_mtp_driver.z.so";
118                    serviceName = "usbfn_mtp_interface_service";
119                    deviceMatchAttr = "usbfn_mtp_interface_driver";
120                }
121            }
122            usb_device :: device {
123                device0 :: deviceNode {
124                    policy = 2;
125                    priority = 100;
126                    moduleName = "libusb_driver.z.so";
127                    serviceName = "usb_interface_service";
128                    deviceMatchAttr = "usb_device_interface_driver";
129                }
130            }
131            ddk_device :: device {
132                device0 :: deviceNode {
133                    policy = 2;
134                    priority = 100;
135                    moduleName = "libusb_ddk_driver.z.so";
136                    serviceName = "usb_ddk_service";
137                }
138            }
139        }
140        power :: host {
141            hostName = "power_host";
142            priority = 50;
143            uid = "power_host";
144            gid = ["power_host", "system", "log"];
145            caps = ["BLOCK_SUSPEND"];
146            power_device :: device {
147                device0 :: deviceNode {
148                    policy = 2;
149                    priority = 100;
150                    moduleName = "libpower_driver.z.so";
151                    serviceName = "power_interface_service";
152                }
153            }
154            battery_device :: device {
155                device0 :: deviceNode {
156                    policy = 2;
157                    priority = 100;
158                    moduleName = "libbattery_driver.z.so";
159                    serviceName = "battery_interface_service";
160                }
161            }
162            thermal_device :: device {
163                device0 :: deviceNode {
164                    policy = 2;
165                    priority = 100;
166                    moduleName = "libthermal_driver.z.so";
167                    serviceName = "thermal_interface_service";
168                }
169            }
170        }
171        wlan :: host {
172            hostName = "wifi_host";
173            priority = 50;
174            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
175            gid = ["wifi_host", "wifi_group"];
176            wifi_device :: device {
177                device0 :: deviceNode {
178                    policy = 2;
179                    priority = 100;
180                    moduleName = "libwifi_hdi_c_device.z.so";
181                    serviceName = "wlan_interface_service";
182                }
183            }
184        }
185        wpa :: host {
186            hostName = "wpa_host";
187            priority = 50;
188            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
189            initconfig = ["\"permission\" : [\"ohos.permission.ACCESS_CERT_MANAGER\"]", "\"secon\" : \"u:r:wifi_host:s0\""];
190            uid = "wifi";
191            gid = ["wifi", "wifi_group", "wifi_host"];
192            wpa_device :: device {
193                device0 :: deviceNode {
194                    policy = 2;
195                    preload = 2;
196                    priority = 100;
197                    moduleName = "libwpa_hdi_c_device.z.so";
198                    serviceName = "wpa_interface_service";
199                }
200            }
201        }
202        hostapd :: host {
203            hostName = "hostapd_host";
204            priority = 50;
205            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
206            initconfig = ["\"secon\" : \"u:r:wifi_host:s0\""];
207            uid = "wifi";
208            gid = ["wifi", "wifi_group", "wifi_host"];
209            wpa_device :: device {
210                device0 :: deviceNode {
211                    policy = 2;
212                    preload = 2;
213                    priority = 100;
214                    moduleName = "libhostapd_hdi_c_device.z.so";
215                    serviceName = "hostapd_interface_service";
216                }
217            }
218        }
219        audio :: host {
220            hostName = "audio_host";
221            priority = 50;
222            gid = ["audio_host", "uhdf_driver", "root", "audio"];
223            audio_device :: device {
224                device0 :: deviceNode {
225                    policy = 2;
226                    priority = 100;
227                    moduleName = "libhdi_audio_primary_server.z.so";
228                    serviceName = "audio_hdi_service";
229                }
230            }
231            audio_usb_device :: device {
232                device0 :: deviceNode {
233                    policy = 2;
234                    priority = 100;
235                    moduleName = "libhdi_audio_usb_server.z.so";
236                    serviceName = "audio_hdi_usb_service";
237                }
238            }
239            audio_a2dp_device :: device {
240                device0 :: deviceNode {
241                    policy = 2;
242                    priority = 100;
243                    moduleName = "libhdi_audio_a2dp_server.z.so";
244                    serviceName = "audio_hdi_a2dp_service";
245                }
246            }
247            audio_pnp_device :: device {
248                device0 :: deviceNode {
249                    policy = 2;
250                    priority = 110;
251                    moduleName = "libhdi_audio_pnp_server.z.so";
252                    serviceName = "audio_hdi_pnp_service";
253                }
254            }
255            idl_audio_device :: device {
256                device0 :: deviceNode {
257                    policy = 2;
258                    priority = 100;
259                    moduleName = "libaudio_primary_driver.z.so";
260                    serviceName = "audio_manager_service";
261                }
262            }
263            effect_device :: device {
264                  device0 :: deviceNode {
265                      policy = 2;
266                      priority = 100;
267                      moduleName = "libeffect_model_service.z.so";
268                      serviceName = "effect_model_service";
269                }
270            }
271            trigger_device :: device {
272                device0 :: deviceNode {
273                    policy = 2;
274                    priority = 100;
275                    moduleName = "libintell_voice_trigger_driver.z.so";
276                    serviceName = "intell_voice_trigger_manager_service";
277                }
278            }
279
280        }
281        hdi_server :: host {
282            hostName = "camera_host";
283            priority = 50;
284            gid = ["camera_host", "uhdf_driver", "vendor_mpp_driver"];
285            camera_device :: device {
286                 device0 :: deviceNode {
287                     policy = 2;
288                     priority = 100;
289                     moduleName = "libcamera_host_service_1.0.z.so";
290                     serviceName = "camera_service";
291                 }
292             }
293	        display_device :: device {
294                device0 :: deviceNode {
295                    policy = 2;
296                    priority = 120;
297                    moduleName = "libhdi_media_layer_service.z.so";
298                    serviceName = "hdi_media_layer_service";
299                }
300            }
301        }
302	clearplay :: host {
303            hostName = "clearplay_host";
304            priority = 50;
305            uid = "clearplay_host";
306            gid = ["clearplay_host"];
307            clearplay_device :: device {
308                 device0 :: deviceNode {
309                     policy = 2;
310                     priority = 100;
311                     moduleName = "libclearplay_driver.z.so";
312                     serviceName = "clearplay_service";
313                 }
314            }
315        }
316        input_hal :: host {
317            hostName = "input_user_host";
318            priority = 50;
319            gid = ["input_user_host", "uhdf_driver", "uhid"];
320            input_device :: device {
321                device0 :: deviceNode {
322                    policy = 2;
323                    priority = 150;
324                    moduleName = "libhdf_input_hotplug.z.so";
325                    serviceName = "input_service";
326                }
327            }
328            input_hdi_device :: device {
329                device0 :: deviceNode {
330                    policy = 2;
331                    priority = 100;
332                    moduleName = "libinput_driver.z.so";
333                    serviceName = "input_interfaces_service";
334                }
335            }
336            hid_ddk_device :: device {
337                device0 :: deviceNode {
338                    policy = 2;
339                    priority = 100;
340                    moduleName = "libhid_ddk_driver.z.so";
341                    serviceName = "hid_ddk_service";
342                }
343            }
344        }
345        display_composer :: host {
346            hostName = "composer_host";
347            priority = 40;
348            processPriority = -8;
349            threadPriority = 1;
350            caps = ["SYS_NICE"];
351            uid = ["composer_host"];
352            gid = ["composer_host", "graphics", "vendor_mpp_driver"];
353	        composer_device :: device {
354                device0 :: deviceNode {
355                    policy = 2;
356                    priority = 160;
357                    moduleName = "libdisplay_composer_driver_1.0.z.so";
358                    serviceName = "display_composer_service";
359                }
360            }
361        }
362        allocator :: host {
363            hostName = "allocator_host";
364            priority = 40;
365            allocator_device :: device {
366                device0 :: deviceNode {
367                    policy = 2;
368                    priority = 160;
369                    moduleName = "liballocator_driver_1.0.z.so";
370                    serviceName = "allocator_service";
371                }
372            }
373        }
374        sensor :: host { 
375            hostName = "sensor_host"; 
376            priority = 50; 
377            gid = ["sensor_host", "uhdf_driver"];
378            sensor_device :: device { 
379                device0 :: deviceNode { 
380                    policy = 2; 
381                    priority = 100; 
382                    moduleName = "libsensor_driver.z.so"; 
383                    serviceName = "sensor_interface_service"; 
384                } 
385            } 
386        }
387        vibrator :: host {
388            hostName = "vibrator_host";
389            priority = 50;
390            vibrator_device :: device {
391                device0 :: deviceNode {
392                    policy = 2;
393                    priority = 100;
394                    moduleName = "libvibrator_driver.z.so";
395                    serviceName = "vibrator_interface_service";
396                }
397            }
398        }
399        light :: host {
400            hostName = "light_host";
401            priority = 50;
402            light_device :: device {
403                device0 :: deviceNode {
404                    policy = 2;
405                    priority = 100;
406                    moduleName = "liblight_driver.z.so";
407                    serviceName = "light_interface_service";
408                }
409            }
410        }
411
412        codec :: host {
413            hostName = "codec_host";
414            priority = 50;
415            gid = ["codec_host", "uhdf_driver", "vendor_mpp_driver"];
416            codec_omx_device :: device {
417                device0 :: deviceNode {
418                    policy = 2;
419                    priority = 100;
420                    moduleName = "libcodec_hdi_omx_server.z.so";
421                    serviceName = "codec_hdi_omx_service";
422                    deviceMatchAttr = "media_codec_capabilities";
423                }
424            }
425            codec_omx_idl_device :: device {
426                device0 :: deviceNode {
427                    policy = 2;
428                    priority = 100;
429                    moduleName = "libcodec_driver.z.so";
430                    serviceName = "codec_component_manager_service";
431                    deviceMatchAttr = "media_codec_capabilities";
432                }
433            }
434            codec_device :: device {
435                device0 :: deviceNode {
436                    policy = 2;
437                    priority = 100;
438                    moduleName = "libcodec_server.z.so";
439                    serviceName = "codec_hdi_service";
440                    deviceMatchAttr = "codec_hdi1.0_capabilities";
441                }
442            }
443            codec_image_device :: device {
444                device0 :: deviceNode {
445                    policy = 2;
446                    priority = 100;
447                    moduleName = "libcodec_image_driver.z.so";
448                    serviceName = "codec_image_service";
449                    deviceMatchAttr = "image_codec_capabilities";
450                }
451            }
452        }
453
454        distributed_camera_host :: host {
455            hostName = "dcamera_host";
456            priority = 50;
457            distributed_camera_device :: device {
458                device0 :: deviceNode {
459                    policy = 2;
460                    priority = 100;
461                    preload = 2;
462                    moduleName = "libdistributed_camera_host_config.z.so";
463                    serviceName = "distributed_camera_service";
464                }
465                device1 :: deviceNode {
466                    policy = 2;
467                    priority = 100;
468                    preload = 2;
469                    moduleName = "libdistributed_camera_provider_config.z.so";
470                    serviceName = "distributed_camera_provider_service";
471                }
472            }
473        }
474		
475        distributed_audio_host :: host {
476            hostName = "daudio_host";
477            priority = 50;
478            distributed_audio_device :: device {
479                device0 :: deviceNode {
480                    policy = 2;
481                    priority = 100;
482                    preload = 2;
483                    moduleName = "libdaudio_primary_driver.z.so";
484                    serviceName = "daudio_primary_service";
485                }
486                device1 :: deviceNode {
487                    policy = 2;
488                    priority = 100;
489                    preload = 2;
490                    moduleName = "libdaudio_ext_driver.z.so";
491                    serviceName = "daudio_ext_service";
492                }
493            }
494        }
495
496        face_auth :: host {
497            hostName = "face_auth_host";
498            priority = 50;
499            uid = "face_auth_host";
500            gid = ["face_auth_host"];
501            face_auth_device :: device {
502                device0 :: deviceNode {
503                    policy = 2;
504                    priority = 200;
505                    moduleName = "libface_auth_driver.z.so";
506                    serviceName = "face_auth_interface_service";
507                }
508            }
509        }
510
511        pin_auth :: host {
512            hostName = "pin_auth_host";
513            priority = 50;
514            uid = "pin_auth_host";
515            gid = ["pin_auth_host"];
516            pin_auth_device :: device {
517                device0 :: deviceNode {
518                    policy = 2;
519                    priority = 200;
520                    moduleName = "libpin_auth_driver.z.so";
521                    serviceName = "pin_auth_interface_service";
522                }
523            }
524        }
525
526        user_auth :: host {
527            hostName = "user_auth_host";
528            priority = 50;
529            uid = "user_auth_host";
530            gid = ["user_auth_host"];
531            user_auth_device :: device {
532                device0 :: deviceNode {
533                    policy = 2;
534                    priority = 200;
535                    moduleName = "libuser_auth_driver.z.so";
536                    serviceName = "user_auth_interface_service";
537                }
538            }
539        }
540
541        fingerprint_auth :: host {
542            hostName = "fingerprint_auth_host";
543            priority = 50;
544            uid = "fingerprint_auth_host";
545            gid = ["fingerprint_auth_host"];
546            fingerprint_device :: device {
547                device0 :: deviceNode {
548                    policy = 2;
549                    priority = 200;
550                    moduleName = "libfingerprint_auth_driver.z.so";
551                    serviceName = "fingerprint_auth_interface_service";
552                }
553            }
554        }
555
556        location :: host {
557            hostName = "location_host";
558            priority = 50;
559            uid = "location_host";
560            gid = ["location_host"];
561            location_gnss_device :: device {
562                device0 :: deviceNode {
563                    policy = 2;
564                    priority = 100;
565                    preload = 2;
566                    moduleName = "liblocation_gnss_hdi_driver.z.so";
567                    serviceName = "gnss_interface_service";
568                }
569            }
570            location_agnss_device :: device {
571                device0 :: deviceNode {
572                    policy = 2;
573                    priority = 100;
574                    preload = 2;
575                    moduleName = "liblocation_agnss_hdi_driver.z.so";
576                    serviceName = "agnss_interface_service";
577                }
578            }
579            location_geofence_device :: device {
580                device0 :: deviceNode {
581                    policy = 2;
582                    priority = 100;
583                    preload = 2;
584                    moduleName = "liblocation_geofence_hdi_driver.z.so";
585                    serviceName = "geofence_interface_service";
586                }
587            }
588        }
589        partitionslot :: host {
590            hostName = "partitionslot_host";
591            priority = 100;
592            uid = "useriam";
593            gid = ["useriam", "update"];
594            partitionslot_device :: device {
595                device0 :: deviceNode {
596                    policy = 2;
597                    priority = 100;
598                    preload = 2;
599                    moduleName = "libpartitionslot_driver.z.so";
600                    serviceName = "partition_slot_service";
601                }
602            }
603        }
604        intell_voice :: host {
605            hostName = "intell_voice_host";
606            priority = 100;
607            intell_voice_device :: device {
608                device0 :: deviceNode {
609                    policy = 2;
610                    priority = 100;
611                    preload = 2;
612                    moduleName = "libintell_voice_engine_driver.z.so";
613                    serviceName = "intell_voice_engine_manager_service";
614                }
615            }
616        }
617    }
618}
619