Move default multihal configuration file to /vendor/...
Move default multihal configuration file path to /vendor/etc/sensors/hals.conf. Retained old definition but changed varible name to mark it deprecated. get_so_paths() is modified to search both new and old path for configuration file. MULTI_HAL_CONFIG_FILE_PATH is only used by hidl default implementation at this moment outside multihal module. Bug: 35947802 Test: build ok, sensor works on 2017 devices Change-Id: I443ff71fa194383646108c8eb0c5438d150a5886
This commit is contained in:
parent
cc2a92de7b
commit
900cfac9ee
2 changed files with 27 additions and 7 deletions
|
@ -500,15 +500,32 @@ static bool starts_with(const char* s, const char* prefix) {
|
|||
* The vector must not be null.
|
||||
*/
|
||||
static void get_so_paths(std::vector<std::string> *so_paths) {
|
||||
std::string line;
|
||||
std::ifstream conf_file(MULTI_HAL_CONFIG_FILE_PATH);
|
||||
const std::vector<const char *> config_path_list(
|
||||
{ MULTI_HAL_CONFIG_FILE_PATH, DEPRECATED_MULTI_HAL_CONFIG_FILE_PATH });
|
||||
|
||||
if(!conf_file) {
|
||||
ALOGW("No multihal config file found at %s", MULTI_HAL_CONFIG_FILE_PATH);
|
||||
std::ifstream stream;
|
||||
const char *path = nullptr;
|
||||
for (auto i : config_path_list) {
|
||||
std::ifstream f(i);
|
||||
if (f) {
|
||||
stream = std::move(f);
|
||||
path = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!stream) {
|
||||
ALOGW("No multihal config file found");
|
||||
return;
|
||||
}
|
||||
ALOGV("Multihal config file found at %s", MULTI_HAL_CONFIG_FILE_PATH);
|
||||
while (std::getline(conf_file, line)) {
|
||||
|
||||
ALOGE_IF(strcmp(path, DEPRECATED_MULTI_HAL_CONFIG_FILE_PATH) == 0,
|
||||
"Multihal configuration file path %s is not compatible with Treble "
|
||||
"requirements. Please move it to %s.",
|
||||
path, MULTI_HAL_CONFIG_FILE_PATH);
|
||||
|
||||
ALOGV("Multihal config file found at %s", path);
|
||||
std::string line;
|
||||
while (std::getline(stream, line)) {
|
||||
ALOGV("config file line: '%s'", line.c_str());
|
||||
so_paths->push_back(line);
|
||||
}
|
||||
|
|
|
@ -19,7 +19,10 @@
|
|||
#include <hardware/sensors.h>
|
||||
#include <hardware/hardware.h>
|
||||
|
||||
static const char* MULTI_HAL_CONFIG_FILE_PATH = "/system/etc/sensors/hals.conf";
|
||||
static const char* MULTI_HAL_CONFIG_FILE_PATH = "/vendor/etc/sensors/hals.conf";
|
||||
|
||||
// Depracated because system partition HAL config file does not satisfy treble requirements.
|
||||
static const char* DEPRECATED_MULTI_HAL_CONFIG_FILE_PATH = "/system/etc/sensors/hals.conf";
|
||||
|
||||
struct sensors_module_t *get_multi_hal_module_info(void);
|
||||
|
||||
|
|
Loading…
Reference in a new issue