Add hal-backend-service plugin data 04/320104/9
authorChanwoo Choi <cw00.choi@samsung.com>
Wed, 19 Feb 2025 03:57:55 +0000 (12:57 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Wed, 26 Feb 2025 08:16:21 +0000 (17:16 +0900)
Each hal-api has the their own hal-bakend-service plugin data to be
loaded by hal-backend-service.service.

[Detailed description of newly added fileds for hal-backend-service plugin]
- Add new fields to load hal-backend-service plugin and get symbol
 .backend_service_library_name       : 32bit file path of hal-backend-service plugin
 .backend_service_library_name_64bit : 64bit file path of hal-backend-service plugin
 .backend_service_symbol_name        : Symbol name loaded by dlsym

- Example of hal-backend-service-tbm plugin,
 .backend_service_library_name       = "/usr/lib/hal/libhal-backend-service-tdm.so",
 .backend_service_library_name_64bit = "/usr/lib64/hal/libhal-backend-service-tdm.so",
 .backend_service_symbol_name        = "hal_backend_service_tdm_data",

Change-Id: Iac7e385f92b8ec9727f78a9e7d83817acdf0a3fb
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
src/hal-api-list.h

index 402e4c1344ef568de3ec068b5c4dddc65a697e18..05350923c79848470cd99c2d2f5415472ac81041 100644 (file)
 static struct __hal_module_info g_hal_module_info[] = {
        /* HAL_GROUP_GRAPHICS */
        [HAL_MODULE_TBM] = {
-               .group                  = HAL_GROUP_GRAPHICS,
-               .module                 = HAL_MODULE_TBM,
-               .license                = HAL_LICENSE_MIT,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_TBM",
-               .backend_module_name    = "tbm",
-               .library_name           = "/hal/lib/libhal-backend-tbm.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-tbm.so",
-               .symbol_name            = "hal_backend_tbm_data",
-               .manifest               = "/etc/hal/hal-api-tbm-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_GRAPHICS,
+               .module                                 = HAL_MODULE_TBM,
+               .license                                = HAL_LICENSE_MIT,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_TBM",
+               .backend_module_name                    = "tbm",
+               .library_name                           = "/hal/lib/libhal-backend-tbm.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-tbm.so",
+               .symbol_name                            = "hal_backend_tbm_data",
+               .manifest                               = "/etc/hal/hal-api-tbm-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-tbm.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-tbm.so",
+               .backend_service_symbol_name            = "hal_backend_service_tbm_data",
        },
        [HAL_MODULE_TDM] = {
-               .group                  = HAL_GROUP_GRAPHICS,
-               .module                 = HAL_MODULE_TDM,
-               .license                = HAL_LICENSE_MIT,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_TDM",
-               .backend_module_name    = "tdm",
-               .library_name           = "/hal/lib/libhal-backend-tdm.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-tdm.so",
-               .symbol_name            = "hal_backend_tdm_data",
-               .manifest               = "/etc/hal/hal-api-tdm-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_GRAPHICS,
+               .module                                 = HAL_MODULE_TDM,
+               .license                                = HAL_LICENSE_MIT,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_TDM",
+               .backend_module_name                    = "tdm",
+               .library_name                           = "/hal/lib/libhal-backend-tdm.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-tdm.so",
+               .symbol_name                            = "hal_backend_tdm_data",
+               .manifest                               = "/etc/hal/hal-api-tdm-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-tdm.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-tdm.so",
+               .backend_service_symbol_name            = "hal_backend_service_tdm_data",
        },
        [HAL_MODULE_COREGL] = {
-               .group                  = HAL_GROUP_GRAPHICS,
-               .module                 = HAL_MODULE_COREGL,
-               .license                = HAL_LICENSE_UNKNOWN,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_COREGL",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_GRAPHICS,
+               .module                                 = HAL_MODULE_COREGL,
+               .license                                = HAL_LICENSE_UNKNOWN,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_COREGL",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
        [HAL_MODULE_INPUT] = {
-               .group                  = HAL_GROUP_GRAPHICS,
-               .module                 = HAL_MODULE_INPUT,
-               .license                = HAL_LICENSE_MIT,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_INPUT",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_GRAPHICS,
+               .module                                 = HAL_MODULE_INPUT,
+               .license                                = HAL_LICENSE_MIT,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_INPUT",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
 
        /* HAL_GROUP_MULTIMEDIA */
        [HAL_MODULE_AUDIO] = {
-               .group                  = HAL_GROUP_MULTIMEDIA,
-               .module                 = HAL_MODULE_AUDIO,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_AUDIO",
-               .backend_module_name    = "audio",
-               .library_name           = "/hal/lib/libhal-backend-audio.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-audio.so",
-               .symbol_name            = "hal_backend_audio_data",
-               .manifest               = "/etc/hal/hal-api-audio-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_MULTIMEDIA,
+               .module                                 = HAL_MODULE_AUDIO,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_AUDIO",
+               .backend_module_name                    = "audio",
+               .library_name                           = "/hal/lib/libhal-backend-audio.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-audio.so",
+               .symbol_name                            = "hal_backend_audio_data",
+               .manifest                               = "/etc/hal/hal-api-audio-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-audio.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-audio.so",
+               .backend_service_symbol_name            = "hal_backend_service_audiodata",
        },
        [HAL_MODULE_CAMERA] = {
-               .group                  = HAL_GROUP_MULTIMEDIA,
-               .module                 = HAL_MODULE_CAMERA,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_CAMERA",
-               .backend_module_name    = "camera",
-               .library_name           = "/hal/lib/libhal-backend-camera.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-camera.so",
-               .symbol_name            = "hal_backend_camera_data",
-               .manifest               = "/etc/hal/hal-api-camera-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_MULTIMEDIA,
+               .module                                 = HAL_MODULE_CAMERA,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_CAMERA",
+               .backend_module_name                    = "camera",
+               .library_name                           = "/hal/lib/libhal-backend-camera.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-camera.so",
+               .symbol_name                            = "hal_backend_camera_data",
+               .manifest                               = "/etc/hal/hal-api-camera-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-camera.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-camera.so",
+               .backend_service_symbol_name            = "hal_backend_service_camera_data",
        },
        [HAL_MODULE_RADIO] = {
-               .group                  = HAL_GROUP_MULTIMEDIA,
-               .module                 = HAL_MODULE_RADIO,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_RADIO",
-               .backend_module_name    = "radio",
-               .library_name           = "/hal/lib/libhal-backend-radio.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-radio.so",
-               .symbol_name            = "hal_backend_radio_data",
-               .manifest               = "/etc/hal/hal-api-radio-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_MULTIMEDIA,
+               .module                                 = HAL_MODULE_RADIO,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_RADIO",
+               .backend_module_name                    = "radio",
+               .library_name                           = "/hal/lib/libhal-backend-radio.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-radio.so",
+               .symbol_name                            = "hal_backend_radio_data",
+               .manifest                               = "/etc/hal/hal-api-radio-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-radio.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-radio.so",
+               .backend_service_symbol_name            = "hal_backend_service_radio_data",
        },
        [HAL_MODULE_CODEC] = {
-               .group                  = HAL_GROUP_MULTIMEDIA,
-               .module                 = HAL_MODULE_CODEC,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_CODEC",
-               .backend_module_name    = "codec",
-               .library_name           = "/hal/lib/libhal-backend-codec.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-codec.so",
-               .symbol_name            = "hal_backend_codec_data",
-               .manifest               = "/etc/hal/hal-api-codec-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_MULTIMEDIA,
+               .module                                 = HAL_MODULE_CODEC,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_CODEC",
+               .backend_module_name                    = "codec",
+               .library_name                           = "/hal/lib/libhal-backend-codec.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-codec.so",
+               .symbol_name                            = "hal_backend_codec_data",
+               .manifest                               = "/etc/hal/hal-api-codec-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-codec.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-codec.so",
+               .backend_service_symbol_name            = "hal_backend_service_codec_data",
        },
        [HAL_MODULE_USB_AUDIO] = {
-               .group                  = HAL_GROUP_MULTIMEDIA,
-               .module                 = HAL_MODULE_USB_AUDIO,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_USB_AUDIO",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_MULTIMEDIA,
+               .module                                 = HAL_MODULE_USB_AUDIO,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_USB_AUDIO",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
        [HAL_MODULE_ALSAUCM] = {
-               .group                  = HAL_GROUP_MULTIMEDIA,
-               .module                 = HAL_MODULE_ALSAUCM,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_ALSAUCM",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_MULTIMEDIA,
+               .module                                 = HAL_MODULE_ALSAUCM,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_ALSAUCM",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
 
        /* HAL_GROUP_CONNECTIVITY */
        [HAL_MODULE_BLUETOOTH] = {
-               .group                  = HAL_GROUP_CONNECTIVITY,
-               .module                 = HAL_MODULE_BLUETOOTH,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_BLUETOOTH",
-               .backend_module_name    = "bluetooth",
-               .library_name           = "/hal/lib/libhal-backend-bluetooth.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-bluetooth.so",
-               .symbol_name            = "hal_backend_bluetooth_data",
-               .manifest               = "/etc/hal/hal-api-bluetooth-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_CONNECTIVITY,
+               .module                                 = HAL_MODULE_BLUETOOTH,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_BLUETOOTH",
+               .backend_module_name                    = "bluetooth",
+               .library_name                           = "/hal/lib/libhal-backend-bluetooth.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-bluetooth.so",
+               .symbol_name                            = "hal_backend_bluetooth_data",
+               .manifest                               = "/etc/hal/hal-api-bluetooth-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-bluetooth.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-bluetooth.so",
+               .backend_service_symbol_name            = "hal_backend_service_bluetooth_data",
        },
        [HAL_MODULE_WIFI] = {
-               .group                  = HAL_GROUP_CONNECTIVITY,
-               .module                 = HAL_MODULE_WIFI,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_WIFI",
-               .backend_module_name    = "wifi",
-               .library_name           = "/hal/lib/libhal-backend-wifi.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-wifi.so",
-               .symbol_name            = "hal_backend_wifi_data",
-               .manifest               = "/etc/hal/hal-api-wifi-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_CONNECTIVITY,
+               .module                                 = HAL_MODULE_WIFI,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_WIFI",
+               .backend_module_name                    = "wifi",
+               .library_name                           = "/hal/lib/libhal-backend-wifi.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-wifi.so",
+               .symbol_name                            = "hal_backend_wifi_data",
+               .manifest                               = "/etc/hal/hal-api-wifi-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-wifi.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-wifi.so",
+               .backend_service_symbol_name            = "hal_backend_service_wifi_data",
        },
        [HAL_MODULE_NAN] = {
-               .group                  = HAL_GROUP_CONNECTIVITY,
-               .module                 = HAL_MODULE_NAN,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_NAN",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_CONNECTIVITY,
+               .module                                 = HAL_MODULE_NAN,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_NAN",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
        [HAL_MODULE_NFC] = {
-               .group                  = HAL_GROUP_CONNECTIVITY,
-               .module                 = HAL_MODULE_NFC,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_NFC",
-               .backend_module_name    = "nfc",
-               .library_name           = "/hal/lib/libhal-backend-nfc.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-nfc.so",
-               .symbol_name            = "hal_backend_nfc_data",
-               .manifest               = "/etc/hal/hal-api-nfc-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_CONNECTIVITY,
+               .module                                 = HAL_MODULE_NFC,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_NFC",
+               .backend_module_name                    = "nfc",
+               .library_name                           = "/hal/lib/libhal-backend-nfc.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-nfc.so",
+               .symbol_name                            = "hal_backend_nfc_data",
+               .manifest                               = "/etc/hal/hal-api-nfc-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-nfc.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-nfc.so",
+               .backend_service_symbol_name            = "hal_backend_service_nfc_data",
        },
        [HAL_MODULE_MTP] = {
-               .group                  = HAL_GROUP_CONNECTIVITY,
-               .module                 = HAL_MODULE_MTP,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_MTP",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_CONNECTIVITY,
+               .module                                 = HAL_MODULE_MTP,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_MTP",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
 
        /* HAL_GROUP_TELEPHONY */
-       [HAL_MODULE_TELEPHONY]          = {
-               .group                  = HAL_GROUP_TELEPHONY,
-               .module                 = HAL_MODULE_TELEPHONY,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_TELEPHONY",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+       [HAL_MODULE_TELEPHONY]                          = {
+               .group                                  = HAL_GROUP_TELEPHONY,
+               .module                                 = HAL_MODULE_TELEPHONY,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_TELEPHONY",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
 
        /* HAL_GROUP_LOCATION */
        [HAL_MODULE_LOCATION] = {
-               .group                  = HAL_GROUP_LOCATION,
-               .module                 = HAL_MODULE_LOCATION,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_LOCATION",
-               .backend_module_name    = "location",
-               .library_name           = "/hal/lib/libhal-backend-location.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-location.so",
-               .symbol_name            = "hal_backend_location_data",
-               .manifest               = "/etc/hal/hal-api-location-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_LOCATION,
+               .module                                 = HAL_MODULE_LOCATION,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_LOCATION",
+               .backend_module_name                    = "location",
+               .library_name                           = "/hal/lib/libhal-backend-location.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-location.so",
+               .symbol_name                            = "hal_backend_location_data",
+               .manifest                               = "/etc/hal/hal-api-location-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-location.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-location.so",
+               .backend_service_symbol_name            = "hal_backend_service_location_data",
        },
 
        /* HAL_GROUP_SYSTEM */
        [HAL_MODULE_COMMON] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_COMMON,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_COMMON",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_COMMON,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_COMMON",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = true,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
        [HAL_MODULE_POWER] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_POWER,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_POWER",
-               .backend_module_name    = "power",
-               .library_name           = "/hal/lib/libhal-backend-power.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-power.so",
-               .symbol_name            = "hal_backend_power_data",
-               .manifest               = "/etc/hal/hal-api-power-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_POWER,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_POWER",
+               .backend_module_name                    = "power",
+               .library_name                           = "/hal/lib/libhal-backend-power.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-power.so",
+               .symbol_name                            = "hal_backend_power_data",
+               .manifest                               = "/etc/hal/hal-api-power-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-power.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-powerso",
+               .backend_service_symbol_name            = "hal_backend_service_power_data",
        },
        [HAL_MODULE_SENSOR] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_SENSOR,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_SENSOR",
-               .backend_module_name    = "sensor",
-               .library_name           = "/hal/lib/libhal-backend-sensor.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-sensor.so",
-               .symbol_name            = "hal_backend_sensor_data",
-               .manifest               = "/etc/hal/hal-api-sensor-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_SENSOR,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_SENSOR",
+               .backend_module_name                    = "sensor",
+               .library_name                           = "/hal/lib/libhal-backend-sensor.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-sensor.so",
+               .symbol_name                            = "hal_backend_sensor_data",
+               .manifest                               = "/etc/hal/hal-api-sensor-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-sensor.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-sensor.so",
+               .backend_service_symbol_name            = "hal_backend_service_sensor_data",
        },
        [HAL_MODULE_PERIPHERAL] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_PERIPHERAL,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_PERIPHERAL",
-               .backend_module_name    = NULL,
-               .library_name           = NULL,
-               .library_name_64bit     = NULL,
-               .symbol_name            = NULL,
-               .manifest               = NULL,
-               .hal_api                = false,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_PERIPHERAL,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_PERIPHERAL",
+               .backend_module_name                    = NULL,
+               .library_name                           = NULL,
+               .library_name_64bit                     = NULL,
+               .symbol_name                            = NULL,
+               .manifest                               = NULL,
+               .hal_api                                = false,
+               .backend_service_library_name           = NULL,
+               .backend_service_library_name_64bit     = NULL,
+               .backend_service_symbol_name            = NULL,
        },
        [HAL_MODULE_DEVICE_BATTERY] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_BATTERY,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_BATTERY",
-               .backend_module_name    = "device-battery",
-               .library_name           = "/hal/lib/libhal-backend-device-battery.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-battery.so",
-               .symbol_name            = "hal_backend_device_battery_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_BATTERY,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_BATTERY",
+               .backend_module_name                    = "device-battery",
+               .library_name                           = "/hal/lib/libhal-backend-device-battery.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-battery.so",
+               .symbol_name                            = "hal_backend_device_battery_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-battery.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-battery.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_battery_data",
        },
        [HAL_MODULE_DEVICE_BEZEL] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_BEZEL,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_BEZEL",
-               .backend_module_name    = "device-bezel",
-               .library_name           = "/hal/lib/libhal-backend-device-bezel.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-bezel.so",
-               .symbol_name            = "hal_backend_device_bezel_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_BEZEL,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_BEZEL",
+               .backend_module_name                    = "device-bezel",
+               .library_name                           = "/hal/lib/libhal-backend-device-bezel.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-bezel.so",
+               .symbol_name                            = "hal_backend_device_bezel_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-bezel.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-bezel.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_bezel_data",
        },
        [HAL_MODULE_DEVICE_DISPLAY] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_DISPLAY,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_DISPLAY",
-               .backend_module_name    = "device-display",
-               .library_name           = "/hal/lib/libhal-backend-device-display.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-display.so",
-               .symbol_name            = "hal_backend_device_display_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_DISPLAY,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_DISPLAY",
+               .backend_module_name                    = "device-display",
+               .library_name                           = "/hal/lib/libhal-backend-device-display.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-display.so",
+               .symbol_name                            = "hal_backend_device_display_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-display.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-display.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_display_data",
        },
        [HAL_MODULE_DEVICE_IR] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_IR,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_IR",
-               .backend_module_name    = "device-ir",
-               .library_name           = "/hal/lib/libhal-backend-device-ir.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-ir.so",
-               .symbol_name            = "hal_backend_device_ir_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_IR,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_IR",
+               .backend_module_name                    = "device-ir",
+               .library_name                           = "/hal/lib/libhal-backend-device-ir.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-ir.so",
+               .symbol_name                            = "hal_backend_device_ir_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-ir.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-ir.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_ir_data",
        },
        [HAL_MODULE_DEVICE_TOUCHSCREEN] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_TOUCHSCREEN,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_TOUCHSCREEN",
-               .backend_module_name    = "device-touchscreen",
-               .library_name           = "/hal/lib/libhal-backend-device-touchscreen.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-touchscreen.so",
-               .symbol_name            = "hal_backend_device_touchscreen_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_TOUCHSCREEN,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_TOUCHSCREEN",
+               .backend_module_name                    = "device-touchscreen",
+               .library_name                           = "/hal/lib/libhal-backend-device-touchscreen.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-touchscreen.so",
+               .symbol_name                            = "hal_backend_device_touchscreen_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-touchscreen.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-touchscreen.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_touchscreen_data",
        },
        [HAL_MODULE_DEVICE_LED] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_LED,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_LED",
-               .backend_module_name    = "device-led",
-               .library_name           = "/hal/lib/libhal-backend-device-led.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-led.so",
-               .symbol_name            = "hal_backend_device_led_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_LED,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_LED",
+               .backend_module_name                    = "device-led",
+               .library_name                           = "/hal/lib/libhal-backend-device-led.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-led.so",
+               .symbol_name                            = "hal_backend_device_led_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-led.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-led.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_led_data",
        },
        [HAL_MODULE_DEVICE_BOARD] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_BOARD,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_BOARD",
