Add more information to incident header. Especially add config keys
to check if the report is uploadable.
Move incidentheader.proto to libincident so statds is able to include a lite
proto class for incident header.
Change IncidentReportArgs to add the proto object instead of serialized
bytes to prevent caller gives meaningless data.
Bug: 70241842
Test: push config to statsd and verify incidentd generate the report
with correct header.
Change-Id: If95b655be71047b019b229e5903a08f3c21a1f29
diff --git a/bin/src/anomaly/AnomalyTracker.cpp b/bin/src/anomaly/AnomalyTracker.cpp
index f10b2cf..39a19a3 100644
--- a/bin/src/anomaly/AnomalyTracker.cpp
+++ b/bin/src/anomaly/AnomalyTracker.cpp
@@ -19,6 +19,7 @@
#include "AnomalyTracker.h"
#include "guardrail/StatsdStats.h"
+#include "frameworks/base/libs/incident/proto/android/os/header.pb.h"
#include <android/os/IIncidentManager.h>
#include <android/os/IncidentReportArgs.h>
@@ -253,10 +254,10 @@
for (const auto section : incidentdSections) {
incidentReport.addSection(section);
}
- int64_t alertId = mAlert.id();
- std::vector<uint8_t> header;
- uint8_t* src = static_cast<uint8_t*>(static_cast<void*>(&alertId));
- header.insert(header.end(), src, src + sizeof(int64_t));
+ android::os::IncidentHeaderProto header;
+ header.set_alert_id(mAlert.id());
+ header.mutable_config_key()->set_uid(mConfigKey.GetUid());
+ header.mutable_config_key()->set_id(mConfigKey.GetId());
incidentReport.addHeader(header);
service->reportIncident(incidentReport);
} else {