Add persisted log section (section 1116) in incident report. Since persisted logs are only stored in /data/misc/logd in plain text format with interleaving log buffers, incidentd must use a dedicated parser to parse them into protobuf, and it is more efficient to store all buffers in a single section. Implementation details: incidentd invokes incident-helper-cmd, who reads all persisted log files in /data/misc/logd dir matching logcat.* pattern, parses them line by line into TextLogEntry, and passes the data back to incidentd through stdout in protobuf wire format. Command to invoke persisted log directly: $ incident-helper-cmd run persisted_logs Bug: 146086597 Test: adb shell incident -p EXPLICIT 1116 | \ .out/soong/host/linux-x86/bin/aprotoc --decode_raw Change-Id: I163cc47f1b34a58b404d7b7485ff47d8893e3bdd
incident_helper
It is an executable used to help parsing text format data to protobuf.
How to build, deploy, unit test
For the first time, build the test and create an empty directly on device:
root$ make -j incident_helper_test && adb shell mkdir /data/nativetest64/incident_helper_test
Run the test on a device
root$ mmm -j frameworks/base/cmds/incident_helper && \
adb push $OUT/data/nativetest64/incident_helper_test/* /data/nativetest64/incident_helper_test/ && \
adb shell /data/nativetest64/incident_helper_test/incident_helper_test 2>/dev/null
How to adapt proto changes
If add a new proto file, add it in Android.bp under frameworks/base/ and make incident helper
root$ make -j48 incident_helper