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            uid = "root";
40            gid = ["system"];
41            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
42            bluetooth_device :: device {
43                device0 :: deviceNode {
44                    policy = 2;
45                    priority = 100;
46                    moduleName = "libbluetooth_hdi_server.z.so";
47                    serviceName = "BtHciService";
48                }
49            }
50        }
51        audio_bluetooth :: host {
52            hostName = "a2dp_host";
53            priority = 50;
54            uid = "root";
55            gid = ["system"];
56            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
57            bluetooth_device :: device {
58                device0 :: deviceNode {
59                    policy = 2;
60                    priority = 100;
61                    preload = 2;
62                    moduleName = "libaudio_bluetooth_hdi_adapter_server.z.so";
63                    serviceName = "audio_bluetooth_hdi_service";
64                }
65            }
66        }
67        usb :: host {
68            hostName = "usb_host";
69            priority = 50;
70            caps = ["DAC_OVERRIDE"];
71            usb_device :: device {
72                device0 :: deviceNode {
73                    policy = 2;
74                    priority = 100;
75                    moduleName = "libusb_driver.z.so";
76                    serviceName = "usb_interface_service";
77                    deviceMatchAttr = "usb_device_interface_driver";
78                }
79            }
80        }
81        usbfn :: host {
82            hostName = "usbfn_host";
83            priority = 50;
84            caps = ["DAC_OVERRIDE"];
85            usb_pnp_manager_device :: device {
86                device0 :: deviceNode {
87                    policy = 2;
88                    priority = 70;
89                    moduleName = "libusb_pnp_manager.z.so";
90                    serviceName = "usb_pnp_manager";
91                }
92            }
93            usbfn_device :: device {
94                device0 :: deviceNode {
95                    policy = 2;
96                    priority = 80;
97                    moduleName = "libusbfn.z.so";
98                    serviceName = "usbfn";
99                    deviceMatchAttr = "usbfn_driver";
100                }
101            }
102            ecm_device :: device {
103                device0 :: deviceNode {
104                    policy = 2;
105                    priority = 81;
106                    moduleName = "libusbfn_cdcecm.z.so";
107                    serviceName = "usbfn_cdcecm";
108                    deviceMatchAttr = "usbfn_cdcecm_driver";
109                }
110            }
111            acm_device :: device {
112                device0 :: deviceNode {
113                    policy = 2;
114                    priority = 100;
115                    moduleName = "libusbfn_cdcacm.z.so";
116                    serviceName = "usbfn_cdcacm";
117                    deviceMatchAttr = "usbfn_cdcacm_driver";
118                }
119            }
120        }
121        power :: host {
122            hostName = "power_host";
123            priority = 50;
124            uid = "system";
125            gid = ["system"];
126            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "BLOCK_SUSPEND"];
127            power_device :: device {
128                device0 :: deviceNode {
129                    policy = 2;
130                    priority = 100;
131                    moduleName = "libpower_driver.z.so";
132                    serviceName = "power_interface_service";
133                }
134            }
135            battery_device :: device {
136                device0 :: deviceNode {
137                    policy = 2;
138                    priority = 100;
139                    moduleName = "libbattery_driver.z.so";
140                    serviceName = "battery_interface_service";
141                }
142            }
143            thermal_device :: device {
144                device0 :: deviceNode {
145                    policy = 2;
146                    priority = 100;
147                    moduleName = "libthermal_driver.z.so";
148                    serviceName = "thermal_interface_service";
149                }
150            }
151        }
152        wlan :: host {
153            hostName = "wifi_host";
154            priority = 50;
155            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
156            gid = ["wifi_host", "wifi_group"];
157            wifi_c_device :: device {
158                device0 :: deviceNode {
159                    policy = 2;
160                    priority = 100;
161                    moduleName = "libwifi_hdi_c_device.z.so";
162                    serviceName = "wlan_interface_service";
163                }
164            }
165        }
166        wpa :: host {
167            hostName = "wpa_host";
168            priority = 50;
169            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
170            initconfig = ["\"permission\" : [\"ohos.permission.ACCESS_CERT_MANAGER\"]", "\"secon\" : \"u:r:wifi_host:s0\""];
171            uid = "wifi";
172            gid = ["wifi", "wifi_group", "wifi_host"];
173            wpa_device :: device {
174                device0 :: deviceNode {
175                    policy = 2;
176                    preload = 2;
177                    priority = 100;
178                    moduleName = "libwpa_hdi_c_device.z.so";
179                    serviceName = "wpa_interface_service";
180                }
181            }
182        }
183        hostapd :: host {
184            hostName = "hostapd_host";
185            priority = 50;
186            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH", "NET_ADMIN", "NET_RAW"];
187            initconfig = ["\"secon\" : \"u:r:wifi_host:s0\""];
188            uid = "wifi";
189            gid = ["wifi", "wifi_group", "wifi_host"];
190            wpa_device :: device {
191                device0 :: deviceNode {
192                    policy = 2;
193                    preload = 2;
194                    priority = 100;
195                    moduleName = "libhostapd_hdi_c_device.z.so";
196                    serviceName = "hostapd_interface_service";
197                }
198            }
199        }
200        audio :: host {
201            hostName = "audio_host";
202            priority = 50;
203            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
204            audio_device :: device {
205                device0 :: deviceNode {
206                    policy = 2;
207                    priority = 100;
208                    moduleName = "libhdi_audio_primary_server.z.so";
209                    serviceName = "audio_hdi_service";
210                }
211            }
212        }
213        hdi_server :: host {
214            hostName = "camera_mpp_host";
215            priority = 50;
216            uid = "root";
217            gid = ["system"];
218            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
219            camera_device :: device {
220                 device0 :: deviceNode {
221                     policy = 2;
222                     priority = 100;
223                     moduleName = "libcamera_hdi_impl.z.so";
224                     serviceName = "camera_service";
225                 }
226             }
227
228	    display_device :: device {
229                device0 :: deviceNode {
230                    policy = 2;
231                    priority = 120;
232                    moduleName = "libhdi_video_layer_service.z.so";
233                    serviceName = "hdi_video_layer_service";
234                }
235            }
236        }
237
238        input_hal :: host {
239            hostName = "input_user_host";
240            priority = 50;
241            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
242            input_device :: device {
243                device0 :: deviceNode {
244                    policy = 2;
245                    priority = 150;
246                    moduleName = "libhdf_input_hotplug.z.so";
247                    serviceName = "input_service";
248                }
249            }
250            input_hdi_device :: device {
251                device0 :: deviceNode {
252                    policy = 2;
253                    priority = 100;
254                    moduleName = "libinput_driver.z.so";
255                    serviceName = "input_interfaces_service";
256                }
257            }
258        }
259
260        display_gralloc :: host {
261            hostName = "display_gralloc_host";
262            priority = 40;
263            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
264            input_device :: device {
265                device0 :: deviceNode {
266                    policy = 2;
267                    priority = 160;
268                    moduleName = "libhdi_display_gralloc_stub.z.so";
269                    serviceName = "hdi_display_gralloc_service";
270                }
271            }
272        }
273
274        codec :: host {
275            hostName = "codec_host";
276            priority = 50;
277            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
278            codec_device :: device {
279                device0 :: deviceNode {
280                    policy = 2;
281                    priority = 200;
282                    moduleName = "libcodec_server.z.so";
283                    serviceName = "codec_hdi_service";
284                }
285            }
286        }
287        riladapter :: host {
288            hostName = "riladapter_host";
289            priority = 50;
290            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
291            riladapter_device :: device {
292                device0 :: deviceNode {
293                    policy = 2;
294                    priority = 100;
295                    moduleName = "libhril_hdf.z.so";
296                    serviceName = "cellular_radio1";
297                }
298            }
299        }
300        sensor :: host { 
301            hostName = "sensor_host"; 
302            priority = 50;
303            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
304            sensor_device :: device { 
305                device0 :: deviceNode { 
306                    policy = 2; 
307                    priority = 100; 
308                    moduleName = "libsensor_driver.z.so"; 
309                    serviceName = "sensor_interface_service"; 
310                } 
311            } 
312        }
313        vibrator :: host {
314            hostName = "vibrator_host";
315            priority = 50;
316            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
317            vibrator_device :: device {
318                device0 :: deviceNode {
319                    policy = 2;
320                    priority = 100;
321                    moduleName = "libvibrator_driver.z.so";
322                    serviceName = "vibrator_interface_service";
323                }
324            }
325        }
326        light :: host {
327            hostName = "light_host";
328            priority = 50;
329            caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"];
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}
341