)]}'
{
  "log": [
    {
      "commit": "ab8c8a1b31f8ecb7f407abb8ee3b83f4606453cc",
      "tree": "1f1c08026a03e1efd0c62bfe81569c1a3c40dad8",
      "parents": [
        "babce93c60d334f92d7223367c477d2d9c14ffca"
      ],
      "author": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Tue Jan 21 10:46:15 2025 +0800"
      },
      "committer": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Thu Feb 06 22:49:51 2025 -0800"
      },
      "message": "bootstat: refine sys.boot.reason if device boot up from shipmode\n\n- skip BootReasonStrToReason() if device boot up from shipmode\n- skip BootReasonAddToHistory() if device boot up from shipmode\n  and system_boot_reason is factory_reset or ota\n\nBug: 349723310\nTest: verify sys.boot.reason work as expected if\n      device boot up from shipmode\nChange-Id: I4279deae8c14977c684b5b77035f16fb1b20ed71\nSigned-off-by: Jason Chiu \u003cjasoncschiu@google.com\u003e\n"
    },
    {
      "commit": "85baa828684cfcedb155bcd03916500c4402f2df",
      "tree": "5e5edb02d1b08f561da601d67b25e03e7a9ea723",
      "parents": [
        "2f10c07cc18978fdaf99f5ad3b6cce0f09a75a84"
      ],
      "author": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Wed Feb 05 09:57:44 2025 +0800"
      },
      "committer": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Tue Feb 04 17:59:31 2025 -0800"
      },
      "message": "bootstat: add achant and markcheng as owner\n\nTest: none\nChange-Id: Ie4c218fe51b13407137c4374fe641f1818124fac\nSigned-off-by: Jason Chiu \u003cjasoncschiu@google.com\u003e\n"
    },
    {
      "commit": "2f10c07cc18978fdaf99f5ad3b6cce0f09a75a84",
      "tree": "9017c3a1e9fe77d02d41e7672d5bb9198381509a",
      "parents": [
        "829a95172b061941caa0d9aba2f6748eb58f5984",
        "6f7341bb7ce0fd8f6564aa23dc0b3c6706efb856"
      ],
      "author": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Tue Feb 04 17:46:15 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 04 17:46:15 2025 -0800"
      },
      "message": "Merge \"bootstat: update bootreason for shipmode\" into main"
    },
    {
      "commit": "4987b8f6bfdd2e45302d3f1c49630015c12b9d12",
      "tree": "2fecde19e55e6dc724893128a45e0ef52c5f59f3",
      "parents": [
        "872f45775f04dda2fc80b3821c7b21a551f849de"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 04 09:31:58 2025 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 04 09:31:58 2025 -0800"
      },
      "message": "Trim OWNERS.\n\nChange-Id: Ib79f8a3c7a7156523b2e732d44a962c0ee606e50\n"
    },
    {
      "commit": "6f7341bb7ce0fd8f6564aa23dc0b3c6706efb856",
      "tree": "298e7246d22bd717de3c81d2b7dee741c19b8b81",
      "parents": [
        "b5402e7e91093ec25673e0c3c74958a8cec362ec"
      ],
      "author": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Tue Jan 21 20:02:53 2025 +0800"
      },
      "committer": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Sun Feb 02 17:33:13 2025 -0800"
      },
      "message": "bootstat: update bootreason for shipmode\n\nBug: 349723310\nTest: verify bootreason with shipmode\nChange-Id: I9128c0935e16f7ee0e6ebba01e41f96438340dde\nSigned-off-by: Jason Chiu \u003cjasoncschiu@google.com\u003e\n"
    },
    {
      "commit": "e28d3d1a9be50c6f3fde6540f054dcce9d09f0fd",
      "tree": "54887a6ff98b58d271a510ef7df16be4a60735eb",
      "parents": [
        "4220f93a2b4e3df5a6bdac3d7f1c41985c410ddc"
      ],
      "author": {
        "name": "sashwinbalaji",
        "email": "sashwinbalaji@google.com",
        "time": "Thu Jan 16 09:55:58 2025 +0800"
      },
      "committer": {
        "name": "sashwinbalaji",
        "email": "sashwinbalaji@google.com",
        "time": "Thu Jan 16 09:55:58 2025 +0800"
      },
      "message": "bootstat: Add NTC PMIC shutdown reason.\n\nAdd \"reboot,ntc,pmic,sub\" to kBootReasonMap\n\nBug: 385228865\nTest: Trigger shutdown and validate adb shell bootstat -p\nChange-Id: Ic67d3cd915e79eb1ce7feb3e900d387e9d02d641\n"
    },
    {
      "commit": "d8f5fd4edb0efe61c1b23e451564d2563aa9ec69",
      "tree": "95503bc4a9f8818a0ff5a91ed9460d7afc3ef8a6",
      "parents": [
        "8d9b33d64917a05e3342a9b7faef2156afdf8604"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jun 27 23:08:13 2024 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jun 28 00:52:41 2024 -0700"
      },
      "message": "bootstat: avoid vector\u003cconst T\u003e\n\nA container of const T uses std::allocator\u003cconst T\u003e, which was an\nundocumented libc++ extension that has been removed.\n\nSee https://github.com/llvm/llvm-project/pull/96319.\n\nBug: 349681543\nTest: m bootstat\nChange-Id: Id338f439aa4caf8c9f3c6fc15faef19b1edc4368\n"
    },
    {
      "commit": "1c5911fade98c14bdda106f93d81701c9f34cda7",
      "tree": "896e0613e315523d4c2bd790a542ea3183b3f81f",
      "parents": [
        "c72c9a6d3c460d10fd5f9dfcd537daab261df168"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 07 22:22:13 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 07 22:22:13 2024 +0000"
      },
      "message": "Remove unused addKernelPanicSubReason() return value.\n\nThe only caller that was looking at the return value just stopped.\n\nTest: treehugger\nChange-Id: Icf2508e8e1ee4969918eadeb580f70236ba53496\n"
    },
    {
      "commit": "fa544b551b2466d64d65103cb0518b81eda7535e",
      "tree": "e6c47fc264acedd26d9c5f8d8cdecdd0759f13ba",
      "parents": [
        "14258369ef5c029a701c9fce51fc3f8a5946a097"
      ],
      "author": {
        "name": "Zheng Pan",
        "email": "zhengpan@google.com",
        "time": "Tue Jan 30 15:43:21 2024 -0800"
      },
      "committer": {
        "name": "Zheng Pan",
        "email": "zhengpan@google.com",
        "time": "Tue Feb 06 17:39:27 2024 -0800"
      },
      "message": "bootstat: Remove long key press check\n\nCurrent check is kind of device specfic and causes false positive.\n\nBug: 320829712\nTest: Trigger long key press and check boot reason\nChange-Id: I5b2b8307f16eecd05513bfa51494da174fc839bd\n"
    },
    {
      "commit": "d07ec304232865eef16f79d2f829c48386aa2f46",
      "tree": "5e15dda65ba176b3205fd44fdea775f2f12d2d71",
      "parents": [
        "3ef4da2f6a68e335978d6a70f595b33cf818ae70"
      ],
      "author": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Thu Oct 12 17:11:27 2023 +0800"
      },
      "committer": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Fri Oct 20 05:56:34 2023 +0000"
      },
      "message": "bootstat: add more bootreasons\n\nadd more bootreasons for new design.\n\nBug: 296637681\nTest: trigger apc watchdog then \"adb root; adb shell bootstat -p\"\nChange-Id: Ia78146ba9299eea45e7d89376179e01cbd37cca8\nSigned-off-by: Jason Chiu \u003cjasoncschiu@google.com\u003e\n"
    },
    {
      "commit": "355ae4154efa87bc791a83ceb8fe90998165ad2b",
      "tree": "93c124cfff9e8da7b8944b9bd8c5890bd8ad5df8",
      "parents": [
        "b7cfba1ca210dd3b0f7d10e05a81a2539bc3863e"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Aug 03 10:54:59 2023 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Aug 03 10:54:59 2023 -0700"
      },
      "message": "Remove references to the pdk product variable\n\npdk is deprecated and has no effect as of aosp/1319667.\n\nTest: Presubmits\nChange-Id: I78d7afaaa71b93e575dcd5c20716ffb295b9f522\n"
    },
    {
      "commit": "691d805d30548dc8010a6aad24ef5365fbdf5775",
      "tree": "44271dc00c4c901bb6d54689d5ce36f9141717dd",
      "parents": [
        "aa70ac106ac8e84e85b5410e3e4bfebcb4375246"
      ],
      "author": {
        "name": "David Tracy",
        "email": "dtracy@squareup.com",
        "time": "Thu Mar 23 17:51:11 2023 -0700"
      },
      "committer": {
        "name": "David Tracy",
        "email": "dtracy@squareup.com",
        "time": "Fri Mar 24 09:04:07 2023 -0700"
      },
      "message": "bootstat: Adds additional reboot reason patterns\n\n- Adding allowance for arbitrary ota subreason details, such as\n  success or failure conditions\n- Adding the new subreason \"periodic\", which is useful for POS devices\n  which require e.g. daily reboots as part of security requirements\nTest: Full Android build\n\nChange-Id: Id0a6d38ed902e2b25fbb050980c763912c948f27\nSigned-off-by: David Tracy \u003cdtracy@squareup.com\u003e\n"
    },
    {
      "commit": "2239b57cc120769d046e1937d45064730450bcec",
      "tree": "a407aeeb27d46e2c8077b2074341d7fd1b01218b",
      "parents": [
        "298f6c033bebdcfd8d7c7b49b2fb66668a2712ed"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Wed Jan 18 02:11:40 2023 +0000"
      },
      "committer": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Wed Jan 18 02:14:35 2023 +0000"
      },
      "message": "bootstat.rc: remove trigger that logged post_decrypt_time_elapsed\n\nI missed this in commit d76e4e01c9fe (\"bootstat: remove unused FDE boot\nevents\") (https://r.android.com/2232787).\n\nBug: 208476087\nChange-Id: I7fca8257931607b40cb84e8e96a889472094ed6e\n"
    },
    {
      "commit": "d76e4e01c9fe613ea78c0fcbb240ea6c5b9a6d1b",
      "tree": "f322ccf716cdd5e28d6c68bfaca41fdd645b90d4",
      "parents": [
        "8945a42a1e637588da45cc40b6f662974bd91e6e"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Mon Sep 26 18:54:10 2022 +0000"
      },
      "committer": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Mon Sep 26 19:50:09 2022 +0000"
      },
      "message": "bootstat: remove unused FDE boot events\n\nAndroid 13 dropped support for Full Disk Encryption (FDE) entirely, as\nit has been replaced by File Based Encryption (FBE).  Therefore, the\nFDE-specific boot events are never emitted.  Remove them from the code:\n\n   * boot_decryption_complete\n   * boot_complete_post_decrypt\n   * factory_reset_boot_complete_post_decrypt\n   * ota_boot_complete_post_decrypt\n   * post_decrypt_time_elapsed\n\nBug: 208476087\nChange-Id: Id7a3bbd4f273693bd37b0cd27542dc6080d1c4f4\n"
    },
    {
      "commit": "45545c68d1ecb82386cce7a08ccc4d825ec50359",
      "tree": "c186f918f8f29b7dc7982b76198cdfac61e84e97",
      "parents": [
        "0f7b66b604ab9db1ef31d6eeb5ffdf74de572000",
        "52f9adf176a41a02b920f0738086ffbd37e31959"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 14 22:45:18 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 14 22:45:18 2022 +0000"
      },
      "message": "Merge \"boot_reason: Add reasons for boot_reason_test.sh\""
    },
    {
      "commit": "11160ed297b22cce510f9988521642243f94c7ce",
      "tree": "f24c07b3bbb24db34a19ecb604a86d0c1c5aa99a",
      "parents": [
        "e271146ec8b63e53516999758ab262fae6aa8a2e"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Thu Jul 14 00:24:52 2022 +0800"
      },
      "committer": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Wed Jul 13 17:13:16 2022 +0000"
      },
      "message": "bootstat: add more bootreasons\n\nadd more bootreasons for new platform\n\nBug: 236191641\nTest: trigger apc watchdog then \"adb root; adb shell bootstat -p\"\nChange-Id: I8bbbe57e6c70959a4ec848b59065d0ee9fca50db\n"
    },
    {
      "commit": "52f9adf176a41a02b920f0738086ffbd37e31959",
      "tree": "b47c3cbb0bb9c190f0d1bfb8db2c09dfde944636",
      "parents": [
        "0c1fdc1a09c7382bdf12dc521cb7dfa819d10599"
      ],
      "author": {
        "name": "jiajia tang",
        "email": "tangjiajia@xiaomi.com",
        "time": "Thu Jul 07 11:12:12 2022 +0800"
      },
      "committer": {
        "name": "jiajia tang",
        "email": "tangjiajia@xiaomi.com",
        "time": "Wed Jul 13 00:36:15 2022 +0000"
      },
      "message": "boot_reason: Add reasons for boot_reason_test.sh\n\nAdd \"power_on_key\" and \"power_on_cable\" to match\nheuristics in system/core/bootstat/bootstat.cpp\n\nChange-Id: I947026d658c8a385aab7a3ade9efacffb9538d56\nSigned-off-by: jiajia tang \u003ctangjiajia@xiaomi.com\u003e\n"
    },
    {
      "commit": "f083957850a7ddbf81084a40a34b755aa4fcd45c",
      "tree": "c38b5462eb1ca67f9454d9291769cec8cd761f23",
      "parents": [
        "932e069f0f0b5cb42404fde6b98696bf236a8f25"
      ],
      "author": {
        "name": "jiajia tang",
        "email": "tangjiajia@xiaomi.com",
        "time": "Thu Jul 07 14:30:19 2022 +0800"
      },
      "committer": {
        "name": "jiajia tang",
        "email": "tangjiajia@xiaomi.com",
        "time": "Tue Jul 12 06:01:44 2022 +0000"
      },
      "message": "Replace deprecated atoms.proto file path\n\nPath of \"frameworks/base/cmds/statsd/src/atoms.proto\"\nis out of date. Latest path is\n\"frameworks/proto_logging/stats/atoms.proto\".\n\nSigned-off-by: jiajia tang \u003ctangjiajia@xiaomi.com\u003e\nChange-Id: Ib9471e812466238d79e836b026123f167aaad701\n"
    },
    {
      "commit": "17251023bd3c3b3012e3559e68be94519af692c0",
      "tree": "cdaa90faae430c12d66bee4ea90a4b0cca336b70",
      "parents": [
        "5c00853601d64cbfae6fe26d8270998748171b31"
      ],
      "author": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Tue Jun 28 21:17:49 2022 +0800"
      },
      "committer": {
        "name": "Jason Chiu",
        "email": "jasoncschiu@google.com",
        "time": "Sun Jul 03 14:07:09 2022 +0000"
      },
      "message": "bootstat: add more bootreasons\n\nadd more bootreasons for new projects\n\nBug: 219902794\nTest: trigger apc watchdog then \"adb root; adb shell bootstat -p\"\nSigned-off-by: Jason Chiu \u003cjasoncschiu@google.com\u003e\nChange-Id: I7e19c4d48fb3d5b1c49dc8688936cf1d6eea6e9c\n"
    },
    {
      "commit": "d5f24c5bb9f2a88af1ee45b6eab308e1346976de",
      "tree": "e9be276a699a744cb8b074d8df15a8f44635f595",
      "parents": [
        "53e977339b69d2e6d86ae8e0b76d2e72852c1750"
      ],
      "author": {
        "name": "Howie Chang",
        "email": "howiechang@google.com",
        "time": "Mon Aug 30 17:27:01 2021 +0800"
      },
      "committer": {
        "name": "Howie Chang",
        "email": "howiechang@google.com",
        "time": "Sun Sep 19 19:11:06 2021 +0000"
      },
      "message": "bootstat: add more bootreasons\n\nadd more bootreasons for new projects\n\nBug: 184012295\nTest: trigger apc watchdog then \"adb shell bootstat -p\"\nChange-Id: I7166969dde3675cdbe8433dbfba634a192f6be33\n"
    },
    {
      "commit": "02a83245ef714dd65a85d6bbd16aa299e46e277c",
      "tree": "9db0bd4ef7537e6ad0bf6da76212760273280cef",
      "parents": [
        "8711f7283552ec28e3e06f1c9a8f4b83e7265225"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 20 15:22:02 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 20 15:22:02 2021 -0700"
      },
      "message": "Use libgtest_prod_headers.\n\nBug: http://b/185916167\nTest: treehugger\nChange-Id: I9ece5926944b8c881e3a117cda2c99281c59b61e\n"
    },
    {
      "commit": "82674dedcdd04569a68559bf92763265e3a88c19",
      "tree": "4df3a4c1f7dd69d554e499e7b737a4140120d116",
      "parents": [
        "102f7e4d7e4059fc18565717e14ada13be7f15bb"
      ],
      "author": {
        "name": "Lisa Liu",
        "email": "liulisa@google.com",
        "time": "Tue Mar 16 17:43:32 2021 +0800"
      },
      "committer": {
        "name": "Lisa (LeeWei) Liu",
        "email": "liulisa@google.com",
        "time": "Wed Mar 17 08:56:06 2021 +0000"
      },
      "message": "bootstat: Add Tj thermal shutdown\n\nAdd \"reboot,thermal,tj\" to kBootReasonMap\n\nBug: 174705050\nTest: adb shell echo 110000 \u003e /dev/thermal/tz-by-name/BIG/emul_temp\nadb shell bootstat -p\n\nChange-Id: Iea7da4024a57eff7a758e0e9a2321eb220fc5c28\n"
    },
    {
      "commit": "294a13ae0d4fb28238a2cd3831f8bd589bf5c30c",
      "tree": "bfe51894447e3c58707dee601f0a9d6952cf112f",
      "parents": [
        "0b589672e9fcf09e8f100dde8a5380ccb65d8469",
        "08ba15d143f446381e1d085465e8e27213e59bde"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Sat Mar 06 01:20:15 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 06 01:20:15 2021 +0000"
      },
      "message": "Merge \"bootstat: clarify unit.\""
    },
    {
      "commit": "08ba15d143f446381e1d085465e8e27213e59bde",
      "tree": "4ae10d4bce2be26f782a779647b47fffcfccb793",
      "parents": [
        "d42b34cb65ea908b2a659e1b229bedfdded4481c"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Mar 03 16:32:52 2021 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Mar 03 17:13:34 2021 -0800"
      },
      "message": "bootstat: clarify unit.\n\nTest: pass\nChange-Id: I7fc5cf9a5ae8ff895e20922bc7266ef210e8659f\n"
    },
    {
      "commit": "d69ad69a938a27021adfcc2435dc1fd2ad0c8e1a",
      "tree": "184b620c9b0cddc4b15efa718ddc3961d2ce3d64",
      "parents": [
        "d57652f15b078d06d9258094f8a951374a677f2c"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 19:02:14 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 12:59:05 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to system/core\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  bootstat/Android.bp\n  cli-test/Android.bp\n  code_coverage/Android.bp\n  cpio/Android.bp\n  debuggerd/crasher/Android.bp\n  debuggerd/proto/Android.bp\n  diagnose_usb/Android.bp\n  fs_mgr/libdm/Android.bp\n  fs_mgr/libfiemap/Android.bp\n  fs_mgr/liblp/Android.bp\n  fs_mgr/libsnapshot/Android.bp\n  fs_mgr/libstorage_literals/Android.bp\n  fs_mgr/libvbmeta/Android.bp\n  fs_mgr/tests/Android.bp\n  fs_mgr/tools/Android.bp\n  gatekeeperd/Android.bp\n  healthd/Android.bp\n  healthd/testdata/Android.bp\n  init/Android.bp\n  init/Android.mk\n  init/sysprop/Android.bp\n  init/test_kill_services/Android.bp\n  init/test_service/Android.bp\n  libappfuse/Android.bp\n  libasyncio/Android.bp\n  libbinderwrapper/Android.bp\n  libcrypto_utils/Android.bp\n  libcrypto_utils/tests/Android.bp\n  libdiskconfig/Android.bp\n  libgrallocusage/Android.bp\n  libkeyutils/mini_keyctl/Android.bp\n  libmodprobe/Android.bp\n  libnetutils/Android.bp\n  libpackagelistparser/Android.bp\n  libprocessgroup/Android.bp\n  libprocessgroup/cgrouprc/Android.bp\n  libprocessgroup/cgrouprc_format/Android.bp\n  libprocessgroup/profiles/Android.bp\n  libprocessgroup/setup/Android.bp\n  libqtaguid/Android.bp\n  libsparse/Android.bp\n  libstats/push_compat/Android.bp\n  libsuspend/Android.bp\n  libsync/Android.bp\n  libsystem/Android.bp\n  libsysutils/Android.bp\n  libusbhost/Android.bp\n  libutils/Android.bp\n  libvndksupport/Android.bp\n  libvndksupport/tests/Android.bp\n  llkd/Android.bp\n  llkd/tests/Android.bp\n  property_service/libpropertyinfoparser/Android.bp\n  property_service/libpropertyinfoserializer/Android.bp\n  property_service/property_info_checker/Android.bp\n  qemu_pipe/Android.bp\n  reboot/Android.bp\n  rootdir/Android.bp\n  rootdir/Android.mk\n  rootdir/avb/Android.bp\n  rootdir/avb/Android.mk\n  run-as/Android.bp\n  sdcard/Android.bp\n  set-verity-state/Android.bp\n  shell_and_utilities/Android.bp\n  storaged/Android.bp\n  toolbox/Android.bp\n  trusty/apploader/Android.bp\n  trusty/confirmationui/Android.bp\n  trusty/confirmationui/fuzz/Android.bp\n  trusty/coverage/Android.bp\n  trusty/fuzz/Android.bp\n  trusty/fuzz/test/Android.bp\n  trusty/gatekeeper/Android.bp\n  trusty/gatekeeper/fuzz/Android.bp\n  trusty/keymaster/Android.bp\n  trusty/keymaster/fuzz/Android.bp\n  trusty/libtrusty/Android.bp\n  trusty/libtrusty/tipc-test/Android.bp\n  trusty/secure_dpu/Android.bp\n  trusty/storage/interface/Android.bp\n  trusty/storage/lib/Android.bp\n  trusty/storage/proxy/Android.bp\n  trusty/storage/tests/Android.bp\n  trusty/utils/spiproxyd/Android.bp\n  trusty/utils/trusty-ut-ctrl/Android.bp\n  usbd/Android.bp\n  watchdogd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  debuggerd/Android.bp\n  fastboot/Android.bp\n  libkeyutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT\nto:\n  libcutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  fs_mgr/Android.bp\n  fs_mgr/libfs_avb/Android.bp\n  trusty/Android.bp\n  trusty/utils/rpmb_dev/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  fastboot/fuzzy_fastboot/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: Id740a7d2884556081fdb68876584b25eb95e1bef\n"
    },
    {
      "commit": "c3a206ccda9a78dd45d06b7d68dbe83e1fba779e",
      "tree": "cd137e76557bf1aadffe3cb43e02ab642bc81c71",
      "parents": [
        "187b7d19504ca8bdcbc6217c06a117017b4c6287"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:01:20 2021 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:01:20 2021 +0000"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to system/core\"\n\nThis reverts commit 187b7d19504ca8bdcbc6217c06a117017b4c6287.\n\nReason for revert: system/core is multiple projects, not one.\n\nChange-Id: I790ea41741f8cd9b8b6db2f59a49e71fb0958fd6\n"
    },
    {
      "commit": "187b7d19504ca8bdcbc6217c06a117017b4c6287",
      "tree": "0656ad03ff6e56b17ab0d4a8677955cab2c16cba",
      "parents": [
        "83eae36647eef27b75b128c5bce4732229d2ca0d"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 17:48:16 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:10:03 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to system/core\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  bootstat/Android.bp\n  cli-test/Android.bp\n  code_coverage/Android.bp\n  cpio/Android.bp\n  debuggerd/crasher/Android.bp\n  debuggerd/proto/Android.bp\n  diagnose_usb/Android.bp\n  fs_mgr/libdm/Android.bp\n  fs_mgr/libfiemap/Android.bp\n  fs_mgr/liblp/Android.bp\n  fs_mgr/libsnapshot/Android.bp\n  fs_mgr/libstorage_literals/Android.bp\n  fs_mgr/libvbmeta/Android.bp\n  fs_mgr/tests/Android.bp\n  fs_mgr/tools/Android.bp\n  gatekeeperd/Android.bp\n  healthd/Android.bp\n  healthd/testdata/Android.bp\n  init/Android.bp\n  init/Android.mk\n  init/sysprop/Android.bp\n  init/test_kill_services/Android.bp\n  init/test_service/Android.bp\n  libappfuse/Android.bp\n  libasyncio/Android.bp\n  libbinderwrapper/Android.bp\n  libcrypto_utils/Android.bp\n  libcrypto_utils/tests/Android.bp\n  libdiskconfig/Android.bp\n  libgrallocusage/Android.bp\n  libkeyutils/mini_keyctl/Android.bp\n  libmodprobe/Android.bp\n  libnetutils/Android.bp\n  libpackagelistparser/Android.bp\n  libprocessgroup/Android.bp\n  libprocessgroup/cgrouprc/Android.bp\n  libprocessgroup/cgrouprc_format/Android.bp\n  libprocessgroup/profiles/Android.bp\n  libprocessgroup/setup/Android.bp\n  libqtaguid/Android.bp\n  libsparse/Android.bp\n  libstats/push_compat/Android.bp\n  libsuspend/Android.bp\n  libsync/Android.bp\n  libsystem/Android.bp\n  libsysutils/Android.bp\n  libusbhost/Android.bp\n  libutils/Android.bp\n  libvndksupport/Android.bp\n  libvndksupport/tests/Android.bp\n  llkd/Android.bp\n  llkd/tests/Android.bp\n  property_service/libpropertyinfoparser/Android.bp\n  property_service/libpropertyinfoserializer/Android.bp\n  property_service/property_info_checker/Android.bp\n  qemu_pipe/Android.bp\n  reboot/Android.bp\n  rootdir/Android.bp\n  rootdir/Android.mk\n  rootdir/avb/Android.bp\n  rootdir/avb/Android.mk\n  run-as/Android.bp\n  sdcard/Android.bp\n  set-verity-state/Android.bp\n  shell_and_utilities/Android.bp\n  storaged/Android.bp\n  toolbox/Android.bp\n  trusty/apploader/Android.bp\n  trusty/confirmationui/Android.bp\n  trusty/confirmationui/fuzz/Android.bp\n  trusty/coverage/Android.bp\n  trusty/fuzz/Android.bp\n  trusty/fuzz/test/Android.bp\n  trusty/gatekeeper/Android.bp\n  trusty/gatekeeper/fuzz/Android.bp\n  trusty/keymaster/Android.bp\n  trusty/keymaster/fuzz/Android.bp\n  trusty/libtrusty/Android.bp\n  trusty/libtrusty/tipc-test/Android.bp\n  trusty/secure_dpu/Android.bp\n  trusty/storage/interface/Android.bp\n  trusty/storage/lib/Android.bp\n  trusty/storage/proxy/Android.bp\n  trusty/storage/tests/Android.bp\n  trusty/utils/spiproxyd/Android.bp\n  trusty/utils/trusty-ut-ctrl/Android.bp\n  usbd/Android.bp\n  watchdogd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  debuggerd/Android.bp\n  fastboot/Android.bp\n  libkeyutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT\nto:\n  Android.bp\n  libcutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  fs_mgr/Android.bp\n  fs_mgr/libfs_avb/Android.bp\n  trusty/utils/rpmb_dev/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  fastboot/fuzzy_fastboot/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I5bd81adb5cdcf2b4dd4141b204eb430ff526af8f\n"
    },
    {
      "commit": "2c8cb01b5a9932c7edbc475c713cec3fa216719a",
      "tree": "70d90b4addc40d25ab2c5f7a3ebd98528443a72f",
      "parents": [
        "d42b34cb65ea908b2a659e1b229bedfdded4481c"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Fri Feb 05 09:22:05 2021 -0800"
      },
      "committer": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Fri Feb 05 17:26:21 2021 +0000"
      },
      "message": "Update bootstat_test to really work host-side\n\nbootstat_test is marked host_supported:true but use\na AndroidTest.xml config that can only work for device.\n\nDeleting the explict config to rely on the auto-gen ones.\nAdding unit_tests:true to run in presubmit\n\nTest: presubmit, atest bootstat_tests --host\nBug: 179092189\nChange-Id: Ib6694f760d9ef5f867cd1982f7e1fe65ce9dd62d\n"
    },
    {
      "commit": "953842c1b6ad6f92f895d4a3adeb2e55df597c99",
      "tree": "ac4f3d21115a055c8f48f57f8e6914234271fd00",
      "parents": [
        "1d792bf90a17e33dcd92d1461bd0a1c82fb10d7a"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Mon Jan 25 10:38:55 2021 -0800"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Mon Jan 25 18:40:15 2021 +0000"
      },
      "message": "Remove salyzyn@ from OWNERS.\n\nChange-Id: I00cf5d9592e901257af9fd9cc5ba3e116e15c110\n"
    },
    {
      "commit": "0a112d52f8d31718c7a2813d7f77811a2ef2f36e",
      "tree": "d1335e3c85aef9a71ae23a0f13804df68d67183a",
      "parents": [
        "ebd6a0f3094e4c56336e2e4e1b1afd9027247671",
        "8ac68188acc876da135a74fe3835c8e11c347e4a"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 29 01:42:13 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 29 01:42:13 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: Id18cb0e2d2f3e776a42b566c4a1af2e250890896\nChange-Id: Iba7cab32ab3aa6f47952c840ff6dc8492e8d0704\n"
    },
    {
      "commit": "7b21637782358142be6953af26515b6cba80334b",
      "tree": "784b36191bbf76fabc43e07c82e159762edf057f",
      "parents": [
        "fcaed0effab54fa6face42a1b55c26760df0a074"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Jul 31 15:25:43 2020 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Jul 31 16:36:06 2020 -0600"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nBug: 161896447\nChange-Id: Iafcccbdbdf3ff1078e87000e2ce560ff09b43f68\n"
    },
    {
      "commit": "e08957e317802c98fb17e5f4b24b181adc692d09",
      "tree": "7fc9926f7e81bdce0e58abb1189efc517ed928e6",
      "parents": [
        "2268730110e3ce680eb5c87c9ce495b70bf77f2e",
        "a283bf1bdb1cdccc297d4a1d6bc73a364c528d82"
      ],
      "author": {
        "name": "Jim Kaye",
        "email": "jameskaye@google.com",
        "time": "Fri Jul 03 18:34:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 03 18:34:13 2020 +0000"
      },
      "message": "Merge \"Add Silent Mode boot controls\" am: 08097d4ba4 am: a283bf1bdb\n\nOriginal change: https://android-review.googlesource.com/c/platform/system/core/+/1353985\n\nChange-Id: I4a841d0a650849fd7bbf9aeedd000324fb14ee8c\n"
    },
    {
      "commit": "b7386a6239374522810f80d0df957c8d30a70c09",
      "tree": "9e1964c441837cc6773219f167301e6dde44e222",
      "parents": [
        "bf95cc25e3c94b75499537ee3ed5f173dae65c76"
      ],
      "author": {
        "name": "Jim Kaye",
        "email": "jameskaye@google.com",
        "time": "Wed Jul 01 16:57:01 2020 -0700"
      },
      "committer": {
        "name": "Jim Kaye",
        "email": "jameskaye@google.com",
        "time": "Wed Jul 01 16:57:01 2020 -0700"
      },
      "message": "Add Silent Mode boot controls\n\nAdd \"reboot,forcedsilent\" and \"reboot,forcednonsilent\"\n\nBug: 134521909\nTest: Manually with \u0027adb reboot forcedsilent\u0027\nChange-Id: Ib07d2b78e6263bc25b23e9973590e399eaf4d7ca\n"
    },
    {
      "commit": "3cc699e1fb4175fe45d1e552ce13ff7823168a26",
      "tree": "eae60ca2d52842fb0d6016cbe164449233a2ded7",
      "parents": [
        "39dab62ff060630f4ff36f15abb0daebfd84cc3f",
        "41b977a1fa4ff49584b94c9bd809d4128fc1e973"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 02 19:00:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 02 19:00:02 2020 +0000"
      },
      "message": "Merge \"Improve logging in bootstat.\" am: 2884943687 am: 41b977a1fa\n\nChange-Id: I34cd2c0fef185c01c39ed970f98402efb421517b\n"
    },
    {
      "commit": "49062f3b726cc71b10916d715881156ec6b94ef3",
      "tree": "e82ca2033d619b11d64b3ae146b211541225ffc6",
      "parents": [
        "2af5bd00b024ab8e20ded60a531d211e100a13ed"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Tue Mar 31 23:47:45 2020 +0100"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 02 13:03:21 2020 +0100"
      },
      "message": "Improve logging in bootstat.\n\nThis should help in debugging issues related to the mismatch between\nactual last reboot reason property and the expected one (see attached\nbug).\n\nTest: adb reboot\nTest: adb logcat | grep bootstat\nBug: 152900920\nChange-Id: I085cf1fb80a30389fd3ba821d40b6111a3294d95\n"
    },
    {
      "commit": "15c0b798bdbf84c1c9ce4521ad124860d664a58e",
      "tree": "40b0558eba4967fd108702813e9b3c77e01efc73",
      "parents": [
        "d430c85c5211dfca3c8c787875c57bcac06ebdf8",
        "c0210f1d0ee12305a52809fea4f058dc9da33e8d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 17 10:12:25 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 17 10:12:25 2020 +0000"
      },
      "message": "Merge \"bootstat: enhance last reboot reason property with file backing\" am: 7550e6f882 am: ffd276388f am: c0210f1d0e\n\nChange-Id: I6d953d6b9308dc46619e52f81cb5469b22df55d0\n"
    },
    {
      "commit": "ee016ce0b3cecde031c1d5463edcc1473b63bc39",
      "tree": "0b01b80c4c976d97be3f2e42789cef7bc179a51b",
      "parents": [
        "e6f2b7d884761cf67d2de2829216e52779a01e9c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 23 10:00:34 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Feb 14 13:24:16 2020 -0800"
      },
      "message": "bootstat: enhance last reboot reason property with file backing\n\nHelps with support of recovery and rollback boot reason history, by\nalso using /metadata/bootstat/persist.sys.boot.reason to file the\nreboot reason.\n\nTest: manual\nBug: 129007837\nChange-Id: Id1d21c404067414847bef14a0c43f70cafe1a3e2\n"
    },
    {
      "commit": "606af6dfff0ad225249da3de07253cf327c1a7ad",
      "tree": "1ce760c2a875e192cd027ca0f1664dcee2501d42",
      "parents": [
        "e6211eb978d4c66c61e113379f8e6315005258d3"
      ],
      "author": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Jan 15 10:09:03 2020 -0800"
      },
      "committer": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Feb 05 12:53:24 2020 -0800"
      },
      "message": "bootstat: Migrate to StatsLog for metrics\n\n- All events are migrated to StatsLog atoms.\n- Still keep the string based name for BootEvent logging as that makes it\n  easier for debugging purpose.\n\nBug: 132691841\nTest: check boot related stats are pushed after boot up\n      $ adb shell cmd stats print-stats\n\nChange-Id: I33313695a8a2d0a3c74f7705c0843c8c4bad2133\nMerged-In: I33313695a8a2d0a3c74f7705c0843c8c4bad2133\n"
    },
    {
      "commit": "421a8ead89658784a0d2b608a36dda5f68452c18",
      "tree": "990ba8a1f35bbf25079dd6705956808519561d1c",
      "parents": [
        "f49c38beb5e75f1dc6e9b1a6f6a3eb73abe06aeb",
        "c89638a55ba8195d0559c2268e507fe842bb93dd"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Feb 05 20:53:02 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 05 20:53:02 2020 +0000"
      },
      "message": "Merge \"bootstat: Migrate to StatsLog for metrics\""
    },
    {
      "commit": "c89638a55ba8195d0559c2268e507fe842bb93dd",
      "tree": "da38f45af3bcd5062b1511f12f7f296a31becabb",
      "parents": [
        "d3048df274472d8ddbc8fd1a83d3c7f50677b38f"
      ],
      "author": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Jan 15 10:09:03 2020 -0800"
      },
      "committer": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Feb 04 15:27:06 2020 -0800"
      },
      "message": "bootstat: Migrate to StatsLog for metrics\n\n- All events are migrated to StatsLog atoms.\n- Still keep the string based name for BootEvent logging as that makes it\n  easier for debugging purpose.\n\nBug: 132691841\nTest: check boot related stats are pushed after boot up\n      $ adb shell cmd stats print-stats\n\nChange-Id: I33313695a8a2d0a3c74f7705c0843c8c4bad2133\n"
    },
    {
      "commit": "98ac94f8a009aaf86ab80591d5bd5bb919745520",
      "tree": "982f06b2af18726a31fa24da41e53135bf74d7d8",
      "parents": [
        "98027bf9c2c2077ab198ad23110ee202f1c38bc8",
        "42d0fdbbe57f5ac7c97a0b2b8f8b88e9a7d89821"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 04 19:41:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 04 19:41:33 2020 +0000"
      },
      "message": "Merge \"tests: handle legacy and new bootstat complete\" am: 09b9fc56a2 am: 71c9eef34e am: 42d0fdbbe5\n\nChange-Id: I277bec761182cdabb14f92b623d969f6b763f27c\n"
    },
    {
      "commit": "3576ed043c21a55b137affd7215d1efb845f136e",
      "tree": "ef8c5fdb494080be56df2acecc2c1bfc68b93378",
      "parents": [
        "955601beb42c7c57526e35853d5c8b3a06d13450"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 04 07:16:53 2020 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 04 09:01:31 2020 -0800"
      },
      "message": "tests: handle legacy and new bootstat complete\n\nRegression from commit cb1a8e7fdd231a9d1e95b1493ad716b9008dd81f\n(\"Don\u0027t retrigger bootstat during userspace reboot.\")\n\nsys.boot_completed and either sys.logbootcomplete (legacy) or\nsys.bootstat.first_boot_completed set to determine if the display\nhas gone active for bootstat.  For adb remount test we have no\ndesire or need to wait for bootstat complete, reduce script\ncomplexity.\n\nAlso solve a possible problem with no content supplied to xargs.\n\nSigned-off-by: Mark Salyzyn \u003csalyzyn@google.com\u003e\nTest: adb-remount-test.sh\nBug: 148804390\nBug: 135984674\nChange-Id: Ieefddf583ff7422e8811d2e338a0f16c8943b0d7\n"
    },
    {
      "commit": "ce6266e4035e2f5933eb1d4aba3ed4fe15b911fc",
      "tree": "05aac6947f41eddf3fce1f2b46ff25bfc7abaebd",
      "parents": [
        "d3048df274472d8ddbc8fd1a83d3c7f50677b38f",
        "58b15c03b726eb7f9e9fb5463b52e0f9c26d7311"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 03 17:37:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 03 17:37:50 2020 +0000"
      },
      "message": "Merge \"Don\u0027t retrigger bootstat during userspace reboot.\" am: 64e28438c8 am: 5ebeb57439 am: 58b15c03b7\n\nChange-Id: I961194c0b592de0931e56aaa19b5451f4dbe0a17\n"
    },
    {
      "commit": "4d8e3eaf9fee1126f61fbde6eb61ddd00e068785",
      "tree": "5358e0c60d8924d9230d04147dd66bee4cdce971",
      "parents": [
        "cb1a8e7fdd231a9d1e95b1493ad716b9008dd81f"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Wed Jan 15 23:52:29 2020 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Feb 03 10:30:06 2020 +0000"
      },
      "message": "Don\u0027t retrigger bootstat during userspace reboot.\n\nUserspace reboot can be treated as extension of runtime restart: instead\nof restarting just system_server, it restarts all post-data services.\n\nTest: adb reboot userspace\nTest: checked bootstat didn\u0027t run again.\nTest: system/core/bootstat/boot_reason_test.sh\nBug: 135984674\nChange-Id: Ieda4b201f9b9294a3a54b7f0118ee769f5dd2065\n"
    },
    {
      "commit": "fe0b389190208603677a0298d57aaa6b0c475923",
      "tree": "06dfca2d58f8a6ed03000567244c67f58554fe79",
      "parents": [
        "8fda5feb254f112120aa494fd81d203b3b399437"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Fri Jan 31 17:37:32 2020 -0800"
      },
      "committer": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Fri Jan 31 17:39:02 2020 -0800"
      },
      "message": "Remove libmetricslogger dependency from bootstats\n\nThese are either already migrated or are planned to be migrated to\nstatsd.\n\nBug: 147777989\nBug: 148575354\nTest: compiles\nMerged-In: I00b110dcf5cf4a0fb1673fe05004662b6f3327d0\nChange-Id: I00b110dcf5cf4a0fb1673fe05004662b6f3327d0\n"
    },
    {
      "commit": "e03c360b4db46f57e414c66668c0ef2bc3fac77c",
      "tree": "ff27bbc3d9198271c0bc14b0e08a8c0b43f20292",
      "parents": [
        "6b7985aa8dc657c669117a1150ce150a82489f8b"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Fri Jan 31 14:55:55 2020 -0800"
      },
      "committer": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Fri Jan 31 15:39:52 2020 -0800"
      },
      "message": "Remove libmetricslogger dependency from bootstats\n\nNow that bootstats metrics are migrated to statsd in ag/10082348 and in\nag/9957072, we should not need these anymore.(subject to boottime team)\n\nBug: 147777989\nBug: 148575354\nTest: compiles\nChange-Id: I00b110dcf5cf4a0fb1673fe05004662b6f3327d0\n"
    },
    {
      "commit": "4a787d96ceda4981b53cade7270b9cb27017c840",
      "tree": "3f46d04f29d75eb8171e6c6b7bd7c68c26fc1cd5",
      "parents": [
        "929c9e8b40fe6adb23a140a8584d69edb2cab636"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Wed Jan 15 23:23:13 2020 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Jan 23 00:12:02 2020 +0000"
      },
      "message": "Whitelist reboot reasons related to userspace reboot failure\n\nTest: system/core/bootstat/boot_reason_test.sh\nBug: 135984674\nChange-Id: I31422329f1109273909293a83913ae801eb1fe52\n"
    },
    {
      "commit": "c3ea4291124e90c681e1186dc38198b8f0198ca2",
      "tree": "d4cd55621e73f2f29b25aca488d7f1e19bbccd20",
      "parents": [
        "62f35129d4520e306173dbdec0199a561b60e5f4"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Jan 16 20:05:39 2020 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Jan 16 20:14:25 2020 +0000"
      },
      "message": "Fix ota test case\n\nIt was failing with:\nbuild/make/core/main.mk:2: Calling make directly is no longer supported.\nbuild/make/core/main.mk:3: Either use \u0027envsetup.sh; m\u0027 or \u0027build/soong/soong_ui.bash --make-mode\u0027\nbuild/make/core/main.mk:4: *** done.  Stop.\n\nTest: system/core/bootstat/boot_reason_test.sh ota\nChange-Id: I4fea25f1c09e6ec2f346b6de3749699e254ffd26\n"
    },
    {
      "commit": "a76bfb2d971af7ccbdf814af0b257b79f9309b20",
      "tree": "024e6ff3c15e0d12f5a2510f41b0d2060c273678",
      "parents": [
        "2436e6b15a9f5f03392e942d9caa98ab69ed36d1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 18 09:41:36 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 19 14:59:07 2019 -0700"
      },
      "message": "Simply reboot if the boringssl self test fails\n\nIf this check fails and an OTA or mainline module update has recently\nhappened, we want to rollback the recent change.  The easiest way to\nhandle this is to reboot, which will trigger the fallback mechanisms\nthat are already in place.\n\nBug: 141082587\nTest: device reboots if self test fails\nTest: device rolls back a recently applied OTA with failing self test\nTest: device rolls back a recently applied conscrypt apex update with\n      failing self test\nChange-Id: Iff879deff09d347262dc7a2acadb9164a5029d4a\n"
    },
    {
      "commit": "61c7cc6d88794f7712e945a1ef59717746536363",
      "tree": "f662e5d4ac0c9e8ab7a60c02e871021056ca6395",
      "parents": [
        "e1f381603d5e1a59a2ea9b17b717b768727a58ed",
        "91338a6aa24bd7be4a4347c791357b807b239d3e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jul 15 08:59:33 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 15 08:59:33 2019 -0700"
      },
      "message": "Merge \"bootstat: power_on* handling\"\nam: 91338a6aa2\n\nChange-Id: Ia3cccc615dbb49c3624e73ea248b9e3c5d0ad61d\n"
    },
    {
      "commit": "48d03ad3f0562575552628083c39fa667fdf8009",
      "tree": "06159aaf7bdbc4bbdcf8658dd1cd371f4faa2796",
      "parents": [
        "343ce615cfa3c017cbdccdb60c8af1bd8b4397db"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jul 08 09:26:19 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jul 09 11:35:49 2019 -0700"
      },
      "message": "bootstat: power_on* handling\n\nMissed spots: power_on_charger to cold,charger and\npower_on added to cold,powerkey alias list.\n\nTest: boot_reason_test.sh\nChange-Id: Ie25ce55a6b4c01eb06bd6c3b223114255218e4d5\n"
    },
    {
      "commit": "8ba1ba26d609c0aaf2e98cbf11e478231edc40fa",
      "tree": "f7e9cc0d8516abb232dfffeaff756eb9895ce5e4",
      "parents": [
        "7d9841a07c41ea1a7a7a793e1a58a148aa2ec121",
        "3418abfed72cd749eb9ac664ec0d072371611459"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Tue Jun 25 01:02:09 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 25 01:02:09 2019 -0700"
      },
      "message": "Merge \"bootstat: add reboot,longkey sub-reason to known set\" am: c0349199db\nam: 3418abfed7\n\nChange-Id: I1bbebb85ea7da6b64930a594f41389eaf606b3df\n"
    },
    {
      "commit": "b9a8033037dd5c15ddcc8cd147a4375c9a881d6f",
      "tree": "481d015558f853a0fafc27b85cbb30d02a08c8c1",
      "parents": [
        "99087decb9c9bb63ea20e18f6fa5ccbcefe8cf2b"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Mon Jun 10 23:24:39 2019 +0800"
      },
      "committer": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Mon Jun 24 06:29:49 2019 +0000"
      },
      "message": "bootstat: add reboot,longkey sub-reason to known set\n\nregular expression:\n- \"reboot,longkey,.*\" (184)\n\nregex is dependent on:\n- https://android-review.googlesource.com/947976\n\nTest: none\nBug: 132955428\nBug: 133520088\nChange-Id: I53d13d95ac11ac73273824156363378372a562ed\n"
    },
    {
      "commit": "12e02d5668ca4a5f4f4d6fdaaf0593fd09b1d1b7",
      "tree": "cfc4d03056b1d2bcd059519d819fe56f3e915b28",
      "parents": [
        "eb87c4be66741858c7882f651ca51dd13eecff62",
        "789ae60a9d6690b779710c69c8ab3381ad951ebb"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 28 09:22:58 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 28 09:22:58 2019 -0700"
      },
      "message": "Merge \"recovery: report compliant reboot reason (Part Deux)\" am: 5f7314b7e1\nam: 789ae60a9d\n\nChange-Id: I8edf9ca91a611dd43a4544505ae98edf3df857aa\n"
    },
    {
      "commit": "5f7314b7e1ee607a0aa703dcf3f8febd9123611c",
      "tree": "25771057d50f07c37deace6b5fefa07835408ba9",
      "parents": [
        "7d1f11759a54269f440dd0fcd68ebb616f77211c",
        "65d8b9be994d75a9b32e41bb150f8e38b4dd8a60"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 28 15:57:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 28 15:57:24 2019 +0000"
      },
      "message": "Merge \"recovery: report compliant reboot reason (Part Deux)\""
    },
    {
      "commit": "65d8b9be994d75a9b32e41bb150f8e38b4dd8a60",
      "tree": "4b3f8914ea94261c03a2b386fdd4aa3782493c2e",
      "parents": [
        "691e0e154ad3d666bcd3fb6d21c563700a31ff2f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 23 09:07:54 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 23 13:53:03 2019 -0700"
      },
      "message": "recovery: report compliant reboot reason (Part Deux)\n\nshutdown and reboot should have a corresponding sub-reason.\n\nUpdating:\n    \"reboot,userrequested,fastboot\"\n    \"reboot,userrequested,recovery\"\n    \"reboot,userrequested,recovery,ui\"\n    \"shutdown,userrequested,fastboot\"\n    \"shutdown,userrequested,recovery\"\n    \"reboot,unknown#\" (Can\u0027t happen, debug)\n\nTest: none\nBug: 133326470\nChange-Id: Icf1ab0d462ec2de2272914a36994a095998d6186\n"
    },
    {
      "commit": "ef320007a71e5462033ffdcb17dd0733d0214008",
      "tree": "37494b7a589e550385422b82646160223546a8a9",
      "parents": [
        "691e0e154ad3d666bcd3fb6d21c563700a31ff2f"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed May 22 09:46:02 2019 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed May 22 14:55:49 2019 -0700"
      },
      "message": "Report non-empty system boot reason when bootloader reason is empty\n\nBug: 133321647\nTest: build\nChange-Id: Iada572f969d100ded28639c64afbb2d7440d032a\nMerged-In: Icd3ea4b69ef2ad040926e2b0e121a8f5f1c1b658\n"
    },
    {
      "commit": "f5730912efdf4b0d6618f91c1233ec939cb53066",
      "tree": "3ec3c7123722a368179bf4e7f8d4426f67ece9eb",
      "parents": [
        "bcef838a70c9ad1c11f424e8e58998d911d0cc0e",
        "c39fcd42d70c01dab7c8e5c11efddd88d59b6be4"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed May 22 14:37:18 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 22 14:37:18 2019 -0700"
      },
      "message": "Merge \"Report non-empty system boot reason when bootloader reason is empty\" into qt-dev\nam: c39fcd42d7\n\nChange-Id: Iadbf136ae1f2b567033750cfd12302ab2c4b2dce\n"
    },
    {
      "commit": "699e342b3d77c4e2b7e856621e1ce1150859582f",
      "tree": "06816f83b39391c7679ffce4806ff31b592d744a",
      "parents": [
        "603128693601bc16b7194bbdf74031051e379332"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed May 22 09:46:02 2019 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed May 22 09:46:02 2019 -0700"
      },
      "message": "Report non-empty system boot reason when bootloader reason is empty\n\nBug: 133321647\nTest: build\nChange-Id: Icd3ea4b69ef2ad040926e2b0e121a8f5f1c1b658\n"
    },
    {
      "commit": "8d1be80de2df00a483da0674cdaa8e4598b7952a",
      "tree": "14b1b2efebcd71d4ab1b5d300ae59ae6080d442e",
      "parents": [
        "4e7acf7075895619a1c9497e4815ccc2ebcf4a53"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 21 10:47:55 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 21 10:54:07 2019 -0700"
      },
      "message": "bootstat: add recovery/fastboot boot reasons\n\nTest: none\nChange-Id: I3013c28d02c9744bdfa312c179143f7db9e51596\n"
    },
    {
      "commit": "4e7acf7075895619a1c9497e4815ccc2ebcf4a53",
      "tree": "e9cfb41e0d8924c4ff88b09f3a116caee21f4dc8",
      "parents": [
        "7dc7c3a9c66cc5f934e57a57415dae33c4830841"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 16 11:00:26 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 21 10:53:56 2019 -0700"
      },
      "message": "bootstat: label Mediatek boot reasons\n\nComment which strings come from Mediatek devices to aid maintenance.\n\nTest: compile\nBug: 74595769\nBug: 63736262\nChange-Id: Ic60970bcbbb389e4158ee691c4c81e6514d3b870\n"
    },
    {
      "commit": "10377df9f88dcb6d5d1be9b1a989d677aa76ecc3",
      "tree": "3c51729dfd1b475d4b1adcbed8f2502d4981459b",
      "parents": [
        "3e182b6170c818ce454e5ee9641c8e6824a9b53e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 27 08:10:41 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 08 16:07:10 2019 +0000"
      },
      "message": "init: ro.boottime.init.first_stage\n\nAdd a property ro.boottime.init.first_stage to provide us a\nfirst stage init duration from start to exec completed in\nnanoseconds.\n\nFor consistency, report nanoseconds duration for\nro.boottime.init.selinux as well instead of milliseconds.\nNow also report consistently from start to exec completed\ninstead of just the selinux load time.\n\nSideEffects: ro.boottime.init.selinux is reported to TRON and\n             may alarm with the millionfold increase in precision.\n             ro.boottime.init is now also consistent with ns\n             precision.\n\nTest: inspect\nBug: 124491153\nBug: 129780532\nChange-Id: Iff4f1a3a1ab7ff0a309c278724c92da0832b9a69\n"
    },
    {
      "commit": "edf4682cae1cf34172faa5542b6f63c57742b627",
      "tree": "9f16527ecf144006d3825d2e430f68c92b7a36ba",
      "parents": [
        "664193a62e55e016d8dd7cf3eb8453c772f0fff4"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Thu Apr 18 15:43:26 2019 +0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri May 03 14:41:21 2019 +0000"
      },
      "message": "bootstat: add 3 pmic off reasons to known set\n\nregular expression:\n- \"reboot,pmic_off_fault,.*\" (175)\n- \"reboot,pmic_off_s3rst,.*\" (176)\n- \"reboot,pmic_off_other,.*\" (177)\n\nregex is dependent on:\nhttps://android-review.googlesource.com/947976\n\nTest: none\nBug: 116838876\nBug: 128929506\nChange-Id: I7fae9ecee536f790c8f493c3f5e5f75b03efb1d6\nSigned-off-by: Jone Chou \u003cjonechou@google.com\u003e\n"
    },
    {
      "commit": "c805a48b116a0b5879f524fa34411d5f91fef6ff",
      "tree": "25830ffc5e99643751241f85fa130789dd28ee5d",
      "parents": [
        "1040109071250522f465867af42b2924682aa900"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 18 12:41:29 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 01 18:17:04 2019 +0000"
      },
      "message": "bootstat: Allow regex matches for boot reasons\n\nIf the matching string contains a [, \\ or *, then it is also checked\nwith a regex match.  Exact match is always tried firsts.  If we do\nnot find an exact string match, switch to iterate through the entire\nlist for regex strings to find a match.\n\nThis allows us to scale with details without consuming a large\nnumber of enums, permitting details that we do not necessarily want\nresolution on to propagate to TRON.  The hierarchical nature of the\nboot reason \u003creason\u003e,\u003csubreason\u003e,\u003cdetail\u003e... can cause scenarios\nwhere the \u003cdetail\u003e does not matter to TRON, but does matter to\nbugreport collection.\n\nAdd a bootstat --boot_reason_enum function to expose and test the\nkBootReasonMap matchihg algorithm.\n\nAdd a kBootReasonMap test that exhaustively tests all built-in\nentries, and an example of one regex entry.  New regex entries added\nto bootstat.cpp will need a series of exact match examples added into\nfilter_kBootReasonMap() function.\n\nTest: boot_reason_test.sh kBootReasonMap (or all tests)\nBug: 116838876\nBug: 128929506\nChange-Id: I3f7b5de22f99195b7ce99672a212174365960b3f\nMerged-In: I3f7b5de22f99195b7ce99672a212174365960b3f\n"
    },
    {
      "commit": "aeac7a43d0f91a2ef892e23e0a7c88117cbb2684",
      "tree": "1cf6036c093f4783d5d9d11535eacd09c9885ea7",
      "parents": [
        "f9e9d3869797a95a2831bfc08b50baafc7932925"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 24 07:26:26 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 24 17:01:58 2019 +0000"
      },
      "message": "bootstat: add .* positive/negative test\n\nMissing test from aosp/949599\n\nTest: boot_reason_test.sh kBootReasonMap\nBug: 116838876\nBug: 128929506\nChange-Id: I3a0690cff80b3b2117cf821ece4b81ffdcf50aec\n"
    },
    {
      "commit": "446d6c6d01964f3c56e5a44586f846c9c440fb83",
      "tree": "606df2dcb1968662339b324486e6892ade11287f",
      "parents": [
        "74d84224ae646d65ada7b521d050a47e70127f30"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Thu Apr 18 15:43:26 2019 +0800"
      },
      "committer": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Wed Apr 24 14:14:10 2019 +0800"
      },
      "message": "bootstat: add 3 pmic off reasons to known set\n\nregular expression:\n- \"reboot,pmic_off_fault,.*\" (175)\n- \"reboot,pmic_off_s3rst,.*\" (176)\n- \"reboot,pmic_off_other,.*\" (177)\n\nregex is dependent on:\nhttps://android-review.googlesource.com/947976\n\nTest: none\nBug: 116838876\nBug: 128929506\nChange-Id: I7fae9ecee536f790c8f493c3f5e5f75b03efb1d6\nSigned-off-by: Jone Chou \u003cjonechou@google.com\u003e\n"
    },
    {
      "commit": "67ee8a8ef9fe3c4f8eacd3d4246ceb43a7289bf1",
      "tree": "27cd3b06bfca4b3e61678488038a50230000fb6c",
      "parents": [
        "2ddb8df2ef22514f1bf91fe73b99877d19b2a964"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 18 12:41:29 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 23 07:14:44 2019 -0700"
      },
      "message": "bootstat: Allow regex matches for boot reasons\n\nIf the matching string contains a [, \\ or *, then it is also checked\nwith a regex match.  Exact match is always tried firsts.  If we do\nnot find an exact string match, switch to iterate through the entire\nlist for regex strings to find a match.\n\nThis allows us to scale with details without consuming a large\nnumber of enums, permitting details that we do not necessarily want\nresolution on to propagate to TRON.  The hierarchical nature of the\nboot reason \u003creason\u003e,\u003csubreason\u003e,\u003cdetail\u003e... can cause scenarios\nwhere the \u003cdetail\u003e does not matter to TRON, but does matter to\nbugreport collection.\n\nAdd a bootstat --boot_reason_enum function to expose and test the\nkBootReasonMap matchihg algorithm.\n\nAdd a kBootReasonMap test that exhaustively tests all built-in\nentries, and an example of one regex entry.  New regex entries added\nto bootstat.cpp will need a series of exact match examples added into\nfilter_kBootReasonMap() function.\n\nTest: boot_reason_test.sh kBootReasonMap (or all tests)\nBug: 116838876\nBug: 128929506\nChange-Id: I3f7b5de22f99195b7ce99672a212174365960b3f\n"
    },
    {
      "commit": "d51036d64110fc5cde6f55ff9425b3648dd02470",
      "tree": "b17da67587eac9922250c04d26a5b8d786bcef05",
      "parents": [
        "4dd15cbe2462a5a1f5eb130fa7ace09d322c3e09"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Wed Mar 20 19:38:05 2019 +0800"
      },
      "committer": {
        "name": "Oleg Matcovschi",
        "email": "omatcovschi@google.com",
        "time": "Wed Mar 20 16:53:29 2019 +0000"
      },
      "message": "bootstat: add 4 reboot reasons to known set\n\n- reboot,rtc\n- reboot,dm-verity_device_corrupted\n- reboot,dm-verity_enforcing\n- reboot,keys_clear\n\nTest: none\nBug: 128929506\nBug: 128929604\nChange-Id: I5438c236abb67b74c7b9d717930c0ea69f70540d\nSigned-off-by: Jone Chou \u003cjonechou@google.com\u003e\n"
    },
    {
      "commit": "508e615b8e55c6f0fae6b538c7fa2a92390b4b84",
      "tree": "16be98103266e3ad172e36dcf45a712f4fe41d2c",
      "parents": [
        "471ff5ddc21696a497970d41d7f2498349b7f324"
      ],
      "author": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Wed Mar 20 19:38:05 2019 +0800"
      },
      "committer": {
        "name": "Jone Chou",
        "email": "jonechou@google.com",
        "time": "Wed Mar 20 19:44:20 2019 +0800"
      },
      "message": "bootstat: add 4 reboot reasons to known set\n\n- reboot,rtc\n- reboot,dm-verity_device_corrupted\n- reboot,dm-verity_enforcing\n- reboot,keys_clear\n\nTest: none\nBug: 128929506\nBug: 128929604\nChange-Id: I5438c236abb67b74c7b9d717930c0ea69f70540d\nSigned-off-by: Jone Chou \u003cjonechou@google.com\u003e\n"
    },
    {
      "commit": "6fc0829c5af3d3f03882bb3b67ae384c181c82e8",
      "tree": "0209483536e00bc9b4911df0f0889beb86a854cc",
      "parents": [
        "fdfb9a0113abc4b91859f2e4dfd05b1c0ca018b0"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 11 10:06:36 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 11 10:08:05 2019 -0700"
      },
      "message": "bootstat: add recovery,quiescent and reboot,quiescent to known set\n\nReserve recovery,quiescent and reboot,quiescent to known reboot\nreasons.\n\nTest: none\nBug: 120624642\nChange-Id: I78c52f6db447c9d3980a3f2007471bc7aa60e25f\n"
    },
    {
      "commit": "fe85df1c0d048658be29a3e60c77fb00eb922055",
      "tree": "f7a30b65190f266e4643ee06aa414e6346d4d582",
      "parents": [
        "949a561cfaf96840101901c6c9448dd3e859a4bd"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Feb 28 14:09:49 2019 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Feb 28 14:10:34 2019 -0800"
      },
      "message": "bootstat: add salyzyn as owner\n\nTest: none\nChange-Id: I1d8874dfb5cc9efaed5ad85702a054f1c2a7766f\n"
    },
    {
      "commit": "88d308d7864a201d2f8994370efd2c391b521c20",
      "tree": "403db835c3c78f79ac7bf8520c7387525390301e",
      "parents": [
        "ea57928f002306ad3994f5c209af9ccd185fb96b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Feb 08 10:53:18 2019 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Feb 11 13:16:59 2019 -0800"
      },
      "message": "bootstat: local GetProperty use libbase\n\nlibbase GetProperty collects the properties properly, which also\nallow for content greater than 128 bytes in length.\n\nReplace internal GetProperty and SetProperty helpers with libbase\nversion.\n\nTest: unit tests\nBug: 121161069\nBug: 124114707\nChange-Id: Ic0829955705ebaa19d747bb3f6942f4b9786316a\n"
    },
    {
      "commit": "7c72116c4313889e1008b247ea5c167f7aeb2f04",
      "tree": "e1060f4a78a4fd1e2d9f556f2967fa93e13b11d7",
      "parents": [
        "2210f80e48839fc38d18155d4221d64f6f7d78e9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Feb 08 10:41:15 2019 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Feb 08 19:54:41 2019 +0000"
      },
      "message": "bootstat: crash when parsing ro.boot.boottime\n\nIf ro.boot.boottime is malformed or truncated, it will crash\nbootstat operations.\n\nTest: compile\nBug: 121161069\nBug: 124114707\nChange-Id: Ie2edcffb6d54a8e0c7f2e9a89ae4b29cce246d75\n"
    },
    {
      "commit": "4e9c653c932cf2dc7638ab2de58b5bb85a1c0c47",
      "tree": "968a5751d41600f0792fac38ac4626c156a7c8ca",
      "parents": [
        "708d45979ccecd6b541740d2b8dc0fe4d6db138c"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Feb 07 10:05:42 2019 -0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Fri Feb 08 02:55:06 2019 +0000"
      },
      "message": "bootstat: Update boot reason property earlier\n\nbootstat updates boot reason upon boot_complete, however users of the\nupdated properties e.g. getLastShutdownReason from PowerManager could\nbe called before boot_complete. This introduces a inconsistency and\nracing for those APIs.\n\nIn this CL, we change boot reason to be updated at the same time when\nzygote starts where persist properties have been loaded already. Also\nthe initialization of bootloader\u0027s boot reason is pulled into post-fs\nwhere all kernel command line arguments have been parsed in init already.\n\nBug: 122696730\nBug: 119509425\nTest: trigger thermal shutdown and see warnings\nTest: verify boot reason properties updated correctly post boot\nChange-Id: Ia393b98ea072bc0ae6e4110d111393b34be0ee5d\nSigned-off-by: Wei Wang \u003cwvw@google.com\u003e\n"
    },
    {
      "commit": "9f1cf25332e33247b1b036ce07b32d09e076c346",
      "tree": "a20e2aaa8b6fa38a292bb7dd90dfadecf68b2ebd",
      "parents": [
        "e77298ce9fd0fbb6e94108f4c49c11f5efa856e1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 12 12:45:59 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 09:35:34 2018 -0800"
      },
      "message": "switch to using android-base/file.h instead of android-base/test_utils.h\n\nTest: compile\nBug: 119313545\nChange-Id: I4f7ad84743e974b4b4d1d7256088f6c8b749a237\n"
    },
    {
      "commit": "f62983a6467b8d1ca0b562d5432f75f6079105fe",
      "tree": "928f94612015f0a671a035dc76916fece63fac5e",
      "parents": [
        "ec7bafee9425e9ad131454043de7af58f397f8f9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 26 09:55:25 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 26 13:02:16 2018 -0700"
      },
      "message": "bootstat: smpl -\u003e reboot,powerloss\n\nsmpl anywhere in boot loader reason string will match and convert to\nreboot,powerloss when propagated to system boot reason.\n\nTest: compile\nBug: 63736262\nChange-Id: I156bfefd05d2bab480408cf6bb1dc4c61c8983f9\n"
    },
    {
      "commit": "ec7bafee9425e9ad131454043de7af58f397f8f9",
      "tree": "fd82ac5aea5e7ebfdbed4e8ade7b2ceb430a4995",
      "parents": [
        "db8b2afe2397e8cdb5149934521d1f61f0e65e43"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 26 08:01:04 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 26 13:02:16 2018 -0700"
      },
      "message": "bootstat: uvlo -\u003e reboot,undervoltage\n\nuvlo anywhere in boot loader reason string will match and convert to\nreboot,undervoltage when propagated to system boot reason.\n\nTest: compile\nBug: 63736262\nChange-Id: I14b0b7e8185aa4fb519efdb6cb1306718e9de69c\n"
    },
    {
      "commit": "274b5447fa69e4209f548de9def1c519fd607cd7",
      "tree": "c347aa1363e728c0eba4f21b0696fd8e143b3940",
      "parents": [
        "5d707816ace0f2173310645363533fed2188acfd"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 07 08:45:13 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 07 09:57:32 2018 -0700"
      },
      "message": "bootstat: duplicate boot reason entries\n\nSelected visually obvious non-compliant boot reasons to allow\nfor future re-use of a later formerly duplicated entry.\n\nTest: compile\nBug: 112157996\nChange-Id: I3c6b449d36f9e4b745214dd7840b1dc1258bf483\n"
    },
    {
      "commit": "0e78b1322665ce64af1eb36f834b359aa0a76ebf",
      "tree": "be699a84a6b23afd51d198c310b08f354dfd5d35",
      "parents": [
        "4eaa94a6c8117c6c505815b053e8ec4c8178f05e",
        "70025585ffcbb0d26d279e31025b9ee3ee1d8a30"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jul 02 13:34:25 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 02 13:34:25 2018 -0700"
      },
      "message": "Merge \"bootstat: record reboot reason history in persist.sys.boot.reason.history\"\nam: 70025585ff\n\nChange-Id: Ife1200808d84f198441821f0af9d0b11e22780fa\n"
    },
    {
      "commit": "70025585ffcbb0d26d279e31025b9ee3ee1d8a30",
      "tree": "2fe2b5044289a70cf2479ffa28678f8f5337ccb0",
      "parents": [
        "8a0b46e1e6b3222ff5d4bc509acdb6392ed5ea61",
        "5c58c9d56632d640bcd3b8791402e7ff43151701"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 02 20:28:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 02 20:28:49 2018 +0000"
      },
      "message": "Merge \"bootstat: record reboot reason history in persist.sys.boot.reason.history\""
    },
    {
      "commit": "c858df30a7350942c1be7cd0d1e85f099aae62e8",
      "tree": "2ad98a2500258fa8caa597c717029d206b05d4e0",
      "parents": [
        "fbe32e723b2c7b863d1ce33c002da02502db1e30",
        "50d874b8739331e41206c1caa0206f6ea0371a28"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jul 02 11:14:50 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 02 11:14:50 2018 -0700"
      },
      "message": "Merge \"bootstat: kpdpwr actually means reboot,longkey\"\nam: 50d874b873\n\nChange-Id: Ic8e4655df0d55a8a3a356e3ca72ea3e7680cfdad\n"
    },
    {
      "commit": "5c58c9d56632d640bcd3b8791402e7ff43151701",
      "tree": "28e99260112d5d6833b784981a87efa6a7a2e8b8",
      "parents": [
        "7ab805ea1d78c0190c42b4aea553f77cf965f88f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jun 28 09:21:55 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 29 13:54:07 2018 -0700"
      },
      "message": "bootstat: record reboot reason history in persist.sys.boot.reason.history\n\nRetain the last four reboot reasons from latest to oldest, adding a\ndetail of UTC epoch time for each.  Beef up boot_reason_test.sh to\ndeal with multi-line content.\n\nTest: boot_reason_test.sh\nBug: 110925971\nChange-Id: Ie2600434b95a885693f005a363ee38d9eba18ee7\n"
    },
    {
      "commit": "88d1b4a326352deeb26252c1e5df46ed4927320a",
      "tree": "11f43aefe811cfc79dc56d84276d4dd1cd70a9e5",
      "parents": [
        "2bbbd06a8a4a104f4f0ca86057a15bae828dc997"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jun 07 09:39:24 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jun 28 17:40:26 2018 +0000"
      },
      "message": "bootstat: kpdpwr actually means reboot,longkey\n\nTest: compile\nBug: 71809701\nChange-Id: I812777645b988f9627bcf62e7ef70cc2085d9106\n"
    },
    {
      "commit": "d60dad16a38be1af164765976ac33317e5d043f0",
      "tree": "c913e8bd2ae9882096095812bfbe229950819e9a",
      "parents": [
        "831e67192c049cf6aae3337ab29d55dfaeec4acc",
        "8c6f7ec06039fb2d67b5624ee7c9bcd7c43db412"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jun 16 08:37:57 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jun 16 08:37:57 2018 -0700"
      },
      "message": "resolve merge conflicts of 8c6f7ec06039fb2d67b5624ee7c9bcd7c43db412 to stage-aosp-master\n\nBUG: None\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: Ibd2adc272b69d9752f04bee5901fc7590aaaf93a\n"
    },
    {
      "commit": "50a24eb3bca4c573ec3c7f89a4022b73a7afbc21",
      "tree": "f1521691c9aa2bb083e9bffa0730618ab8fc70ec",
      "parents": [
        "4632f4e86868a6d9418a4a54c26d36a363360563"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 10:59:09 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 15 12:36:46 2018 -0700"
      },
      "message": "bootstat: remove the only caller of liblogcat.\n\nWe need to make progress both on adding the real interface for battery\nlevel and cleaning up logging. This stands in the way of both.\n\nBug: http://b/77725702\nTest: builds\nChange-Id: Ia457e497606c2c7965d6895baebb26eef17857c9\nMerged-In: Ia457e497606c2c7965d6895baebb26eef17857c9\n"
    },
    {
      "commit": "a58318960e6984cefeb9c4d3ed08c319494c63c8",
      "tree": "183bdc631d019975a0acd6fd182959369218db7b",
      "parents": [
        "fb0500e0aae7d2e6854b1f59bf24e46bb8ec89f2",
        "ca57890a8049c0100d91f9974f446ad904b4cec4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jun 14 15:06:32 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jun 14 15:06:36 2018 -0700"
      },
      "message": "resolve merge conflicts of ca57890a8049c0100d91f9974f446ad904b4cec4 to stage-aosp-master\n\nBug: 86671991\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: Ia49d1a9311f6a7a84dd96c31f79ecdc3143084b2\n"
    },
    {
      "commit": "adc433d3eafdfb4cd3da539ac93fcde1565733a0",
      "tree": "9df44e45a38f9a5c9750806ed3827506d9f84bf6",
      "parents": [
        "91061985f5ae2b7f3f1a04ca3e921c17f3213bd5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 05 08:17:35 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jun 14 15:36:56 2018 +0000"
      },
      "message": "bootstat: clear persist.sys.boot.reason once read\n\nTo ensure a surprise reboot does not take the last boot reason on\nface value especially if coming from more than one boot sessions ago.\nWe shift and clear the value from persist.sys.boot.reason to\nsys.boot.reason.last and establish a correct last reboot reason in\nthe canonical sys.boot.reason property.\n\nThis effectively deprecates persist.sys.boot.reason as an API.  They\nshould have been using sys.boot.reason instead for a correctly\ndetermined reasoning.\n\nTest: boot_reason_test.sh\nBug: 86671991\nMerged-In: If85750704445088fd62978679ab3a30744c46abb\nChange-Id: If85750704445088fd62978679ab3a30744c46abb\n"
    },
    {
      "commit": "bfe1835d825ad133e03d1aaf6d6dd1ff1669efef",
      "tree": "81459d1a4f2c8b424788a496a74a764e41bdf6ca",
      "parents": [
        "3276b575423a9f7bda0ec32a1d066c2d940bb0f1",
        "cefd4e56ad9a2891925c8fcd41b715ed73655e80"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Tue Jun 12 15:00:42 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 12 15:00:42 2018 -0700"
      },
      "message": "Merge \"bootstat: Remove the CAP_SYSLOG capability\"\nam: cefd4e56ad\n\nChange-Id: I0a0627228434d0284b4f535942c97121d9773e14\n"
    },
    {
      "commit": "cefd4e56ad9a2891925c8fcd41b715ed73655e80",
      "tree": "efcfd1920091543e826efca376e93bed414c635a",
      "parents": [
        "28cd2a02b1fd746c2685b5b976b55a5709d22883",
        "0becca32bca16cb98477c91a46ab4c4ca22d426c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 20:59:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 20:59:45 2018 +0000"
      },
      "message": "Merge \"bootstat: Remove the CAP_SYSLOG capability\""
    },
    {
      "commit": "fa284f0fdbda1cce866e9a014a5a62fab2bbd79b",
      "tree": "0a75573067feae3f36a866489eb0813d893dc960",
      "parents": [
        "66e7d99fa7bf14e9b3191898be260576483bed86",
        "e5aa7ee753f88903b0506b542b629bbd54ef5092"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 12 08:58:23 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 12 08:58:23 2018 -0700"
      },
      "message": "Merge \"bootstat: ppdone_timeout kernel panic\"\nam: e5aa7ee753\n\nChange-Id: Idbedd218104a272458192123ddf889d5d9fb379b\n"
    },
    {
      "commit": "0becca32bca16cb98477c91a46ab4c4ca22d426c",
      "tree": "00daf6cf46b7dd2d12c06d16a18af266c6d0cd1f",
      "parents": [
        "d32c36c961da82fa0b0e70a80d9a6e62a0551d2a"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Fri Jun 08 15:02:40 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Mon Jun 11 12:41:24 2018 -0700"
      },
      "message": "bootstat: Remove the CAP_SYSLOG capability\n\nThis change removes the CAP_SYSLOG file based capability from bootstat,\nsince the intention is that it should not be accessing the logs in the\nlong term. In order to avoid bitrot, the fallback code that depends on\nCAP_SYSLOG has also been removed.\n\nBug: 62845925\nTest: system/core/bootstat/boot_reason_test.sh\nChange-Id: I899be44ef3ac1c4d81072f801d55c928ae09bb15\n"
    },
    {
      "commit": "78e54fd0abae0021daa3af758373a5daa21ed98b",
      "tree": "6f91c44cc962c0480c26283e180c42ba11fe66b6",
      "parents": [
        "158dd05b8aeb02bc249af9d61cadcf0b34a42d25"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 08 10:19:16 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 08 10:37:06 2018 -0700"
      },
      "message": "bootstat: ppdone_timeout kernel panic\n\nAdd kernel_panic,_sde_encoder_phys_cmd_handle_ppdone_timeout to help track\noccurrences.\n\nTest: compile\nBug: 67728931\nChange-Id: I3306ae2936dc4355902e838d9ac8d8b11837348d\n"
    },
    {
      "commit": "fe8c22df50619be489f9018359d9d7ce28975bf1",
      "tree": "9e726335e2bc72940b26e6ff35baf56d7b63c9e8",
      "parents": [
        "828e9c59a30b351cf9408ed85ad9965645f9d359",
        "0d18efbdf8a7672eaa2fed7cf3edd6fab2d211a2"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 04 16:34:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 16:34:01 2018 -0700"
      },
      "message": "Merge changes Iecedc3b1,I28987f08 am: dc17e9efa0\nam: 0d18efbdf8\n\nChange-Id: I97fbc26deaad32ad6719ef8496722872b7928595\n"
    },
    {
      "commit": "993f65619e534d29a1e63cdc3d76a5bdec97225b",
      "tree": "f4722454450fb1ac0039c4851d7c67494fd54f44",
      "parents": [
        "dc17e9efa043dc74c177c50834937a84457aaf3f"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Tue Feb 06 15:57:38 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 04 13:31:05 2018 -0700"
      },
      "message": "Fix performance degradation from BootSequence atom\n\n(partial cherry pick from commit fe3e762b6de94ab43b3019d38cdc2abfad3a786c)\n\nAdding the boot sequence reported atom in ag/3518079 caused the duration\nof bootstat to increase, as seen in b/72864061. I isolated the cause\ndown to calling BootReasonStrToReason. However, this function also gets\ncalled in ReportBootReason, so I created another function that does the\nparsing and sets the system boot reason property, and made\nRecordBootReason and statsd logging get that property.\n\nBug: 72864061\nTest: rebooted phone, verified boot events were received in adb shell\nlogcat -b stats and verified adb shell bootstat -p printed correct\nvalues. Ran timing tests as well on walleye with 20 boots: before this\nchange, the average was ~150-160ms. After, it was ~80ms.\nChange-Id: I92dbc9880328835647be7d9d50c7861b42f27bdb\nMerged-In: I92dbc9880328835647be7d9d50c7861b42f27bdb\n"
    },
    {
      "commit": "828e9c59a30b351cf9408ed85ad9965645f9d359",
      "tree": "74cb61c45f121076ece01f91581741eebf2288ba",
      "parents": [
        "274553b9f9716b9008594bbbc9d8a3f551893f09",
        "cd9c0840848987a8bd32ae9006d5564122956580"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 04 12:03:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 12:03:22 2018 -0700"
      },
      "message": "Merge \"bootstat: Add kernel_panic,modem + related others\" am: 7c4d393c24\nam: cd9c084084\n\nChange-Id: I709e9ade848b8caf160dd560fdb7bb10f1767c7a\n"
    },
    {
      "commit": "186f67625c70478f1c04b99cea2f700a453a4d0e",
      "tree": "dd254938b467288c9d3bb80dd02b9d582d2bb9fa",
      "parents": [
        "15199251498fbbdca0550493b36a8d511229db19"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 16 11:00:26 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 04 08:32:23 2018 -0700"
      },
      "message": "bootstat: refine boot reasons\n\nReceived some clarity as to some of the boot reasons.\n\nList of boot reasons and new translations to Canonical boot reason:\n\n- \"power_key\" -\u003e \"cold,powerkey\" (existing)\n- \"usb\" -\u003e \"cold,charger\" (existing)\n- \"rtc\" -\u003e \"cold,rtc\" (existing)\n- \"wdt\" -\u003e \"reboot\" (changed)\n- \"wdt_by_pass_pwk\" -\u003e \"warm\" (changed)\n- \"tool_by_pass_pwd\" -\u003e \"reboot,tool\" (changed)\n- \"2sec_reboot\" -\u003e \"cold,rtc,2sec\" (changed)\n- \"unknown\" -\u003e \"reboot,unknown\" (existing)\n- \"kernel_panic\" (existing)\n- \"reboot\" (existing)\n- \"watchdog\" (existing)\n\nAdd the new string to enums for the new Boot Reason.\n\nTest: boot_reason_test.sh (on affected device)\nBug: 74595769\nBug: 63736262\nChange-Id: Iecedc3b1f7c47f26d0c77b1f316f745c6d2c1256\n"
    },
    {
      "commit": "15199251498fbbdca0550493b36a8d511229db19",
      "tree": "1587d3dc9e1094ab85dabf5dca6c5ac091c2fd74",
      "parents": [
        "7c4d393c2443ca272ce9145671af4b01140c922e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 16 09:26:05 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 04 08:32:11 2018 -0700"
      },
      "message": "bootstat: shutdown reports reboot\n\nSome devices report the following canonical boot reason for all\nshutdown operations:\n\n    reboot,kernel_power_off_charging__reboot_system\n\nbecause shutdown switches to a charging kernel, and reboots into the\nsystem when the user presses the power button.  Thus last kernel\nmessages arrives as:\n\n    \u003c0\u003e.(0)[53:pmic_thread]reboot: Restarting system with command \\\n                       \u0027kernel power off charging  reboot system\u0027\n     -\u003e \"shutdown\" (w/o last boot reason)\n     -\u003e \"shutdown,\u003csubreason\u003e\" (w/last boot reason)\n\nThe reboot reason from that charging instance propagates as a\nfortified boot reason blocking interpretation of the last boot reason\nthat manages shutdown canonical boot reason determination.  The fix\nis to change reboot,kernel_power_off_charging__reboot_system to\nshutdown, so that it is viewed as a blunt reason that can be\noverridden by last boot reason.\n\nWe added the above boot reason to kBootReasonMap because the Bit\nError Handler can use it to reconstruct if there is any damage to\nthe last kernel messages content.  The sad thing is that the enum\nwill never propagate as we are filtering it out and reporting\n\"shutdown\" instead.  Of course, we are now covered for a can not\nhappen.\n\nTest: boot_reason_test.sh\nBug: 74595769\nBug: 63736262\nChange-Id: I28987f0871af7d967cc4bbbffed43bd42349acdd\n"
    },
    {
      "commit": "8ad6e673324170ea07a2f82d64669e2560311cbc",
      "tree": "da6f903e2dc476bb261ab9da019ff2caf93579c6",
      "parents": [
        "f875aaa339e864410b7243d312d06020f86845f8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 01 08:59:05 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 01 09:27:48 2018 -0700"
      },
      "message": "bootstat: Add kernel_panic,modem + related others\n\nFound a kernel modem driver report:\n\nKernel panic - not syncing: subsys-restart: Resetting the SoC - modem crashed.\n\nWhich translates to the canonical boot reason, a wordy:\n    kernel_panic,subsys-restart:_resetting_the_soc_-_modem_crashed.\n\nShortening and ber matching the string, plus others that are possible,\nto be more succinct, so added kernel_panic,{modem|adsp|dsps|wcnss}.\n\nTest: build\nBug: 80553005\nChange-Id: I969e1da896cd15b82e2fe11ceb77a5f54dfcfbc8\n"
    },
    {
      "commit": "81b6b19ec42dc0bb8b99ad8ad1af2d843e6b6458",
      "tree": "5c0666052a330b74ca74017d08363d42515529f4",
      "parents": [
        "1f9361efef8558018ee2271606e46c995947c9b1",
        "0bb59a9d57a63384a0ed0e665a36faef87f4dda9"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon May 07 15:56:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 07 15:56:29 2018 -0700"
      },
      "message": "Merge \"bootstat: test reboot rescueparty\" am: 035a1c7a0b\nam: 0bb59a9d57\n\nChange-Id: I07678150969bcd0b82c8356ad2aa5ca335265e1f\n"
    },
    {
      "commit": "cd7e122285e9ab0eb6dc9c90e026da767f553d95",
      "tree": "1d1701837f7e6b87f64155937f83d79697016c03",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 07 09:46:06 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 07 10:10:18 2018 -0700"
      },
      "message": "bootstat: test reboot rescueparty\n\nThis test fails on most devices, gives us a report of devices that\ndo not propagate the boot reason via the bootloader.  This should\nbecome a bootloader required test.\n\nTest: boot_reason_test.sh optional_rescueparty\nChange-Id: Ibdc7b23b025e5d89d659ff08083b2e071343923c\n"
    }
  ],
  "next": "1805ccace62bed165e6498be0e3e8f421fc1d42c"
}
