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                     preload = 2;
312                     moduleName = "libclearplay_driver.z.so";
313                     serviceName = "clearplay_service";
314                 }
315            }
316        }
317        input_hal :: host {
318            hostName = "input_user_host";
319            priority = 50;
320            gid = ["input_user_host", "uhdf_driver", "uhid"];
321            input_device :: device {
322                device0 :: deviceNode {
323                    policy = 2;
324                    priority = 150;
325                    moduleName = "libhdf_input_hotplug.z.so";
326                    serviceName = "input_service";
327                }
328            }
329            input_hdi_device :: device {
330                device0 :: deviceNode {
331                    policy = 2;
332                    priority = 100;
333                    moduleName = "libinput_driver.z.so";
334                    serviceName = "input_interfaces_service";
335                }
336            }
337            hid_ddk_device :: device {
338                device0 :: deviceNode {
339                    policy = 2;
340                    priority = 100;
341                    moduleName = "libhid_ddk_driver.z.so";
342                    serviceName = "hid_ddk_service";
343                }
344            }
345        }
346        display_composer :: host {
347            hostName = "composer_host";
348            priority = 40;
349            processPriority = -8;
350            threadPriority = 1;
351            caps = ["SYS_NICE"];
352            uid = ["composer_host"];
353            gid = ["composer_host", "graphics", "vendor_mpp_driver"];
354	        composer_device :: device {
355                device0 :: deviceNode {
356                    policy = 2;
357                    priority = 160;
358                    moduleName = "libdisplay_composer_driver_1.0.z.so";
359                    serviceName = "display_composer_service";
360                }
361            }
362        }
363        allocator :: host {
364            hostName = "allocator_host";
365            priority = 40;
366            allocator_device :: device {
367                device0 :: deviceNode {
368                    policy = 2;
369                    priority = 160;
370                    moduleName = "liballocator_driver_1.0.z.so";
371                    serviceName = "allocator_service";
372                }
373            }
374        }
375        sensor :: host { 
376            hostName = "sensor_host"; 
377            priority = 50; 
378            gid = ["sensor_host", "uhdf_driver"];
379            sensor_device :: device { 
380                device0 :: deviceNode { 
381                    policy = 2; 
382                    priority = 100; 
383                    moduleName = "libsensor_driver.z.so"; 
384                    serviceName = "sensor_interface_service"; 
385                } 
386            } 
387        }
388        vibrator :: host {
389            hostName = "vibrator_host";
390            priority = 50;
391            vibrator_device :: device {
392                device0 :: deviceNode {
393                    policy = 2;
394                    priority = 100;
395                    moduleName = "libvibrator_driver.z.so";
396                    serviceName = "vibrator_interface_service";
397                }
398            }
399        }
400        light :: host {
401            hostName = "light_host";
402            priority = 50;
403            light_device :: device {
404                device0 :: deviceNode {
405                    policy = 2;
406                    priority = 100;
407                    moduleName = "liblight_driver.z.so";
408                    serviceName = "light_interface_service";
409                }
410            }
411        }
412
413        codec :: host {
414            hostName = "codec_host";
415            priority = 50;
416            gid = ["codec_host", "uhdf_driver", "vendor_mpp_driver"];
417            codec_omx_device :: device {
418                device0 :: deviceNode {
419                    policy = 2;
420                    priority = 100;
421                    moduleName = "libcodec_hdi_omx_server.z.so";
422                    serviceName = "codec_hdi_omx_service";
423                    deviceMatchAttr = "media_codec_capabilities";
424                }
425            }
426            codec_omx_idl_device :: device {
427                device0 :: deviceNode {
428                    policy = 2;
429                    priority = 100;
430                    moduleName = "libcodec_driver.z.so";
431                    serviceName = "codec_component_manager_service";
432                    deviceMatchAttr = "media_codec_capabilities";
433                }
434            }
435            codec_device :: device {
436                device0 :: deviceNode {
437                    policy = 2;
438                    priority = 100;
439                    moduleName = "libcodec_server.z.so";
440                    serviceName = "codec_hdi_service";
441                    deviceMatchAttr = "codec_hdi1.0_capabilities";
442                }
443            }
444            codec_image_device :: device {
445                device0 :: deviceNode {
446                    policy = 2;
447                    priority = 100;
448                    moduleName = "libcodec_image_driver.z.so";
449                    serviceName = "codec_image_service";
450                    deviceMatchAttr = "image_codec_capabilities";
451                }
452            }
453        }
454
455        distributed_camera_host :: host {
456            hostName = "dcamera_host";
457            priority = 50;
458            distributed_camera_device :: device {
459                device0 :: deviceNode {
460                    policy = 2;
461                    priority = 100;
462                    preload = 2;
463                    moduleName = "libdistributed_camera_host_config.z.so";
464                    serviceName = "distributed_camera_service";
465                }
466                device1 :: deviceNode {
467                    policy = 2;
468                    priority = 100;
469                    preload = 2;
470                    moduleName = "libdistributed_camera_provider_config.z.so";
471                    serviceName = "distributed_camera_provider_service";
472                }
473            }
474        }
475		
476        distributed_audio_host :: host {
477            hostName = "daudio_host";
478            priority = 50;
479            distributed_audio_device :: device {
480                device0 :: deviceNode {
481                    policy = 2;
482                    priority = 100;
483                    preload = 2;
484                    moduleName = "libdaudio_primary_driver.z.so";
485                    serviceName = "daudio_primary_service";
486                }
487                device1 :: deviceNode {
488                    policy = 2;
489                    priority = 100;
490                    preload = 2;
491                    moduleName = "libdaudio_ext_driver.z.so";
492                    serviceName = "daudio_ext_service";
493                }
494            }
495        }
496
497        face_auth :: host {
498            hostName = "face_auth_host";
499            priority = 50;
500            uid = "face_auth_host";
501            gid = ["face_auth_host"];
502            face_auth_device :: device {
503                device0 :: deviceNode {
504                    policy = 2;
505                    priority = 200;
506                    moduleName = "libface_auth_driver.z.so";
507                    serviceName = "face_auth_interface_service";
508                }
509            }
510        }
511
512        pin_auth :: host {
513            hostName = "pin_auth_host";
514            priority = 50;
515            uid = "pin_auth_host";
516            gid = ["pin_auth_host"];
517            pin_auth_device :: device {
518                device0 :: deviceNode {
519                    policy = 2;
520                    priority = 200;
521                    moduleName = "libpin_auth_driver.z.so";
522                    serviceName = "pin_auth_interface_service";
523                }
524            }
525        }
526
527        user_auth :: host {
528            hostName = "user_auth_host";
529            priority = 50;
530            uid = "user_auth_host";
531            gid = ["user_auth_host"];
532            user_auth_device :: device {
533                device0 :: deviceNode {
534                    policy = 2;
535                    priority = 200;
536                    moduleName = "libuser_auth_driver.z.so";
537                    serviceName = "user_auth_interface_service";
538                }
539            }
540        }
541
542        fingerprint_auth :: host {
543            hostName = "fingerprint_auth_host";
544            priority = 50;
545            uid = "fingerprint_auth_host";
546            gid = ["fingerprint_auth_host"];
547            fingerprint_device :: device {
548                device0 :: deviceNode {
549                    policy = 2;
550                    priority = 200;
551                    moduleName = "libfingerprint_auth_driver.z.so";
552                    serviceName = "fingerprint_auth_interface_service";
553                }
554            }
555        }
556
557        location :: host {
558            hostName = "location_host";
559            priority = 50;
560            uid = "location_host";
561            gid = ["location_host"];
562            location_gnss_device :: device {
563                device0 :: deviceNode {
564                    policy = 2;
565                    priority = 100;
566                    preload = 2;
567                    moduleName = "liblocation_gnss_hdi_driver.z.so";
568                    serviceName = "gnss_interface_service";
569                }
570            }
571            location_agnss_device :: device {
572                device0 :: deviceNode {
573                    policy = 2;
574                    priority = 100;
575                    preload = 2;
576                    moduleName = "liblocation_agnss_hdi_driver.z.so";
577                    serviceName = "agnss_interface_service";
578                }
579            }
580            location_geofence_device :: device {
581                device0 :: deviceNode {
582                    policy = 2;
583                    priority = 100;
584                    preload = 2;
585                    moduleName = "liblocation_geofence_hdi_driver.z.so";
586                    serviceName = "geofence_interface_service";
587                }
588            }
589        }
590        partitionslot :: host {
591            hostName = "partitionslot_host";
592            priority = 100;
593            uid = "useriam";
594            gid = ["useriam", "update"];
595            partitionslot_device :: device {
596                device0 :: deviceNode {
597                    policy = 2;
598                    priority = 100;
599                    preload = 2;
600                    moduleName = "libpartitionslot_driver.z.so";
601                    serviceName = "partition_slot_service";
602                }
603            }
604        }
605        intell_voice :: host {
606            hostName = "intell_voice_host";
607            priority = 100;
608            intell_voice_device :: device {
609                device0 :: deviceNode {
610                    policy = 2;
611                    priority = 100;
612                    preload = 2;
613                    moduleName = "libintell_voice_engine_driver.z.so";
614                    serviceName = "intell_voice_engine_manager_service";
615                }
616            }
617        }
618    }
619}
620