bcl: support thismeal binary

Test: ./dump_power
Flag: EXEMPT refactor
Bug: 349935208
Change-Id: I74f565133d39ece19b29a036d7b236a754b422d3
Signed-off-by: samou <samou@google.com>
This commit is contained in:
samou 2024-07-12 08:12:28 +00:00
parent dd57f0973d
commit 07a17f736e
3 changed files with 23 additions and 0 deletions

View file

@ -24,6 +24,7 @@ cc_binary {
],
vendor: true,
relative_install_path: "dump",
init_rc: ["dump_power.rc"],
}
sh_binary {

View file

@ -21,7 +21,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysinfo.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
#include <vector>
#include <android-base/file.h>
@ -632,10 +634,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]);

3
dumpstate/dump_power.rc Normal file
View file

@ -0,0 +1,3 @@
on init
# for parsing thismeal.bin
chown system system /vendor/bin/hw/battery_mitigation