New ActivityManager<->debuggerd protocol for recoverable crashes.
Recoverable GWP-ASan catches memory safety bugs, prints debuggerd
reports, but then is able to patch up the process so that a crash
doesn't have to occur. Currently, because AM receives an IPC from
debuggerd, this results in the app being killed.
We previously worked around this by just making debuggerd not send an
IPC for GWP-ASan crashes, but this was overzealous and resulted in the
debuggerd crash not finding its way to dropbox.
So, to handle this, we introduce a new API between debuggerd and
ActivityManager.
For recoverable crashes, introduce a new log tag and extend other stats
logging areas to also add fields to indicate the crash was recoverable.
Readers of these fields should assume that, if the recoverable field is
set, the app didn't actually crash but the app had a recoverable memory
safety violation.
The GWP-ASan CTS additions (in this topic) cover the behaviour and
ensure that the recoverable crashes make their way to dropbox.
Bug: 270720163
Test: atest CtsGwpAsanTestCases
Change-Id: If3515d30a8dcacd9434b30751ae735b050d88e7d
3 files changed