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