diff --git a/power-libperfmgr/android.hardware.power-service.moto_sm6375-libperfmgr.rc b/power-libperfmgr/android.hardware.power-service.moto_sm6375-libperfmgr.rc index 5e7ef2a..22b3fae 100644 --- a/power-libperfmgr/android.hardware.power-service.moto_sm6375-libperfmgr.rc +++ b/power-libperfmgr/android.hardware.power-service.moto_sm6375-libperfmgr.rc @@ -7,18 +7,13 @@ service vendor.power-hal-aidl /vendor/bin/hw/android.hardware.power-service.moto on late-fs start vendor.power-hal-aidl -# restart powerHAL when framework died +# Restart powerHAL when framework died on property:init.svc.zygote=restarting && property:vendor.powerhal.state=* setprop vendor.powerhal.state "" setprop vendor.powerhal.audio "" setprop vendor.powerhal.rendering "" restart vendor.power-hal-aidl -# restart powerHAL when audioHAL died -on property:init.svc.vendor.audio-hal-2-0=restarting && property:vendor.powerhal.audio=AUDIO_STREAMING_LOW_LATENCY - setprop vendor.powerhal.audio "" - restart vendor.power-hal-aidl - # Clean up after b/163539793 resolved on property:vendor.powerhal.dalvik.vm.dex2oat-threads=* setprop dalvik.vm.dex2oat-threads ${vendor.powerhal.dalvik.vm.dex2oat-threads} @@ -27,3 +22,11 @@ on property:vendor.powerhal.dalvik.vm.dex2oat-threads=* on property:vendor.powerhal.dalvik.vm.dex2oat-cpu-set=* setprop dalvik.vm.dex2oat-cpu-set ${vendor.powerhal.dalvik.vm.dex2oat-cpu-set} setprop dalvik.vm.restore-dex2oat-cpu-set ${vendor.powerhal.dalvik.vm.dex2oat-cpu-set} + +# Restart powerHAL when debug property set +on property:ro.debuggable=1 && property:vendor.powerhal.config.debug=* + restart vendor.power-hal-aidl + +on property:persist.vendor.powerhal.config.debug=* + setprop vendor.powerhal.config.debug ${persist.vendor.powerhal.config.debug} + diff --git a/power-libperfmgr/service.cpp b/power-libperfmgr/service.cpp index 6068b16..b144b43 100644 --- a/power-libperfmgr/service.cpp +++ b/power-libperfmgr/service.cpp @@ -39,9 +39,14 @@ constexpr std::string_view kConfigProperty("vendor.powerhal.config"); constexpr std::string_view kConfigDefaultFileName("powerhint.json"); int main() { - const std::string config_path = - "/vendor/etc/" + - android::base::GetProperty(kConfigProperty.data(), kConfigDefaultFileName.data()); + std::string config_path = "/vendor/etc/"; + if (android::base::GetBoolProperty(kConfigDebugPathProperty.data(), false)) { + config_path = "/data/vendor/etc/"; + LOG(WARNING) << "Power HAL AIDL Service for moto_sm6375 is using debug config from: " << config_path; + } + config_path.append( + android::base::GetProperty(kConfigProperty.data(), kConfigDefaultFileName.data())); + LOG(INFO) << "Power HAL AIDL Service for moto_sm6375 with Extension is starting with config: " << config_path; @@ -69,23 +74,14 @@ int main() { CHECK(status == STATUS_OK); LOG(INFO) << "Power HAL AIDL Service for moto_sm6375 is started."; + if (::android::base::GetIntProperty("vendor.powerhal.adpf.rate", -1) != -1) { + PowerHintMonitor::getInstance()->start(); + PowerSessionManager::getInstance()->setHintManager(hm); + } + std::thread initThread([&]() { ::android::base::WaitForProperty(kPowerHalInitProp.data(), "1"); hm->Start(); - - // use debug config for ADPF tuning. - if (android::base::GetBoolProperty(kConfigDebugPathProperty.data(), false)) { - const std::string debug_config_path = - "/data/vendor/etc/" + android::base::GetProperty(kConfigProperty.data(), - kConfigDefaultFileName.data()); - hm = HintManager::GetFromJSON(debug_config_path, false); - LOG(WARNING) << "Xiaomi Power HAL AIDL Service with Extension is reloading with config: " - << debug_config_path; - } - if (::android::base::GetIntProperty("vendor.powerhal.adpf.rate", -1) != -1) { - PowerHintMonitor::getInstance()->start(); - PowerSessionManager::getInstance()->setHintManager(hm); - } }); initThread.detach();