)]}'
{
  "log": [
    {
      "commit": "9971005cd3d29dd0ddf4e37ab7171d1fbfc55586",
      "tree": "8b63e0d8d2c9d69c8b716da6bd8754195d60afa9",
      "parents": [
        "59976b9bed819686d63b67c33768e938b2a76d24",
        "da1dbd6e6aa441e9edc838483ddb745e2aa90928"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 22 17:52:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 22 17:52:18 2018 +0000"
      },
      "message": "Merge \"fastboot: better temporary file errors.\""
    },
    {
      "commit": "59976b9bed819686d63b67c33768e938b2a76d24",
      "tree": "200e90e695cd1e1129bc84e79f5b1dac290a40b5",
      "parents": [
        "c5fbf494e7400c53e724ff140512dc0040621d1d",
        "4053359c7fe4fe94f01f40f7d0eade0ab4912704"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 22 17:37:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 22 17:37:23 2018 +0000"
      },
      "message": "Merge \"Property: Log errno for socket connect\""
    },
    {
      "commit": "c5fbf494e7400c53e724ff140512dc0040621d1d",
      "tree": "75f57813c81d2755d62e74688df27defaddbc12a",
      "parents": [
        "9f6f8bf0dcb7f08c8c0afc1685f5d1a54b41b4cb",
        "6c6ec7240c561934437b2f23065bcd9a3e9811f7"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 22 15:01:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 22 15:01:08 2018 +0000"
      },
      "message": "Merge \"init: separate out epoll into a class\""
    },
    {
      "commit": "da1dbd6e6aa441e9edc838483ddb745e2aa90928",
      "tree": "cc596e4bfbc05a691ebd26b023f59e6aa4fe102c",
      "parents": [
        "9f6f8bf0dcb7f08c8c0afc1685f5d1a54b41b4cb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 23:02:26 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 23:02:26 2018 -0700"
      },
      "message": "fastboot: better temporary file errors.\n\nBug: http://b/80082652\nTest: N/A\nChange-Id: Ib9f34342157ea3a15fd48504d03f4f3a2c710579\n"
    },
    {
      "commit": "9f6f8bf0dcb7f08c8c0afc1685f5d1a54b41b4cb",
      "tree": "6cbdc113d5cdcbf2578d90e354bf6916300924a7",
      "parents": [
        "dda4678a117f8d355d352d661ea55198dda3a00c",
        "612210c75b2c55bf79f93b6789773c7459d320e4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 22 05:16:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 22 05:16:20 2018 +0000"
      },
      "message": "Merge \"Mark as recovery_available: true\""
    },
    {
      "commit": "dda4678a117f8d355d352d661ea55198dda3a00c",
      "tree": "940f6c35072687a321e2b8e5f59f83e5aa09a413",
      "parents": [
        "2fa9770c3ad8041953cbc07a5892e87ef506a309",
        "5a35d12e622f416f8bd169987f7c4570de8f5e99"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 22 04:04:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 22 04:04:07 2018 +0000"
      },
      "message": "Merge \"Always use versioned VNDK directory\""
    },
    {
      "commit": "4053359c7fe4fe94f01f40f7d0eade0ab4912704",
      "tree": "3fcdb7a6b36050c4f82d3021b257cdf9f786970e",
      "parents": [
        "74bf81443fef2ff48bb80cc24b678aff8bdd462a"
      ],
      "author": {
        "name": "DuXiao",
        "email": "duxiao44@huawei.com",
        "time": "Mon May 21 14:43:56 2018 +0800"
      },
      "committer": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Tue May 22 10:54:34 2018 +0800"
      },
      "message": "Property: Log errno for socket connect\n\nIt\u0027s currently not clear that the error no indicating the\nfailure to invoke the library function. This change introduces\nlogs at the failing of socket connect, that could be clearly\nget the true reason.\n\nTest: Set system property with failed, and socket recv errno\n      log will show\n\nChange-Id: I36bf66988811f953e679d1c5a468de0bf1ab0a05\nSigned-off-by: Jinguang Dong \u003cdongjinguang@huawei.com\u003e\n"
    },
    {
      "commit": "2fa9770c3ad8041953cbc07a5892e87ef506a309",
      "tree": "eb5a8223edf1d4374416e5a6605cd0e291987bb6",
      "parents": [
        "e0a52774b4236f8dab6e1f0f246c6021ec0df698",
        "32559741699d46820ff9409445a21fdce012e03a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 21 22:37:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 21 22:37:21 2018 +0000"
      },
      "message": "Merge changes I4d6da40d,I91c7ced5,I7b9f6d18\n\n* changes:\n  adb: Add a test for emulator connection\n  adb: Improve test_adb a bit more\n  adb: Add a way to reconnect TCP transports\n"
    },
    {
      "commit": "6c6ec7240c561934437b2f23065bcd9a3e9811f7",
      "tree": "7f602001eea23aefb368d6b611e597668595499f",
      "parents": [
        "e0a52774b4236f8dab6e1f0f246c6021ec0df698"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Sat Oct 24 16:20:18 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 21 14:58:03 2018 -0700"
      },
      "message": "init: separate out epoll into a class\n\nTest: init_tests\nBug: 64114943\nChange-Id: I5f03314773b02b9e30e8e21895b6bdcfd4909e88\n"
    },
    {
      "commit": "e0a52774b4236f8dab6e1f0f246c6021ec0df698",
      "tree": "bbbecb0a795d6d8e987e8e3b751924d148d29be0",
      "parents": [
        "74bf81443fef2ff48bb80cc24b678aff8bdd462a",
        "fd66538ef3bdd4c1ad1ccdec04038bdbcedaac9b"
      ],
      "author": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Mon May 21 19:06:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 21 19:06:54 2018 +0000"
      },
      "message": "Merge \"Add a new directory to store downloaded apns\""
    },
    {
      "commit": "fd66538ef3bdd4c1ad1ccdec04038bdbcedaac9b",
      "tree": "bbbecb0a795d6d8e987e8e3b751924d148d29be0",
      "parents": [
        "74bf81443fef2ff48bb80cc24b678aff8bdd462a"
      ],
      "author": {
        "name": "Niklas Lindgren",
        "email": "niklas.lindgren@sony.com",
        "time": "Mon May 21 16:53:00 2018 +0200"
      },
      "committer": {
        "name": "Mattias Nilsson",
        "email": "mattias.nilsson@sony.com",
        "time": "Mon May 21 18:48:28 2018 +0200"
      },
      "message": "Add a new directory to store downloaded apns\n\ndownloaded apns-conf.xml will be stored in the folder\n/data/misc/apns/ to make sure TelephonyProvider gets\naccess.\n\nBug: 79948106\nTest: Manual\nChange-Id: I4ba0596fa6523c0eb96328dbe46ead02587bd9b8\n"
    },
    {
      "commit": "74bf81443fef2ff48bb80cc24b678aff8bdd462a",
      "tree": "488597ca33e147341685eb1165077c7c2c2cbced",
      "parents": [
        "98214c81d157d4cef7f5ca6cbd6f447e596beb80",
        "d2b15dd6749eefaa76a12e0466693e4336e9b8a7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 19 02:14:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 19 02:14:33 2018 +0000"
      },
      "message": "Merge \"debuggerd: fix CrasherTest.seccomp_crash_oom.\""
    },
    {
      "commit": "98214c81d157d4cef7f5ca6cbd6f447e596beb80",
      "tree": "475f2dcbe67504616ca712c66a457630c3b44977",
      "parents": [
        "4bfbd8e9a53a5c1d23e4d9aa7ba08f0de816a5d8",
        "8eec38f4e463d8cd980562ec49432c17972cc5cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 19 01:45:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 19 01:45:21 2018 +0000"
      },
      "message": "Merge \"Adds /dev/block/by-name/\u003cpartition\u003e symlinks\""
    },
    {
      "commit": "4bfbd8e9a53a5c1d23e4d9aa7ba08f0de816a5d8",
      "tree": "ba553eab288ce93ff454460532875dd87d325011",
      "parents": [
        "9e1514f1d7034b297703cbc7f38ed4b28f2bf6a6",
        "aead51b418e70a49191bc0cc5b67c92c969ae699"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Sat May 19 00:22:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 19 00:22:58 2018 +0000"
      },
      "message": "Merge \"init: allow entering of network namespaces\""
    },
    {
      "commit": "aead51b418e70a49191bc0cc5b67c92c969ae699",
      "tree": "3c42938d81880e5deb387521436c883a00477c6c",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 20 16:18:12 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri May 18 17:19:36 2018 -0700"
      },
      "message": "init: allow entering of network namespaces\n\nAdd the ability to enter a network namespace when launching a service.\nTypical usage of this would be something similar to the below:\n\non fs\n  exec ip netns add namespace_name\n\nservice vendor_something /vendor/...\n  capabilities \u003clower than root\u003e\n  user not_root\n  enter_namespace net /mnt/.../namespace_name\n\nNote changes to the `ip` tool are needed to create the namespace in\nthe correct directory.\n\nBug: 73334854\nTest: not yet\nChange-Id: Ifa91c873d36d69db399bb9c04ff2362518a0b07d\n"
    },
    {
      "commit": "8eec38f4e463d8cd980562ec49432c17972cc5cb",
      "tree": "d92c632532f6c382fbd7bdedd31d419f6e6f34fc",
      "parents": [
        "60fab88ecc7c2b691fd4bd8b0f59e5643b0432b6"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed May 16 18:33:44 2018 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Sat May 19 07:57:35 2018 +0800"
      },
      "message": "Adds /dev/block/by-name/\u003cpartition\u003e symlinks\n\nDuring uevent processing, some \"by-name\" symlinks will be created.\n    /dev/block/\u003ctype\u003e/\u003cdevice\u003e/by-name/\u003cpartition\u003e\n\n\u003ctype\u003e can be: platform, pci or vbd.\n\u003cdevice\u003e might be: soc.0/f9824900.sdhci, soc.0/f9824900.sdhci, etc.\n\u003cpartition\u003e might be: system, vendor, system_a, system_b, etc.\n\ne.g., on a non-A/B device:\n    /dev/block/platform/soc.0/f9824900.sdhci/by-name/system\n    /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor\n\nOn a A/B device:\n    /dev/block/platform/soc/1da4000.ufshc/by-name/system_a\n    /dev/block/platform/soc/1da4000.ufshc/by-name/system_b\n    /dev/block/platform/soc/1da4000.ufshc/by-name/vendor_a\n    /dev/block/platform/soc/1da4000.ufshc/by-name/vendor_b\n\nHowever, those symlinks are \"device-specific\".\n\nThis change adds the \"generic\" symlinks in ueventd, in addition to\nthe existing symlinks, when the possible \"boot devices\" are specified\nin device tree. e.g.,\n\n    \u0026firmware_android {\n\tcompatible \u003d \"android,firmware\";\n\tboot_devices \u003d\"soc/1da4000.ufshc,soc.0/f9824900.sdhci\";\n    }\n\nThe following symlinks will then be created on the aforementioned non-A/B\nand A/B devices, respectively.\n\n    /dev/block/by-name/system\n    /dev/block/by-name/vendor\n\n    /dev/block/by-name/system_a\n    /dev/block/by-name/system_b\n    /dev/block/by-name/vendor_a\n    /dev/block/by-name/vendor_b\n\nNote that both \u003ctype\u003e and \u003cdevice\u003e are skipped in the newly create symlinks.\nIt assumes there is no more than one devices with the same \u003cpartition\u003e,\nwhich is the assumption of current first stage mount flow.\n\nFinally, when \u0027boot_devices\u0027 in DT is absent, it fallbacks to extract\n\u0027boot_devices\u0027 from fstab settings. e.g., using \u0027soc/1da4000.ufshc\u0027,\n\u0027soc.0/f9824900.sdhci\u0027 for a fstab with the following content:\n\n   /dev/block/platform/soc/1da4000.ufshc/by-name/system\n   /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor\n\nBug: 78613232\nTest: adb shell ls /dev/block/by-name\nChange-Id: Iec920b5a72409b6a2bdbeeb290f0a3acd2046b5d\n"
    },
    {
      "commit": "9e1514f1d7034b297703cbc7f38ed4b28f2bf6a6",
      "tree": "85b2cd0d7ca8c733cde0313e7e11eb6c3acf57fc",
      "parents": [
        "60fab88ecc7c2b691fd4bd8b0f59e5643b0432b6",
        "239425b9fa91ae13d18cf8158b31663876d07acf"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 18 20:04:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 18 20:04:15 2018 +0000"
      },
      "message": "Merge \"Fix bug when doing signal handler lookup.\""
    },
    {
      "commit": "239425b9fa91ae13d18cf8158b31663876d07acf",
      "tree": "e0fdc1e8cb6d728ad94dd5ca1a4e4161633d3999",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 17 18:37:38 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 17 18:58:42 2018 -0700"
      },
      "message": "Fix bug when doing signal handler lookup.\n\nThe new lld linker uses all non-zero offset executable maps. There was\na bug when trying to find if the stack is in a signal handler that caused\nthe code to read the wrong place in the elf. Fixed by not adding the elf\noffset to the relative pc.\n\nAlso fixed the unwind_for_offline tool to dump multiple stacks if necessary.\n\nAdded new offline unit test that would have failed with the old code.\n\nBug: 79936827\n\nTest: Ran unit tests and libbacktrace unit tests.\nTest: Dumped backtraces of system pids.\nTest: Ran 137-cfi art test.\nChange-Id: Iaca8c18c2a314902e64c3f72831234297e8dcb1b\n"
    },
    {
      "commit": "60fab88ecc7c2b691fd4bd8b0f59e5643b0432b6",
      "tree": "e239d76dffa69fb48b737019ab4434cbce210883",
      "parents": [
        "6aaa3beb39b601e558afd5405317483ba1a52bd5",
        "18f368560090619bb4284a408262feb86c747002"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 18 01:46:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 18 01:46:30 2018 +0000"
      },
      "message": "Merge \"Document using libmemunreachable on an app\""
    },
    {
      "commit": "6aaa3beb39b601e558afd5405317483ba1a52bd5",
      "tree": "bf829d5b4a42f65922f6c136885dac6b5e091e81",
      "parents": [
        "93e45016114a2c787fed6f6ac687845523c79e72",
        "95591bd00e653826f25bfa705c3f50545f6b06a3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 18 01:16:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 18 01:16:02 2018 +0000"
      },
      "message": "Merge \"Removing block device by-num symlinks\""
    },
    {
      "commit": "18f368560090619bb4284a408262feb86c747002",
      "tree": "48f57ae54016bd7645990fb1f95f5cc7f8d5097e",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 17 16:11:53 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 17 16:17:28 2018 -0700"
      },
      "message": "Document using libmemunreachable on an app\n\nDocument dumpsys meminfo --unreachable, and how to enable\nmalloc_debug backtraces on a single app.\n\nTest: none\nChange-Id: I649afdfff1c7438f74950395639b06c39cae3ca0\n"
    },
    {
      "commit": "95591bd00e653826f25bfa705c3f50545f6b06a3",
      "tree": "bf829d5b4a42f65922f6c136885dac6b5e091e81",
      "parents": [
        "93e45016114a2c787fed6f6ac687845523c79e72"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu May 17 16:19:52 2018 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu May 17 16:29:25 2018 +0800"
      },
      "message": "Removing block device by-num symlinks\n\nThe uevent.partition_num easily collides between partitions, for\nexample:\n\n  Both /dev/block/sda3 and /dev/block/sdd3 will generate the same symlink:\n    /dev/block/platform/soc/1da4000.ufshc/by-num/p3\n\nThis change remove those by-num symlinks as there seems no effective\nuser of it.\n\nBug: 78613232\nTest: m init_tests \u0026\u0026 \\\n      adb push $OUT/data/nativetest64/init_tests/init_tests /data/. \u0026\u0026 \\\n      adb shell /data/init_tests\n\nChange-Id: I8dfa8dc1a2f9fc9296aa30f33e905bf158b501de\n"
    },
    {
      "commit": "5a35d12e622f416f8bd169987f7c4570de8f5e99",
      "tree": "3119be379fd437f7c4c34846aef466f1504ee62c",
      "parents": [
        "93e45016114a2c787fed6f6ac687845523c79e72"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 08 20:12:19 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu May 17 14:29:44 2018 +0800"
      },
      "message": "Always use versioned VNDK directory\n\nBug: 78605339\nTest: sailfish-userdebug builds and boots\nTest: sailfish boots with GSI\nChange-Id: I7da5845b5c1caed3b73d7665f1db672f2764c2a8\n(cherry picked from commit 6a145749be79978c533b82352cef96f3f7c02524)\n"
    },
    {
      "commit": "93e45016114a2c787fed6f6ac687845523c79e72",
      "tree": "d19b454b20526a69d1e40c054caa20068aa4dff9",
      "parents": [
        "adf07c54283b1561c14ed908c86a31ce316343e7",
        "5ba6802e9ab30855212d9aae753363f68a4e30e2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 17 01:17:11 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 17 01:17:11 2018 +0000"
      },
      "message": "Merge \"adb: Retry io in case of interrupt\""
    },
    {
      "commit": "adf07c54283b1561c14ed908c86a31ce316343e7",
      "tree": "d5142b57bb4056ef7b379f6c8f3938840b68496c",
      "parents": [
        "e619ebc151b6ffc52d9920488d1da218142b0b62",
        "d8c1ae910f70124cccd82670d70f27af7a0c6644"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 16 23:25:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 16 23:25:15 2018 +0000"
      },
      "message": "Merge \"adb: Move io_setup to usb_handle init\""
    },
    {
      "commit": "e619ebc151b6ffc52d9920488d1da218142b0b62",
      "tree": "bd8a2af231e02a3ba20d3ebc62dd2ef7bdaae49f",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096",
        "570426aaddb5ccd49f5fedd45a1ba985d25cc028"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 16 22:57:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 16 22:57:58 2018 +0000"
      },
      "message": "Merge \"adb: warn on remount if undoing deduplication is impossible\""
    },
    {
      "commit": "32559741699d46820ff9409445a21fdce012e03a",
      "tree": "e0150f2f28655a7974994d2bf156171361cb46f0",
      "parents": [
        "fbee0a9133ef9d94421f06888e6d147d3fbe2c5e"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed May 02 10:47:01 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed May 16 15:20:48 2018 -0700"
      },
      "message": "adb: Add a test for emulator connection\n\nThis should prevent regressions in the future.\n\nBug: 78991667\nTest: python system/core/adb/test_adb.py\nChange-Id: I4d6da40da82c6d79797cec82ffaf071d4b56ddc7\n"
    },
    {
      "commit": "fbee0a9133ef9d94421f06888e6d147d3fbe2c5e",
      "tree": "4eb21e825d4d2f825001be98484e25501fe865ce",
      "parents": [
        "454bc7c0be9757c583b6f9fd8912a1b158773f28"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed May 02 09:10:29 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed May 16 15:20:48 2018 -0700"
      },
      "message": "adb: Improve test_adb a bit more\n\nThis change:\n\n* uses unittest.main(), which allows for a subset of the tests to be\n  selected.\n* drops the requirement to have a device already connected since all the\n  tests that need a device now spin their own mock device.\n* Splits the monolithic test class into more granular classes.\n* Makes this file be pylint-compliant.\n\nBug: None\nTest: python system/core/adb/test_adb.py\nTest: pylint system/core/adb/test_adb.py\nChange-Id: I91c7ced520c3c69f855d639e0dbf7e57bb690e97\n"
    },
    {
      "commit": "454bc7c0be9757c583b6f9fd8912a1b158773f28",
      "tree": "75cb4f1cdfcc02226a46c3b62c22cae94f55baaf",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Fri Apr 20 10:31:29 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed May 16 15:20:48 2018 -0700"
      },
      "message": "adb: Add a way to reconnect TCP transports\n\nThis change adds a reconnect handler that tracks all TCP transports that\nwere connected at some point, but became disconnected. It does so by\nattempting to reconnect every 10s for up to a minute.\n\nBug: 74411879\nTest: system/core/adb/test_adb.py\nTest: adb connect chromebook:22  # This runs with sslh\nTest: CtsBootStatsTestCases\nTest: emulator -show-kernel ; adb -s emulator-5554 shell\n\nChange-Id: I7b9f6d181b71ccf5c26ff96c45d36aaf6409b992\n"
    },
    {
      "commit": "d8c1ae910f70124cccd82670d70f27af7a0c6644",
      "tree": "9e575160b3fece8976f845d589b00176dfe0614e",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 15 16:30:10 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed May 16 21:47:11 2018 +0000"
      },
      "message": "adb: Move io_setup to usb_handle init\n\nRemove some redundancy by moving io_setup\ninto aio_block_init. The io_contexts will\nnow live till the end of the program, similar\nto the rest of usb_handle\n\nTest: adb works\nBug: 78793464\nChange-Id: I910a39d4395645f1ff231f265c285a72893a0ac6\n"
    },
    {
      "commit": "5ba6802e9ab30855212d9aae753363f68a4e30e2",
      "tree": "0386991a31be217d2f511cea98f3b0ad3641e8c5",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 19 17:54:39 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed May 16 21:44:46 2018 +0000"
      },
      "message": "adb: Retry io in case of interrupt\n\nio_submit sleeps waiting for the gadget\nto be enabled. Currently if that sleep\nis interrupted it will shut down adb,\ncausing it to have to start back up again.\n\nRather than return EINTR if interrupted,\nio_submit actually completes and the EINTR\nis found later when looking through events.\nSince an io that is interrupted will be\nsmall anyway, add a loop to retry small ios.\n\nAlso upgrade aio logs in accordance with\ntheir importance.\n\nFixes: 75981904\nTest: adb works, logs show successful interrupt handling\nChange-Id: I35973fce130ee849ce59fef80d15b65afb816ba4\n(cherry picked from commit 6e9a327504e6aa2488b736fd5592525278a0916f)\n"
    },
    {
      "commit": "570426aaddb5ccd49f5fedd45a1ba985d25cc028",
      "tree": "bd8a2af231e02a3ba20d3ebc62dd2ef7bdaae49f",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri May 11 16:34:55 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed May 16 14:18:59 2018 -0700"
      },
      "message": "adb: warn on remount if undoing deduplication is impossible\n\nA deduplicated filesystem might not have enough free space to undo its\nblock sharing. In this case \"adb remount\" should give a more precise\nerror message.\n\nBug: 64109868\nTest: adb remount on deduplicated filesystem with no free space\nChange-Id: I2beb67aa3dfc807cb8493b9c622e7b14174dc9c6\n"
    },
    {
      "commit": "d2b15dd6749eefaa76a12e0466693e4336e9b8a7",
      "tree": "f8df103d0e3688c78005bb3be3f4beab078dbbcd",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue May 15 17:49:59 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed May 16 00:16:09 2018 -0700"
      },
      "message": "debuggerd: fix CrasherTest.seccomp_crash_oom.\n\nSwitch from _exit to raising SIGABRT when we recurse in the fallback\nhandler, so that waiters see an abort instead of a regular exit.\n\nBug: http://b/79717060\nTest: debuggerd_test32\nTest: debuggerd_test64\nChange-Id: Iddee1cb1b759690adf07bbb8cd0fda2faac87571\n"
    },
    {
      "commit": "3464bc4b439e01244c0a6b5f35e8e949e0f16096",
      "tree": "44cd997bf1f86a3c4d506cd45fb171ea06a57c17",
      "parents": [
        "3e946da535f049300521e19d030c1a9724129b8a",
        "edac5e3b25fae3ded1fe29e51c2f959a7ab6f88b"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue May 15 19:58:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 19:58:06 2018 +0000"
      },
      "message": "Merge \"libprocinfo: fix mac build.\""
    },
    {
      "commit": "edac5e3b25fae3ded1fe29e51c2f959a7ab6f88b",
      "tree": "cdf0a4b4ebafc832375b2d7657f83e2465e192e2",
      "parents": [
        "3841accba82b47087647d023e670219ac3627710"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue May 15 12:51:57 2018 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue May 15 12:51:57 2018 -0700"
      },
      "message": "libprocinfo: fix mac build.\n\nBug: none\nTest: build.\nChange-Id: Ic25d873d9d74edc8320b75d077536055f176c0dd\n"
    },
    {
      "commit": "3e946da535f049300521e19d030c1a9724129b8a",
      "tree": "d97a2a9a75e2bb1b61554dc7a8abe4303ca22663",
      "parents": [
        "0f837fe8ca3a9494876abc481dbe73b0c07d16bb",
        "62e5b20b505e45671545cf871f701daa61cb1b2d"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Tue May 15 18:57:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 18:57:08 2018 +0000"
      },
      "message": "Merge \"init/fs_mgr: prototype first-stage dm-linear support\""
    },
    {
      "commit": "0f837fe8ca3a9494876abc481dbe73b0c07d16bb",
      "tree": "f3967373b991f135e9018aee07877f306cd9bb12",
      "parents": [
        "da6ab73420760da9fe39ba3f26068c6d1ad46537",
        "3841accba82b47087647d023e670219ac3627710"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue May 15 18:01:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 18:01:56 2018 +0000"
      },
      "message": "Merge \"libprocinfo: add functions reading process map file.\""
    },
    {
      "commit": "da6ab73420760da9fe39ba3f26068c6d1ad46537",
      "tree": "64ef171d1bcdea841b0416d00c3740c45698683a",
      "parents": [
        "32fcdf8de22b5b67ca126e7443e3cdd0c0d83778",
        "b7a9956cbc1cd8b1ffff86d13c6bea893a65c74d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 15 01:52:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 01:52:29 2018 +0000"
      },
      "message": "Merge \"adb: fix double close in jdwp_service.\""
    },
    {
      "commit": "32fcdf8de22b5b67ca126e7443e3cdd0c0d83778",
      "tree": "ef1595ee56d5e3e9e45142573813f6c3e4afba50",
      "parents": [
        "313aa7172f70423ecda70ff4486cd09861bbb5ee",
        "ca71f170b78e4707dbaa5bf4ddace47a455b4699"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 15 01:03:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 01:03:01 2018 +0000"
      },
      "message": "Merge \"Make memunreachable_test more robust against false negative leaks\""
    },
    {
      "commit": "612210c75b2c55bf79f93b6789773c7459d320e4",
      "tree": "ef9186e2abf031fc2e6dfd85a5a204c71a9ece40",
      "parents": [
        "313aa7172f70423ecda70ff4486cd09861bbb5ee"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Apr 27 21:48:43 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue May 15 09:47:04 2018 +0900"
      },
      "message": "Mark as recovery_available: true\n\nLibraries that are direct or indirect dependencies of modules installed\nto recovery partition (e.g. toybox) are marked as recovery_available:\ntrue. This allows a recovery variant of the lib is created when it is\ndepended by other recovery or recovery_available modules.\n\nBug: 67916654\nBug: 64960723\nTest: m -j\nChange-Id: Ie59155c08890e96ce1893fa3687afcf763d7aea3\n"
    },
    {
      "commit": "b7a9956cbc1cd8b1ffff86d13c6bea893a65c74d",
      "tree": "ea25e9b34d9e76e132acd7fddc999bb20cab7192",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon May 14 17:12:50 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon May 14 17:13:47 2018 -0700"
      },
      "message": "adb: fix double close in jdwp_service.\n\nBug: http://b/78793027\nTest: treehugger\nChange-Id: Ie66d12e70bdaf09148e3d672e3c7c3da9e8ab2fe\n"
    },
    {
      "commit": "ca71f170b78e4707dbaa5bf4ddace47a455b4699",
      "tree": "5f8e73aca9d8d0b597af10320520334560fc98a5",
      "parents": [
        "86dade8f6fcf3b0e72667b78341d8a74a1bb9162"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 14 14:55:39 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 14 15:24:28 2018 -0700"
      },
      "message": "Make memunreachable_test more robust against false negative leaks\n\nFor some reason, the memunreachable tests are rock solid on the\ndevices covered by APCT, but catch a ton of false-negatives on\nhikey960, which show up as failures that look like:\nsystem/core/libmemunreachable/tests/MemUnreachable_test.cpp:200: Failure\nExpected equality of these values:\n  1U\n    Which is: 1\n  info.leaks.size()\n    Which is: 0\n\nThese happen when a stray copy of a pointer is lying around that\npoints to the memory it is expected to leak.  The stray pointers\ncan be on the stack or in the jemalloc thread cache of freed\nallocations, which is always considered active memory.\n\nAdd some extra cleanups to get rid of old pointers.\n1.  Clear the tcache when destructing UnreachableMemoryInfo\n2.  Clear the stack and tcache before and after each test\n3.  Make MemunreachbleTest.twice match MemunreachableTest.stack\n\nAlso fix MemunreachableTest.notdumpable, which was only passing\nwhen run as root, which was bypassing what the test was trying\nto cover.  Make the test pass when run as non-root, and skip\nwhen the test is running as root.\n\nBug: 79701104\nTest: memunreachable_test\nTest: memunreachable_test as root\nChange-Id: Ia6c6df11e76405d08118afcc19c1fe80a6684c56\n"
    },
    {
      "commit": "313aa7172f70423ecda70ff4486cd09861bbb5ee",
      "tree": "e0bdb80e979985e531c10bd29bd82653257eb4b8",
      "parents": [
        "4578d132c7c6a5aba2472e460881d84cb110371d",
        "a962ec0c736ec954aed9daf40bdc06be05cc9eed"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 14 21:10:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 14 21:10:34 2018 +0000"
      },
      "message": "Merge \"adb: better error messages on deduplicated filesystems.\""
    },
    {
      "commit": "3841accba82b47087647d023e670219ac3627710",
      "tree": "2e5d901771563dded16721f694530b3ddc53e8ed",
      "parents": [
        "3607fe672a1aa0fa775df01b60d18d287e7f8686"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu May 10 17:19:12 2018 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon May 14 14:00:18 2018 -0700"
      },
      "message": "libprocinfo: add functions reading process map file.\n\nAdd test and benchmark.\nAlso switch libbacktrace, libunwindstack, libmemunreachable\nto use libprocinfo for map file reading.\nThe benchmark shows using libprocinfo speeds up map file reading\nin libbacktrace and libunwindstack 18% - 36% on walleye.\n\nBug: http://b/79118393\nTest: run procinfo_test.\nTest: run libunwindstack_test.\nTest: run libbacktrace_test.\nTest: run memunreachable_test.\n\nChange-Id: Icf281c352f4103fc8d4ba6732c5c07b943330ca1\n"
    },
    {
      "commit": "4578d132c7c6a5aba2472e460881d84cb110371d",
      "tree": "6895bad384afd6cb583c70728a4b08b93edb488b",
      "parents": [
        "c8dd6b74e66ee02132e9d2094675974f5285666a",
        "3249b3a8dd37ed16b4819e941989d945f6571673"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 14 20:51:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 14 20:51:42 2018 +0000"
      },
      "message": "Merge \"Expect optional (offset ...) in frame dump.\""
    },
    {
      "commit": "62e5b20b505e45671545cf871f701daa61cb1b2d",
      "tree": "af457e60dd47215b9e43781836420758faa54672",
      "parents": [
        "c8dd6b74e66ee02132e9d2094675974f5285666a"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Tue May 01 17:09:17 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Mon May 14 12:43:42 2018 -0700"
      },
      "message": "init/fs_mgr: prototype first-stage dm-linear support\n\nThis adds an API to fs_mgr for reading dm-linear tables out of device trees\nand issuing device-mapper ioctls. The device tree code will be\nimplemented separately. The dm-linear structures in fs_mgr are organized\nassuming we may want to pull them from sources other than DT (for\nexample, text files, binary blobs, or something hardcoded for testing).\n\nFile systems which are mounted from these logical partitions have\nspecific fstab requirements. The block device must be a partition name,\nand if Verified Boot is used, that name must match the vbmeta partition name.\nSecond, the entry must have the \"logical\" fs_mgr flag. Example fstab\nentry:\n\n    vendor  /vendor  ext4  ro  wait,logical\n\nExample fstab entry in device tree:\n\n    vendor {\n        compatible \u003d \"android,fstab\";\n        dev \u003d \"vendor\";\n        type \u003d \"ext4\";\n        mnt_flags \u003d \"ro\";\n        fs_mgr_flags \u003d \"wait,slotselect,avb,logical\";\n    };\n\nBug: 78914864\nTest: N/A\nChange-Id: I4d8878ea8858f26310119616cadc3ee0dd08566c\n"
    },
    {
      "commit": "3249b3a8dd37ed16b4819e941989d945f6571673",
      "tree": "6895bad384afd6cb583c70728a4b08b93edb488b",
      "parents": [
        "c8dd6b74e66ee02132e9d2094675974f5285666a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 11 16:01:21 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 14 11:07:54 2018 -0700"
      },
      "message": "Expect optional (offset ...) in frame dump.\n\n* New lld could create files that map to non-zero\n  offset at run time.\n\nTest: debuggerd_test\nBug: 79590156\nChange-Id: I12db0ebef489ba8a1e648a29d214f8d3c3703996\n"
    },
    {
      "commit": "c8dd6b74e66ee02132e9d2094675974f5285666a",
      "tree": "30aa98add9988c8f7a7048c6514dba3facc6669f",
      "parents": [
        "3607fe672a1aa0fa775df01b60d18d287e7f8686",
        "f187715954c15d90b65b251459244c2442c04a7b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 14 16:08:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 14 16:08:14 2018 +0000"
      },
      "message": "Merge \"init: keychord inotify add IN_ONLYDIR\""
    },
    {
      "commit": "f187715954c15d90b65b251459244c2442c04a7b",
      "tree": "30aa98add9988c8f7a7048c6514dba3facc6669f",
      "parents": [
        "3607fe672a1aa0fa775df01b60d18d287e7f8686"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri May 11 08:25:28 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon May 14 07:18:51 2018 -0700"
      },
      "message": "init: keychord inotify add IN_ONLYDIR\n\nsome minor cleanup.\n\nTest: manual, boot, check registered chord works\nBug: 64114943\nChange-Id: If809075445cfd5b6de0d4debc42cdc9559ddc7c4\n"
    },
    {
      "commit": "a962ec0c736ec954aed9daf40bdc06be05cc9eed",
      "tree": "bb0cab436d7bd7827ea92123957103ed38f462fc",
      "parents": [
        "53248e47f42aa3deae74d3859958c4ea9dae2f85"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu Apr 26 14:32:48 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri May 11 13:20:31 2018 -0700"
      },
      "message": "adb: better error messages on deduplicated filesystems.\n\nIf BOARD_EXT4_SHARE_DUP_BLOCKS is true, \"adb remount\" will error saying\nthe filesystem is read-only. Instead, it will now list affected\npartitions and explain why they can\u0027t be remounted.\n\nBug: 64109868\nTest: adb remount with deduplicated system image\nChange-Id: Ida737a6be8e9fe9ea26300897d82b1a149e72f6d\n"
    },
    {
      "commit": "3607fe672a1aa0fa775df01b60d18d287e7f8686",
      "tree": "b8bc771b972f99a3b8585261964fb52c4cf251f7",
      "parents": [
        "7ea8047185a85c3c1d8f329587b87eee109c670f",
        "2ef03e0f010f280695d2e3c509ab48eee33ba959"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri May 11 18:58:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 11 18:58:58 2018 +0000"
      },
      "message": "Merge \"Match LZMA SDK 18.05 API.\""
    },
    {
      "commit": "7ea8047185a85c3c1d8f329587b87eee109c670f",
      "tree": "18d85e59971cb7874d8a25dc4062a3d11fe5acdf",
      "parents": [
        "86dade8f6fcf3b0e72667b78341d8a74a1bb9162",
        "44692de85517042095d2bf4a5122ca0d50b1d7d0"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 10 19:44:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 19:44:44 2018 +0000"
      },
      "message": "Merge \"init: Add inotify for /dev/input/\""
    },
    {
      "commit": "44692de85517042095d2bf4a5122ca0d50b1d7d0",
      "tree": "18d85e59971cb7874d8a25dc4062a3d11fe5acdf",
      "parents": [
        "86dade8f6fcf3b0e72667b78341d8a74a1bb9162"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 02 11:22:15 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 10 08:45:24 2018 -0700"
      },
      "message": "init: Add inotify for /dev/input/\n\nSince event sources can come and go asynchronously because of delayed\ndriver instantiation due to initialization or firmware upload, USB\nattched devices, kernel module loads, or test automation sources like\nmonkey, add in inotify on /dev/input/ to support these possibilities.\n\nTest: manual, boot, check registered chord works\nBug: 64114943\nChange-Id: Ie598bb6f5bf94b2034ab33cf3be7fa15d3467141\n"
    },
    {
      "commit": "86dade8f6fcf3b0e72667b78341d8a74a1bb9162",
      "tree": "30cded0a798f3675e255d270d936f22084618d4e",
      "parents": [
        "c97cea0d204b57f7058a6da8ed3bf4faa80bd78a",
        "2fa178a01e5f1059969d29421fa79626412f54ba"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 10 00:07:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 00:07:50 2018 +0000"
      },
      "message": "Merge \"Remove unused using statement / host stub\""
    },
    {
      "commit": "2fa178a01e5f1059969d29421fa79626412f54ba",
      "tree": "777b03b078b9dfbd2f0b283a95ce949feb5e5e5f",
      "parents": [
        "751f2fa535f96442ad55e130b78a312c183a1317"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed May 09 15:25:39 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed May 09 15:25:39 2018 -0700"
      },
      "message": "Remove unused using statement / host stub\n\nGetIntProperty() isn\u0027t used after\nIed46e9346b4ca7931aa4dcf1c9dbc11de0e12d93, so it can be removed.\n\nTest: build\nChange-Id: I5736f553db1a615d51b8fe3cbf9b4aee89451076\n"
    },
    {
      "commit": "c97cea0d204b57f7058a6da8ed3bf4faa80bd78a",
      "tree": "2c47a0f5bc39827b4605e6784e038b0f9b5a7ae0",
      "parents": [
        "4880d44d2af62eefaa95242cc98a6a3a7420d53b",
        "704494b0707a49e064b63192619a73336c1be05a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed May 09 20:43:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 20:43:31 2018 +0000"
      },
      "message": "Merge \"adb: add authorizing, connecting states to transport.\""
    },
    {
      "commit": "4880d44d2af62eefaa95242cc98a6a3a7420d53b",
      "tree": "8f3d51ded2fc788bfb7de4fb1e759ced8c29dfd0",
      "parents": [
        "53248e47f42aa3deae74d3859958c4ea9dae2f85",
        "6227e345e72ddebb71b1e3655d7f79fb76f32271"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed May 09 19:34:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 19:34:22 2018 +0000"
      },
      "message": "Merge changes from topic \"interface_builtins\"\n\n* changes:\n  init: ServiceList FindInterface\n  builtins: interface_{start, stop, restart}\n"
    },
    {
      "commit": "53248e47f42aa3deae74d3859958c4ea9dae2f85",
      "tree": "072548910480c37a2da59bab2b815f8f4d0e682a",
      "parents": [
        "98caf20a65b8fa0e9aa08949f9d734f73c6e73e7",
        "807be77c25276cecd8a939dad2cdb3c7ac1db975"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 09 18:23:11 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 18:23:11 2018 +0000"
      },
      "message": "Merge \"Documented adb install --instant\""
    },
    {
      "commit": "98caf20a65b8fa0e9aa08949f9d734f73c6e73e7",
      "tree": "7d7d69b8ce41810a9d9a98b394e3bb17cdd115d2",
      "parents": [
        "b5679cdace159657c0bc28968d6b0ed748c51117",
        "353bf1f945aa6f95d2a7856ddee344936bf95673"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 09 16:49:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 16:49:57 2018 +0000"
      },
      "message": "Merge changes from topic \"b/64114943\"\n\n* changes:\n  init: switch from /dev/keychord to /dev/input/\n  init: use std::function for epoll handling\n"
    },
    {
      "commit": "807be77c25276cecd8a939dad2cdb3c7ac1db975",
      "tree": "b7ef2841ed313e6d4b60f765c28a2954ec79ad8d",
      "parents": [
        "def249956c1b17e56f41b76215b9ef6dd5592443"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 08 18:40:18 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed May 09 09:33:38 2018 -0700"
      },
      "message": "Documented adb install --instant\n\nTest: m -j32 adb \u0026\u0026 ./out/host/linux-x86/bin/adb help 2\u003e\u00261 | grep instant\nBug: 79422318\n\nChange-Id: I2830a9e3cf81becac1a6334670d8dc487fe72322\n"
    },
    {
      "commit": "b5679cdace159657c0bc28968d6b0ed748c51117",
      "tree": "240f7275d3d56b09db2ff902e4a0934dd4639bfb",
      "parents": [
        "0515943d7d461885286644b82ce0ac99ba476ce2",
        "07787e6059b257e62531abd38061336b85f2ebb5"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 09 08:10:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 08:10:19 2018 +0000"
      },
      "message": "Merge changes from topic \"hiddenapi-cherrypick\"\n\n* changes:\n  Add support for logging complex events from C++.\n  Add event log tag for hidden API access logging.\n"
    },
    {
      "commit": "0515943d7d461885286644b82ce0ac99ba476ce2",
      "tree": "cdd33a8b322c625b7806a06eda043ce2a8892d01",
      "parents": [
        "bb783998cecaa880d1c7f0854a9383033918e448",
        "3e41f92cf5d19b9ed8193ca6947627acae784d36"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 05:59:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 05:59:03 2018 +0000"
      },
      "message": "Merge \"Remove unused `tags` property from Android.bp files\""
    },
    {
      "commit": "bb783998cecaa880d1c7f0854a9383033918e448",
      "tree": "7582ee224566c9c82db53082d323be1dddebbfbf",
      "parents": [
        "e7020dc8e49472be0cec53b4c5d302abf8338d8b",
        "25b742c62764db8918976d6b01801c164461bbc2"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed May 09 01:56:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 01:56:00 2018 +0000"
      },
      "message": "Merge \"libctuils: Exclude qtaguid.cpp from VNDK-SP variant\""
    },
    {
      "commit": "3e41f92cf5d19b9ed8193ca6947627acae784d36",
      "tree": "0086455923920b0c4540432878d61f04f1a899a2",
      "parents": [
        "e7020dc8e49472be0cec53b4c5d302abf8338d8b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 08 17:14:28 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 08 17:15:23 2018 -0700"
      },
      "message": "Remove unused `tags` property from Android.bp files\n\nThe tags property is (and has always been) unused by Soong. The property has\nbeen defined as a list of strings, and the `androidmk` converted any\nLOCAL_MODULE_TAGS entries over to it, but we\u0027ve never done anything with it.\n\nIn preparation for removing the definition from Soong, I\u0027m removing it from all\nAndroid.bp files in the tree.\n\nSince this has never done anything, this is a no-op, but if you really did want\nthe Android.mk behavior, the proper way to define a module to be installed in\nuserdebug / eng builds is to use PRODUCT_PACKAGES_DEBUG or PRODUCT_PACKAGES_ENG\nin the appropriate product makefile.\n\nChange-Id: Id519b2c0ec352e45c470a1734dfc633bbe39937e\nExempt-From-Owner-Approval: global no-op build change\nTest: remove `tags` from Soong, see errors go away.\n"
    },
    {
      "commit": "e7020dc8e49472be0cec53b4c5d302abf8338d8b",
      "tree": "b284b7a40c3365dfb9dc889426edb95a4716e685",
      "parents": [
        "b004620f807984d898ae4c75660a220b9a4e20a3",
        "23b98f492b51b76039bf47a96246841b73925be7"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 08 21:33:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 21:33:10 2018 +0000"
      },
      "message": "Merge \"Remove more bogus \u003cstdbool.h\u003e #includes from C++.\""
    },
    {
      "commit": "6227e345e72ddebb71b1e3655d7f79fb76f32271",
      "tree": "2e94d0c1883a7fc7f1a2ba45457ac939a69b8e6a",
      "parents": [
        "612d7a47bd2aea662b8077bf24761d07e7a1ceff"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 08 13:46:39 2018 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 08 14:26:44 2018 -0700"
      },
      "message": "init: ServiceList FindInterface\n\nFindService can\u0027t be used w/ interfaces due\nto the fact that multiple interfaces can be\nadded to any given interface.\n\nBug: 79418581\nTest: boot device, manually use ctl commands\nChange-Id: I7c152630462c9b7509473bc190f5b30460fcc2bc\n"
    },
    {
      "commit": "612d7a47bd2aea662b8077bf24761d07e7a1ceff",
      "tree": "8b303ca777ae00f2988723dcb7eef9c720d926ec",
      "parents": [
        "a6a266af0038c13dfc8fd55bc4c902a60952fb24"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 08 11:21:37 2018 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 08 14:26:22 2018 -0700"
      },
      "message": "builtins: interface_{start, stop, restart}\n\ne.x.:\ninterface_start android.hardware.nfc@1.0/default\nonrestart interface_restart android.hardware.nfc@1.0/default\n\nFixes: 79418581\nTest: add this to a service, and killing that service, light is restarted\n    onrestart interface_restart android.hardware.light@2.0::ILight/default\nChange-Id: Ia7ac9380f01038752325cfbe030df1dd4a5665e2\n"
    },
    {
      "commit": "353bf1f945aa6f95d2a7856ddee344936bf95673",
      "tree": "6da39d9a1f223c1a9283d0ba9310be0163f10ea6",
      "parents": [
        "8ae7375f020367bab2e99a0737d7f7bde69cddf9"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 30 07:33:31 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 08 13:19:12 2018 -0700"
      },
      "message": "init: switch from /dev/keychord to /dev/input/\n\nReplace deprecated /dev/keychord driver with /dev/input/ interface.\nWill restrict which nodes are active and relevant, and try to mask\nout any unreferenced inputs with EVIOCSMASK if available.\n\nTest: manual, boot, check registered chord works\nBug: 64114943\nChange-Id: I2bbf84a6e472d720f02282e10d56795b75ac62d1\n"
    },
    {
      "commit": "8ae7375f020367bab2e99a0737d7f7bde69cddf9",
      "tree": "9f184fb311ec513c206bcfcff37591bee83791bc",
      "parents": [
        "b004620f807984d898ae4c75660a220b9a4e20a3"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 01 13:39:52 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue May 08 13:19:12 2018 -0700"
      },
      "message": "init: use std::function for epoll handling\n\nAlso allow unregistering of epoll handlers.\n\nBug: 64114943\nTest: boot\nChange-Id: I2abe6a56fd451839931d607dddb91669a7d02ff1\n"
    },
    {
      "commit": "b004620f807984d898ae4c75660a220b9a4e20a3",
      "tree": "706e174ba7e50d9d59657ddf3f537be0071b912f",
      "parents": [
        "751f2fa535f96442ad55e130b78a312c183a1317",
        "645b50e75d14907d45481fa74e18b2412c888e36"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 08 20:06:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 20:06:18 2018 +0000"
      },
      "message": "Merge \"Make fastboot host builds match adb.\""
    },
    {
      "commit": "23b98f492b51b76039bf47a96246841b73925be7",
      "tree": "5935492581b4038efe418d34547434a540f1b206",
      "parents": [
        "751f2fa535f96442ad55e130b78a312c183a1317"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 13:00:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 13:00:06 2018 -0700"
      },
      "message": "Remove more bogus \u003cstdbool.h\u003e #includes from C++.\n\nBug: N/A\nTest: builds\nChange-Id: I794cd28667c6c65b38940d8f443315ad116b7ac3\n"
    },
    {
      "commit": "645b50e75d14907d45481fa74e18b2412c888e36",
      "tree": "e1f93c616fd10536f781107d882b5b98053c9962",
      "parents": [
        "fb8b76fe553ad2730be8e55b1c0df8a0911b1c3f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 11:30:07 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 11:30:07 2018 -0700"
      },
      "message": "Make fastboot host builds match adb.\n\nBug: http://b/79131183\nTest: builds\nChange-Id: I572362e8d1c52ebbfb78f84fd2af5428711317d7\n"
    },
    {
      "commit": "25b742c62764db8918976d6b01801c164461bbc2",
      "tree": "4d2d135ab23656429c8423ba284e64d1e2964cea",
      "parents": [
        "751f2fa535f96442ad55e130b78a312c183a1317"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 08 17:37:29 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 08 17:41:21 2018 +0800"
      },
      "message": "libctuils: Exclude qtaguid.cpp from VNDK-SP variant\n\nThis commit excludes `qtaguid.cpp` from the VNDK-SP variant of\n`libcutils.so` because the interface of `libnetd_client.so` may vary\nbetween AOSP releases.\n\nBesides, these functions don\u0027t work in vendor processes either because\nVNDK-SP libraries are loaded in an isolated `vndk` linker namespace,\nwhich cannot access `/system/lib[64]/libnetd_client.so` directly.  This\nchange makes it easier to spot the issue at build time and saves several\nbytes.\n\nTest: Build aosp_walleye-userdebug and\n/system/lib[64]/vndk-sp-$VER/libctuils.so no longer exports qtaguid_*\nfunctions.\n\nBug: 79329469\nChange-Id: Idf6b60f6e58371ea320193641669d1e4412d62b8\n"
    },
    {
      "commit": "07787e6059b257e62531abd38061336b85f2ebb5",
      "tree": "c13511e191ef210516ffb8e03f8f7228850b65a2",
      "parents": [
        "e07d90dd9d9c4179e1da29d4fceb98e16ccd5d5a"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 12 13:55:41 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:27:09 2018 +0100"
      },
      "message": "Add support for logging complex events from C++.\n\nAlso include relevant new metric_logger.proto values.\n\nTest: m\nTest: Exercised by ag/3890335 in art\nBug: 77517571\nMerged-In: Ia527f2b94c7a6147ad9d537376266e5ffc597b04\nChange-Id: Ia527f2b94c7a6147ad9d537376266e5ffc597b04\n(cherry picked from commit d0613ac54a1a620dedda9f0563e112068fd1e9f0)\n"
    },
    {
      "commit": "e07d90dd9d9c4179e1da29d4fceb98e16ccd5d5a",
      "tree": "24f4fc4cfd58e4e55ebf83b30ca46ce196eeec86",
      "parents": [
        "751f2fa535f96442ad55e130b78a312c183a1317"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Mar 23 16:22:54 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:26:36 2018 +0100"
      },
      "message": "Add event log tag for hidden API access logging.\n\nThis new event is logged by ART when hidden API accesses are detected.\n\nTest: m\nTest: $ adb lolcat -b events\nBug: 64382372\nBug: 77517571\nMerged-In: I5ebb1424d83686dade0d34b118944b0c4c0c7bb1\nChange-Id: I5ebb1424d83686dade0d34b118944b0c4c0c7bb1\n(cherry picked from commit 8ec1c7ea7c014d83466b51748a565bddf6af5b48)\n"
    },
    {
      "commit": "751f2fa535f96442ad55e130b78a312c183a1317",
      "tree": "93ae63282fa82cc89b2e945c286a3d45a81ce4f3",
      "parents": [
        "a6a266af0038c13dfc8fd55bc4c902a60952fb24",
        "837b2a4c2411c718221327b800f41b456c96f08c"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 08 01:43:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 01:43:07 2018 +0000"
      },
      "message": "Merge \"init: Use sepolicy version instead\""
    },
    {
      "commit": "a6a266af0038c13dfc8fd55bc4c902a60952fb24",
      "tree": "195beb3385382b249930381037c1674b169e25b0",
      "parents": [
        "035a1c7a0b08c09a8738053a00515d2307d2ea28",
        "0b8e22eb5fe849cdc7f62f8b9e428a7f5880ec48"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon May 07 20:59:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 07 20:59:40 2018 +0000"
      },
      "message": "Merge \"fs_mgr: target-agnostic device-mapper helpers\""
    },
    {
      "commit": "035a1c7a0b08c09a8738053a00515d2307d2ea28",
      "tree": "1d1701837f7e6b87f64155937f83d79697016c03",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9",
        "cd7e122285e9ab0eb6dc9c90e026da767f553d95"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon May 07 18:45:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 07 18:45:10 2018 +0000"
      },
      "message": "Merge \"bootstat: test reboot rescueparty\""
    },
    {
      "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"
    },
    {
      "commit": "704494b0707a49e064b63192619a73336c1be05a",
      "tree": "4359d4c0bcc8bff18ab5275982ade02abbb9190e",
      "parents": [
        "48cf760bea211b43aa79675c6b73f846202865f9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 04 16:04:49 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 04 18:05:18 2018 -0700"
      },
      "message": "adb: add authorizing, connecting states to transport.\n\nAdd two states: connecting and authorizing, to disambiguate the offline\nand unauthorized states, respectively.\n\nPreviously, devices would transition as follows:\n\n  offline -\u003e unauthorized -\u003e offline -\u003e online\n  offline -\u003e unauthorized (when actually unauthorized)\n\nWith this patch:\n\n  connecting -\u003e authorizing -\u003e online\n  connecting -\u003e authorizing -\u003e unauthorized (when actually unauthorized)\n\nThis allows test automation and the like to distinguish between offline\ndevices, unauthorized devices, and working devices without having to\ndo retry loops with arbitrary sleeps on their end.\n\nBug: http://b/79257434\nTest: adb_test\nTest: adbd_test\nTest: manually plugging in a device with `while true; do adb shell echo foo; done`\nChange-Id: I036d9b593b51a27a59ac3fc57da966fd52658567\n"
    },
    {
      "commit": "48cf760bea211b43aa79675c6b73f846202865f9",
      "tree": "edc3cf8cbc089d1a37d96c002a5a2c6c438ee468",
      "parents": [
        "24e87383f13e2e884cdf953c9a923278ddf163ee",
        "d2a594c77383921a2fbabb5c382af0b69e906303"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri May 04 22:25:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 22:25:53 2018 +0000"
      },
      "message": "Merge \"Remove the \u0027optional\u0027 tag from demangle_fuzzer\""
    },
    {
      "commit": "24e87383f13e2e884cdf953c9a923278ddf163ee",
      "tree": "86675bc68a7a5794d253805621963ceac66be34b",
      "parents": [
        "00c81fefd3932ef66a1e762b4e5ff67aa345f4de",
        "d885890e7833a1e4570f615e6b103c5d51f25ae2"
      ],
      "author": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri May 04 21:09:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 21:09:19 2018 +0000"
      },
      "message": "Merge \"Logd: include app package name in selinux metadata\""
    },
    {
      "commit": "d2a594c77383921a2fbabb5c382af0b69e906303",
      "tree": "8444cbfaeb6b4109954bdaecdf829ca31f0e8da9",
      "parents": [
        "00c81fefd3932ef66a1e762b4e5ff67aa345f4de"
      ],
      "author": {
        "name": "Zach Riggle",
        "email": "riggle@google.com",
        "time": "Fri May 04 15:33:02 2018 -0500"
      },
      "committer": {
        "name": "Zach Riggle",
        "email": "riggle@google.com",
        "time": "Fri May 04 15:59:07 2018 -0500"
      },
      "message": "Remove the \u0027optional\u0027 tag from demangle_fuzzer\n\nThis causes it to not actually be added to the tests zip, and it\nis never available on-device unless *manually* built and pushed.\n\nTest: mmma system/core/demangle\nChange-Id: I7fd7f52726b9b981573063c32f25ccab933486a0\n"
    },
    {
      "commit": "00c81fefd3932ef66a1e762b4e5ff67aa345f4de",
      "tree": "3090e8e93c4682932511fb8423ce6d89f2c102df",
      "parents": [
        "8cf185e5429523055c4de6c71deabd603b95b2de",
        "25e2bbf874a598bccf3138c0b5a4b9f0638b6d82"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 04 20:40:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 20:40:42 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary references to libunwind.\""
    },
    {
      "commit": "2ef03e0f010f280695d2e3c509ab48eee33ba959",
      "tree": "766c56829ae02a8d84d7c6a5c2a9d1275c1f4b99",
      "parents": [
        "a3d95cf2f8f5b9acca9be690bc3c6904de6677de"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri May 04 12:56:04 2018 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri May 04 13:12:36 2018 -0700"
      },
      "message": "Match LZMA SDK 18.05 API.\n\nTest: libunwindstack_test\nChange-Id: Ie1c9c91fb4f3585a7543df55a71abf64f8fc6dff\n"
    },
    {
      "commit": "837b2a4c2411c718221327b800f41b456c96f08c",
      "tree": "2af64351cfbbfdd50f6423c689e56e0cc2760b48",
      "parents": [
        "a3d95cf2f8f5b9acca9be690bc3c6904de6677de"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu May 03 14:33:52 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri May 04 15:21:01 2018 +0800"
      },
      "message": "init: Use sepolicy version instead\n\nThis commit uses vendor sepolicy file version (defined in\n`/vendor/etc/selinux/plat_sepolicy_vers.txt`) to determine whether the\nsource context should be set as `u:r:vendor_init:s0`.\n\nBefore this commit, the criterion was `ro.vndk.version` \u003e\u003d 28.  However,\nthe check in `property_service.cpp` will always be true because\n`ro.vndk.version` hasn\u0027t been loaded from `/vendor/default.prop`.\n\nFurthermore, under some circumstances, `ro.vndk.version` may be\ndifferent from `plat_sepolicy_vers.txt` (e.g. O-MR1 vendor does not\ndefine `ro.vndk.version`).\n\nBug: 78605339  # high-level bug to combine O-MR1 and P GSI\nBug: 79135481  # the usage of `ro.vndk.version` in init\nTest: vts-tradefed run vts -m VtsTrebleVintfTest  # tetheroffload\nChange-Id: Ied46e9346b4ca7931aa4dcf1c9dbc11de0e12d93\n"
    },
    {
      "commit": "d885890e7833a1e4570f615e6b103c5d51f25ae2",
      "tree": "59568075dce1fcbda318e44d06b6d9c345bd005f",
      "parents": [
        "b8716687f18475ae3fc18ca78e454547c2e22d1f"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu May 03 14:57:39 2018 -0700"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu May 03 22:40:18 2018 -0700"
      },
      "message": "Logd: include app package name in selinux metadata\n\nNote: denial metadata is currently only included on debug builds.\n\navc: denied { read } for comm\u003d\"getprop\" name\u003d\"u:object_r:net_dns_prop:s0\"\ndev\u003d\"tmpfs\" ino\u003d19605 scontext\u003du:r:untrusted_app:s0:c164,c256,c512,c768\ntcontext\u003du:object_r:net_dns_prop:s0 tclass\u003dfile permissive\u003d0 b/12345678\napp\u003dandroid.selinuxtargetsdkcurrent.cts\n\nBug: 9496886\nBug: 68016944\nTest: cts-tradefed run cts -m CtsSelinuxTargetSdkCurrentTestCases\nChange-Id: I1700722a45b75d22f17ba4edc7b95cbaf99fdda8\n"
    },
    {
      "commit": "8cf185e5429523055c4de6c71deabd603b95b2de",
      "tree": "9e359fff8647190768cf997a634655e055b2cb81",
      "parents": [
        "a3d95cf2f8f5b9acca9be690bc3c6904de6677de",
        "b8716687f18475ae3fc18ca78e454547c2e22d1f"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri May 04 05:30:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 05:30:34 2018 +0000"
      },
      "message": "Merge \"Fixing a bug introduced due to refactoring var names\""
    },
    {
      "commit": "25e2bbf874a598bccf3138c0b5a4b9f0638b6d82",
      "tree": "50e615d050ca21082c60564bfd2d1097ecec25a2",
      "parents": [
        "1d87ffd3f64da827573882ffab3be9c2ba5b3fd7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 17:59:45 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 17:59:45 2018 -0700"
      },
      "message": "Remove unnecessary references to libunwind.\n\nBug: 79209464\n\nTest: Builds.\nChange-Id: I4193ac664e3b118270a17fcc0131fb6c6e384c41\n"
    },
    {
      "commit": "a3d95cf2f8f5b9acca9be690bc3c6904de6677de",
      "tree": "08dcbd27ad6cd3b4061c6450cf230db86caf22a0",
      "parents": [
        "1d87ffd3f64da827573882ffab3be9c2ba5b3fd7",
        "f5974aedc40e4a61be3ed621e32af0111e4341e8"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 04 00:55:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 00:55:08 2018 +0000"
      },
      "message": "Merge \"tombstoned: make missing O_TMPFILE workaround actually work around.\""
    },
    {
      "commit": "0b8e22eb5fe849cdc7f62f8b9e428a7f5880ec48",
      "tree": "71196351da300f07a9306f7880f8f78ea6cc5e7a",
      "parents": [
        "5a4db628eee34e0dea45bbe1fcf14432d82eed36"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu May 03 12:57:08 2018 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu May 03 16:35:09 2018 -0700"
      },
      "message": "fs_mgr: target-agnostic device-mapper helpers\n\nRemove \"verity\" from device-mapper helper functions so it\u0027s clear they can be\nre-used for non-verity targets.\n\nBug: 78914864\nTest: AVB device still boots\n\nChange-Id: Id8474b2c6e23e828eff563263ebb409031cde17e\n"
    },
    {
      "commit": "1d87ffd3f64da827573882ffab3be9c2ba5b3fd7",
      "tree": "223fafa9cf49240ef6f6c9c1b9d486da48abe118",
      "parents": [
        "57adfb84aa1ad9e549a3efe918989fd3b33923c4",
        "5a4db628eee34e0dea45bbe1fcf14432d82eed36"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 23:33:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:33:36 2018 +0000"
      },
      "message": "Merge changes I809d8c2e,I11265375\n\n* changes:\n  fs_mgr: clean up dm ioctl flags\n  init: refactor first stage to not require fstab\n"
    },
    {
      "commit": "57adfb84aa1ad9e549a3efe918989fd3b33923c4",
      "tree": "606b8bcb6553aee7de08484ff6cb33b1a33d2795",
      "parents": [
        "c5943fd3fac808700dc86151c9968df90e84fccf",
        "28f8cf0f975500d754e259e19dcf9762f0969060"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 23:28:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:28:48 2018 +0000"
      },
      "message": "Merge \"tombstoned: don\u0027t bail out if we fail to unlink a file that isn\u0027t there.\""
    },
    {
      "commit": "c5943fd3fac808700dc86151c9968df90e84fccf",
      "tree": "6bae91be0c514d8613b55aa9f2c7dd11cb249235",
      "parents": [
        "708364e650a254dfcc1ac39a52a1894f30024d90",
        "8548d55b45eccf752ff462ba76738b8bb6dfdee0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 23:05:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:05:51 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary references to libunwind.\""
    },
    {
      "commit": "f5974aedc40e4a61be3ed621e32af0111e4341e8",
      "tree": "e6a04d1de28ecb6bf9ce17cce5b17002fedffff2",
      "parents": [
        "28f8cf0f975500d754e259e19dcf9762f0969060"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 16:05:32 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 16:05:32 2018 -0700"
      },
      "message": "tombstoned: make missing O_TMPFILE workaround actually work around.\n\nWe can\u0027t actually link an unlinked file back onto disk if it wasn\u0027t\nopened with O_TMPFILE. Switch to using a temporary filename instead.\n\nBug: http://b/77729983\nTest: agampe\nChange-Id: I1970497114f0056065a1ba65f6358f08b51ec551\n"
    },
    {
      "commit": "b8716687f18475ae3fc18ca78e454547c2e22d1f",
      "tree": "82bbee9c3a59aa723e0902abe200c3c0a6856d85",
      "parents": [
        "708364e650a254dfcc1ac39a52a1894f30024d90"
      ],
      "author": {
        "name": "Max Bires",
        "email": "jbires@google.com",
        "time": "Thu Sep 14 13:01:28 2017 -0700"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu May 03 15:25:02 2018 -0700"
      },
      "message": "Fixing a bug introduced due to refactoring var names\n\nSELinux messages weren\u0027t properly filtering into the events buffer\nbecause message_len was being used to determine length of event data\ninstead of str_len\n\nBug: 65597269\nTest: SELinux denials show up in the events buffer\nChange-Id: I857e10211f71dd0db33a272241c7051c5d0c59ca\n(cherry picked from commit 3a5acdaa8dfc6b4a3e6c546a46b68a3129d49853)\n"
    },
    {
      "commit": "708364e650a254dfcc1ac39a52a1894f30024d90",
      "tree": "8e9ef46b8ac5fd64f467fd87d0b84c2c455d3777",
      "parents": [
        "abf6a2e1ade1d89b3bb83d8f0b7d77a62a3b31c5",
        "75046897b3a9f861414ec93670a296252eb0d746"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 21:46:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 21:46:22 2018 +0000"
      },
      "message": "Merge \"bootstat: add reboot,rescueparty\""
    },
    {
      "commit": "28f8cf0f975500d754e259e19dcf9762f0969060",
      "tree": "086b700620066ba2238c85226f3ee55bbf91fbc1",
      "parents": [
        "abf6a2e1ade1d89b3bb83d8f0b7d77a62a3b31c5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 14:31:08 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 03 14:31:08 2018 -0700"
      },
      "message": "tombstoned: don\u0027t bail out if we fail to unlink a file that isn\u0027t there.\n\nTest: crasher with no tombstones\nChange-Id: I20e0537a347dd1f83877150ab13f53441dd65d95\n"
    },
    {
      "commit": "8548d55b45eccf752ff462ba76738b8bb6dfdee0",
      "tree": "0c9c0cbe9e4b4dc6600d808906e8670ba84275f5",
      "parents": [
        "fcfbaa2ad6320f865f68f89d74fcf85936942169"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 12:50:12 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 14:24:38 2018 -0700"
      },
      "message": "Remove unnecessary references to libunwind.\n\nBug: 79209464\n\nTest: Builds.\n\nChange-Id: I79f7b0123bc802e3e12d218e888c30dedf5204dc\n"
    },
    {
      "commit": "abf6a2e1ade1d89b3bb83d8f0b7d77a62a3b31c5",
      "tree": "76e4d75868c38dc2ad072cc7841ca2518dd5d1e9",
      "parents": [
        "c1d40263417a6b112a515d3b600634b80e9ceeba",
        "a922d6b596e8877efde104b98c501c03b89e1c3a"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 20:54:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 20:54:37 2018 +0000"
      },
      "message": "Merge \"healthd: Add elsk as OWNERS\""
    }
  ],
  "next": "c1d40263417a6b112a515d3b600634b80e9ceeba"
}
