diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index bb3d072e..8bc0b76d 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -977,6 +977,9 @@ on property:vendor.thermal.link_ready=1 write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 12000 write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000 write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_cpu2_lvl 12000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_gpu_lvl 12000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_tpu_lvl 12000 write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1 write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1 write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1 diff --git a/dumpstate/Android.bp b/dumpstate/Android.bp index 8960ac43..71cc1d2c 100644 --- a/dumpstate/Android.bp +++ b/dumpstate/Android.bp @@ -24,6 +24,7 @@ cc_binary { ], vendor: true, relative_install_path: "dump", + init_rc: ["dump_power.rc"], } sh_binary { diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index 1bb47279..12039194 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -21,7 +21,9 @@ #include #include #include +#include #include +#include #include #include @@ -629,10 +631,27 @@ void dumpGvoteables() { void dumpMitigation() { const char *mitigationList [][2] { + {"LastmealCSV" , "/data/vendor/mitigation/lastmeal.csv"}, {"Lastmeal" , "/data/vendor/mitigation/lastmeal.txt"}, {"Thismeal" , "/data/vendor/mitigation/thismeal.txt"}, }; + /* parsing thismeal.bin */ + int status; + int pid = fork(); + if (pid < 0) { + printf("Fork failed for parsing thismeal.bin.\n"); + exit(EXIT_FAILURE); + } else if (pid == 0) { + execl("/vendor/bin/hw/battery_mitigation", "battery_mitigation", "-d", nullptr); + exit(EXIT_SUCCESS); + } + waitpid(pid, &status, 0); + + if (WIFSIGNALED(status)) { + printf("Failed to parse thismeal.bin.(killed by: %d)\n", WTERMSIG(status)); + } + for (auto &row : mitigationList) { if (!isValidFile(row[1])) printTitle(row[0]); diff --git a/dumpstate/dump_power.rc b/dumpstate/dump_power.rc new file mode 100644 index 00000000..ec2aead9 --- /dev/null +++ b/dumpstate/dump_power.rc @@ -0,0 +1,3 @@ +on init + # for parsing thismeal.bin + chown system system /vendor/bin/hw/battery_mitigation