10a7ce71fSopenharmony_ci root {
20a7ce71fSopenharmony_ci    device_info {
30a7ce71fSopenharmony_ci        match_attr = "hdf_manager";
40a7ce71fSopenharmony_ci        template host {
50a7ce71fSopenharmony_ci            hostName = "";
60a7ce71fSopenharmony_ci            priority = 100;
70a7ce71fSopenharmony_ci            template device {
80a7ce71fSopenharmony_ci                template deviceNode {
90a7ce71fSopenharmony_ci                    policy = 0;
100a7ce71fSopenharmony_ci                    priority = 100;
110a7ce71fSopenharmony_ci                    preload = 0;
120a7ce71fSopenharmony_ci                    permission = 0664;
130a7ce71fSopenharmony_ci                    moduleName = "";
140a7ce71fSopenharmony_ci                    serviceName = "";
150a7ce71fSopenharmony_ci                    deviceMatchAttr = "";
160a7ce71fSopenharmony_ci                }
170a7ce71fSopenharmony_ci            }
180a7ce71fSopenharmony_ci        }
190a7ce71fSopenharmony_ci        platform :: host {
200a7ce71fSopenharmony_ci            hostName = "sample_host";
210a7ce71fSopenharmony_ci            priority = 50;
220a7ce71fSopenharmony_ci            sample_device :: device {
230a7ce71fSopenharmony_ci                device0 :: deviceNode {
240a7ce71fSopenharmony_ci                    policy = 2;
250a7ce71fSopenharmony_ci                    priority = 100;
260a7ce71fSopenharmony_ci                    preload = 2;
270a7ce71fSopenharmony_ci                    moduleName = "libsample_driver.z.so";
280a7ce71fSopenharmony_ci                    serviceName = "sample_driver_service";
290a7ce71fSopenharmony_ci                }
300a7ce71fSopenharmony_ci            }
310a7ce71fSopenharmony_ci        }
320a7ce71fSopenharmony_ci        usb :: host {
330a7ce71fSopenharmony_ci            hostName = "usb_host";
340a7ce71fSopenharmony_ci            priority = 50;
350a7ce71fSopenharmony_ci            caps = ["DAC_OVERRIDE"];
360a7ce71fSopenharmony_ci            usb_device :: device {
370a7ce71fSopenharmony_ci                device0 :: deviceNode {
380a7ce71fSopenharmony_ci                    policy = 2;
390a7ce71fSopenharmony_ci                    priority = 100;
400a7ce71fSopenharmony_ci                    moduleName = "libusb_driver.z.so";
410a7ce71fSopenharmony_ci                    serviceName = "usb_interface_service";
420a7ce71fSopenharmony_ci                    deviceMatchAttr = "usb_device_interface_driver";
430a7ce71fSopenharmony_ci                }
440a7ce71fSopenharmony_ci            }
450a7ce71fSopenharmony_ci        }
460a7ce71fSopenharmony_ci        usbfn :: host {
470a7ce71fSopenharmony_ci            hostName = "usbfn_host";
480a7ce71fSopenharmony_ci            priority = 50;
490a7ce71fSopenharmony_ci            caps = ["DAC_OVERRIDE"];
500a7ce71fSopenharmony_ci            usb_pnp_manager_device :: device {
510a7ce71fSopenharmony_ci                device0 :: deviceNode {
520a7ce71fSopenharmony_ci                    policy = 2;
530a7ce71fSopenharmony_ci                    priority = 70;
540a7ce71fSopenharmony_ci                    moduleName = "libusb_pnp_manager.z.so";
550a7ce71fSopenharmony_ci                    serviceName = "usb_pnp_manager";
560a7ce71fSopenharmony_ci                }
570a7ce71fSopenharmony_ci            }
580a7ce71fSopenharmony_ci            usbfn_device :: device {
590a7ce71fSopenharmony_ci                device0 :: deviceNode {
600a7ce71fSopenharmony_ci                    policy = 2;
610a7ce71fSopenharmony_ci                    priority = 80;
620a7ce71fSopenharmony_ci                    moduleName = "libusbfn.z.so";
630a7ce71fSopenharmony_ci                    serviceName = "usbfn";
640a7ce71fSopenharmony_ci                    deviceMatchAttr = "usbfn_driver";
650a7ce71fSopenharmony_ci                }
660a7ce71fSopenharmony_ci            }
670a7ce71fSopenharmony_ci            ecm_device :: device {
680a7ce71fSopenharmony_ci                device0 :: deviceNode {
690a7ce71fSopenharmony_ci                    policy = 2;
700a7ce71fSopenharmony_ci                    priority = 81;
710a7ce71fSopenharmony_ci                    moduleName = "libusbfn_cdcecm.z.so";
720a7ce71fSopenharmony_ci                    serviceName = "usbfn_cdcecm";
730a7ce71fSopenharmony_ci                    deviceMatchAttr = "usbfn_cdcecm_driver";
740a7ce71fSopenharmony_ci                }
750a7ce71fSopenharmony_ci            }
760a7ce71fSopenharmony_ci            acm_device :: device {
770a7ce71fSopenharmony_ci                device0 :: deviceNode {
780a7ce71fSopenharmony_ci                    policy = 2;
790a7ce71fSopenharmony_ci                    priority = 100;
800a7ce71fSopenharmony_ci                    moduleName = "libusbfn_cdcacm.z.so";
810a7ce71fSopenharmony_ci                    serviceName = "usbfn_cdcacm";
820a7ce71fSopenharmony_ci                    deviceMatchAttr = "usbfn_cdcacm_driver";
830a7ce71fSopenharmony_ci                }
840a7ce71fSopenharmony_ci            }
850a7ce71fSopenharmony_ci        }
860a7ce71fSopenharmony_ci        power :: host {
870a7ce71fSopenharmony_ci            hostName = "power_host";
880a7ce71fSopenharmony_ci            priority = 50;
890a7ce71fSopenharmony_ci            caps = ["BLOCK_SUSPEND"];
900a7ce71fSopenharmony_ci            power_device :: device {
910a7ce71fSopenharmony_ci                device0 :: deviceNode {
920a7ce71fSopenharmony_ci                    policy = 2;
930a7ce71fSopenharmony_ci                    priority = 100;
940a7ce71fSopenharmony_ci                    moduleName = "libpower_driver.z.so";
950a7ce71fSopenharmony_ci                    serviceName = "power_interface_service";
960a7ce71fSopenharmony_ci                }
970a7ce71fSopenharmony_ci            }
980a7ce71fSopenharmony_ci            battery_device :: device {
990a7ce71fSopenharmony_ci                device0 :: deviceNode {
1000a7ce71fSopenharmony_ci                    policy = 2;
1010a7ce71fSopenharmony_ci                    priority = 100;
1020a7ce71fSopenharmony_ci                    moduleName = "libbattery_driver.z.so";
1030a7ce71fSopenharmony_ci                    serviceName = "battery_interface_service";
1040a7ce71fSopenharmony_ci                }
1050a7ce71fSopenharmony_ci            }
1060a7ce71fSopenharmony_ci            thermal_device :: device {
1070a7ce71fSopenharmony_ci                device0 :: deviceNode {
1080a7ce71fSopenharmony_ci                    policy = 2;
1090a7ce71fSopenharmony_ci                    priority = 100;
1100a7ce71fSopenharmony_ci                    moduleName = "libthermal_driver.z.so";
1110a7ce71fSopenharmony_ci                    serviceName = "thermal_interface_service";
1120a7ce71fSopenharmony_ci                }
1130a7ce71fSopenharmony_ci            }
1140a7ce71fSopenharmony_ci        }
1150a7ce71fSopenharmony_ci        wlan :: host {
1160a7ce71fSopenharmony_ci            hostName = "wifi_host";
1170a7ce71fSopenharmony_ci            priority = 50;
1180a7ce71fSopenharmony_ci            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
1190a7ce71fSopenharmony_ci            gid = ["wifi_host", "wifi_group"];
1200a7ce71fSopenharmony_ci            wifi_c_device :: device {
1210a7ce71fSopenharmony_ci                device0 :: deviceNode {
1220a7ce71fSopenharmony_ci                    policy = 2;
1230a7ce71fSopenharmony_ci                    priority = 100;
1240a7ce71fSopenharmony_ci                    moduleName = "libwifi_hdi_c_device.z.so";
1250a7ce71fSopenharmony_ci                    serviceName = "wlan_interface_service";
1260a7ce71fSopenharmony_ci                }
1270a7ce71fSopenharmony_ci            }
1280a7ce71fSopenharmony_ci        }
1290a7ce71fSopenharmony_ci        wpa :: host {
1300a7ce71fSopenharmony_ci            hostName = "wpa_host";
1310a7ce71fSopenharmony_ci            priority = 50;
1320a7ce71fSopenharmony_ci            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
1330a7ce71fSopenharmony_ci            initconfig = ["\"permission\" : [\"ohos.permission.ACCESS_CERT_MANAGER\"]", "\"secon\" : \"u:r:wifi_host:s0\""];
1340a7ce71fSopenharmony_ci            uid = "wifi";
1350a7ce71fSopenharmony_ci            gid = ["wifi", "wifi_group", "wifi_host"];
1360a7ce71fSopenharmony_ci            wpa_device :: device {
1370a7ce71fSopenharmony_ci                device0 :: deviceNode {
1380a7ce71fSopenharmony_ci                    policy = 2;
1390a7ce71fSopenharmony_ci                    preload = 2;
1400a7ce71fSopenharmony_ci                    priority = 100;
1410a7ce71fSopenharmony_ci                    moduleName = "libwpa_hdi_c_device.z.so";
1420a7ce71fSopenharmony_ci                    serviceName = "wpa_interface_service";
1430a7ce71fSopenharmony_ci                }
1440a7ce71fSopenharmony_ci            }
1450a7ce71fSopenharmony_ci        }
1460a7ce71fSopenharmony_ci        hostapd :: host {
1470a7ce71fSopenharmony_ci            hostName = "hostapd_host";
1480a7ce71fSopenharmony_ci            priority = 50;
1490a7ce71fSopenharmony_ci            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
1500a7ce71fSopenharmony_ci            initconfig = ["\"secon\" : \"u:r:wifi_host:s0\""];
1510a7ce71fSopenharmony_ci            uid = "wifi";
1520a7ce71fSopenharmony_ci            gid = ["wifi", "wifi_group", "wifi_host"];
1530a7ce71fSopenharmony_ci            wpa_device :: device {
1540a7ce71fSopenharmony_ci                device0 :: deviceNode {
1550a7ce71fSopenharmony_ci                    policy = 2;
1560a7ce71fSopenharmony_ci                    preload = 2;
1570a7ce71fSopenharmony_ci                    priority = 100;
1580a7ce71fSopenharmony_ci                    moduleName = "libhostapd_hdi_c_device.z.so";
1590a7ce71fSopenharmony_ci                    serviceName = "hostapd_interface_service";
1600a7ce71fSopenharmony_ci                }
1610a7ce71fSopenharmony_ci            }
1620a7ce71fSopenharmony_ci        }
1630a7ce71fSopenharmony_ci        audio :: host {
1640a7ce71fSopenharmony_ci            hostName = "audio_host";
1650a7ce71fSopenharmony_ci            priority = 50;
1660a7ce71fSopenharmony_ci            audio_device :: device {
1670a7ce71fSopenharmony_ci                device0 :: deviceNode {
1680a7ce71fSopenharmony_ci                    policy = 2;
1690a7ce71fSopenharmony_ci                    priority = 100;
1700a7ce71fSopenharmony_ci                    moduleName = "libhdi_audio_server.z.so";
1710a7ce71fSopenharmony_ci                    serviceName = "audio_hdi_service";
1720a7ce71fSopenharmony_ci                }
1730a7ce71fSopenharmony_ci            }
1740a7ce71fSopenharmony_ci        }
1750a7ce71fSopenharmony_ci        hdi_server :: host {
1760a7ce71fSopenharmony_ci            hostName = "camera_host";
1770a7ce71fSopenharmony_ci            priority = 50;
1780a7ce71fSopenharmony_ci            camera_device :: device {
1790a7ce71fSopenharmony_ci                 device0 :: deviceNode {
1800a7ce71fSopenharmony_ci                     policy = 2;
1810a7ce71fSopenharmony_ci                     priority = 100;
1820a7ce71fSopenharmony_ci                     moduleName = "libcamera_hdi_impl.z.so";
1830a7ce71fSopenharmony_ci                     serviceName = "camera_service";
1840a7ce71fSopenharmony_ci                 }
1850a7ce71fSopenharmony_ci             }
1860a7ce71fSopenharmony_ci
1870a7ce71fSopenharmony_ci	    display_device :: device {
1880a7ce71fSopenharmony_ci                device0 :: deviceNode {
1890a7ce71fSopenharmony_ci                    policy = 2;
1900a7ce71fSopenharmony_ci                    priority = 120;
1910a7ce71fSopenharmony_ci                    moduleName = "libhdi_video_layer_service.z.so";
1920a7ce71fSopenharmony_ci                    serviceName = "hdi_video_layer_service";
1930a7ce71fSopenharmony_ci                }
1940a7ce71fSopenharmony_ci            }
1950a7ce71fSopenharmony_ci        }
1960a7ce71fSopenharmony_ci
1970a7ce71fSopenharmony_ci        input_hal :: host {
1980a7ce71fSopenharmony_ci            hostName = "input_user_host";
1990a7ce71fSopenharmony_ci            priority = 50;
2000a7ce71fSopenharmony_ci            input_device :: device {
2010a7ce71fSopenharmony_ci                device0 :: deviceNode {
2020a7ce71fSopenharmony_ci                    policy = 2;
2030a7ce71fSopenharmony_ci                    priority = 150;
2040a7ce71fSopenharmony_ci                    moduleName = "libhdf_input_hotplug.z.so";
2050a7ce71fSopenharmony_ci                    serviceName = "input_service";
2060a7ce71fSopenharmony_ci                }
2070a7ce71fSopenharmony_ci            }
2080a7ce71fSopenharmony_ci        }
2090a7ce71fSopenharmony_ci
2100a7ce71fSopenharmony_ci        display_gralloc :: host {
2110a7ce71fSopenharmony_ci            hostName = "display_gralloc_host";
2120a7ce71fSopenharmony_ci            priority = 40;
2130a7ce71fSopenharmony_ci            input_device :: device {
2140a7ce71fSopenharmony_ci                device0 :: deviceNode {
2150a7ce71fSopenharmony_ci                    policy = 2;
2160a7ce71fSopenharmony_ci                    priority = 160;
2170a7ce71fSopenharmony_ci                    moduleName = "libhdi_display_gralloc_stub.z.so";
2180a7ce71fSopenharmony_ci                    serviceName = "hdi_display_gralloc_service";
2190a7ce71fSopenharmony_ci                }
2200a7ce71fSopenharmony_ci            }
2210a7ce71fSopenharmony_ci        }
2220a7ce71fSopenharmony_ci
2230a7ce71fSopenharmony_ci        codec :: host {
2240a7ce71fSopenharmony_ci            hostName = "codec_host";
2250a7ce71fSopenharmony_ci            priority = 50;
2260a7ce71fSopenharmony_ci            codec_device :: device {
2270a7ce71fSopenharmony_ci                device0 :: deviceNode {
2280a7ce71fSopenharmony_ci                    policy = 2;
2290a7ce71fSopenharmony_ci                    priority = 200;
2300a7ce71fSopenharmony_ci                    moduleName = "libcodec_server.z.so";
2310a7ce71fSopenharmony_ci                    serviceName = "codec_hdi_service";
2320a7ce71fSopenharmony_ci                }
2330a7ce71fSopenharmony_ci            }
2340a7ce71fSopenharmony_ci        }
2350a7ce71fSopenharmony_ci        riladapter :: host {
2360a7ce71fSopenharmony_ci            hostName = "riladapter_host";
2370a7ce71fSopenharmony_ci            priority = 50;
2380a7ce71fSopenharmony_ci            riladapter_device :: device {
2390a7ce71fSopenharmony_ci                device0 :: deviceNode {
2400a7ce71fSopenharmony_ci                    policy = 2;
2410a7ce71fSopenharmony_ci                    priority = 100;
2420a7ce71fSopenharmony_ci                    moduleName = "libhril_hdf.z.so";
2430a7ce71fSopenharmony_ci                    serviceName = "cellular_radio1";
2440a7ce71fSopenharmony_ci                }
2450a7ce71fSopenharmony_ci            }
2460a7ce71fSopenharmony_ci        }
2470a7ce71fSopenharmony_ci        sensor :: host { 
2480a7ce71fSopenharmony_ci            hostName = "sensor_host"; 
2490a7ce71fSopenharmony_ci            priority = 50; 
2500a7ce71fSopenharmony_ci            sensor_device :: device { 
2510a7ce71fSopenharmony_ci                device0 :: deviceNode { 
2520a7ce71fSopenharmony_ci                    policy = 2; 
2530a7ce71fSopenharmony_ci                    priority = 100; 
2540a7ce71fSopenharmony_ci                    moduleName = "libsensor_driver.z.so"; 
2550a7ce71fSopenharmony_ci                    serviceName = "sensor_interface_service"; 
2560a7ce71fSopenharmony_ci                } 
2570a7ce71fSopenharmony_ci            } 
2580a7ce71fSopenharmony_ci        }
2590a7ce71fSopenharmony_ci        vibrator :: host {
2600a7ce71fSopenharmony_ci            hostName = "vibrator_host";
2610a7ce71fSopenharmony_ci            priority = 50;
2620a7ce71fSopenharmony_ci            vibrator_device :: device {
2630a7ce71fSopenharmony_ci                device0 :: deviceNode {
2640a7ce71fSopenharmony_ci                    policy = 2;
2650a7ce71fSopenharmony_ci                    priority = 100;
2660a7ce71fSopenharmony_ci                    moduleName = "libvibrator_driver.z.so";
2670a7ce71fSopenharmony_ci                    serviceName = "vibrator_interface_service";
2680a7ce71fSopenharmony_ci                }
2690a7ce71fSopenharmony_ci            }
2700a7ce71fSopenharmony_ci        }
2710a7ce71fSopenharmony_ci        light :: host {
2720a7ce71fSopenharmony_ci            hostName = "light_host";
2730a7ce71fSopenharmony_ci            priority = 50;
2740a7ce71fSopenharmony_ci            uhdf_light_device :: device {
2750a7ce71fSopenharmony_ci                device0 :: deviceNode {
2760a7ce71fSopenharmony_ci                    policy = 2;
2770a7ce71fSopenharmony_ci                    priority = 100;
2780a7ce71fSopenharmony_ci                    moduleName = "liblight_driver.z.so";
2790a7ce71fSopenharmony_ci                    serviceName = "light_interface_service";
2800a7ce71fSopenharmony_ci                }
2810a7ce71fSopenharmony_ci            }
2820a7ce71fSopenharmony_ci        }
2830a7ce71fSopenharmony_ci    }
2840a7ce71fSopenharmony_ci}
285