-               .backend_module_name    = "device-board",
-               .library_name           = "/hal/lib/libhal-backend-device-board.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-board.so",
-               .symbol_name            = "hal_backend_device_board_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_BOARD,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_BOARD",
+               .backend_module_name                    = "device-board",
+               .library_name                           = "/hal/lib/libhal-backend-device-board.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-board.so",
+               .symbol_name                            = "hal_backend_device_board_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-board.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-board.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_board_data",
        },
        [HAL_MODULE_DEVICE_EXTERNAL_CONNECTION] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_EXTERNAL_CONNECTION,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION",
-               .backend_module_name    = "device-external-connection",
-               .library_name           = "/hal/lib/libhal-backend-device-external-connection.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-external-connection.so",
-               .symbol_name            = "hal_backend_device_external_connection_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_EXTERNAL_CONNECTION,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION",
+               .backend_module_name                    = "device-external-connection",
+               .library_name                           = "/hal/lib/libhal-backend-device-external-connection.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-external-connection.so",
+               .symbol_name                            = "hal_backend_device_external_connection_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-board.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-board.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_board_data",
        },
        [HAL_MODULE_DEVICE_THERMAL] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_THERMAL,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_THERMAL",
-               .backend_module_name    = "device-thermal",
-               .library_name           = "/hal/lib/libhal-backend-device-thermal.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-thermal.so",
-               .symbol_name            = "hal_backend_device_thermal_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_THERMAL,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_THERMAL",
+               .backend_module_name                    = "device-thermal",
+               .library_name                           = "/hal/lib/libhal-backend-device-thermal.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-thermal.so",
+               .symbol_name                            = "hal_backend_device_thermal_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-board.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-board.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_board_data",
        },
        [HAL_MODULE_DEVICE_USB_GADGET] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_USB_GADGET,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_USB_GADGET",
