From 56ce9ed30c813a66c751a1d9e48b735ead72d5e6 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Wed, 19 May 2021 18:26:20 -0700 Subject: [PATCH] Add proto tombstones to dropbox directly. Avoid truncation and mangling the byte contents with a text header by adding to the dropbox directly. Bug: http://b/75261590 Test: `crasher; dumpsys dropbox --print` Change-Id: I6de1c203d4723b1f9bb40a197b234f4b4b1e334e --- .../core/java/com/android/server/BootReceiver.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/BootReceiver.java b/services/core/java/com/android/server/BootReceiver.java index b7c5fba69c8a3..fdba098e6b80f 100644 --- a/services/core/java/com/android/server/BootReceiver.java +++ b/services/core/java/com/android/server/BootReceiver.java @@ -479,9 +479,13 @@ public class BootReceiver extends BroadcastReceiver { final String bootReason = SystemProperties.get("ro.boot.bootreason", null); HashMap timestamps = readTimestamps(); try { - final String headers = getBootHeadersToLogAndUpdate(); - addFileToDropBox(db, timestamps, headers, tombstone.getPath(), LOG_SIZE, - proto ? TAG_TOMBSTONE_PROTO : TAG_TOMBSTONE); + if (proto) { + db.addFile(TAG_TOMBSTONE_PROTO, tombstone, 0); + } else { + final String headers = getBootHeadersToLogAndUpdate(); + addFileToDropBox(db, timestamps, headers, tombstone.getPath(), LOG_SIZE, + TAG_TOMBSTONE); + } } catch (IOException e) { Slog.e(TAG, "Can't log tombstone", e); }