diff --git a/battery_mitigation/sepolicy/battery_mitigation.te b/battery_mitigation/sepolicy/battery_mitigation.te index d956f0a..e954409 100644 --- a/battery_mitigation/sepolicy/battery_mitigation.te +++ b/battery_mitigation/sepolicy/battery_mitigation.te @@ -21,3 +21,6 @@ allow battery_mitigation sysfs_bcl:lnk_file r_file_perms; allow battery_mitigation sysfs_thermal:lnk_file r_file_perms; allow battery_mitigation mitigation_vendor_data_file:dir rw_dir_perms; allow battery_mitigation mitigation_vendor_data_file:file create_file_perms; + +# Allow battery_mitigation to use Binder IPC so that service manager can notify it for callbacks +binder_use(battery_mitigation) \ No newline at end of file diff --git a/pixel_metrics/sepolicy/genfs_contexts b/pixel_metrics/sepolicy/genfs_contexts index b914014..b17bb4a 100644 --- a/pixel_metrics/sepolicy/genfs_contexts +++ b/pixel_metrics/sepolicy/genfs_contexts @@ -1,4 +1,6 @@ #vendor-metrics genfscon sysfs /kernel/metrics/resume_latency/resume_latency_metrics u:object_r:sysfs_vendor_metrics:s0 genfscon sysfs /kernel/metrics/irq/long_irq_metrics u:object_r:sysfs_vendor_metrics:s0 -genfscon sysfs /kernel/metrics/temp_residency/temp_residency_all/stats u:object_r:sysfs_vendor_metrics:s0 + +genfscon sysfs /kernel/metrics/thermal/tr_by_group/tmu/stats u:object_r:sysfs_vendor_metrics:s0 +genfscon sysfs /kernel/metrics/thermal/tr_by_group/spmic/stats u:object_r:sysfs_vendor_metrics:s0 diff --git a/powerstats/CpupmStateResidencyDataProvider.cpp b/powerstats/CpupmStateResidencyDataProvider.cpp index bb0e61f..c963f78 100644 --- a/powerstats/CpupmStateResidencyDataProvider.cpp +++ b/powerstats/CpupmStateResidencyDataProvider.cpp @@ -100,19 +100,21 @@ bool CpupmStateResidencyDataProvider::getStateResidencies( stateId = temp; } - if (stateId >= 0) { - entityIndex = matchEntity(line); - it = residencies->find(mConfig.entities[entityIndex].first); + if (stateId < 0) continue; - if (it != residencies->end()) { - if (parseState(line, &duration, &count)) { - it->second[stateId].totalTimeInStateMs = duration / US_TO_MS; - it->second[stateId].totalStateEntryCount = count; - } else { - LOG(ERROR) << "Failed to parse duration and count from [" << std::string(line) - << "]"; - return false; - } + entityIndex = matchEntity(line); + + if (entityIndex < 0) continue; + + it = residencies->find(mConfig.entities[entityIndex].first); + if (it != residencies->end()) { + if (parseState(line, &duration, &count)) { + it->second[stateId].totalTimeInStateMs = duration / US_TO_MS; + it->second[stateId].totalStateEntryCount = count; + } else { + LOG(ERROR) << "Failed to parse duration and count from [" << std::string(line) + << "]"; + return false; } } }