-               .backend_module_name    = "device-usb-gadget",
-               .library_name           = "/hal/lib/libhal-backend-device-usb-gadget.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-usb-gadget.so",
-               .symbol_name            = "hal_backend_device_usb_gadget_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_USB_GADGET,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_USB_GADGET",
+               .backend_module_name                    = "device-usb-gadget",
+               .library_name                           = "/hal/lib/libhal-backend-device-usb-gadget.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-usb-gadget.so",
+               .symbol_name                            = "hal_backend_device_usb_gadget_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-board.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-board.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_board_data",
        },
        [HAL_MODULE_DEVICE_HAPTIC] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_HAPTIC,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_HAPTIC",
-               .backend_module_name    = "device-haptic",
-               .library_name           = "/hal/lib/libhal-backend-device-haptic.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-haptic.so",
-               .symbol_name            = "hal_backend_device_haptic_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_HAPTIC,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_HAPTIC",
+               .backend_module_name                    = "device-haptic",
+               .library_name                           = "/hal/lib/libhal-backend-device-haptic.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-haptic.so",
+               .symbol_name                            = "hal_backend_device_haptic_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-haptic.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-haptic.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_haptic_data",
        },
        [HAL_MODULE_DEVICE_MEMORY] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_MEMORY,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_MEMORY",
