)]}'
{
  "log": [
    {
      "commit": "8fb36157292db01854fbfa40815e0a37db6332e1",
      "tree": "6eb0b744d57417d5d8daeac6115ad7568f809812",
      "parents": [
        "08d7a208e8c8b6e23d7949d5ce9bc06cb5bea538"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 06 17:30:28 2018 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 06 17:33:57 2018 +0100"
      },
      "message": "Fix compilation when targeting OpenJDK 9.\n\nCL [1] added a new compilation target that uses internal API\nthat is now in the jdk.compiler module and is not exported\n(it is subject to removal without notice in future versions of\nOpenJDK). The fact that these packages are not exported suggests\nthat a replacement API is already available, but I don\u0027t know the\ndetails.\n\nFor now, this CL uses javac command-line flags to export these\npackages, which fixes compilation. Since the commit message from\nCL [1] implies that the entire tool can be removed once bug 77284273\nis fixed, a longer-term solution should not be required.\n\n[1] https://android-review.googlesource.com/c/platform/frameworks/base/+/745655\n    commit bad89e5e5b171a71e42d7c738ec97a39747e4318\n\nTest: The following breaks before but not after this CL:\n  EXPERIMENTAL_USE_OPENJDK9\u003dtrue make unsupportedappusage-annotation-processor\nBug: 113853502\n\nChange-Id: I24b77af9262891428a01e2eccc18fa3a5c3b3bc9\n"
    },
    {
      "commit": "bad89e5e5b171a71e42d7c738ec97a39747e4318",
      "tree": "713d2fe9e6a0a149ac86044261094a4f9d487992",
      "parents": [
        "8ac363088ce16df9d50953c1aed636616513b7d8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jun 28 14:12:10 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Sep 05 15:01:21 2018 +0100"
      },
      "message": "Processor for @UnsupportedAppUsage annotations.\n\nThe processor outputs unsupportedappusage_index.csv, containing source\nposition info for every@UnsupportedAppUsage annotation processed. It is a\nmapping of dex signature to the source postion of the annotation on that\nsignature. It is used as input for scripts which update the annotations.\n\nWe include a META-INF file which causes the compiler to automatically\npick up the annotation processor. Otherwise we would need to explicitly\nspecify the processor with a -processor flag to javac.\n\nWe create a new build target for just the @UnsupportedAppUsage annotation\nand the @IntDef annotation (which it depends on) so that the processor can\nalso depend on that directly.\n\nThe processor only runs on a new build target framework-annotation-proc\nso that it is not invoked as part of a regular build. This is done so\nthat we don\u0027t slow down peoples builds: Soong does not support annotation\nprocessors when javac sharding is in use. This workaround can be removed\nonce b/77284273 is fixed.\n\nTest: m framework-annotation-proc\nBug: 113853502\n\nChange-Id: Ie9cd5a90ddf7a51f6035e849703fc39ad9127557\n"
    },
    {
      "commit": "8503b9045b71cb3d89af5a389257ba8e8a8fa611",
      "tree": "b9ddc88e36247631f22d958ad05b9ae97bc4525c",
      "parents": [
        "6717a6f930cd1fc72ee71de7d01b0077f9e055e2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 30 13:35:03 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 30 16:19:26 2018 +0100"
      },
      "message": "Rewrite hidden API list generation in Python\n\nGenerating hidden API lists has grown in complexity and the original\nMakefile rule has become a bottleneck for build times. Rewrite the\nlogic in Python.\n\nBug: 113278235\nBug: 73736106\nTest: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I63f03133d70260d06c55f482b844a4980dc6f734\n"
    },
    {
      "commit": "5d12935f35a04abb39cd02883c8c46d4e0345928",
      "tree": "6963d25051fb87a05d88d30ce0de254da8131ae5",
      "parents": [
        "13d6540956bc0aff2e08b785d90ad3c91d81663d"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Aug 29 17:22:14 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Aug 29 17:24:18 2018 -0700"
      },
      "message": "Convert aapt to Soong\n\nSee build/soong/README.md for more information.\n\nTest: cd frameworks/base/tools/aapt; mma\nTest: aapt version\nChange-Id: Ice97e9b32c53cfed30d68acd5717d8c66712df4c\n"
    },
    {
      "commit": "895e19edf04f7a7ad2c2dc08401e1b7cb073bae6",
      "tree": "b0bb9eba663938a34f7fcd4a6d0e68acaeb62e0b",
      "parents": [
        "aea74ff62a37d6f668210d5e530768d52a6602a5"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Aug 24 12:26:06 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Aug 24 19:29:22 2018 +0000"
      },
      "message": "dump package name\n\nTest: aapt2 dump packagename foo.apk bar.apk\nBug: 113105112\nChange-Id: Ibea429adc3a2a890be10548824583addc59ad42d\nMerged-In: Ibea429adc3a2a890be10548824583addc59ad42d\n"
    },
    {
      "commit": "c07d4e7118bc96c4c0d83619fb3c65aab2006055",
      "tree": "c05376f1b91cb00c72deff1c5a2314ab6d626056",
      "parents": [
        "661facc2f1b94ed682636e5bb4297828b423011a",
        "196dbc379b7cc71f3fcf373c27dcd4b1c9932445"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 20 21:31:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 21:31:28 2018 +0000"
      },
      "message": "Merge \"Mark symbols as dynamic for shared libraries\""
    },
    {
      "commit": "159799d7c971777231d17c0aabd60d36044ab331",
      "tree": "4f64733081b777b08a39be947b27589667ac54e8",
      "parents": [
        "9b04b2fd0b41b6bca58eb1d7116c597bb67856bd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 08 07:05:19 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 08 09:52:51 2018 -0700"
      },
      "message": "Work around b/70221552\n\nIf one sets a sufficiently long OUT_DIR to build into the\n//frameworks/base:framework-javastream-protos generate target will\nfail due to trying to run a too-long command. This works around that\nproblem by making the command being run much smaller.\n\nTest: Build\nBug: 70221552\nChange-Id: I0134ccfc83469826d3ea8679e1c52b9b52c6d2e0\n"
    },
    {
      "commit": "1397d297f0329cc6f51aa76f0caac6199fb4848b",
      "tree": "ff0f55ac948726dad6e820335644251f94e90e58",
      "parents": [
        "d9a8e834dd231333954d857952d918098012c6a0",
        "32979f03fe7afd8b928399399504f0aa523d09ef"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jul 26 11:55:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 26 11:55:02 2018 -0700"
      },
      "message": "Merge \"Remove class2greylist from frameworks/base.\"\nam: 32979f03fe\n\nChange-Id: I72f8797be98fe75806535da7b9f277ae68db8d57\n"
    },
    {
      "commit": "f364aedecb6a182d4673dd61f157459cc4d3c1fa",
      "tree": "3049cf661c9957e1d7b6d01e1850db1b9830fca9",
      "parents": [
        "716c04b29a0bd117aab33d8b81621a3fff0af7a7"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jul 26 14:57:08 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jul 26 15:57:05 2018 +0100"
      },
      "message": "Remove class2greylist from frameworks/base.\n\nIt\u0027s moving to a new home under art/tools, since it is needed by\nbranches which don\u0027t include frameworks/base.\n\nBug: 110868826\nTest: Build master-art branch\nChange-Id: Ice8324db52ae1e7e2ac6734e45874a66de935c9a\n"
    },
    {
      "commit": "7393f85a6ef52d0f1bfa62652f499f633800276a",
      "tree": "946b589b57e3f6a0893d8000a6661470b017639b",
      "parents": [
        "93c22129e281846672b6d06694cc3ee08c337528",
        "6c32f5d18e1af7d4e2cd231577636d5dd9277719"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 25 04:54:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 25 04:54:37 2018 -0700"
      },
      "message": "Merge \"Update annotation name in class2greylist.\"\nam: 6c32f5d18e\n\nChange-Id: I1a1f79a7a95814e37d337f1bb6bd10aa545cfaf9\n"
    },
    {
      "commit": "738a23fbebc9a0fbdfcfecfbc2f9ee25ad39e9ca",
      "tree": "ec5244abd94a8e97ba49b3f70424b82071ff8c2b",
      "parents": [
        "9a783699cc0efd4d980ec1e35e7df56448ef32f4"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 25 09:45:04 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 25 09:45:04 2018 +0100"
      },
      "message": "Update annotation name in class2greylist.\n\nAnnotation was added with name @UnsupportedAppUsage after Android API\ncouncil discussion.\n\nBug: 110868826\nTest: m class2greylist\nChange-Id: I63ad61e97c5e8fdebfcead9e4ee5b060a60f97c7\n"
    },
    {
      "commit": "196dbc379b7cc71f3fcf373c27dcd4b1c9932445",
      "tree": "5fdd9e0f280593f2da5f7ee0a0dc4a3a85e30754",
      "parents": [
        "bba51fede5c1b90a133d086d94e314918274c6ca"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Jul 24 14:37:15 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Jul 24 21:55:12 2018 +0000"
      },
      "message": "Mark symbols as dynamic for shared libraries\n\nBug: 111425000\nChange-Id: Ic1a68ac90d5e0443a536ee9ce75a72bc370cd673\nTest: build, install and run the shared library test application\n"
    },
    {
      "commit": "812291cc4694ae635bb7ab536e71b4c973166bca",
      "tree": "28bce3febee03ca28620f07ad995fe4d3f987008",
      "parents": [
        "c142f686c5e221f7946062fb2b0cea9360260e4f",
        "7f0aa734a3f4b3d1f7842b8546543668275f8ddb"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Jul 23 10:08:47 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 23 10:08:47 2018 -0700"
      },
      "message": "Merge \"Add new \"class2greylist\" tool.\"\nam: 7f0aa734a3\n\nChange-Id: I7d53d60ea3537530a9e21e2de2f53eb764f7d0b5\n"
    },
    {
      "commit": "6395690ec99bd13214c0530cac54d33b1f8e601b",
      "tree": "9bcf78c13963e56233f72e52f20221c9ff59a7ce",
      "parents": [
        "bb352287c9f3631633274d2d70fc54b9b3eee851"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Jul 09 15:07:56 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Jul 23 14:39:19 2018 +0100"
      },
      "message": "Add new \"class2greylist\" tool.\n\nThis extracts signatures of methods that have the @UsedByApps annotation\nfor generating the greylist. It will be integrated into the build to\nreplace many members on greylist.txt.\n\nTest: $ atest class2greylisttest\nBug: 110868826\nChange-Id: Ifaf5859b60076c051de6be5a912ef70734330ce7\n"
    },
    {
      "commit": "ff311dd893f66b873ee00d5ca176ff3ab2e0fa53",
      "tree": "0322cdeb7df37ac1e0c28454bbe7495818840562",
      "parents": [
        "abdaa314f885b5a889e48676b7b2b0460a5332f7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 14 15:23:21 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 15 23:03:46 2018 +0000"
      },
      "message": "Fix ManifestMerger issues\n\nSet LOCAL_MIN_SDK_VERSION in aapt2 integration test libraries so that\nthe build system doesn\u0027t raise the minSdkVersion value specified in\nthe manifest, which causes ManifestMerger to error when trying to\nmerge it into a package that specifies a lower minSdkVersion.\n\nBug: 78447299\nTest: m java\nChange-Id: If5d4f97bb2d8a503bd3c20f2ea8aea2519c51e85\n"
    },
    {
      "commit": "39c8fe12e49b4a6033385c54ba1fef862326b79b",
      "tree": "6c0ed38943137f096b61d6f93ca7f95e35fa805c",
      "parents": [
        "8c2440635573940eb6371e18cf4abb69b733f28c",
        "38b92986dfc42fe8a81365e5c51498d2959865f9"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Jun 07 14:53:43 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 07 14:53:43 2018 -0700"
      },
      "message": "Merge \"Disable statsd and make StatsLog no-op if ro.statsd.enable\u003dfalse\" into pi-dev\nam: 38b92986df\n\nChange-Id: Ia90bed14900a2c944165aefe00661d3979c08aed\n"
    },
    {
      "commit": "38b92986dfc42fe8a81365e5c51498d2959865f9",
      "tree": "ed061c354d61ae55019c2aad21d17c9d8b8e2da4",
      "parents": [
        "e752b75dadbae20ab28d6e75e342707288e09fd3",
        "cf3829a69685b6e976c0e747467859190342a0eb"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Jun 07 21:10:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 21:10:16 2018 +0000"
      },
      "message": "Merge \"Disable statsd and make StatsLog no-op if ro.statsd.enable\u003dfalse\" into pi-dev"
    },
    {
      "commit": "cf3829a69685b6e976c0e747467859190342a0eb",
      "tree": "4a2a391e01e03c694caf74b7098f365016d38631",
      "parents": [
        "5a36c134b736cc587fcd05b6d5cf94f3bbb62377"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Jun 05 14:20:35 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Jun 06 17:25:08 2018 -0700"
      },
      "message": "Disable statsd and make StatsLog no-op if ro.statsd.enable\u003dfalse\n\nBug: 79324611\nTest: manually tested on marlin_svelte\nChange-Id: Ic7fbf86d7c295cb6b2f20e7f9a957d1ed74c42c0\n"
    },
    {
      "commit": "02bf04ac0126149da105159cfa41aaf2bfc0cf5f",
      "tree": "8018397a38a659cf09a4308cdb0465ef54c7769f",
      "parents": [
        "3b09f97552593ca1f4404164a4c89ff23bede82c",
        "bc49cb846073b0ac87ec423af8bfbb93de52a302"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jun 05 19:56:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 05 19:56:22 2018 -0700"
      },
      "message": "Merge \"Fix a \u0027memory leak\u0027\" am: 38e7338d92\nam: bc49cb8460\n\nChange-Id: I3ecf0ecdf20bb61bda76fff547f920040ded47d6\n"
    },
    {
      "commit": "38e7338d92f22a02be6e782e1332091c6c02e25a",
      "tree": "7bc7683dbe090f78d0b4676d7c609a8a16ba63a4",
      "parents": [
        "e72aecb6559af378da6fa0c18c60898156aa03bc",
        "9fb8177ca5afef7e6becf897f04a42de8dd7db5b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 05 23:29:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 05 23:29:10 2018 +0000"
      },
      "message": "Merge \"Fix a \u0027memory leak\u0027\""
    },
    {
      "commit": "0bd972083a43365ef753e5e09b9f1e6735864139",
      "tree": "3f04a3881afb4fbd1019db1b509aef9c3c99314d",
      "parents": [
        "e5736b6730b07620e2a503a861b8d72d53a59786"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Tue Jun 05 12:42:37 2018 -0700"
      },
      "committer": {
        "name": "Adam Bookatz",
        "email": "bookatz@google.com",
        "time": "Tue Jun 05 19:46:23 2018 +0000"
      },
      "message": "Wean statsd off batterystats: workchain (cp)\n\nModified cherry pick from master:\n(cherry picked from commit d888df2ba99e117b50a5553e18426ad370294a20)\ncovering ag/4210168 and ag/4230692.\n\nThe tool that generates StatsLogInternal.java now includes the following\ntype of code, to accomodate WorkSources automatically.\n\n    public static void write(int code, WorkSource ws, int arg2) {\n        for (int i \u003d 0; i \u003c ws.size(); ++i) {\n            write_non_chained(code, ws.get(i), ws.getName(i), arg2);\n        }\n        ArrayList\u003cWorkSource.WorkChain\u003e workChains \u003d ws.getWorkChains();\n        if (workChains !\u003d null) {\n            for (WorkSource.WorkChain wc : workChains) {\n                write(code, wc.getUids(), wc.getTags(), arg2);\n            }\n        }\n    }\n\nThis will reduce a lot of code repitition for the StatsLog.write calls\nin BatteryStats. Consequently, doing so will make it easier to remove\nthese StatsLog.write calls out of BatteryStats.\n\nBug: 80308558\nBug: 80314737\nTest: manual verification\nTest: com.android.internal.os.BatteryStatsTests\nChange-Id: Ied537a6195121f16ef49b6bccf58c8c31964909c\nMerged-In: Ibd28297345f4ab926dec01a89de0f1bfff9f8871\n"
    },
    {
      "commit": "da02feaca2db055df1f52493edc9fe3ddf2aa88b",
      "tree": "c026c098de0792f3da4c3d979b11506fd55003b6",
      "parents": [
        "1d09efefebab4915e78dd06ba977c7ded4a46ab7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 25 22:46:35 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 30 23:25:21 2018 +0000"
      },
      "message": "Add support for --replace-version to aapt2\n\nImplement --replace-version to match aapt1.\n\nBug: 79755007\nTest: aapt2_tests\nChange-Id: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\nMerged-In: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\n(cherry picked from commit dcd58c420771af75c625242985bd96ba828aca56)\n"
    },
    {
      "commit": "f7ae76d8451f1f9a4099c5fa5d3197b0f4763c75",
      "tree": "56f44cdb2c6ca7d11402da4d709d7f7560ca81ac",
      "parents": [
        "2f4bf5423d742ca6df4488d9df61f794ea2e82f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 25 22:46:35 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 30 15:40:06 2018 -0700"
      },
      "message": "Add support for --replace-version to aapt2\n\nImplement --replace-version to match aapt1.\n\nBug: 79755007\nTest: aapt2_tests\nChange-Id: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\nMerged-In: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\n(cherry picked from commit dcd58c420771af75c625242985bd96ba828aca56)\n"
    },
    {
      "commit": "533c09b01b175b8b59e8f83c64a61d98ca808e75",
      "tree": "3d8a57967bed4ea1c6e1002a15716ab9c3d88c0d",
      "parents": [
        "b2b20f26db06c9d9f84b9801f27cb17ab7444e2f"
      ],
      "author": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Tue Dec 19 16:22:42 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 21 19:51:50 2018 +0000"
      },
      "message": "AAPT2: treat manifest validation errors as warnings when asked\n\nBug: 65670329\nTest: updated\nChange-Id: Ic554cc20134fce66aa9ddf8d16ddffe0131c50e9\nMerged-In: Ic554cc20134fce66aa9ddf8d16ddffe0131c50e9\n(cherry picked from commit ad9e1324ff2c459d0ee6ee571d4a3e458c02cc81)\n"
    },
    {
      "commit": "b2b20f26db06c9d9f84b9801f27cb17ab7444e2f",
      "tree": "a1d7d93f8d7b598bc606615002e85ed122b11fec",
      "parents": [
        "ef506c73bb841d363060d2f0b52d56f3a28eea0e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 02 12:07:08 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 21 19:51:42 2018 +0000"
      },
      "message": "AAPT2: Better error messages for ManifestFixer\n\nAAPT2 will now print the XML hierarchy where it found an unexpected\nelement.\n\nTest: make aapt2_tests\nChange-Id: Iac7918b2f344fab874f0a3e7aa9c6936ecde8913\nMerged-In: Iac7918b2f344fab874f0a3e7aa9c6936ecde8913\n(cherry picked from commit ed37f4842ad838792b16bf19768ed9b2519b0194)\n"
    },
    {
      "commit": "ef506c73bb841d363060d2f0b52d56f3a28eea0e",
      "tree": "2204f7835543ecc7723a025ffb4ec5434c626a75",
      "parents": [
        "1e0a5d397dfce71c8541fd08d0215263fc9947a3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 06 10:44:46 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 21 19:48:36 2018 +0000"
      },
      "message": "AAPT2: Differentiate between Android and Java package names\n\nAndroid package names are more strict (ASCII only) than Java package names.\nAlso fixed an issue where trailing underscores were disallowed in Android\npackage names.\n\n(cherry picked from commit 96ea08f1e737e0d19e274e9a29f71c387d81b09a)\n\nAlso includes part of I357fb84941bfbb3892a8c46feb47f55b865b6649 to remove\nusage of FindNonAlphaNumericAndNotInSet.\n\nBug: 79481102\nTest: make aapt2_tests\nChange-Id: I1052e9e82b6617db6065ce448d9bf7972bb68d59\nMerged-In: I1052e9e82b6617db6065ce448d9bf7972bb68d59\n"
    },
    {
      "commit": "89794158a1a5bca01abd834387d6e4e95e70f806",
      "tree": "32efdabbbe0eea9c24bb077ada404d98906b0adf",
      "parents": [
        "646dfc77039404a52e51d44df78fc819cfb263dd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 12:10:25 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 17 22:13:11 2018 -0700"
      },
      "message": "Change ownership of AAPT2 and libandroidfw\n\ntoddke@ is now the new owner of these projects.\n\nExempt-From-Owner-Approval: setting new owners\nTest: none\nChange-Id: Ie92b020e0ba063f48ce8a76ebaef768fe0d554f1\nMerged-In: Ie92b020e0ba063f48ce8a76ebaef768fe0d554f1\n(cherry picked from commit a95e841846c3add37cab0ca228e1e1a4eb0a1455)\n"
    },
    {
      "commit": "df8ed7a44617cefd34f568a10b66280fbddf9f10",
      "tree": "316399ba9ef37189c35fbc2f6a2454ebe1777e7d",
      "parents": [
        "bbc587cf323c927d5dac4c795a15ccb0a812a624",
        "31c4a48267f7e679b84c786df7520ab5e5de33a0"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed May 16 15:38:26 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 16 15:38:26 2018 -0700"
      },
      "message": "Merge \"Update font chain linter to match latest font file\" into pi-dev\nam: 31c4a48267\n\nChange-Id: Ia5f7799fcb43b59adfc672a9d7af0f6a8c583f09\n"
    },
    {
      "commit": "31c4a48267f7e679b84c786df7520ab5e5de33a0",
      "tree": "58d373ec91983a23e56b131a5b23811fb87d7b4b",
      "parents": [
        "08900edb09dd48fa7977e273ab895dfcaf8eef45",
        "c18086310b3b36f869455c7a63332b3c1fa728b7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 16 22:11:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 22:11:17 2018 +0000"
      },
      "message": "Merge \"Update font chain linter to match latest font file\" into pi-dev"
    },
    {
      "commit": "9fb8177ca5afef7e6becf897f04a42de8dd7db5b",
      "tree": "ec9f319545c4f24d39b427e0be00643180cb6631",
      "parents": [
        "b0ae3e5bfc4dce380c5d07f890402fe9f0a122d7"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue May 15 18:03:00 2018 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue May 15 18:03:00 2018 -0700"
      },
      "message": "Fix a \u0027memory leak\u0027\n\nRealistically, this memory will be reclaimed by the OS when we return\nhere. Regardless, we do a similar cleanup above if an exec() function\nfails, and having the free here makes our tooling slightly happier.\n\nComplained about by the static analyzer\n\nBug: None\nTest: Ran the analyzer. It no longer complains about this leak.\nChange-Id: Ia7107c585cc38fef8bd7c59d85ff896b04e93658\n"
    },
    {
      "commit": "6ef148ce5c6626f5223fef196217d5be9050c712",
      "tree": "3c9f40853aa656209872f7af98f969eb14a669de",
      "parents": [
        "a2232e280348d6e7c0fe9a7a381f593ff5f4a72e",
        "0a3815958a791426f27fd511db790b52073f0d29"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue May 15 11:27:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 11:27:13 2018 -0700"
      },
      "message": "Merge \"The argument type is bool, the current bug passes a \"true\" or \"false\" string.\" into pi-dev\nam: 0a3815958a\n\nChange-Id: Iadf8a52e65ba7930f419eacbaac9816992715506\n"
    },
    {
      "commit": "c18086310b3b36f869455c7a63332b3c1fa728b7",
      "tree": "5b1bece8bafbd26bd475e5d39e64dc64158e0a74",
      "parents": [
        "82db2614e450f92e373d0018a5b23d80c13511c2"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon May 14 13:39:40 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue May 15 16:09:48 2018 +0000"
      },
      "message": "Update font chain linter to match latest font file\n\n- FAMILY emoji now has own gender neutral emoji\n- Some flags are newly supported\n- Some regions may have the same flags.\n\nBug: 77148691\nTest: m fontchain_lint\nChange-Id: If1a69974230f025d35503eb49bea105923593e87\n"
    },
    {
      "commit": "480a956521e6b9dede8f159014fceb5a5a6e196d",
      "tree": "28122b569c6ea5c81d98e2c56af4a089c5c20796",
      "parents": [
        "ba96b97aab8bb28d6d649733a5b72539e8b37b51"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon May 14 18:04:29 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon May 14 18:04:29 2018 -0700"
      },
      "message": "The argument type is bool, the current bug passes a \"true\" or \"false\"\nstring.\n\nBug: 79710844\nTest: atest incidentd_test\nChange-Id: I66fc086e4a194e68638311ccdc305a495ecf8da4\n"
    },
    {
      "commit": "ea5cf9f31c64e93d6589216e10504abd4f7a1c30",
      "tree": "28b40a8ad60ef0a7ea81d88852eb543d4651c418",
      "parents": [
        "24482c9f05c4d4bd0e1460c1732a02fbdc7f7d69",
        "466ada94fe8848da5637d2134a460291b5e00a22"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon May 14 11:22:57 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 14 11:22:57 2018 -0700"
      },
      "message": "Merge \"For Win32, don\u0027t cast ssize_t while printing\" am: aaf8d7aa2e\nam: 466ada94fe\n\nChange-Id: I39b73406a41ecc5396c39648f8e05e8a88e7aaee\n"
    },
    {
      "commit": "dc36bb6dea837608c29c177a7ea8cf46b6a0cd53",
      "tree": "b2665fb535d0583511349cdf5d00052a705dd2ab",
      "parents": [
        "ef43ea3238e55ddca0658059a05c7a53db50d621"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri May 11 15:52:49 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri May 11 23:22:10 2018 +0000"
      },
      "message": "For Win32, don\u0027t cast ssize_t while printing\n\nBug: http://b/69933068\n\nThis is a partial revert of\nhttps://android-review.googlesource.com/c/platform/frameworks/base/+/109433\nso we can use Clang for windows cross compilation.\n\nClang does not allow a cast to \u0027signed size_t\u0027 and both Clang and\ncurrent MinGW accept a ssize_t to the \u0027%zd\u0027 format specifier.\n\nTest: m native-host, m native-host-cross with both MinGW and Clang\nChange-Id: I5366622b91be1433f6c533c55a9ae429b57c7a27\n"
    },
    {
      "commit": "78e0e6aa2ee266b41b04482ac85124db5a4c4358",
      "tree": "6ef13f97041e48143b50bc36bf98a048c916c3ca",
      "parents": [
        "bad3bf6c22998dd0abfc36827bf3996e064612dd",
        "91d2f87d0eef6e5445b1152f24ec708764e703d4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri May 11 08:30:35 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 11 08:30:35 2018 -0700"
      },
      "message": "Merge \"AAPT2: Insert platformBuild information\" into pi-dev\nam: 91d2f87d0e\n\nChange-Id: Ifa673f17cb3ee1ecb146aaafab7c3c71b47f7154\n"
    },
    {
      "commit": "91d2f87d0eef6e5445b1152f24ec708764e703d4",
      "tree": "6df66a3e890519a9109e1c1306ed284fa6161de5",
      "parents": [
        "f36144f575098d2ff1be8343827fb92d10b9db9b",
        "7cb82a86beda55a178d76dc8dd90d0b01a4b9c91"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri May 11 15:18:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 15:18:56 2018 +0000"
      },
      "message": "Merge \"AAPT2: Insert platformBuild information\" into pi-dev"
    },
    {
      "commit": "7cb82a86beda55a178d76dc8dd90d0b01a4b9c91",
      "tree": "32d4b8fc40aea3087d36ef451761c015652e2a71",
      "parents": [
        "1822926cfbf55cc68a85cdfd588802f4a106cdb5"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu May 10 15:35:31 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu May 10 15:37:37 2018 -0700"
      },
      "message": "AAPT2: Insert platformBuild information\n\nInserts platformBuildVersionName and platformBuildVersionName when the\nattributes are not currrently present. The attributes are set to\nthe values of versionName and versionCode.\n\nBug: 77541121\nTest: Build apk using aapt and appt2 and dumped using xmltree to confirm\nthe presence of the attributes\nChange-Id: I5330381905c878fb877214b42f83d7e2e48cd062\n"
    },
    {
      "commit": "f01c08de248681ec6a0359c292e2a488136d7fbd",
      "tree": "3d7adc89f17764d4804d0bcdaeafeabcc7b72bb3",
      "parents": [
        "e46d7975b80442307500e4e1b91fde28a169d405",
        "8ca46fc4aceeec572d75b37303fc95cca72a64f9"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 09 11:46:43 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 09 11:46:43 2018 -0700"
      },
      "message": "Merge \"Move libstatssocket to system/ so that lmkd can build on PDK.\" into pi-dev\nam: 8ca46fc4ac\n\nChange-Id: I70b7f3187da66eb720d1bc0c5ac83658ea4a6280\n"
    },
    {
      "commit": "8ca46fc4aceeec572d75b37303fc95cca72a64f9",
      "tree": "cfa900e643a1444ceff0baa67b80b25d052ba1c2",
      "parents": [
        "c3d079845579e64ec5b69ee1e1a2bf7699c10046",
        "c9c242e5cfad53f2b0235416a3103adf159983de"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 09 18:08:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 09 18:08:46 2018 +0000"
      },
      "message": "Merge \"Move libstatssocket to system/ so that lmkd can build on PDK.\" into pi-dev"
    },
    {
      "commit": "ccb89f926375a377643075b376d157608ecfb468",
      "tree": "0aea75ee040940fd635f390cc9ad6a1dbeda06b4",
      "parents": [
        "769039598b54e8c5757a2591269591b1bc5426c0",
        "291b944d89e15ee6236e0f2dcc97126bbfeb639c"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 08 08:11:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 08 08:11:22 2018 -0700"
      },
      "message": "Merge \"Adding batterystats history to proto dump.\" into pi-dev\nam: 291b944d89\n\nChange-Id: Ie1766ac31bc048eeba13d540c446372ef56c2da6\n"
    },
    {
      "commit": "2200a1b83bf94456711b61b518b0daa38b0e18ae",
      "tree": "9552a7789218e724afa7d6867a025d31cc11657c",
      "parents": [
        "40f67c52bb0553e81a1537369abe2878641a6aaa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat May 05 12:07:38 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:29:50 2018 +0100"
      },
      "message": "Add presubmit hook for hidden API lists.\n\nCheck that they\u0027re sorted as expected and contain no duplicates.\nThe sort order now uses:\n$ LC_COLLATE\u003dC sort -f\n\nSo that non-alphanumeric characters are not ignored, giving a more\nintuitive sort order. the \u0027-f\u0027 means ignore case.\n\nAlso sort the existing lists accordingly.\n\nTest: repo upload\nBug: 64382372\nMerged-In: I52b884da33a9a46455df6747a215683d9d3c3218\nChange-Id: Icc124fd8ceb3f001a9c11bbf40e0a111910c6b39\n(cherry picked from commit e5dc64d4281dd9f38c2b585202e26ae4278fcfc5)\n"
    },
    {
      "commit": "71a9531806d9d37f5482c4d242f95416c04715bf",
      "tree": "8eff29e64b4d22ac886f1a48d8645f3bd8820dcd",
      "parents": [
        "564942d0655e841fcb7c7dd7032f04b8fb45a111"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Apr 16 16:54:24 2018 -0700"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon May 07 17:53:57 2018 -0700"
      },
      "message": "Adding batterystats history to proto dump.\n\nIt will only print out a dump for userdebug or eng builds.\n\nBug: 77727638\nTest: flash device and check output of incident proto and\n\u0027dumpsys batterystats -c --history\u0027\n\nMerged-In: Ib74d4c664f23a61e6fc33f700ba6a3c6fad32c74\nChange-Id: Ia0c993d1281cc350d93f9c13f5540b349a4bfb84\n"
    },
    {
      "commit": "c9c242e5cfad53f2b0235416a3103adf159983de",
      "tree": "07c44c6a2479bf7bd98835ad0f3629bd351b6f3a",
      "parents": [
        "fd3b398e91ed7b18aca27a0835c7599d0e4e66d3"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon May 07 17:00:46 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon May 07 17:00:46 2018 -0700"
      },
      "message": "Move libstatssocket to system/ so that lmkd can build on PDK.\n\nBug: 79349329\nTest: builds locally\nChange-Id: I9e767639f39fcd317ba0d8daf353d9af3bb73359\n"
    },
    {
      "commit": "4ea3ecbc14d50b596d772263ada0391ab4b0e58b",
      "tree": "42d8a115d83c508297e676d2b01b15cbe715aaba",
      "parents": [
        "3f1c2382c962cfa053dc3ebdc35160797f215ef6",
        "dcd71294a40262f38b11e26c470a4f470925b7fd"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri May 04 13:35:07 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 04 13:35:07 2018 -0700"
      },
      "message": "Merge \"Support stats log in lmkd.\" into pi-dev\nam: dcd71294a4\n\nChange-Id: I2607f3f94cc74e5bddccc664acbd8f139af85151\n"
    },
    {
      "commit": "88e881017c473e77e6b462a27fdd47357573a035",
      "tree": "137ae18cceaf78dfc0a143ead97902771b280f14",
      "parents": [
        "dbeff868c3caa4aa4abe0a6ddb4e2a5afc18cf61"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed May 02 09:23:05 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu May 03 15:42:17 2018 -0700"
      },
      "message": "Support stats log in lmkd.\n\nThis CL changes the relevant cpp files to c files. And added functionalities to reset the log\ncontext for reuse.\n\nBackground:\n+ lmkd doesn\u0027t use the generated statslog code because:\n   1. lmkd doesn\u0027t want to create a 4K log context for each log. lmkd is single threaded and can\n      reuse the same log context.\n   2. lmkd is written in c, and the existing statslog.h/.cpp are not compatible\n\nBug: 78603347\nTest: manually tested with alloc-stress\nChange-Id: Ife6f5c69248ecf5af730269e67f229ba4c72f37f\n"
    },
    {
      "commit": "68a16c42773f7b3969de4003f0a4b680d6fc62de",
      "tree": "eb950e4d0735f7eb125a0b8ec5bfbf68b0bda6e3",
      "parents": [
        "3a419327ea1fddd00fc182dfdf9cb8beb349100b",
        "e09cde0cd986223fd152e7629411254015de016f"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed May 02 15:10:58 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 02 15:10:58 2018 -0700"
      },
      "message": "Merge \"Add a section flag to bypass failure if a specific path can\u0027t be found.\" into pi-dev\nam: e09cde0cd9\n\nChange-Id: I01c5a7a2c1ead02f5af0514cf9bf9b83f1682316\n"
    },
    {
      "commit": "e09cde0cd986223fd152e7629411254015de016f",
      "tree": "c9eeb0d387ce27b883307cfec296b592bfa561f7",
      "parents": [
        "85c7a9a11382994a1d48995b04104139b74f8d4d",
        "7fe3dee3ae1cc47b50c4001cbac56c4fefbcc57b"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed May 02 21:36:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 21:36:23 2018 +0000"
      },
      "message": "Merge \"Add a section flag to bypass failure if a specific path can\u0027t be found.\" into pi-dev"
    },
    {
      "commit": "cc6e856522e57f17d3ebf382289cf967275fa670",
      "tree": "e807dbf9adf57868eb4e89590cec48587a5f8300",
      "parents": [
        "40ee4178f4f5bb0b76a7da54f1b89d8f3d0630b8",
        "150bafd2176d149edf5bc830b3fcb193bfd536f5"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed May 02 13:43:45 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 02 13:43:45 2018 -0700"
      },
      "message": "Merge \"AAPT2: Fix quoted text in res/xml assets\" into pi-dev\nam: 150bafd217\n\nChange-Id: I5bb4a63234cf3ee022bbf59edd5b613abefd8bef\n"
    },
    {
      "commit": "0dcb20c72742a1de30b4984c4b8996d76cb7a428",
      "tree": "d6d925dbf4fffd271e851d12720c5718cbc3a2eb",
      "parents": [
        "12f404e3e33c21a4f0d634698bef94c219ec48ab"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 27 14:53:04 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed May 02 17:53:21 2018 +0000"
      },
      "message": "AAPT2: Fix quoted text in res/xml assets\n\nAAPT2 aggressively processed xml nodes and regressed from the behavior\nof AAPT. This change restores AAPT\u0027s processing of xml nodes with\nquotations.\n\nBug: 71805084\nTest: Created tests in XmlFlattener_test.cpp and ran the test in the\nAndroid Studio project given in the bug\n\nChange-Id: Idedb4f1002e9fd705ceb5feae35289235b754b02\n"
    },
    {
      "commit": "932c44d3297c94646ac7b0a24dc923f18c9e2fe9",
      "tree": "028178b16ef9166592c7c277fca23ae43d1327a3",
      "parents": [
        "83d84d2f454feac9bf3f95ae873a47623c8f1b74",
        "f4c089dd905fab6bccd83285581ab9ee074d8a42"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed May 02 09:42:11 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 02 09:42:11 2018 -0700"
      },
      "message": "Merge \"AAPT2: Fixed id parsing error\" into pi-dev\nam: f4c089dd90\n\nChange-Id: I81147ee8629edc98ba19565083c09d7dce8e6bf7\n"
    },
    {
      "commit": "f4c089dd905fab6bccd83285581ab9ee074d8a42",
      "tree": "1bac5e70a6bf8a52a35cf912c14f42067f203c5c",
      "parents": [
        "33b57e845ff6b12f62898341dbf3a96766a93f0b",
        "eaf77e1d3a6ad4995ddd92a429802cffbf0f0209"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed May 02 16:27:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 16:27:03 2018 +0000"
      },
      "message": "Merge \"AAPT2: Fixed id parsing error\" into pi-dev"
    },
    {
      "commit": "7fe3dee3ae1cc47b50c4001cbac56c4fefbcc57b",
      "tree": "c8cfc01b6b323699295c269ea40e597f1dc15a59",
      "parents": [
        "82c0b73e98a81e4b2d2f50da44112381bcef6755"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Apr 16 16:13:04 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed May 02 01:31:08 2018 +0000"
      },
      "message": "Add a section flag to bypass failure if a specific path can\u0027t be found.\n\nThis is a temporary solution to bypass failure of reading cpu info or \nbattery type in P if the path doesn\u0027t exist on some devices. See bug for\ndetails. However in Q, incidentd should implement reading from the\ncommon Linux kernel interfaces.\n\nBug: 78028767\nBug: 78239764\nTest: atest incidentd_test\nChange-Id: I08ffcb21709efe5478d2ac46121deb5795af1024\nMerged-In: I08ffcb21709efe5478d2ac46121deb5795af1024\n"
    },
    {
      "commit": "eaf77e1d3a6ad4995ddd92a429802cffbf0f0209",
      "tree": "17a7b20a176b55367acf6655c0f77cc998b48864",
      "parents": [
        "dc34eb605520a7f4f9401c4569a2573171111e9d"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 25 15:00:50 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 01 11:11:55 2018 -0700"
      },
      "message": "AAPT2: Fixed id parsing error\n\nA previous change, editied the logic for parsing ids to allow for ids to\nreference other ids. This change though caused a regression that made\nids in the form \u0027\u003cid name\u003d\"name\" /\u003e\u0027 cease to parse. This changes fixes\nthat regression.\n\nBug: 78513618\nTest: Updated tests in ResourceParser_test.cpp\nChange-Id: I3608bb764464e951a50910be55e199c6ec575d09\n"
    },
    {
      "commit": "c323122e9380865374b65e7431b3601b6268d97b",
      "tree": "cc72967ad12cca7b84b4cf740965546de5d7dc09",
      "parents": [
        "d71a70a27aedaa272d3799d57bf8053087e922c6",
        "13588dc9e4e21c0802202db9c1617cb75a88c9cf"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 15:09:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 26 15:09:29 2018 -0700"
      },
      "message": "Merge \"Allow using reserved package IDs\" into pi-dev\nam: 13588dc9e4\n\nChange-Id: If17488c1194560fce69a9bedeb1553795d415c30\n"
    },
    {
      "commit": "13588dc9e4e21c0802202db9c1617cb75a88c9cf",
      "tree": "841217f4bcbc2e8839cca9382d239bcd5cf018d1",
      "parents": [
        "8049afc395e19fee9fb28c23a44fee8b5b230831",
        "325129964e5b0a9794cf5bb63a2d2d8774ea6a1b"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 21:29:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 21:29:17 2018 +0000"
      },
      "message": "Merge \"Allow using reserved package IDs\" into pi-dev"
    },
    {
      "commit": "325129964e5b0a9794cf5bb63a2d2d8774ea6a1b",
      "tree": "6916dd14dd937ad9650558c8afca42929acd26f2",
      "parents": [
        "a93ab56ed802f320cbf1ac9452cae75acbef47c3"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Apr 25 16:45:59 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 10:27:30 2018 -0700"
      },
      "message": "Allow using reserved package IDs\n\nPre-O, the platform treats negative resource IDs [those with\na package ID of 0x80 or higher] as invalid.  In order to work\naround this limitation, we allow the use of traditionally\nreserved resource IDs [those between 0x02 and 0x7E].\n\nBug: 78041707\nTest: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\nTest: ./out/host/linux-x86/nativetest/libandroidfw_tests/libandroidfw_tests\nTest: Manual. Create a feature split with a package ID of 0x7E and see it runs and can reference base resources.\n\nChange-Id: I3d9782cc05d3a55e1a2467bf39566788847e1160\n"
    },
    {
      "commit": "1b216d84c056de4919283e68ac90d2ce6f06ab8f",
      "tree": "817834576b3112b95551c2bfbd08d19ab2e762ad",
      "parents": [
        "4c161911a3f22a23765a007ffb255c506b7407b4",
        "02033386c23a80e723ef9e10c0d923298b215e20"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 24 09:47:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 24 09:47:36 2018 -0700"
      },
      "message": "Merge \"Add presubmit hook for hidden API lists.\" into pi-dev\nam: 02033386c2\n\nChange-Id: I6c437a6ffa62794f1fc88d0c8bcdcef798b68d8c\n"
    },
    {
      "commit": "e5dc64d4281dd9f38c2b585202e26ae4278fcfc5",
      "tree": "3be3567f0d0845379211f251d025398ce25182ab",
      "parents": [
        "fd935d3a126c4cfe643765d500a4fbed11d77b9b"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Apr 23 16:13:14 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 24 15:15:13 2018 +0100"
      },
      "message": "Add presubmit hook for hidden API lists.\n\nCheck that they\u0027re sorted as expected and contain no duplicates.\nThe sort order now uses:\n$ LC_COLLATE\u003dC sort -f\n\nSo that non-alphanumeric characters are not ignored, giving a more\nintuitive sort order. the \u0027-f\u0027 means ignore case.\n\nAlso sort the existing lists accordingly.\n\nTest: repo upload\nBug: 64382372\nMerged-In: I52b884da33a9a46455df6747a215683d9d3c3218\nChange-Id: I4cdd3bc5c11be91a9a3f678580af49ac67f3c968\n"
    },
    {
      "commit": "e31a4421400ee75478658b34d8260e5cb195ea9a",
      "tree": "9c00ae1c51b0fb6e4fc4f0e5794aca6c9dcc018c",
      "parents": [
        "fbed7ebade90bf9064882a7d91798f35e21ca92d",
        "fd5166ddac5fceb3942cef9f95ff2920eac1ac84"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Apr 23 20:23:12 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 23 20:23:12 2018 -0700"
      },
      "message": "Merge \"Allow overriding the compile SDK\" into pi-dev\nam: fd5166ddac\n\nChange-Id: I53d265b82f4a0e9b86b1324900e133911a355104\n"
    },
    {
      "commit": "fd5166ddac5fceb3942cef9f95ff2920eac1ac84",
      "tree": "a656bc5aa6b53f3e83d3a2e23af718f1301b29fd",
      "parents": [
        "ab416a115a9b736270fcefbde7b21dcc34f2dae1",
        "9f6dec11e6fe003609f4c5908d3a965b1f196c47"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 24 03:14:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 24 03:14:04 2018 +0000"
      },
      "message": "Merge \"Allow overriding the compile SDK\" into pi-dev"
    },
    {
      "commit": "edcdab22c44a5fe4bb481396b1a2d7c9d73b60bc",
      "tree": "223958499360d6b84a261533f6b2c2f2085c0871",
      "parents": [
        "346892b4aec30fe4d9b5a7c9ebb5dfcac6717176",
        "485a197ab0807f459388f1bc60c6090246007ff9"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Apr 23 11:48:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 23 11:48:54 2018 -0700"
      },
      "message": "Merge \"Update fontchain_linter for emoji 11\" into pi-dev\nam: 485a197ab0\n\nChange-Id: I1388a4b0292836f492a1f0d60406c266a0c1af15\n"
    },
    {
      "commit": "485a197ab0807f459388f1bc60c6090246007ff9",
      "tree": "602ad62962a4e167eefb98a48804958ef42d77ec",
      "parents": [
        "42b5621e1287b88825bfdf24501d6ca6f85f16fe",
        "d97df5a2803f1e87ed6c129d57e9d6109e6d1040"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Apr 23 18:19:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 18:19:22 2018 +0000"
      },
      "message": "Merge \"Update fontchain_linter for emoji 11\" into pi-dev"
    },
    {
      "commit": "3585804c7008f721d86223661d4c97df628d075e",
      "tree": "4f8d05d12af557cbfd0e85920e639d82ea399dfc",
      "parents": [
        "41f3a622e102e212209cee6cc08029ea18955897",
        "46fca44ee5efeee0c4bb936450317ef77fbf63a2"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Apr 20 19:56:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 19:56:54 2018 -0700"
      },
      "message": "Merge changes from topic \"statsd_socket_review\" into pi-dev\nam: 46fca44ee5\n\nChange-Id: Iae06193a18ad48a664904dbd5bc26c5b4c7ae45f\n"
    },
    {
      "commit": "9f6dec11e6fe003609f4c5908d3a965b1f196c47",
      "tree": "7cc213656e21060287a4b194e0efe8070074409a",
      "parents": [
        "dbdf5df96e2b8d97de89720da256c8296dbbec4f"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Apr 20 12:29:29 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Apr 20 22:41:52 2018 +0000"
      },
      "message": "Allow overriding the compile SDK\n\nWe automatically pull the compile SDK from the platform. But,\nin certain circumstances the platform\u0027s SDK codename is\nincorrect. Allow the name to be overridden on the command line.\n\nChange-Id: I398f1b00b29db42e4ce202b94cda483c98971a14\nFixes: 78324052\nTest: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\n"
    },
    {
      "commit": "f7bc6ab7fa21f849250d0f5ee2849f9e49a8d436",
      "tree": "3d751dab478cd4792facae3762ada90308b70cb1",
      "parents": [
        "46e58e1b4086aa0e3eb62f9cdae0eefaea08943f"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Apr 18 13:45:48 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Apr 20 14:52:01 2018 -0700"
      },
      "message": "Allow StatsLog to directly write to statsd\u0027s socket.\n\n+ Reuse the log_event_list from liblog. StatsLog\u0027s binary format remains unchanged\n+ Copied socket write code from liblog, including the retry logic.\n+ Added build flags to control the StatsLog channel (logd, statsd, or both for debugging)\n\nBug: 78239479\nTest: locally tested and saw logs being written to statsd\n\nChange-Id: I7b1f0069ead00bbf3c29e4bd5b7f363a7ce26abe\n"
    },
    {
      "commit": "4dcb9b082b37a9bf6ae77b515aaff103b9d3e3a3",
      "tree": "a74cc7b7e34f9cfda70f4252ec56ce4fc8f1bfd6",
      "parents": [
        "f8a770a5159c84b3e8e26b2706a91d773cdd3971",
        "1a12311433a0ebce2d0c383ac886a257ae32e3d6"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Fri Apr 20 12:25:47 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 12:25:47 2018 -0700"
      },
      "message": "Merge \"Fix fraction and dimension type in Resource.proto\" into pi-dev\nam: 1a12311433\n\nChange-Id: I2463fab9dd5705a4af11fa17aebf0c23c7c12d07\n"
    },
    {
      "commit": "1a12311433a0ebce2d0c383ac886a257ae32e3d6",
      "tree": "7ca0d9bbe657804e0c5ca8f273f2085a5e10bebe",
      "parents": [
        "686fab14645298ca04f23f0e10a64e839e32703f",
        "8b74927e9ecf4d14898d09c168d0d38f164a92bc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 18:59:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 18:59:11 2018 +0000"
      },
      "message": "Merge \"Fix fraction and dimension type in Resource.proto\" into pi-dev"
    },
    {
      "commit": "8b74927e9ecf4d14898d09c168d0d38f164a92bc",
      "tree": "c2f69546b0a90e38264a944a4b4adcbd58979276",
      "parents": [
        "1074688a265db2d44b244f2f57b9ac081f825e99"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Apr 18 18:52:47 2018 -0700"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Fri Apr 20 10:46:47 2018 -0700"
      },
      "message": "Fix fraction and dimension type in Resource.proto\n\nChange fraction and dimnesion type from float to uint32\n\nChange-Id: I641dc42cf7b6bdd8bc16c8cdbd573ec3281a084a\nFixes: 78182701\nTest: aapt2_tests\n"
    },
    {
      "commit": "e9bbefa7dc44a666c0cba72fdbd7825cc1f89dac",
      "tree": "fdf1adbbcde7034e88ef5b4c28559ec77114e44f",
      "parents": [
        "52489dbf6677e8eb1fd76c6ef428a154d61b68f2",
        "247ecfa4989c4a2a1096a9960831286cca7eaab5"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 19 14:58:17 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 19 14:58:17 2018 -0700"
      },
      "message": "Merge \"AAPT2: Support id reference chaining from AAPT\" into pi-dev\nam: 247ecfa498\n\nChange-Id: I507b421d60294ea9262d5be579f22fdc2892c7fe\n"
    },
    {
      "commit": "247ecfa4989c4a2a1096a9960831286cca7eaab5",
      "tree": "a7a3f9bc9f52db8d468641a86959ee089c82e6c0",
      "parents": [
        "bb35e9e0e978ab6ff518462e9483dcb24232cf7b",
        "9efbbef2e060cd5e05f5b652ba5c7aaf687f64d6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 19 21:35:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 21:35:59 2018 +0000"
      },
      "message": "Merge \"AAPT2: Support id reference chaining from AAPT\" into pi-dev"
    },
    {
      "commit": "d97df5a2803f1e87ed6c129d57e9d6109e6d1040",
      "tree": "80196a23875bb75357dba4ecb008d9a07e35438c",
      "parents": [
        "3f8884829f6dcea454a74c6cf18e4bd89cf70acc"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Thu Apr 12 13:11:42 2018 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Thu Apr 19 12:10:16 2018 -0700"
      },
      "message": "Update fontchain_linter for emoji 11\n\n* Add default genders for super villain and super hero.\n* Read capability to read from emoji exclusions file.\n* Update lint rule to use different glyphs for couple with heart.\n\nTest: m fontchain_lint\nTest: Visual test with a build and sample app\nBug: 77148691\nChange-Id: Icd92f0455709625b3998fc8eef1d448e17a5d71f\nMerged-In: Icd92f0455709625b3998fc8eef1d448e17a5d71f\nMerged-In: I56dd3c1e1258bab2fcbdf42e5c42587e45dd92fe\n(cherry picked from commit e853efc0817ef38f6ba561ea768d49caf1e53dba)\n"
    },
    {
      "commit": "8751b6ee4ef9d2a35789535d9158ec1b4cb3a8c9",
      "tree": "acc98e05920050cf65b4b697d3c8dc16f0869c76",
      "parents": [
        "ed474ff1ee1f6ef275b94ea1438cae37964e750c",
        "b2182c412c534be18a3b0c869d186fcf91a86a6d"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 15:22:06 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 18 15:22:06 2018 -0700"
      },
      "message": "Merge \"AAPT2: Modified StringPool uniqueness detection #2\" into pi-dev\nam: b2182c412c\n\nChange-Id: Ib7829b0203134eecdfd59a3dcd1e78b8fbdd39b4\n"
    },
    {
      "commit": "4602926f83d7aa3b52b190122955b5b0d6d8089d",
      "tree": "4b483cd443fb3b1b9f7eb03d4d326c22da213998",
      "parents": [
        "34a0b18a5c730e4fa16e27c63ed0cd79a6df188e"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 18:13:14 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 20:58:50 2018 +0000"
      },
      "message": "AAPT2: Modified StringPool uniqueness detection #2\n\nb/77862560 detected that when converting an apk to binary using aapt2,\nall resource ids of attributes that have been replaced with resource\nidentifiers become set to the identifier of the first attribute. This is\nbecause the attribute names are all empty because the names are not necessary\nsince the resource ids are present. The empty attribute names all map to\nthe same string pool reference and cause all the ids to be the first\nempty string into the string pool.\n\nThe ag/3897499 approach to fix the specified bug was extremely inefficient\nand caused hour long builds. This change takes advantage of the multimap\ndata structure to do lookups efficiently.\n\nBug: 77862560\nTest: Converted apk in listed bug from proto to binary and observed\ncorrect resource ids and correct badging. Also built the Android tree to\ncheck for regressions in build time.\n\nChange-Id: I27a9ee4ffbed8b9ff6f238ad315cdf87b588947c\n"
    },
    {
      "commit": "9efbbef2e060cd5e05f5b652ba5c7aaf687f64d6",
      "tree": "a906595eedebc28b14a4e86e135b225eb1d5d79b",
      "parents": [
        "34a0b18a5c730e4fa16e27c63ed0cd79a6df188e"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 11:29:09 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 11:46:53 2018 -0700"
      },
      "message": "AAPT2: Support id reference chaining from AAPT\n\nAAPT would allow for ids to be declared in the form:\n\n\u003citem name\u003d\"name\" type\u003d\"id\u003e@id/other\u003c/item\u003e\n\n@id/name should hold a reference to @id/other. When\ngetResources().getValue() is called on R.id.name with resolveRefs\nenabled, the resuling reference should be R.id.other.\n\nBug: 69445910\nTest: Created tests for correct parsing of id references and correct\nresolving of deep references\n\nChange-Id: Id1feb37b2565c213dc6a19b4c401906260d7fc14\n"
    },
    {
      "commit": "312a3ff350f7bb2f8f0ed029127f7af67a693821",
      "tree": "222d7cf1f156f546c8ee3a6696db0d31fc72971d",
      "parents": [
        "fc01e133b594845ae465f0e5af6aecf7ffd96bbf",
        "61ac57283fecb20d4287b81b293a2579d0386c15"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 12:45:57 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 16 12:45:57 2018 -0700"
      },
      "message": "Merge \"Revert \"AAPT: Modified StringPool uniqueness detection\"\" into pi-dev\nam: 61ac57283f\n\nChange-Id: Ibd7e47e33d49e6c609b9b73960186020728ac0f5\n"
    },
    {
      "commit": "61ac57283fecb20d4287b81b293a2579d0386c15",
      "tree": "7e775dd544f0beaa76474c3af1712e6e1f371bee",
      "parents": [
        "116e05cbba0f851c0d5c0da3e1c664444ea5b6f2",
        "61ffd4029032862c871c98ac04f12d4141d59383"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 19:28:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 19:28:43 2018 +0000"
      },
      "message": "Merge \"Revert \"AAPT: Modified StringPool uniqueness detection\"\" into pi-dev"
    },
    {
      "commit": "61ffd4029032862c871c98ac04f12d4141d59383",
      "tree": "b49449dd559ce7c717750d9da9684fdfce5ce481",
      "parents": [
        "35ecb89a8aa68f24d2e991df5bb9964ad15075dc"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 18:21:14 2018 +0000"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 18:21:14 2018 +0000"
      },
      "message": "Revert \"AAPT: Modified StringPool uniqueness detection\"\n\nThis reverts commit 35ecb89a8aa68f24d2e991df5bb9964ad15075dc.\n\nReason for revert: \u003cLong make duration (infinite loop)\u003e\n\nChange-Id: I10d1cf53ca3054d40e23b06368ebaff6af69beab\n"
    },
    {
      "commit": "789ffb45c56eae5ce5b738cd6c0bc7ca40649598",
      "tree": "1964212be6c58214951f97b98b42e90a3e2b9209",
      "parents": [
        "b22ffad7f6426ca51c0ed247921808c9daa976d3",
        "356feb53b6b16c08e9adf37243e755f03c4f947e"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 10:32:42 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 16 10:32:42 2018 -0700"
      },
      "message": "Merge \"AAPT: Modified StringPool uniqueness detection\" into pi-dev\nam: 356feb53b6\n\nChange-Id: Ib8b9fbea279f61b5df9058d9f72dfb23f9d9dbc6\n"
    },
    {
      "commit": "356feb53b6b16c08e9adf37243e755f03c4f947e",
      "tree": "8de7b38f8647c344e1d22e492e0924ec04a28e7c",
      "parents": [
        "1c70ecb455069b2497ab2f95ce29c9686afc9c21",
        "35ecb89a8aa68f24d2e991df5bb9964ad15075dc"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 17:15:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 17:15:53 2018 +0000"
      },
      "message": "Merge \"AAPT: Modified StringPool uniqueness detection\" into pi-dev"
    },
    {
      "commit": "35ecb89a8aa68f24d2e991df5bb9964ad15075dc",
      "tree": "4a6694c3430fea5d6ae5b0bd3680aab24a303232",
      "parents": [
        "a668c663019dcabe62d1f667ec5402806a22b0a8"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 11:25:12 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 16:15:42 2018 -0700"
      },
      "message": "AAPT: Modified StringPool uniqueness detection\n\nb/77862560 detected that when converting an apk to binary using aapt2,\nall resource ids of attributes that have been replaced with resource\nidentifiers become set to the identifier of the first attribute. This is\nbecause the attribute names are all empty because the names are not necessary\nsince the resource ids are present. The empty attribute names all map to\nthe same string pool reference and cause all the ids to be the first\nempty string into the string pool.\n\nBug: 77862560\nTest: Converted apk in listed bug from proto to binary and observed\ncorrect resource ids and correct badging.\n\nChange-Id: I635c13cd1ad7a395fe40a57198cfe5ec91602d01\n"
    },
    {
      "commit": "fc89e7f17a1cb68402f0582c1ff873bc0c487d32",
      "tree": "1da8635993282d5a3f76063e39f1d7d1d874f46b",
      "parents": [
        "634acf3aa0f17b189382d6f8a2226e666d24255f",
        "3da5f3b2ddf35ed436cd9a0c6a349c59c97f8d78"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Fri Apr 13 14:18:27 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 14:18:27 2018 -0700"
      },
      "message": "Finalizing P SDK\nam: 3da5f3b2dd\n\nChange-Id: Id5002a3fc4d35352a4ace67e794c1a52e21c496c\n"
    },
    {
      "commit": "3da5f3b2ddf35ed436cd9a0c6a349c59c97f8d78",
      "tree": "df1d8625e3297350e40d450835c2e24a8cb5ca28",
      "parents": [
        "79634c7025f66e26444df12c12db2ebbf2d81bfe"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Apr 11 15:12:31 2018 -0700"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Thu Apr 12 15:26:31 2018 -0700"
      },
      "message": "Finalizing P SDK\n\nBug: 77588754\nTest: builds\nChange-Id: Ic06cad790a3dc53d012a7c43dfac911fc6dc61e7\n"
    },
    {
      "commit": "68dc7ca5689b920c97db566387b1423384bb46e6",
      "tree": "d530ff71c8c40ac109c6f17109700fa30c9c29be",
      "parents": [
        "b2d12fb3e0f6bad3df85cac62f7404e36f165cd7",
        "f8458910317ea21b407f712f704265180fd1d5b5"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 12 10:39:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 12 10:39:00 2018 -0700"
      },
      "message": "Merge \"AAPT: Multiple period legacy support and errors\" into pi-dev\nam: f845891031\n\nChange-Id: Id1ac75606df1b8bf99281febf5c7266de6889457\n"
    },
    {
      "commit": "f8458910317ea21b407f712f704265180fd1d5b5",
      "tree": "18747f9e2980dc785aa69117c7c758bad22e5ac7",
      "parents": [
        "ccaba49ab541b19acc0a0ec9bd8159109e66154b",
        "d6b83299a6d636c67fee8bd4ae07555a9ae2269a"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 12 17:21:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 17:21:32 2018 +0000"
      },
      "message": "Merge \"AAPT: Multiple period legacy support and errors\" into pi-dev"
    },
    {
      "commit": "d6b83299a6d636c67fee8bd4ae07555a9ae2269a",
      "tree": "3ba4327af7207a6a57c2375f87cdda1804651d08",
      "parents": [
        "65317bac02e993d1313a1958a8497ff5f2a2ecd5"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 11 09:54:56 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 11 15:52:43 2018 -0700"
      },
      "message": "AAPT: Multiple period legacy support and errors\n\nAAPT would accept files with multiple periods in the filename as input.\nThis lead to cases explained in b/74999475. This change adds error\nmessages for files with multiple periods unless the legacy flag is\npresent. With the legacy flag present, AAPT2 will behave like AAPT\nrather than throwing an error.\n\nTest: Added tests to aapt2_tests\nBug: 73071563\nBug: 74999475\nChange-Id: I28dfceeea7b39f8e4b9e6671e0fc8793cf388f52\n"
    },
    {
      "commit": "e29ec0cdc5bcfde05a9a4f8c6128b6cfc24005dd",
      "tree": "3a55eb8221f6bfa09bfc0b89080b42c005c7c2ad",
      "parents": [
        "57af38030c114a3d59b44545cf6d5b04d649ab14",
        "992f6120c0bcf2e753ad866a7d5c796e8def310f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Wed Apr 11 14:38:27 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 11 14:38:27 2018 -0700"
      },
      "message": "Merge \"Lint to identify \"deprecated at birth\" APIs.\" into pi-dev\nam: 992f6120c0\n\nChange-Id: I0f734d9a3d6746d5d828919b74d2603eba0bcf02\n"
    },
    {
      "commit": "8b141b9db00aa95a9610770b1a7757fb155d097c",
      "tree": "d6a5d0cc71f8cb423fb68a644183743579ea0b13",
      "parents": [
        "997e7b7ea43282a9216d205ec291358dfa01136a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 10:05:44 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 10:43:16 2018 -0600"
      },
      "message": "Lint to identify \"deprecated at birth\" APIs.\n\nWhen API council requests changes, teams regularly perform the\nrequested refactoring, but simply mark the old APIs as @Deprecated\nwithout @removed, due to internal users.\n\nAs part of finalizing an SDK, we should ensure that no new APIs are\nmarked @Deprecated, since they\u0027re typically cleanup that someone\nforgot to finish.  This extension to the lint script makes it easy\nto identify these cases.\n\n$ python tools/apilint/apilint.py --show-deprecations-at-birth \\\n        api/current.txt ../../prebuilts/sdk/api/28.txt\n\n$ python tools/apilint/apilint.py --show-deprecations-at-birth \\\n        api/system-current.txt ../../prebuilts/sdk/system-api/28.txt\n\nBug: 77588754\nTest: manual inspection\nChange-Id: Ie9658006bb08f780bee0e503481d3bafec1038a1\n"
    },
    {
      "commit": "3e871cb76f44af402e549f241d826b4c161b0f6b",
      "tree": "f35bf24ad490488db34091032767e80cc4256537",
      "parents": [
        "a0f8cda39c8086d16cdd33f67566de458a4c419e",
        "3ed866222dbccfa85378373a1e48d9e18eb499df"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Apr 10 17:08:41 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 10 17:08:41 2018 -0700"
      },
      "message": "Merge \"Logd retry throttling.\" into pi-dev\nam: 3ed866222d\n\nChange-Id: Id8ef2c9086f0cbfa69d157d8abb8c891c07fec3d\n"
    },
    {
      "commit": "ca5c0869f0e32014c0cbf48e48886d5b06956c75",
      "tree": "00b3fc8f1e6d60d2f4f04c779613166e1a0df244",
      "parents": [
        "6a67b8640b5ed69ea1cf994f6015ae9a008435ff"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Mon Apr 09 22:39:53 2018 -0700"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Apr 10 11:20:57 2018 -0700"
      },
      "message": "Logd retry throttling.\n\nTest: statsd test\n\nBUG: b/77852322\nChange-Id: I3b4c46aaa592e21bfed13330c2ca72fac8e8320a\n"
    },
    {
      "commit": "04252631177e891544ecc3687eabd684de83e4ec",
      "tree": "9169358999a4c409948053877cb4a083b6145a79",
      "parents": [
        "a930996c2423436e4ce77fa14cb5b293e32ee703",
        "164a73e0cfa880f26acdc04e0c35255cf8cd671d"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Thu Apr 05 11:22:16 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 11:22:16 2018 -0700"
      },
      "message": "Merge \"Retry logs write when it fails. Report skipped event in statsd.\" into pi-dev\nam: 164a73e0cf\n\nChange-Id: I6aac360fe74bb5ca3e3b95dc3f2685a99da0fe2a\n"
    },
    {
      "commit": "164a73e0cfa880f26acdc04e0c35255cf8cd671d",
      "tree": "908bc03a1ca416b3fb7ac04c4e7d757a97185f7a",
      "parents": [
        "bd2e79094623e5b1a89eff4e51eb7b295f2390da",
        "b8382a10a0dca8ff50b0afc35071e47440ecf86c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 18:04:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 18:04:18 2018 +0000"
      },
      "message": "Merge \"Retry logs write when it fails. Report skipped event in statsd.\" into pi-dev"
    },
    {
      "commit": "b8382a10a0dca8ff50b0afc35071e47440ecf86c",
      "tree": "0ea260b9ef4826f41715195456d1df3566025c24",
      "parents": [
        "48920ab48d5d43e22871b688c830670b56aac3ec"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Apr 04 10:39:12 2018 -0700"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Apr 04 17:53:48 2018 -0700"
      },
      "message": "Retry logs write when it fails.\nReport skipped event in statsd.\n\nTest: manual test\nBUG: b/77222120\nChange-Id: I257f5e76d557893c4eb4a8e8a13396d8b5d1afc0\n"
    },
    {
      "commit": "7e25e9c90c0b61f48fc5f758a2f69f167e2e3695",
      "tree": "fd11ba6e2196bb519b6ce7d44ee929f771bbbbdc",
      "parents": [
        "aedff705eb35683357ae5496e8229d54b4437dd0",
        "6a23deef5d6d9f9fae40dbe1775f5cf5556421fc"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 17:34:32 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 04 17:34:32 2018 -0700"
      },
      "message": "Merge \"Changed AAPT2 to abide by AAPT resource whitespace triming.\" into pi-dev\nam: 6a23deef5d\n\nChange-Id: Iec9bec5ba7f58c5ef5ef283bac16e2a1d6ebee6d\n"
    },
    {
      "commit": "6a23deef5d6d9f9fae40dbe1775f5cf5556421fc",
      "tree": "ab7d54a79f90754a9f49f4cb98efb9eba0231c59",
      "parents": [
        "1d513fc5d04ce6bd27953fe5854c3cb3234f9a99",
        "9beaa9cfe3bd8c7c59eed053ff6ca18951c34a86"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 05 00:14:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 00:14:38 2018 +0000"
      },
      "message": "Merge \"Changed AAPT2 to abide by AAPT resource whitespace triming.\" into pi-dev"
    },
    {
      "commit": "03beea58baaec6b8b65baddb13887855cc8a2cc9",
      "tree": "2f024c5af0cee6c8e09f5126aa6e0d267866ebde",
      "parents": [
        "14d39f8799a430e813c71159d7a65392130e48ec",
        "498baa82e645619ddf7e79bd3930ff519ad4526d"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 14:59:47 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 04 14:59:47 2018 -0700"
      },
      "message": "Merge \"Added --debug-mode flag to AAPT2\" into pi-dev\nam: 498baa82e6\n\nChange-Id: I212efa4392f4da28817f88d589f865d17495f17c\n"
    },
    {
      "commit": "498baa82e645619ddf7e79bd3930ff519ad4526d",
      "tree": "c1ce506fcc27673d92b321277c991479ccc23973",
      "parents": [
        "49668cd130b57e3ba2f98c7613b215773b4246fa",
        "e5b38a676ce0fe6ee08635a7167ee5d76a225a06"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 21:21:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 21:21:28 2018 +0000"
      },
      "message": "Merge \"Added --debug-mode flag to AAPT2\" into pi-dev"
    },
    {
      "commit": "034951035839ba88ff818470c6517c0ad4f47a03",
      "tree": "0ec6dfc350729610434881275607bd750fe09a39",
      "parents": [
        "b0646b05eb2ab4d3b5753a6aad1f693acfd274ac",
        "7281fe0a9b123d5eb45a1794805e87c8feecdc4f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 12:54:28 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 04 12:54:28 2018 -0700"
      },
      "message": "Merge \"Check the size of the strings in the StringPool before flattening.\" into pi-dev\nam: 7281fe0a9b\n\nChange-Id: Id32a86c95b8a6da72e0abe20dc0e47355809e442\n"
    },
    {
      "commit": "70414f22dcab1d4ce3c2e9d981f3256a9ba62515",
      "tree": "4f16c1c60a077ba21af55e0df26d791143afa9cf",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Mar 26 11:05:31 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:54:43 2018 +0000"
      },
      "message": "Check the size of the strings in the StringPool before flattening.\n\nTest: Tested for normal functionality when string does not exceed\nmaximum length and tests for detection of string that is too lonhg for\nUTF8i\nBug: b/74176037\n\nChange-Id: Ic71d3671a069e7012e8ca107e79e071499eebbf6\n(cherry picked from commit a15c2a8957b9883cb293fdacaeabd7f2e037a0a5)\n"
    },
    {
      "commit": "9beaa9cfe3bd8c7c59eed053ff6ca18951c34a86",
      "tree": "0a14c76b75c770328fadb68b75d83751121637e7",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Mar 28 18:22:57 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:54:05 2018 +0000"
      },
      "message": "Changed AAPT2 to abide by AAPT resource whitespace triming.\n\nBug: b/74331008\nTest: Created tests in ResourceParser_test.cpp\nChange-Id: Id7b387692b795774cd77452ca8cf06a8447bf3be\n(cherry picked from commit a04880771254f5169a1fe460ff40b565d9dceb0d)\n"
    }
  ],
  "next": "e5b38a676ce0fe6ee08635a7167ee5d76a225a06"
}
