)]}'
{
  "log": [
    {
      "commit": "4b43299132272c58854f59f14d088fd3afad626e",
      "tree": "8e8fb75f7efd80efa03d39cba0541f063f13020a",
      "parents": [
        "971bae0bcf0b804e67be15fbd720d802a2f21079",
        "5744cc4e99f886cf6265461a88971086ccafb4a5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 23:16:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 23:16:37 2019 +0000"
      },
      "message": "Merge \"Fix a warning on namespace.media.link.default.shared_libs\""
    },
    {
      "commit": "971bae0bcf0b804e67be15fbd720d802a2f21079",
      "tree": "8ac6127c946732ba587e1698879059e8416588b4",
      "parents": [
        "ee5083b3c7ffa5212504859ef5c15f6fe868a254",
        "93d63c010ae24ff58acb70216bfcb93e3c73019a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 24 22:58:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 22:58:00 2019 +0000"
      },
      "message": "Merge \"Add a way to turn off unique_fd\u0027s operator int.\""
    },
    {
      "commit": "ee5083b3c7ffa5212504859ef5c15f6fe868a254",
      "tree": "63b547e825b8c65af9926f0bf7c640ebb1999b1a",
      "parents": [
        "e923e5ef62eee41c61953a6afc5ed1303dbf41ba",
        "4710e53fe56e42d96fc1388c2b19f5dd9de1fc44"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 22:46:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 22:46:28 2019 +0000"
      },
      "message": "Merge \"adb: silence warning from libusb.\""
    },
    {
      "commit": "e923e5ef62eee41c61953a6afc5ed1303dbf41ba",
      "tree": "b76450f9eccb5c66ad8b1ad54b8589790a346e53",
      "parents": [
        "4d89dc0f546fd7bc3fe659257f32409ec8e40bf3",
        "499601b94fa36759648542039d3df25e901ebb77"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 22:38:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 22:38:31 2019 +0000"
      },
      "message": "Merge \"adb: fix double close in wait-for-*.\""
    },
    {
      "commit": "93d63c010ae24ff58acb70216bfcb93e3c73019a",
      "tree": "808e8d5767b36c7eda9a87b09a215333b5d78d7a",
      "parents": [
        "499601b94fa36759648542039d3df25e901ebb77"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 18 16:39:30 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 24 12:59:42 2019 -0700"
      },
      "message": "Add a way to turn off unique_fd\u0027s operator int.\n\nunique_fd\u0027s implicit conversion to int has led to tons of problems (see\nall of the overloads for close, fdopen, fdopendir, etc.). Add a switch\nthat can turn it off, and reduce the ridiculous amount of work to fix up\ncallers by introducing a borrowed_fd type that can be constructed from\neither int or unique_fd.\n\nTest: treehugger\nChange-Id: If77cf5cbcaddacdaec5919a15b3520fb68f51a62\n"
    },
    {
      "commit": "4d89dc0f546fd7bc3fe659257f32409ec8e40bf3",
      "tree": "54c93d899a9bbf093ea82101166c707aeb5079f2",
      "parents": [
        "7a03b5d31419a186a0519be565c92e05c84f45b4",
        "f86ef1070ec6c3b18ea0d87c07d6b81bf35ed961"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 24 19:24:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 19:24:32 2019 +0000"
      },
      "message": "Merge \"libion: convert a header file using update_all.py\""
    },
    {
      "commit": "7a03b5d31419a186a0519be565c92e05c84f45b4",
      "tree": "6e255208057b8f1ef73640ae85dfc59223420028",
      "parents": [
        "6fbefd1806daefcad94e32de7ea0f108d285b983",
        "fe8154175c411b0dba6bbc881cf9dfe501be74c5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 24 19:14:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 19:14:28 2019 +0000"
      },
      "message": "Merge \"init: simplify async restorecon\""
    },
    {
      "commit": "6fbefd1806daefcad94e32de7ea0f108d285b983",
      "tree": "1cf6036c093f4783d5d9d11535eacd09c9885ea7",
      "parents": [
        "f9e9d3869797a95a2831bfc08b50baafc7932925",
        "aeac7a43d0f91a2ef892e23e0a7c88117cbb2684"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 24 17:06:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 17:06:34 2019 +0000"
      },
      "message": "Merge \"bootstat: add .* positive/negative test\""
    },
    {
      "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": "fe8154175c411b0dba6bbc881cf9dfe501be74c5",
      "tree": "4deb71126bdc4cb6719dba116281b93c837a3e19",
      "parents": [
        "1a043459a93192d52ef03ca730cfafccda1d227d"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 23 15:11:07 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 24 08:50:10 2019 -0700"
      },
      "message": "init: simplify async restorecon\n\nIn the future, property service may run in its own thread or process,\nwhich means that PropertyChildReap() needs to be refactored to not run\nas part of the init signal handler.\n\nThe new method spawns a new thread that handles the queue of paths\nthat require restorecon. It then communicates back to property service\nvia android::base::SetProperty(). Property service distinguishes the\nthread from other callers of SetProperty() by checking the pid in the\ncredentials for the socket connection, thus avoiding dependencies on\nthe rest of init.\n\nThe new method also drops the genericness, since restorecon is the\nonly function that we should ever need to run asynchronously\n\nTest: async restorecon works, including with queued requests\nChange-Id: I2ca00459969e77b1820776dac23d0a0d974e330b\n"
    },
    {
      "commit": "f9e9d3869797a95a2831bfc08b50baafc7932925",
      "tree": "606df2dcb1968662339b324486e6892ade11287f",
      "parents": [
        "74d84224ae646d65ada7b521d050a47e70127f30",
        "446d6c6d01964f3c56e5a44586f846c9c440fb83"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 14:51:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 14:51:30 2019 +0000"
      },
      "message": "Merge \"bootstat: add 3 pmic off reasons to known set\""
    },
    {
      "commit": "f86ef1070ec6c3b18ea0d87c07d6b81bf35ed961",
      "tree": "cd6a69e6fab6d88d7abcca4810cc1e09dd9b6c08",
      "parents": [
        "74d84224ae646d65ada7b521d050a47e70127f30"
      ],
      "author": {
        "name": "Yoshitaka Seto",
        "email": "yoshitaka.seto@sony.com",
        "time": "Tue Apr 23 20:07:04 2019 +0900"
      },
      "committer": {
        "name": "Yoshitaka Seto",
        "email": "yoshitaka.seto@sony.com",
        "time": "Wed Apr 24 07:02:42 2019 +0000"
      },
      "message": "libion: convert a header file using update_all.py\n\nion_4.12.h is ported from old Linux Kernel Driver.\nAccording to the header comment, this is licensed under GPLv2.\nThis header is referred from ion.c.\n\nTo clarify license matter just in case, let\u0027s convert it using\nupdate_all.py in bionic repository.\n\nThe original header is moved under original-kernel-headers/linux\ndirectory.\n\nFound this during FOSSID trial.\n\nTest: build and boot\nChange-Id: Iabd46f33968a0fbce14a501238730714c4f2cfc6\nSigned-off-by: Yoshitaka Seto \u003cyoshitaka.seto@sony.com\u003e\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": "74d84224ae646d65ada7b521d050a47e70127f30",
      "tree": "b2ce2dd32aa7784f7a4bf863498a7fda46089f4d",
      "parents": [
        "1cafeb560c38f93c28c2a28e8871a9566b12c7a8",
        "77c28476f19c910a869af878c8983d52e53c07b4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 02:53:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 02:53:53 2019 +0000"
      },
      "message": "Merge \"Remove the mount points defined in skip_mount.cfg from ReadDefaultFstab()\""
    },
    {
      "commit": "5744cc4e99f886cf6265461a88971086ccafb4a5",
      "tree": "e7ba8a93ecefdbaea4a51756f8287c9f04922603",
      "parents": [
        "1cafeb560c38f93c28c2a28e8871a9566b12c7a8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Apr 23 14:56:21 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Apr 23 23:15:24 2019 +0000"
      },
      "message": "Fix a warning on namespace.media.link.default.shared_libs\n\nTest: build \u0026 dumpsys media.extractor\nBug: 130882530\nChange-Id: Ifd46858b5a864f0fbed87baa3321f233ea12954e\nMerged-In: Ifd46858b5a864f0fbed87baa3321f233ea12954e\n"
    },
    {
      "commit": "1cafeb560c38f93c28c2a28e8871a9566b12c7a8",
      "tree": "00958ee6b1c3b5245ba239f244eb800cb4369afe",
      "parents": [
        "87882c0a00cf52a69773126aa2d78e17a5200ae9",
        "67ee8a8ef9fe3c4f8eacd3d4246ceb43a7289bf1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 23 19:21:17 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 23 19:21:17 2019 +0000"
      },
      "message": "Merge \"bootstat: Allow regex matches for boot reasons\""
    },
    {
      "commit": "87882c0a00cf52a69773126aa2d78e17a5200ae9",
      "tree": "a8f6d719d7365d71e6842144c72b9afe410e7173",
      "parents": [
        "4bc16589dfd2e33a2423117be3428dd5638f36e2",
        "7f160af14246e8819839e1693496c7e2f304a7b8"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 23 16:06:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 23 16:06:40 2019 +0000"
      },
      "message": "Merge \"init: handle getpeercon() errors\""
    },
    {
      "commit": "4bc16589dfd2e33a2423117be3428dd5638f36e2",
      "tree": "75d4eeaff775d09dd7e9116b8c8a95db982c4ff3",
      "parents": [
        "2ddb8df2ef22514f1bf91fe73b99877d19b2a964",
        "2f113ad1e147fdf26e74e42ccf130184440dc4ea"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 23 16:04:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 23 16:04:35 2019 +0000"
      },
      "message": "Merge \"init: set up SelinuxAuditCallback() earlier\""
    },
    {
      "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": "77c28476f19c910a869af878c8983d52e53c07b4",
      "tree": "58b55e52bbd3d54abb881204b4ff225b5f712c17",
      "parents": [
        "f4ccb804b6a1707089b6d3d1d48c59af5bedb36c"
      ],
      "author": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Mon Apr 22 17:27:52 2019 +0800"
      },
      "committer": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Tue Apr 23 17:42:40 2019 +0800"
      },
      "message": "Remove the mount points defined in skip_mount.cfg from ReadDefaultFstab()\n\nThe first stage init skips mounting the mount points defined in\nskip_mount.cfg, but these mount points still return from\nReadDefaultFstab(). The behavior causes some error logic which\ntry to access the partition which had been skipped.\n\nAfter applying the patch. ReadDefaultFstab() will not contain the\nskipped mount points.\n\nBug: 128961335\nTest: `fastboot delete-logical-partition product_a`\nTest: `fastboot flash system aosp_arm64-userdebug`\nTest: `fastboot -w reboot` and boot to home screen\nChange-Id: I3156260b5d37647dbecf98ca90601a089bea5c46\n"
    },
    {
      "commit": "2ddb8df2ef22514f1bf91fe73b99877d19b2a964",
      "tree": "9dccc4c76ea6bb30fd646cfc68e6c1c5f8a57ecb",
      "parents": [
        "9cf353a1d3b9fcb7b09e94fb5f732eb498e1cf0f",
        "05f07d89a6b44eef1fcec020bf9020a3429fc3ad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 23 02:01:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 23 02:01:36 2019 +0000"
      },
      "message": "Merge \"Adding adb_debug.prop into debug ramdisk\""
    },
    {
      "commit": "9cf353a1d3b9fcb7b09e94fb5f732eb498e1cf0f",
      "tree": "fbdae4b6eeff29a5eeaff6ba56f5343d067e674c",
      "parents": [
        "6688eaf23f9126c2f100e7fe848ec5832247d2cd",
        "3bdf315eaec91ee7c41232baf63eaddc43e0a48f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 22 23:37:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 23:37:25 2019 +0000"
      },
      "message": "Merge \"libprocessgroup: limit libprocessgroup\u0027s VNDK API surface\""
    },
    {
      "commit": "6688eaf23f9126c2f100e7fe848ec5832247d2cd",
      "tree": "06b379a19d2635f9714ceefa0d180ec579018f0a",
      "parents": [
        "1a043459a93192d52ef03ca730cfafccda1d227d",
        "11cf30b5edf839a353180b39ae4e55c544beaf56"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Apr 22 22:08:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 22:08:52 2019 +0000"
      },
      "message": "Merge \"adb: Support rescue install and getprop.\""
    },
    {
      "commit": "7f160af14246e8819839e1693496c7e2f304a7b8",
      "tree": "deb1eeeab8997518d326173cd1b19c1bfff33e3d",
      "parents": [
        "1a043459a93192d52ef03ca730cfafccda1d227d"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 22 13:28:28 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 22 13:32:24 2019 -0700"
      },
      "message": "init: handle getpeercon() errors\n\nThough unlikely, it is possible for getpeercon() to fail.  This change\nadds code to handle this case gracefully.\n\nBug: 130209483\nTest: boots, properties are set\nChange-Id: I3b3fb76b2312a5cbc87c0da2a044be3ddf8aa400\n"
    },
    {
      "commit": "3bdf315eaec91ee7c41232baf63eaddc43e0a48f",
      "tree": "baefe966ee3aaea5c8fb0f6cdaa96fbccc2317a5",
      "parents": [
        "1a043459a93192d52ef03ca730cfafccda1d227d"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Mon Apr 22 13:12:13 2019 -0700"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Mon Apr 22 20:13:13 2019 +0000"
      },
      "message": "libprocessgroup: limit libprocessgroup\u0027s VNDK API surface\n\nLimit libprocessgroup VNDK API to the minimum set required for task\nprofiles usage. This API allows vendors to use cgroups without accessing\ncgroup files directly, therefore allowing Android to change cgroup\narrangement details without breaking vendor code.\n\nBug: 131098932\nTest: build and boot\nChange-Id: I92463dfb44a108a133bafd2fe52237b6b1d50a69\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "2f113ad1e147fdf26e74e42ccf130184440dc4ea",
      "tree": "f4c2a459f2b2f3858fda3b530f9a72b49a51b7e2",
      "parents": [
        "1a043459a93192d52ef03ca730cfafccda1d227d"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 22 10:22:41 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 22 12:41:39 2019 -0700"
      },
      "message": "init: set up SelinuxAuditCallback() earlier\n\nThe setup of SelinuxAuditCallback() was happening after property files\nare loaded, and now that these property files can trigger audits, the\naudit messages did not contain all of the correct information.  This\nchange moves the setup of SelinuxAuditCallback() to immediately before\nthe property area is initialized, to ensure that this can not happen\nagain.\n\nBug: 130979265\nTest: audits work early\nChange-Id: I9eb43269317c74e041626ee7b2bb7fea49250e09\n"
    },
    {
      "commit": "1a043459a93192d52ef03ca730cfafccda1d227d",
      "tree": "d205e24b5c1ba222dddd8bd340b88171500632dc",
      "parents": [
        "1412f3c99de746c13ee35f19df514863b888eeb8",
        "8a315d2a3eb65d39f98f639565f7a29196f5e7bd"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Mon Apr 22 16:08:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 16:08:34 2019 +0000"
      },
      "message": "Merge \"Re-enable file descriptor caching and add option to skip caching\""
    },
    {
      "commit": "1412f3c99de746c13ee35f19df514863b888eeb8",
      "tree": "23cc0ba4ed03fb88597af8dfdbe2ff8f7cf2a348",
      "parents": [
        "e7d0c83d3c5ca974d0fbdc61bf7fad8ccd5c1f83",
        "4560714d101342007f09992314d66c8b48552c22"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 22 16:02:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 16:02:04 2019 +0000"
      },
      "message": "Merge \"fs_mgr: overlayfs: suppress mkfs output\""
    },
    {
      "commit": "05f07d89a6b44eef1fcec020bf9020a3429fc3ad",
      "tree": "f4761af1409436c79dcc0bd32a00d56e775e6b25",
      "parents": [
        "9b33cbc0cbe92e7f1e60f7b8a3c2fc35976aadbc"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Fri Apr 19 22:08:56 2019 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Sat Apr 20 06:08:51 2019 +0000"
      },
      "message": "Adding adb_debug.prop into debug ramdisk\n\nThe debug ramdisk can only be used if the device is unlocked.\nWhen it\u0027s used, init will load adb_debug.prop and the userdebug\nsepolicy from the debug ramdisk, to allow adb root on a user build.\n\nBug: 126493225\nTest: \u0027make\u0027 and checks the file is installed\nChange-Id: Id6962414197fc8f47f7c07818e8fb16107dc17a3\n"
    },
    {
      "commit": "e7d0c83d3c5ca974d0fbdc61bf7fad8ccd5c1f83",
      "tree": "dc2ea3f0ed7cb56d09cef461388e3bcfb1c16595",
      "parents": [
        "72d8d2f2c605375643e396da1d67c7a5f0735775",
        "a91c5f700ea675f53beb1cf918cedf2d719e6f9e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 20 00:12:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 20 00:12:47 2019 +0000"
      },
      "message": "Merge \"init.rc: set fsck log permission on post-fs-data\""
    },
    {
      "commit": "8a315d2a3eb65d39f98f639565f7a29196f5e7bd",
      "tree": "cffced21a6fea2b6d820c029a55649ea422fcad9",
      "parents": [
        "72d8d2f2c605375643e396da1d67c7a5f0735775"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Thu Feb 14 14:40:41 2019 -0800"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Sat Apr 20 00:11:21 2019 +0000"
      },
      "message": "Re-enable file descriptor caching and add option to skip caching\n\nThis reverts commit bee9f5718bd2dfedb615767bbd25147b4f3eed15\n\"libprocessgroup: Disable file descriptor caching temporarily\" and adds\noption to use SetTaskProfiles and SetProcessProfiles without file caching.\nThis option is used from JNI to avoid access denials because cached files\nare not whitelisted for JNI usage.\n\nBug: 123868658\nBug: 123043091\nTest: boot using svelte target\nChange-Id: I76b9d6af8a1dd4464cb3cf3e6dc327980efdf361\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "72d8d2f2c605375643e396da1d67c7a5f0735775",
      "tree": "4e8eedf8927565ae9593020474d4fe215c3a86c8",
      "parents": [
        "9b33cbc0cbe92e7f1e60f7b8a3c2fc35976aadbc",
        "30afda71c0dac4d1d59a91b78256ebff76257ad8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 19 23:54:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 23:54:53 2019 +0000"
      },
      "message": "Merge \"Copying debug ramdisk files to /debug_ramdisk/*\""
    },
    {
      "commit": "11cf30b5edf839a353180b39ae4e55c544beaf56",
      "tree": "abea9b16519b9f1250d468dd468fbd3cc9c72aad",
      "parents": [
        "9b33cbc0cbe92e7f1e60f7b8a3c2fc35976aadbc"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Sun Apr 07 23:24:03 2019 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Fri Apr 19 12:51:57 2019 -0700"
      },
      "message": "adb: Support rescue install and getprop.\n\nBug: 128415917\nTest: Enter rescue mode on taimen. Send the following commands:\n      `adb rescue getprop ro.build.fingerprint`\n      `adb rescue getprop ro.build.date.utc`\n      `adb rescue getprop ro.build.invalid`\n      `adb rescue install /path/to/package.zip`\nTest: Sideload on taimen w/ `adb sideload /path/to/package.zip`.\nChange-Id: Ia246b30314fbcd2bd4cc71a8085a280e33041967\n"
    },
    {
      "commit": "a91c5f700ea675f53beb1cf918cedf2d719e6f9e",
      "tree": "ff0480bd907cd6797a5fc03e43fd8511f346db09",
      "parents": [
        "9b33cbc0cbe92e7f1e60f7b8a3c2fc35976aadbc"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Fri Apr 19 10:58:39 2019 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Fri Apr 19 11:46:21 2019 -0700"
      },
      "message": "init.rc: set fsck log permission on post-fs-data\n\nFixes: 130829745\nTest: build and trigger fsck\n      crosshatch:/ # ls -l /dev/fscklogs/log\n      -rwxrwx--- 1 root system 1584 1970-04-08 14:48 /dev/fscklogs/log\nChange-Id: Ifd0734e121d07b941a73d7cabde04928ce5e5c59\n"
    },
    {
      "commit": "9b33cbc0cbe92e7f1e60f7b8a3c2fc35976aadbc",
      "tree": "747a407858d14851681371d4c7a8fb999efc2e50",
      "parents": [
        "8f37d23fafb8ab94963106f5abc71cccd426ccae",
        "030ef185809d5954b0a4bbb1702a963c79306315"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 19 04:23:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 04:23:24 2019 +0000"
      },
      "message": "Merge \"init: small header clean up\""
    },
    {
      "commit": "8f37d23fafb8ab94963106f5abc71cccd426ccae",
      "tree": "c5dcae4cd8fb05aab8d2150bf8d4cdb53207e157",
      "parents": [
        "5664489a3174eb539a672e633e0f1e435cc11fe1",
        "0b0ee7af2f43776f08a4d560f59b9fbc1267b83b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 19 03:49:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 03:49:42 2019 +0000"
      },
      "message": "Merge \"Don\u0027t assume an A/B device when overriding the super partition name.\""
    },
    {
      "commit": "5664489a3174eb539a672e633e0f1e435cc11fe1",
      "tree": "e869dcae92a40823cb9cec474b13208457a60e98",
      "parents": [
        "7908ff90d06a8dbea20d21a08e54c9cd34382690",
        "964b95cf6174a0accd4583fa115f394c14326b9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 19 03:33:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 03:33:19 2019 +0000"
      },
      "message": "Merge \"Ziparchive: Enable -Wconversion\""
    },
    {
      "commit": "7908ff90d06a8dbea20d21a08e54c9cd34382690",
      "tree": "1ebcbd1940e141e8fc0230ad7bd9d4280b23d62c",
      "parents": [
        "a7c103eb8ed82f3a4886ebd07a1a9b3664cafa8f",
        "4ae266ccbddbd0a6529248ecd1b324feab261c0d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 19 02:50:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 02:50:43 2019 +0000"
      },
      "message": "Merge \"Add indicator that an elf is memory backed.\""
    },
    {
      "commit": "a7c103eb8ed82f3a4886ebd07a1a9b3664cafa8f",
      "tree": "d35a70b8ae1b53c5c0a1e8540e297d38efbfe7fd",
      "parents": [
        "f072aaffe06bcdd7a3c05c2bb3ec0f909376c756",
        "45d8174fe7b6f35883f74ceefdf591b209f1fab2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 19 02:17:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 02:17:50 2019 +0000"
      },
      "message": "Merge \"init: set oom_adj early before fork vendor_init\""
    },
    {
      "commit": "30afda71c0dac4d1d59a91b78256ebff76257ad8",
      "tree": "dbe9afd63d7c662dddb78a9ae2aaa934e71acc94",
      "parents": [
        "fc1749280c895e42e814e66ec7ec484a962b2f94"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Apr 11 23:57:24 2019 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Fri Apr 19 09:56:14 2019 +0800"
      },
      "message": "Copying debug ramdisk files to /debug_ramdisk/*\n\nIn previous implementation, userdebug sepoilcy and property files are\nloaded from the system.img. This CL changes this to:\n\n  - first-stage init copies userdebug files from ramdisk to /debug_ramisk/*\n  - second-stage init loads files from /debug_ramdisk/*.\n\nNote: same as before, the above can only be triggered, if the device\nis UNLOCKED\n\nWith this, we don\u0027t have to put userdebug related files into the USER\nsystem.img.\n\nBug: 126493225\nTest: boot device with a ramdisk with /force_debuggable, checks related\n      files are loaded\nChange-Id: I63f5f846e82ba78427062bf7615c26173878d8f3\n"
    },
    {
      "commit": "499601b94fa36759648542039d3df25e901ebb77",
      "tree": "ac108140764b894ac24b6dceba42f7061fd6424f",
      "parents": [
        "fc1749280c895e42e814e66ec7ec484a962b2f94"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 18 16:46:42 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 18 16:58:30 2019 -0700"
      },
      "message": "adb: fix double close in wait-for-*.\n\nunique_fd\u0027s implicit conversion to int allows the following code to\ncompile without error, leading to a double close:\n\n  std::function\u003cvoid(unique_fd)\u003e func \u003d [](int x) { close(x); };\n  func(unique_fd(42));\n\nTest: treehugger\nChange-Id: I948ecda3a12738b3af6444fe2902d2f7b80e1b4c\n"
    },
    {
      "commit": "45d8174fe7b6f35883f74ceefdf591b209f1fab2",
      "tree": "df599c65a8fc7afef44ef70a77047dd337734c37",
      "parents": [
        "d71d30179ca14991c22f65a0d23ddc6686735477"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Apr 18 14:56:24 2019 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Apr 18 16:14:08 2019 -0700"
      },
      "message": "init: set oom_adj early before fork vendor_init\n\nright now vendor_init is forked before we set oom_adj for init which\nleaves a chance vendor_init could be killed in heavy memory pressure.\n\nthis CL set the oom_adj before forking everything to ensure all native\nhave correct oom_adj settings.\n\nFixes: 130824864\nTest: procrank -o\nChange-Id: I8af129076c3efa29f7b781459449f8f2dc853c98\n"
    },
    {
      "commit": "4ae266ccbddbd0a6529248ecd1b324feab261c0d",
      "tree": "8bff2bcc0625cd0ee8f3667f170ac6a8779842f3",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 03 09:27:12 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 18 15:37:52 2019 -0700"
      },
      "message": "Add indicator that an elf is memory backed.\n\nModify the unwinder library to indicate that at least one of the stack\nframes contains an elf file that is unreadable.\n\nModify debuggerd to display a note about the unreadable frame and a possible\nway to fix it.\n\nBug: 129769339\n\nTest: New unit tests pass.\nTest: Ran an app that crashes and has an unreadable file and verified the\nTest: message is displayed. Then setenforce 0 and verify the message is\nTest: not displayed.\nChange-Id: Ibc4fe1d117e9b5840290454e90914ddc698d3cc2\n"
    },
    {
      "commit": "f072aaffe06bcdd7a3c05c2bb3ec0f909376c756",
      "tree": "1cccbc090399468919ac3acb59d6bbc5c3865dd6",
      "parents": [
        "aa952fa545b24b7b4277a523665d359f1d1b3fd8",
        "55d407ec4a0b23f1e20db298b4989068a820087f"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Apr 18 21:45:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 18 21:45:50 2019 +0000"
      },
      "message": "Merge \"adb: Recognize rescue mode.\""
    },
    {
      "commit": "030ef185809d5954b0a4bbb1702a963c79306315",
      "tree": "df784aefc59917ff957124c1176410e301528e4e",
      "parents": [
        "371180bb7279747f9cd3edb36e22247d36c76ae5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 18 14:18:36 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 18 14:18:36 2019 -0700"
      },
      "message": "init: small header clean up\n\nRemove an unimplemented function from the header and clean up some\nslight syntax mistakes.\n\nTest: build\nChange-Id: Ia82c6aee24fa0889a7595aabc564bef970a0863b\n"
    },
    {
      "commit": "0b0ee7af2f43776f08a4d560f59b9fbc1267b83b",
      "tree": "a55a9f273340d0bc5e5e28b31c1f600e46804f6a",
      "parents": [
        "aa952fa545b24b7b4277a523665d359f1d1b3fd8"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu Apr 18 14:14:33 2019 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu Apr 18 14:16:54 2019 -0700"
      },
      "message": "Don\u0027t assume an A/B device when overriding the super partition name.\n\nBug: 130750333\nTest: launch cuttlefish with DAP enabled\nChange-Id: I1ea309d448866a8914f58be98d860eca36d47062\n"
    },
    {
      "commit": "aa952fa545b24b7b4277a523665d359f1d1b3fd8",
      "tree": "fe511534dc3f322a9f2f3199b94d24478e53fddd",
      "parents": [
        "fc1749280c895e42e814e66ec7ec484a962b2f94",
        "4b2b76e101fd1915c7dc57735d3a2286ddeb747c"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Apr 18 20:54:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 18 20:54:40 2019 +0000"
      },
      "message": "Merge \"Remove libandroid.so from media namespace.\""
    },
    {
      "commit": "fc1749280c895e42e814e66ec7ec484a962b2f94",
      "tree": "a89ad341090e8000bb908c2ca362eeb860815828",
      "parents": [
        "c3d5e609e0eccb5adfc11f50303541c4d6cdb6de",
        "990483d409a35c02748aea03205f6d900b6d0aeb"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 18 00:34:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 18 00:34:03 2019 +0000"
      },
      "message": "Merge \"init: do not fork before doing (u)mount_all()\""
    },
    {
      "commit": "c3d5e609e0eccb5adfc11f50303541c4d6cdb6de",
      "tree": "c6223ec92c706047fda9c508f75dd45fd71176ef",
      "parents": [
        "3016f2527c1d6dcac6abfc8bbc3bc61ba25b77de",
        "a42207e2e33710f3aa4c72d660f623f8754b81ab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 18 00:22:08 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 18 00:22:08 2019 +0000"
      },
      "message": "Merge \"procrank: do not keep process maps around\""
    },
    {
      "commit": "4710e53fe56e42d96fc1388c2b19f5dd9de1fc44",
      "tree": "c56e9048653d6330e2aa119cdb010bdb4e72a79c",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 17 16:57:43 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 17 16:57:43 2019 -0700"
      },
      "message": "adb: silence warning from libusb.\n\nTest: mma\nChange-Id: I3f254f3432020937e0f22b04baf7df61336c500b\n"
    },
    {
      "commit": "3016f2527c1d6dcac6abfc8bbc3bc61ba25b77de",
      "tree": "33904526320365ce33afa833298c88812b5811d1",
      "parents": [
        "f05fbe69574d64f07af9450260491a2a15227ab5",
        "3ec821fcfb092adb5bf1606d8261435f19543ff5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 17 23:26:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 17 23:26:13 2019 +0000"
      },
      "message": "Merge \"Do not create /sbin\""
    },
    {
      "commit": "f05fbe69574d64f07af9450260491a2a15227ab5",
      "tree": "ecc86885736734b716a5e351aa08da92e6d77461",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1",
        "770a6a4d46343dcb5b8ba5c584245c8fc369ac6a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 17 21:43:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 17 21:43:37 2019 +0000"
      },
      "message": "Merge \"adbd: reduce the USB buffer sizes to 16k.\""
    },
    {
      "commit": "55d407ec4a0b23f1e20db298b4989068a820087f",
      "tree": "4d88c5403f20480a0d7ee4a323928d5e3d41d9f8",
      "parents": [
        "8a9a1c5056a05d292b031810cfd59bc2181e2934"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Sun Apr 07 23:24:03 2019 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Apr 17 13:47:02 2019 -0700"
      },
      "message": "adb: Recognize rescue mode.\n\nThis CL adds client support to recognize the rescue mode (which will be\nserved by recovery image). It also allows waiting for a device to enter\nrescue mode. The support for the actual rescue commands will be added in\nfollow-up CLs.\n\nBug: 128415917\nTest: `adb devices` recognizes devices under rescue mode.\nTest: `adb wait-for-rescue` waits for device to be in rescue mode.\nChange-Id: I367d7339fe68006aba09a1e3db6370d472296676\n"
    },
    {
      "commit": "990483d409a35c02748aea03205f6d900b6d0aeb",
      "tree": "661cd161c72902c658688f071f9f1cab9f166011",
      "parents": [
        "371180bb7279747f9cd3edb36e22247d36c76ae5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 17 12:55:50 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 17 12:55:50 2019 -0700"
      },
      "message": "init: do not fork before doing (u)mount_all()\n\nA fork() was historically added in case of fs_mgr crashing or leaking\nmemory, but this should not be the case with fs_mgr, and a fork() only\nhides any such problem, instead of allowing us to address it\ndirectly.\n\nTest: boot\nChange-Id: If7ee4807757048258a6ea9a79a24cebbacc530cc\n"
    },
    {
      "commit": "4560714d101342007f09992314d66c8b48552c22",
      "tree": "752f3c986ac79d0ff0f1da0d3c837a20dae11c91",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 17 11:21:12 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 17 12:47:31 2019 -0700"
      },
      "message": "fs_mgr: overlayfs: suppress mkfs output\n\nAfter this change, all the noise from mkfs is suppressed:\n\n$ adb remount\n[libfs_mgr]superblock s_max_mnt_count:65535,/dev/block/by-name/system_b\n[libfs_mgr]__mount(source\u003d/dev/block/by-name/system_b,target\u003d/mnt/scratch,type\u003dext4)\u003d-1: Invalid argument\n[libfs_mgr]__mount(source\u003d/dev/block/by-name/system_b,target\u003d/mnt/scratch,type\u003df2fs)\u003d0: Success\nUsing overlayfs for /system\nUsing overlayfs for /vendor\nUsing overlayfs for /product\n[libfs_mgr]__mount(source\u003doverlay,target\u003d/system,type\u003doverlay,upperdir\u003d/mnt/scratch/overlay/system/upper)\u003d0\n[libfs_mgr]__mount(source\u003doverlay,target\u003d/vendor,type\u003doverlay,upperdir\u003d/mnt/scratch/overlay/vendor/upper)\u003d0\n[libfs_mgr]__mount(source\u003doverlay,target\u003d/product,type\u003doverlay,upperdir\u003d/mnt/scratch/overlay/product/upper)\u003d0\nremount succeeded\n\nTest: manual as above\nBug: 130739326\nChange-Id: I7ed8842e42b74b6a487ce6324b28baf78f1f63bf\n"
    },
    {
      "commit": "a42207e2e33710f3aa4c72d660f623f8754b81ab",
      "tree": "82b2d9bdfe72d0e3900a305b418d875a3585f2f1",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Apr 17 11:38:15 2019 -0700"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Apr 17 12:11:50 2019 -0700"
      },
      "message": "procrank: do not keep process maps around\n\nprocrank\u0027s usage in its output shows 20x increase from\nlast year. This is because it is keeping the process\nmaps around until termination. Fix that by getting rid\nof ProcMemInfo objects when done parsing /proc/\u003cpid\u003e/maps,pagemap.\n\nNote that the total allocations do not change and have not necessarily\nregressed from Pie.\n\nBug: 130672819\nTest: adb shell procrank | grep \u0027procrank\\|cmdline\u0027\n\nChange-Id: Ib7bf960ed1d053347fcfc0c8aee9019607a1eb01\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "4b2b76e101fd1915c7dc57735d3a2286ddeb747c",
      "tree": "46836c702e86921436302e01b4880da779268fa0",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Apr 17 10:47:33 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Apr 17 18:05:51 2019 +0000"
      },
      "message": "Remove libandroid.so from media namespace.\n\nTest: adb shell dumpsys media.extractor\nBug: 130637522\nChange-Id: I6bcdac60a740d19a97bbac19e6339e0552b0d572\nMerged-In: Ia6366834613d1e12498fa90377e79f62a2149776\n"
    },
    {
      "commit": "5c421695f0d6139632692645f755c79d9f163fc1",
      "tree": "f7801cc5ee148714f0516450b65efe5036e7f4d1",
      "parents": [
        "371180bb7279747f9cd3edb36e22247d36c76ae5",
        "e8678cf883ee78ab9fe5ea47e6d9b24ef7c8d4f7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 17 01:51:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 17 01:51:33 2019 +0000"
      },
      "message": "Merge \"Let blkio cgroup follow cpuset cgroup only\""
    },
    {
      "commit": "371180bb7279747f9cd3edb36e22247d36c76ae5",
      "tree": "1874ec0590ef9a33e217f10453279b7f8554d43d",
      "parents": [
        "6e288634425a7e8f8481e22beb68e4d90ed792f9",
        "18cb6812474e00050efab19e242c8a04ed470bec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 23:29:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 23:29:04 2019 +0000"
      },
      "message": "Merge \"debuggerd: call setsid in our children.\""
    },
    {
      "commit": "6e288634425a7e8f8481e22beb68e4d90ed792f9",
      "tree": "78788d75af840620df2d7a37e0a4a5ae4a68da31",
      "parents": [
        "e438843ead29103e9142149243695e50dc3734da",
        "8efadf70e10fcc12e227e98e838e7544fc26256c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 23:03:17 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 23:03:17 2019 +0000"
      },
      "message": "Merge \"Handle failed usb/reads and writes correctly\""
    },
    {
      "commit": "e438843ead29103e9142149243695e50dc3734da",
      "tree": "e6c6aa222ff9423e7d7d2880430d3c6425fc554d",
      "parents": [
        "220241f2668c7e052dcc34fd66e352a78c06e791",
        "402633d6057697857cbaa5e87689ff373549f426"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Apr 16 22:46:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 22:46:52 2019 +0000"
      },
      "message": "Merge \"init: add umount_all builtin.\""
    },
    {
      "commit": "3ec821fcfb092adb5bf1606d8261435f19543ff5",
      "tree": "1124f89af0acf54950db5e0363c2db3fe747578f",
      "parents": [
        "e1d4648f4636a37c8e2d68ca4efacc2c05de9cc1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 16 14:57:49 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 16 15:22:33 2019 -0700"
      },
      "message": "Do not create /sbin\n\n/sbin was traditionally used for static binaries on the ramdisk for\nAndroid, but now everything is a shared binary, so this directory is\nempty and we do not want to encourage creation of new libraries in\nthis directory.\n\nBug: 73660730\nTest: build\nChange-Id: I0d0aa052e1eaf529d18921c45169473df0ee51ff\n"
    },
    {
      "commit": "e8678cf883ee78ab9fe5ea47e6d9b24ef7c8d4f7",
      "tree": "f39eef3cbff582b8a470891d6546c9de1c362cc9",
      "parents": [
        "0a887aa14c5bd187859c7558259df3901fee2342"
      ],
      "author": {
        "name": "Rick Yiu",
        "email": "rickyiu@google.com",
        "time": "Fri Mar 29 20:03:47 2019 +0800"
      },
      "committer": {
        "name": "Thierry Strudel",
        "email": "tstrudel@google.com",
        "time": "Tue Apr 16 22:20:58 2019 +0000"
      },
      "message": "Let blkio cgroup follow cpuset cgroup only\n\nSome app may have different cgroup settings in cpuset and schedtune for its\nthreads, so let blkio follow cpuset only, which represents the app\u0027s current\nstate more accurately. Otherwise, if that thread is doing IO, then its\nperformance will be affected because its blkio group is in lower priority\ngroup as schedtune.\n\nex: an app is now in top-app, but some thread of it set schedtune group to\nbackground, and blkio follows schedtune because it is called later.\n\nMain thread:\n6:schedtune:/top-app\n5:memory:/\n4:cpuset:/top-app\n3:cpuacct:/uid_1000/pid_8766\n2:cpu:/\n1:blkio:/\n0::/\n\nSome thread:\n6:schedtune:/background\n5:memory:/\n4:cpuset:/top-app\n3:cpuacct:/uid_1000/pid_8766\n2:cpu:/\n1:blkio:/background\n0::/\n\nBug: 124727032\nTest: blkio has same settings with cpuset\nChange-Id: I9a140c7d9d93e1dd43c34c8cf066f4a62e2bf604\n"
    },
    {
      "commit": "770a6a4d46343dcb5b8ba5c584245c8fc369ac6a",
      "tree": "7a0cc533bbb43f138f355973c090305ff8cb237f",
      "parents": [
        "a853a2f8ec284776b7b6cf0d39c4f339889d86b9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 16 11:20:04 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 16 15:14:24 2019 -0700"
      },
      "message": "adbd: reduce the USB buffer sizes to 16k.\n\nSome USB controllers only support 16k writes, so drop down to that.\n\nBug: http://b/130622010\nTest: treehugger\nChange-Id: I836d5b2d0d6fcae05f290af11a6a19c6e8d7c1ba\n"
    },
    {
      "commit": "220241f2668c7e052dcc34fd66e352a78c06e791",
      "tree": "140ab3a7b3a6fc690b32326238ebfb3e71951471",
      "parents": [
        "e1d4648f4636a37c8e2d68ca4efacc2c05de9cc1",
        "17aaee2f053f1fffb52497fb22da5252908a9c75"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 20:51:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 20:51:53 2019 +0000"
      },
      "message": "Merge \"mini-keyctl: fix key id parsing by \"0x\" prefix\""
    },
    {
      "commit": "18cb6812474e00050efab19e242c8a04ed470bec",
      "tree": "b957f5e34565d1a9ad6ea1e64e002109a7ec3f69",
      "parents": [
        "a853a2f8ec284776b7b6cf0d39c4f339889d86b9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 16 13:17:08 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 16 13:17:08 2019 -0700"
      },
      "message": "debuggerd: call setsid in our children.\n\nThere appears to be a kernel bug that causes SIGHUP and SIGCONT to be\nsent to the parent process group we spawn from if the process group\ncontains stopped jobs (e.g. the parent itself, because of wait_for_gdb).\n\nCall setsid in all of our children to prevent this from happening.\n\nBug: http://b/31124563\nTest: adb shell \u0027setprop debug.debuggerd.wait_for_gdb 1; killall -ABRT surfaceflinger\u0027\nChange-Id: I1a48d70886880a5bfbe2deb80d48deece55faf09\n"
    },
    {
      "commit": "e1d4648f4636a37c8e2d68ca4efacc2c05de9cc1",
      "tree": "5098c7c7c34dd946b6895260ec004420f7beae42",
      "parents": [
        "6aa0d7eaf83f93e842780ef85a1c50de37ebe6ee",
        "dd04c658c34c769107e13c106e0cd6df5d889da2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 12:28:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 12:28:25 2019 +0000"
      },
      "message": "Merge \"crasher: add execute-only memory (\"xom\").\""
    },
    {
      "commit": "6aa0d7eaf83f93e842780ef85a1c50de37ebe6ee",
      "tree": "f00daa4ca185e661b3cc7cd98b58840a2c2b478a",
      "parents": [
        "a853a2f8ec284776b7b6cf0d39c4f339889d86b9",
        "8457f52ba990beae4a867c5d1005c651a2e92265"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 07:32:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 07:32:47 2019 +0000"
      },
      "message": "Merge \"init: fix loglevel docs.\""
    },
    {
      "commit": "17aaee2f053f1fffb52497fb22da5252908a9c75",
      "tree": "2201e1e3581d19cd799354cf78d2fae7a3483d8a",
      "parents": [
        "b142458ab3d251769b0e1f66bf1f31a6ebda6d14"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Apr 15 15:19:08 2019 -0700"
      },
      "committer": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Apr 15 15:19:08 2019 -0700"
      },
      "message": "mini-keyctl: fix key id parsing by \"0x\" prefix\n\nOtherwise, ParseInt treats the input as decimal and fails.\n\nTest: add key works\nBug: None\nChange-Id: I144ab0bba519c7630e702562bfb54118a389908e\n"
    },
    {
      "commit": "402633d6057697857cbaa5e87689ff373549f426",
      "tree": "43dc4ff66f664d4df8d8486e09cf6a94dfc6fbfc",
      "parents": [
        "f14652c30b8140a6e14970adeda4912063ad22c3"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Apr 09 10:11:34 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Apr 15 15:11:28 2019 -0700"
      },
      "message": "init: add umount_all builtin.\n\numount_all is the cleanup step for mount_all.\n\nIn particular, the mount_all builtin creates a verity device,\n\u0027postinstall-verity\u0027, for the following line:\n\nsystem /postinstall ... ... slotselect_other,logical,avb_keys\u003d...\n\ncppreopt umounts /postinstall but doesn\u0027t destroy the postinstall-verity\ndevice, causing OTA to fail (because it cannot destroy the\nsystem_[other] device). umount_all also destroy the verity device.\n\nNote that mount_all does not map system_[other]; it is mapped by\nfirst stage init. Hence, umount_all doesn\u0027t destroy it either. The OTA\nclient is reponsible for unmapping the device itself.\n\nBug: 129988285\nTest: flash, boot, then check `dmctl list devices`, then OTA\n\nChange-Id: Id3ab65b3860b6ea6cfec310ab13652009c81f415\nMerged-In: Id3ab65b3860b6ea6cfec310ab13652009c81f415\n"
    },
    {
      "commit": "a853a2f8ec284776b7b6cf0d39c4f339889d86b9",
      "tree": "acd9f7b2a45be0005f693dcf627babb99f82ff0c",
      "parents": [
        "2c561d18d8f8bbf73e10925ac5b920aa0f8eb1a0",
        "d11ed86d65e870c5ea0d4918693376d474dbfe7d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 15 20:29:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 15 20:29:40 2019 +0000"
      },
      "message": "Merge \"Fix pc/function name for signal handler frame.\""
    },
    {
      "commit": "dd04c658c34c769107e13c106e0cd6df5d889da2",
      "tree": "fe28b685002b53a80911fc34d5759a0207686dc6",
      "parents": [
        "f14652c30b8140a6e14970adeda4912063ad22c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 13:03:48 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 13:03:48 2019 -0700"
      },
      "message": "crasher: add execute-only memory (\"xom\").\n\nTest: `crasher thread-xom`\nChange-Id: Ia121848df966040968370e1e9cb840034d780e4f\n"
    },
    {
      "commit": "8457f52ba990beae4a867c5d1005c651a2e92265",
      "tree": "0f89466a9166de286ea0bae52b07473b3918c966",
      "parents": [
        "f14652c30b8140a6e14970adeda4912063ad22c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 12:17:22 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 12:17:22 2019 -0700"
      },
      "message": "init: fix loglevel docs.\n\nBug: http://b/129989984\nTest: N/A\nChange-Id: Ie7b320fd47dec839ad79d677eb90050cfbcf50c3\n"
    },
    {
      "commit": "2c561d18d8f8bbf73e10925ac5b920aa0f8eb1a0",
      "tree": "da66925a71c56f3bc0bc7efbf4e583b146360e54",
      "parents": [
        "fcb8b96145958c0a4937c1e31739d73c88ebe512",
        "82dee3ea69da15637974b9db64a7ace78cc945b0"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Mon Apr 15 18:55:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 15 18:55:51 2019 +0000"
      },
      "message": "Merge \"liblp: Use ro.boot.slot_suffix rather than ro.build.ab_update.\""
    },
    {
      "commit": "fcb8b96145958c0a4937c1e31739d73c88ebe512",
      "tree": "06b7894f32ab5a330da064f3a3e91a32b7f59665",
      "parents": [
        "8a9a1c5056a05d292b031810cfd59bc2181e2934",
        "243887b1e152ad5d895fd7e0f73f4478d0f38319"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Mon Apr 15 18:49:56 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 15 18:49:56 2019 +0000"
      },
      "message": "Merge \"Handle empty strings in GetPartitionAbsolutePath.\""
    },
    {
      "commit": "8efadf70e10fcc12e227e98e838e7544fc26256c",
      "tree": "c9e9cd65b3cce361efac7472d877e2cd49e08bf2",
      "parents": [
        "21aa749ec71e44bdde61f8d6173a18350d1344e5"
      ],
      "author": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Mon Apr 15 10:27:38 2019 -0700"
      },
      "committer": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Mon Apr 15 10:36:42 2019 -0700"
      },
      "message": "Handle failed usb/reads and writes correctly\n\nCurrently if the device is unplugged from host,\nthere is a lot of log spamming since fastbootd\ndoes not not recognize that the device has been\ndisconnected and keeps trying to read/write to the\ndevice.\n\n2856 printk messages dropped ** [  169.941904] c7    579 fastbootd: aio: got error event on\nread total bufs 1: No such devie\n** 2960 printk messages dropped ** [  169.953328] c7    579 fastbootd: Fastboot command:\n** 2074 printk messages dropped ** [  169.961355] c7    579 fastbootd: aio: got error event\non read total bufs 1: No such devie\n\nBug: 121333158\nTest: unplug device and check for log spam multiple times\n\nChange-Id: I1d4c6f48f34e313c5ebce23d62a4fe6a6373f94f\n"
    },
    {
      "commit": "d11ed86d65e870c5ea0d4918693376d474dbfe7d",
      "tree": "3ff56343799a7a26dc1a6ed4676404704ab46824",
      "parents": [
        "1a17b09174b47e08b13077f803081918b13c0722"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 11 19:45:35 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 12 17:23:18 2019 -0700"
      },
      "message": "Fix pc/function name for signal handler frame.\n\nThis refactors the step function slightly to split it up into\ndistinct pieces since the code needs to handle a signal handler\nversus normal step slightly differently.\n\nAdd a new error for an invalid elf.\n\nModify libbacktrace code to handle new error code.\n\nBug: 130302288\n\nTest: libbacktrace/libunwindstack unit tests.\nChange-Id: I3fb9b00c02d2cf2cc5911541bba0346c6f39b8e6\n"
    },
    {
      "commit": "82dee3ea69da15637974b9db64a7ace78cc945b0",
      "tree": "da66925a71c56f3bc0bc7efbf4e583b146360e54",
      "parents": [
        "243887b1e152ad5d895fd7e0f73f4478d0f38319"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri Apr 12 16:55:52 2019 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri Apr 12 16:59:31 2019 -0700"
      },
      "message": "liblp: Use ro.boot.slot_suffix rather than ro.build.ab_update.\n\nBug: 130433329\nTest: liblp_test gtests\nChange-Id: I229f582dc829884e4e90187981902cd4d45637c6\n"
    },
    {
      "commit": "243887b1e152ad5d895fd7e0f73f4478d0f38319",
      "tree": "06b7894f32ab5a330da064f3a3e91a32b7f59665",
      "parents": [
        "8a9a1c5056a05d292b031810cfd59bc2181e2934"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri Apr 12 16:40:21 2019 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri Apr 12 16:59:30 2019 -0700"
      },
      "message": "Handle empty strings in GetPartitionAbsolutePath.\n\nBug: N/A\nTest: liblp_test gtests\nChange-Id: I2440da17aa842d996a37d27b4bfba89ce71321d8\n"
    },
    {
      "commit": "8a9a1c5056a05d292b031810cfd59bc2181e2934",
      "tree": "41ebdffafa9844e93958496b24fa0e7b939ffcae",
      "parents": [
        "3569a8817d2cd92a1d49bc5e2f613ee460426fb8",
        "609236f66cca4d04f045892551f96eb7ca56df16"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Apr 12 15:42:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 12 15:42:11 2019 +0000"
      },
      "message": "Merge \"Describe the reason for the allow_all_shared_libs from the runtime namespace better.\""
    },
    {
      "commit": "3569a8817d2cd92a1d49bc5e2f613ee460426fb8",
      "tree": "80004a48b23207c8057319d8a4b86c8e4463bde8",
      "parents": [
        "543fdbefe66dd101cf8b1ba1ec0a9ce5d05e0d34",
        "d6ef9d2411ce70244aa215e016c45bb837b58d96"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 12 05:38:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 12 05:38:03 2019 +0000"
      },
      "message": "Merge \"fs_mgr: overlay check shared blocks for / if /system is not\""
    },
    {
      "commit": "543fdbefe66dd101cf8b1ba1ec0a9ce5d05e0d34",
      "tree": "ca3c99e3f21ac720628cb2f92ebc7fb3915e2f96",
      "parents": [
        "1a17b09174b47e08b13077f803081918b13c0722",
        "84d4933686b332944978402f4f1595b53b3e886d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 12 00:04:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 12 00:04:49 2019 +0000"
      },
      "message": "Merge \"avb_ops: support reading from a logical partition\""
    },
    {
      "commit": "d6ef9d2411ce70244aa215e016c45bb837b58d96",
      "tree": "ae1fb5763f8a0294098868a77b16254c9e46f281",
      "parents": [
        "1a17b09174b47e08b13077f803081918b13c0722"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 11 12:58:19 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 11 16:04:54 2019 -0700"
      },
      "message": "fs_mgr: overlay check shared blocks for / if /system is not\n\nFor bringup devices that do not have right-sized partition, and if\n/system is now root, check / to be sure.\n\nConsider unshare blocks for ext4 as dead code, provide a strong\nmessage to caller to provide all the dependencies to overlayfs.\n\nTest: adb-remount-test.sh\nBug: 130327601\nChange-Id: Iffa7c5f24d8f409e71f89fe9ece274d8c476f6fc\n"
    },
    {
      "commit": "1a17b09174b47e08b13077f803081918b13c0722",
      "tree": "4b5af4ccedb861a7e57064721f0b57ca793eb75b",
      "parents": [
        "1af42f647397a8b69acb2122e5fe8041b459054a",
        "b9051a3e6559b14759015d679c97d0e9e5fad9a4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 11 22:33:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 11 22:33:22 2019 +0000"
      },
      "message": "Merge \"Allow fuzzy_fastboot number to run for a specific device serial number\""
    },
    {
      "commit": "1af42f647397a8b69acb2122e5fe8041b459054a",
      "tree": "619a8bf08780fa813c251561921c72441a2d26e7",
      "parents": [
        "8bb464c2b4652763b6e1c8b59cba8a979179990f",
        "38af717a83456077189c9b2cb63ed76f083d6e43"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 11 20:32:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 11 20:32:32 2019 +0000"
      },
      "message": "Merge \"fs_mgr: overlay: only use system_\u003cother\u003e if other slot suffix not blank\""
    },
    {
      "commit": "b9051a3e6559b14759015d679c97d0e9e5fad9a4",
      "tree": "3ce889e57015796b3bca884e3537a111b670f0ec",
      "parents": [
        "21aa749ec71e44bdde61f8d6173a18350d1344e5"
      ],
      "author": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Wed Apr 10 16:31:31 2019 -0700"
      },
      "committer": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Thu Apr 11 09:52:09 2019 -0700"
      },
      "message": "Allow fuzzy_fastboot number to run for a specific device serial number\n\nTest: ./fuzzy_fastboot --serial\u003d826X003L --gtest_filter\u003d*Logical*\nBug: 117181762\nChange-Id: I9dec510aa604b7994f25ce26edb87d7f6ec3e875\n"
    },
    {
      "commit": "38af717a83456077189c9b2cb63ed76f083d6e43",
      "tree": "9c7321ac5a6ad97152250a948bd3fc5537d25008",
      "parents": [
        "54785507f01d3d8e923ff5aa168858415d66d7c1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 10 14:41:51 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 11 09:48:45 2019 -0700"
      },
      "message": "fs_mgr: overlay: only use system_\u003cother\u003e if other slot suffix not blank\n\nTest: adb-remount-test.sh\nBug: 129988285\nChange-Id: Ib929d242e7cc4953096eb6300bcf7888ce2259ab\n"
    },
    {
      "commit": "609236f66cca4d04f045892551f96eb7ca56df16",
      "tree": "e050b77fd062b6e76b51adf359eafa1f3fb9b4bd",
      "parents": [
        "8bb464c2b4652763b6e1c8b59cba8a979179990f"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Feb 27 21:40:42 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Apr 11 13:54:44 2019 +0100"
      },
      "message": "Describe the reason for the allow_all_shared_libs from the runtime namespace\nbetter.\n\nTest: N/A - comment change only\nBug: 119867084\nChange-Id: I80743236f95cedc43b8f80ac32a09ac0094f779e\n"
    },
    {
      "commit": "84d4933686b332944978402f4f1595b53b3e886d",
      "tree": "8e3973f079261fbb97b962fcb308cac24617891a",
      "parents": [
        "ca66aac2893a068f0399295c336ff33d6dddcd40"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Apr 10 17:38:06 2019 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Apr 11 10:58:30 2019 +0800"
      },
      "message": "avb_ops: support reading from a logical partition\n\nOn some devices (e.g., emulator), init needs to read AVB footer from\na logical partition because:\n\n   1) Dynamic/logical partition is enabled\n   2) The partition is AVB chained, i.e., need to locate footer from the end\n   3) Logical partition is not understandable by bootloader,\n      but there is no bootloader in this case\n\nBug: 125540538\nBug: 128434470\nTest: boot and force the fallback path, to check it can get logical path\nChange-Id: Ie304bce234cbf0f938f386f7ce59235c851e0e2d\n"
    },
    {
      "commit": "8bb464c2b4652763b6e1c8b59cba8a979179990f",
      "tree": "e586a35c8eb0d50a8667bc7a0ba822e0ca9743e4",
      "parents": [
        "c620463f775871ecc73fe3ebc3c9cb2d699d789c",
        "122e78248ee588a49ff38a662865913923144c94"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Apr 10 18:34:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 18:34:18 2019 +0000"
      },
      "message": "Merge \"charger: Allow to rw /sys/power/[state,wakeup_count]\""
    },
    {
      "commit": "c620463f775871ecc73fe3ebc3c9cb2d699d789c",
      "tree": "f069fffec4d91f340dddef55e4c14962217b7657",
      "parents": [
        "54785507f01d3d8e923ff5aa168858415d66d7c1",
        "dae0195380686dbec450e298f4acf47b5f9576e6"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Wed Apr 10 17:49:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 17:49:38 2019 +0000"
      },
      "message": "Merge \"Make the SocketListener control pipe O_CLOEXEC.\""
    },
    {
      "commit": "54785507f01d3d8e923ff5aa168858415d66d7c1",
      "tree": "867f1ad4b86c43d278b358d8f41ee79fe2bc3cc5",
      "parents": [
        "ca66aac2893a068f0399295c336ff33d6dddcd40",
        "a0f8b05d913855e3d8e9836f124fc9fdc755d450"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 10 15:29:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 15:29:21 2019 +0000"
      },
      "message": "Merge \"first-stage mount: support using other avb_keys\""
    },
    {
      "commit": "ca66aac2893a068f0399295c336ff33d6dddcd40",
      "tree": "3c9ad59fbbe303c16b88df0a5defa1391ebda968",
      "parents": [
        "3458bb6ce1d3e73e15075b5962a3662af0af5e04",
        "569bff76fef487dcea131f9b83a0609fcf1b6e76"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed Apr 10 04:43:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 04:43:48 2019 +0000"
      },
      "message": "Merge \"Fix ART build bustage.\""
    },
    {
      "commit": "dae0195380686dbec450e298f4acf47b5f9576e6",
      "tree": "e79afe5df5de5355fb3d3ceb73a9e10baa533254",
      "parents": [
        "3458bb6ce1d3e73e15075b5962a3662af0af5e04"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Apr 10 12:01:34 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Apr 10 12:11:42 2019 +0900"
      },
      "message": "Make the SocketListener control pipe O_CLOEXEC.\n\nChildren of processes that use SocketListener should not be able\nto stop the SocketListener.\n\nTest: builds, boots\nTest: atest libsysutils_tests\nTest: atest --test-mapping system/netd\nChange-Id: I64898d9966f62004468b8e8a43b59be4a81a8cc4\n"
    },
    {
      "commit": "3458bb6ce1d3e73e15075b5962a3662af0af5e04",
      "tree": "b666df2386d0394972a28b52706b7b1668b8aab6",
      "parents": [
        "15074de25c982779653da62207f125a88c617916",
        "be5e44679146d333c20e28bf99c52d168f422626"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 10 02:29:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 02:29:24 2019 +0000"
      },
      "message": "Merge \"introduce auditctl and use it to configure SELinux throttling\""
    },
    {
      "commit": "15074de25c982779653da62207f125a88c617916",
      "tree": "b95761b88b53649e2af351350c9dfb43bf9127cd",
      "parents": [
        "8b39c113f9e4b70663044dc121a0d3f63d6d0f49",
        "4c5d1f8245beaf411889bbb85b02cb89cb456846"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 10 02:04:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 02:04:37 2019 +0000"
      },
      "message": "Merge \"fs_mgr: overlay: wait for logical partition to be created\""
    },
    {
      "commit": "8b39c113f9e4b70663044dc121a0d3f63d6d0f49",
      "tree": "3c0b810594f68fa94bbafca9088cbad900f88767",
      "parents": [
        "9a62481fc7c3ea589067addd9aeb31a97249fc43",
        "ba98e0e85709276a5bdf2f3812eaed30bb754e95"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 09 23:53:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 09 23:53:23 2019 +0000"
      },
      "message": "Merge \"libmeminfo/procrank: Ignore failures when process disappears.\""
    },
    {
      "commit": "569bff76fef487dcea131f9b83a0609fcf1b6e76",
      "tree": "0061129ff9a2cd0d2f186aed40cdb3ff1cc841e8",
      "parents": [
        "9a62481fc7c3ea589067addd9aeb31a97249fc43"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Tue Apr 09 16:44:04 2019 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Tue Apr 09 23:50:11 2019 +0000"
      },
      "message": "Fix ART build bustage.\n\nBug: 130244092\nTest: builds\nChange-Id: I1e3f7e167716101809d788e5aa41c672046569e0\n"
    },
    {
      "commit": "4c5d1f8245beaf411889bbb85b02cb89cb456846",
      "tree": "9f0103d7195a6cd98951a6b476af220f494bac84",
      "parents": [
        "9a62481fc7c3ea589067addd9aeb31a97249fc43"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 09 14:12:44 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 09 14:13:48 2019 -0700"
      },
      "message": "fs_mgr: overlay: wait for logical partition to be created\n\nTest: adb-remount-test.sh\nBug: 130238923\nChange-Id: Iaff01565d6df5c4434e66f742ed0939f61f6005a\n"
    },
    {
      "commit": "122e78248ee588a49ff38a662865913923144c94",
      "tree": "5a51a81b731a514684cc1c64e69fcb6935932939",
      "parents": [
        "f14652c30b8140a6e14970adeda4912063ad22c3"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Apr 08 13:29:07 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Apr 09 13:35:07 2019 -0700"
      },
      "message": "charger: Allow to rw /sys/power/[state,wakeup_count]\n\ncharger needs to suspend the device when the power goes away\nwhen it doesn\u0027t have root. These two files are marked with\ngroup system, user system, mode 0600 in \u0027on boot\u0027, but\nit is not executed in charger. Hence, move these actions\nto \u0027on init\u0027.\n\nTest: no failure in libsuspend in charger\n\nBug: 129138950\n\nChange-Id: I787b935b4ff6177601329aeedccdac361b119ca3\nMerged-In: I787b935b4ff6177601329aeedccdac361b119ca3\n"
    }
  ],
  "next": "be5e44679146d333c20e28bf99c52d168f422626"
}