-               .backend_module_name    = "device-memory",
-               .library_name           = "/hal/lib/libhal-backend-device-memory.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-memory.so",
-               .symbol_name            = "hal_backend_device_memory_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_MEMORY,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_MEMORY",
+               .backend_module_name                    = "device-memory",
+               .library_name                           = "/hal/lib/libhal-backend-device-memory.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-memory.so",
+               .symbol_name                            = "hal_backend_device_memory_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-memory.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-memory.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_memory_data",
        },
        [HAL_MODULE_DEVICE_INPUT] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_INPUT,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_INPUT",
-               .backend_module_name    = "device-input",
-               .library_name           = "/hal/lib/libhal-backend-device-input.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-input.so",
-               .symbol_name            = "hal_backend_device_input_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_INPUT,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_INPUT",
+               .backend_module_name                    = "device-input",
+               .library_name                           = "/hal/lib/libhal-backend-device-input.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-input.so",
+               .symbol_name                            = "hal_backend_device_input_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-input.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-input.so",
+               .backend_service_symbol_name            = "hal_backend_service_device_input_data",
        },
        [HAL_MODULE_DEVICE_POWER] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DEVICE_POWER,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_DEVICE_POWER",
-               .backend_module_name    = "device-power",
-               .library_name           = "/hal/lib/libhal-backend-device-power.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-device-power.so",
-               .symbol_name            = "hal_backend_device_power_data",
-               .manifest               = "/etc/hal/hal-api-device-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DEVICE_POWER,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_DEVICE_POWER",
+               .backend_module_name                    = "device-power",
+               .library_name                           = "/hal/lib/libhal-backend-device-power.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-device-power.so",
+               .symbol_name                            = "hal_backend_device_power_data",
+               .manifest                               = "/etc/hal/hal-api-device-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-device-power.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-device-powerso",
+               .backend_service_symbol_name            = "hal_backend_service_device_power_data",
        },
 
        [HAL_MODULE_DA_WOW] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DA_WOW,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_DA,
