diff --git a/gps/utils/loc_cfg.cpp b/gps/utils/loc_cfg.cpp index 2a89966..4c39eb1 100644 --- a/gps/utils/loc_cfg.cpp +++ b/gps/utils/loc_cfg.cpp @@ -100,6 +100,12 @@ void setVendorEnhanced(bool vendorEnhanced) { sVendorEnhanced = vendorEnhanced; } +bool isXtraDaemonEnabled() { + bool enabled = property_get_bool("persist.sys.xtra-daemon.enabled", false); + LOC_LOGe("xtra-daemon enabled: %d\n", enabled); + return enabled; +} + /*=========================================================================== FUNCTION loc_get_datum_type @@ -821,6 +827,13 @@ int loc_read_process_conf(const char* conf_file_name, uint32_t * process_count_p continue; } + if (strcmp(conf.proc_name, "xtra-daemon") == 0 && !isXtraDaemonEnabled()) { + LOC_LOGE("%s:%d]: Process xtra-daemon is disabled via property", + __func__, __LINE__); + child_proc[j].proc_status = DISABLED_FROM_CONF; + continue; + } + if (strcmp(conf.proc_status, "DISABLED") == 0) { LOC_LOGD("%s:%d]: Process %s is disabled in conf file", __func__, __LINE__, conf.proc_name); diff --git a/rootdir/etc/init/hw/init.qcom.rc b/rootdir/etc/init/hw/init.qcom.rc index 44d0fb6..f405ade 100644 --- a/rootdir/etc/init/hw/init.qcom.rc +++ b/rootdir/etc/init/hw/init.qcom.rc @@ -551,6 +551,9 @@ service loc_launcher /system/vendor/bin/loc_launcher user gps group gps +on property:persist.sys.xtra-daemon.enabled=* + restart loc_launcher + service qcom-sh /vendor/bin/init.qcom.sh class late_start user root