-               .module_name            = "HAL_MODULE_DA_WOW",
-               .backend_module_name    = "da-wow",
-               .library_name           = "/hal/lib/libhal-backend-da-wow.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-da-wow.so",
-               .symbol_name            = "hal_backend_da_wow_data",
-               .manifest               = "/etc/hal/hal-api-da-wow-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DA_WOW,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_DA,
+               .module_name                            = "HAL_MODULE_DA_WOW",
+               .backend_module_name                    = "da-wow",
+               .library_name                           = "/hal/lib/libhal-backend-da-wow.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-da-wow.so",
+               .symbol_name                            = "hal_backend_da_wow_data",
+               .manifest                               = "/etc/hal/hal-api-da-wow-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-da-wow.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-da-wow.so",
+               .backend_service_symbol_name            = "hal_backend_service_da_wow_data",
        },
        [HAL_MODULE_DA_AB_UPDATE] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DA_AB_UPDATE,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_DA,
-               .module_name            = "HAL_MODULE_DA_AB_UPDATE",
-               .backend_module_name    = "da-ab-update",
-               .library_name           = "/hal/lib/libhal-backend-da-ab-update.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-da-ab-update.so",
-               .symbol_name            = "hal_backend_da_ab_update_data",
-               .manifest               = "/etc/hal/hal-api-da-ab-update-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DA_AB_UPDATE,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_DA,
+               .module_name                            = "HAL_MODULE_DA_AB_UPDATE",
+               .backend_module_name                    = "da-ab-update",
+               .library_name                           = "/hal/lib/libhal-backend-da-ab-update.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-da-ab-update.so",
+               .symbol_name                            = "hal_backend_da_ab_update_data",
+               .manifest                               = "/etc/hal/hal-api-da-ab-update-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-da-ab-update.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-da-ab-update.so",
+               .backend_service_symbol_name            = "hal_backend_service_da_ab_update_data",
        },
        [HAL_MODULE_DA_ESE] = {
-               .group                  = HAL_GROUP_SYSTEM,
-               .module                 = HAL_MODULE_DA_ESE,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_DA,
-               .module_name            = "HAL_MODULE_DA_ESE",
-               .backend_module_name    = "da-ese",
-               .library_name           = "/hal/lib/libhal-backend-da-ese.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-da-ese.so",
-               .symbol_name            = "hal_backend_da_ese_data",
-               .manifest               = "/etc/hal/hal-api-da-ese-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SYSTEM,
+               .module                                 = HAL_MODULE_DA_ESE,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_DA,
+               .module_name                            = "HAL_MODULE_DA_ESE",
+               .backend_module_name                    = "da-ese",
+               .library_name                           = "/hal/lib/libhal-backend-da-ese.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-da-ese.so",
+               .symbol_name                            = "hal_backend_da_ese_data",
+               .manifest                               = "/etc/hal/hal-api-da-ese-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-da-ese.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-da-ese.so",
+               .backend_service_symbol_name            = "hal_backend_service_da_ese_data",
        },
 
        /* HAL_GROUP_SECURITY */
        [HAL_MODULE_SECURITY_CERTS] = {
-               .group                  = HAL_GROUP_SECURITY,
-               .module                 = HAL_MODULE_SECURITY_CERTS,
-               .license                = HAL_LICENSE_APACHE_2_0,
-               .gbm_group              = HAL_GBM_GROUP_PUBLIC,
-               .module_name            = "HAL_MODULE_SECURITY_CERTS",
-               .backend_module_name    = "security-certs",
-               .library_name           = "/hal/lib/libhal-backend-security-certs.so",
-               .library_name_64bit     = "/hal/lib64/libhal-backend-security-certs.so",
-               .symbol_name            = "hal_backend_security_certs_data",
-               .manifest               = "/etc/hal/hal-api-security-manifest.xml",
-               .hal_api                = true,
+               .group                                  = HAL_GROUP_SECURITY,
+               .module                                 = HAL_MODULE_SECURITY_CERTS,
+               .license                                = HAL_LICENSE_APACHE_2_0,
+               .gbm_group                              = HAL_GBM_GROUP_PUBLIC,
+               .module_name                            = "HAL_MODULE_SECURITY_CERTS",
+               .backend_module_name                    = "security-certs",
+               .library_name                           = "/hal/lib/libhal-backend-security-certs.so",
+               .library_name_64bit                     = "/hal/lib64/libhal-backend-security-certs.so",
+               .symbol_name                            = "hal_backend_security_certs_data",
+               .manifest                               = "/etc/hal/hal-api-security-manifest.xml",
+               .hal_api                                = true,
+               .backend_service_library_name           = "/usr/lib/hal/libhal-backend-service-security-certs.so",
+               .backend_service_library_name_64bit     = "/usr/lib64/hal/libhal-backend-service-security-certs.so",
+               .backend_service_symbol_name            = "hal_backend_service_security_certs_data",
        },
 };