)]}'
{
  "log": [
    {
      "commit": "67f94b40024e07e64fd2875b7382b762805bebae",
      "tree": "02be1e3f80ad96ee835ce682b4960698196f5637",
      "parents": [
        "7aa64840b8a7098b4feb2587aba32dfe1504f139",
        "ec74f2fbd56a5021ab7c74bd7e65c165e287ad7f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 17 23:53:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 17 23:53:04 2018 +0000"
      },
      "message": "Merge \"Fix incorrect proto apk loading\""
    },
    {
      "commit": "ec74f2fbd56a5021ab7c74bd7e65c165e287ad7f",
      "tree": "02a209b2729d37ee6d2453f543b9d84ad80a7b11",
      "parents": [
        "bbcfda0d35e83b95b2acc742c36ced3f92700ce9"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 17 09:30:01 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 17 09:30:01 2018 -0700"
      },
      "message": "Fix incorrect proto apk loading\n\nIf a proto apk is missing resources.pb, AAPT2 would fail to detrmine the\napk format because of an incorrect check. This fixes that check and\nremoves the checking fuction from the LoadedApk header.\n\nBug: 117820549\nTest: removed resources.pb from proto apks and confirmed that loading in\napks still works\n\nChange-Id: If3628a821e7b59c7dfcbefb502b6080be083cec1\n"
    },
    {
      "commit": "9ad6ab595d02c2d8a2b5a97266acc4d261b8928d",
      "tree": "82153599744d02d6c6812b01b522d6da2db0b9c3",
      "parents": [
        "cd75edb817892de713f433b35527a5e2d193bb49",
        "fa5b2040297119265bbb34cc25c79098c431ec08"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 16 18:01:26 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 18:01:26 2018 -0700"
      },
      "message": "Merge \"Stop using DIST_DIR directly, use dist-for-goals instead\" am: a8f2601d28 am: 9b767e275e\nam: fa5b204029\n\nChange-Id: Ic052f5d1de317c2f271f5a2df83c733c79978679\n"
    },
    {
      "commit": "a8f2601d282018ff5e27a4f56f059701bc16afbe",
      "tree": "3f517886066c3791c3c85b4a9a61866bc051e165",
      "parents": [
        "e5688052098f96e91feb1c6b9242153f15ca586f",
        "5cc170017128c25eb4ee887855444cbfcb930893"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 17 00:18:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 17 00:18:07 2018 +0000"
      },
      "message": "Merge \"Stop using DIST_DIR directly, use dist-for-goals instead\""
    },
    {
      "commit": "d4bf08501a4383f80131c87ea54e160186379def",
      "tree": "b7e2a7b9e02a8569108871a8f98f96d5ea1d0d17",
      "parents": [
        "c5f8fa9d8142170679fc9584a23916cd8681de83",
        "05aebf46b45b2abb48e883bc495907be223a5e0c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Oct 12 16:42:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 12 16:42:34 2018 +0000"
      },
      "message": "Merge \"Preserve compression of xml files in convert\""
    },
    {
      "commit": "05aebf46b45b2abb48e883bc495907be223a5e0c",
      "tree": "6aa8cc9892f07832b763cc50d913b0e09eda6f26",
      "parents": [
        "167aa777b038a9833127a975c747d90f35aa5069"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 15:08:41 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 11 17:14:29 2018 -0700"
      },
      "message": "Preserve compression of xml files in convert\n\nRespect the compression the original compression of xml files when using\naapt2 convert. Uncompressed files should remain uncompressed, and\ncompressed files should remain compressed.\n\nBug: 117289326\nTest: manual\nChange-Id: I81b431b4a4abd81f5694ea7dc3b3c6ec8c13ca32\n"
    },
    {
      "commit": "e75f2f504e4d119dc83d077802e62031efb9d300",
      "tree": "7dc043ba5f0e34433e90d88249c1a4dfa1198b48",
      "parents": [
        "4d9823f3eb12d27610770ea315512e460d8dbab3",
        "f5c86dc1c113dc2a898311ee4d446a9ab3ed8e72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 10 22:29:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 10 22:29:57 2018 +0000"
      },
      "message": "Merge changes from topic \"aapt2-manifest-elements\"\n\n* changes:\n  Remove workarounds for b/79755007\n  AAPT2: Add the rest of supported manifest elements\n  AAPT2: Add supported manifest elements\n"
    },
    {
      "commit": "b14c8879746474fc021a6a1c869e153a4d347d3c",
      "tree": "94ce6086c7de4b877cdf17ca15d3f07dac833f33",
      "parents": [
        "62a5d4249f531065dc97c2f7e8b9ab349aa1888d",
        "5c541f6e36c049d2a00628083ca0534bf39db971"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "message": "Merge \"libandroidfw: move ConfigDescription from aapt2 to libandroidfw\""
    },
    {
      "commit": "62a5d4249f531065dc97c2f7e8b9ab349aa1888d",
      "tree": "d5e172014bc7cc5c2eac8312c27e32bc59d83301",
      "parents": [
        "16fcd3dcff4026fe6239478a5901fa121f2439e7",
        "668ec5bd3bd9d5fe6ebf46985eacd3d8d81af937"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "message": "Merge changes from topic \"idmap2-prerequisites\"\n\n* changes:\n  AssetManager2: optionally keep non-matching configs\n  AAPT2: optionally keep resources without default value\n  libandroidfw: add resource ID iterator\n"
    },
    {
      "commit": "5cc170017128c25eb4ee887855444cbfcb930893",
      "tree": "bc5d1b7b079082c3a178db9ea210b8a0ab239487",
      "parents": [
        "16fcd3dcff4026fe6239478a5901fa121f2439e7"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 09 13:53:53 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 09 14:28:35 2018 -0700"
      },
      "message": "Stop using DIST_DIR directly, use dist-for-goals instead\n\nAs a preparation in refactoring how we handle dist, I\u0027m making\neverything use dist-for-goals. In this case, instead of fully relying on\na phony rule, write the gtest xml into an intermediate folder, and use\ndist-for-goals to copy that into the dist dir.\n\nBug: 117463001\nTest: DIST_DIR\u003ddist m aapt2_run_host_unit_tests dist\nTest: DIST_DIR\u003ddist m aapt2_run_host_unit_tests dist   (reruns test)\nChange-Id: I166c2b3088703875c6028c3479aec7cf09f3f635\n"
    },
    {
      "commit": "13e6a1dc3e25040a16d0fef47e909f08179bb9ce",
      "tree": "6167744ee5676ba69d8501d3eda52b192399c46a",
      "parents": [
        "c997fc62e06f1fb2eadbceb6e7dfaa71fb2cf080"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Tue Sep 25 16:11:40 2018 -0700"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Tue Oct 09 13:55:31 2018 -0700"
      },
      "message": "Add style parents dump command.\n\nThis command prints out the parent graph of a given style\n\nTest: out/host/linux-x86/bin/aapt2 dump styleparents \\\n    --style Widget.MaterialComponents.TextInputLayout.FilledBox \\\n    out/target/product/generic_x86/system/priv-app/SystemUIGoogle/SystemUIGoogle.apk\nChange-Id: Ib2ace7e90bee6f1c4b6a184edc591b1a3993db75\n"
    },
    {
      "commit": "1e7b9347d7cbaf94760ebd9b5af1e5df2e5173ea",
      "tree": "8d1e093d75034b31e7b072f7f6ad1246b1e0c5ae",
      "parents": [
        "e0017d64ee950fccc6c34da4f266f099671e2768",
        "214846df59118ebe6b75706ea3505a8bb3b2f93c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 19:15:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 19:15:47 2018 +0000"
      },
      "message": "Merge \"Created resuable DumpApkCommand and added \"badger\"\""
    },
    {
      "commit": "8cf68fcac11fb0e3af1a924349108e4b28f4798b",
      "tree": "e9e4e66735e01d9abd5ac51734000377a4c9c44c",
      "parents": [
        "96af49eb0179d672eae72aa517946475697ee463",
        "ca7411c0e9b2d4b165b8dfe0b0f5d08e936986a7"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 10:51:55 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 09 10:51:55 2018 -0700"
      },
      "message": "Merge \"Add rtmitchell to AAPT2 OWNERS\" am: 0d3f4e61c9 am: f1aadaf8c5\nam: ca7411c0e9\n\nChange-Id: Ie50f8397291a83194c556e7647fe071788ebcdd9\n"
    },
    {
      "commit": "214846df59118ebe6b75706ea3505a8bb3b2f93c",
      "tree": "993d34675e462c8e535b8b8ee543c7b22328e4fe",
      "parents": [
        "99ecc121bca092afb2ace650f879f437c9d3ff9b"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 19 16:57:01 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 10:51:25 2018 -0700"
      },
      "message": "Created resuable DumpApkCommand and added \"badger\"\n\nThis change refactors the dump commands to inherit from a base\nDumpApkCommand and adds a command that prints out an ASCII\nimage of a badger if the user wrote \"badger\" instead of\n\"badging\". The command is hidden from the help menu.\n\nBug: 73535002\nTest: manual\nChange-Id: I9bdd8a7bbf6a4282c4933e5c478f6d1d8e32d99e\n"
    },
    {
      "commit": "96af49eb0179d672eae72aa517946475697ee463",
      "tree": "f2ba664fd73602db5fd526b8d6d3ca6f6be7abde",
      "parents": [
        "ee3fa7ed269406db5bc509b3b6ee0ad4972bafd9",
        "d8d290107a18a00631e2ef254ea1b6521202b871"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 17:32:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 17:32:29 2018 +0000"
      },
      "message": "Merge \"AAPT2: optionally keep resources without default value\""
    },
    {
      "commit": "f99eda450f172f13affa1c08ebea9c3be00ac4b6",
      "tree": "5b7872322e5d57fb2aa8b7e66d0a81ecbb4d7e2a",
      "parents": [
        "3f1f4fc11d2e19c4b297a97d21293d05ac3db622"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Mon Jun 11 14:13:37 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Oct 09 14:02:14 2018 +0000"
      },
      "message": "AAPT2: optionally keep resources without default value\n\nTeach \"aapt2 link\" about a new flag --no-resource-removal. When given,\naapt2 will not filter out resources that lack default values. This is\nuseful mostly when building overlay packages that define resources for\nnon-default configurations, such as only for values-sv.\n\nTest: manual: build package with resource only in values-vs, verify apk with aapt2 dump\nChange-Id: Idc513bcb3f43bbff7f073163562c3dfccdb9bc9b\nMerged-In: Idc513bcb3f43bbff7f073163562c3dfccdb9bc9b\n"
    },
    {
      "commit": "d8d290107a18a00631e2ef254ea1b6521202b871",
      "tree": "aac2780bfc007881466bdda6575ee1470f8d5712",
      "parents": [
        "ec5c04f4ab781938123e5f68569048cf65fddc14"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Mon Jun 11 14:13:37 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Oct 09 07:01:17 2018 -0700"
      },
      "message": "AAPT2: optionally keep resources without default value\n\nTeach \"aapt2 link\" about a new flag --no-resource-removal. When given,\naapt2 will not filter out resources that lack default values. This is\nuseful mostly when building overlay packages that define resources for\nnon-default configurations, such as only for values-sv.\n\nTest: manual: build package with resource only in values-vs, verify apk with aapt2 dump\nChange-Id: Idc513bcb3f43bbff7f073163562c3dfccdb9bc9b\n"
    },
    {
      "commit": "5c541f6e36c049d2a00628083ca0534bf39db971",
      "tree": "b96859ed3ac2264eaae528d3eaf11f7a0901aeb0",
      "parents": [
        "61b9b6c9eb7acb7b5f260f43b04d31d17bb59557"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Wed Jun 20 08:46:41 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Oct 08 09:56:09 2018 -0700"
      },
      "message": "libandroidfw: move ConfigDescription from aapt2 to libandroidfw\n\nThis is to allow idmap2 to access ConfigDescription.\n\nTest: libandroidfw_tests\nTest: aapt2_tests\nChange-Id: I54210bbbd8dad5903cb7100807df977efa394ad5\nMerged-In: I54210bbbd8dad5903cb7100807df977efa394ad5\n"
    },
    {
      "commit": "6d659e8cebf8037d8ba98ffc6e30fe18e83b0575",
      "tree": "44bb82e5930c571c2175f9235c36babe40b72d57",
      "parents": [
        "a60c94aab934ae67aee981b771c9da2a46baef9f",
        "24c9aa65411207067f509c5e88ad31b303d26fcd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 08 15:41:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 08 15:41:13 2018 +0000"
      },
      "message": "Merge \"libandroidfw: move ConfigDescription from aapt2 to libandroidfw\""
    },
    {
      "commit": "24c9aa65411207067f509c5e88ad31b303d26fcd",
      "tree": "9a7405282c003f0c360c95bd051681733d765919",
      "parents": [
        "ec5c04f4ab781938123e5f68569048cf65fddc14"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Wed Jun 20 08:46:41 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Oct 08 06:50:22 2018 -0700"
      },
      "message": "libandroidfw: move ConfigDescription from aapt2 to libandroidfw\n\nThis is to allow idmap2 to access ConfigDescription.\n\nTest: libandroidfw_tests\nTest: aapt2_tests\nChange-Id: I54210bbbd8dad5903cb7100807df977efa394ad5\n"
    },
    {
      "commit": "b61b0e57313268132af94e9d8a5e3ee59d430ce3",
      "tree": "133d37b086bcbbe9c6786a7941d9a1a2c29372c8",
      "parents": [
        "683af643fab49515608c62673ea24c12ec0ba278",
        "813d7503c828f9d5f88e04fe7f47932ad4abc506"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 05 00:45:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 05 00:45:06 2018 +0000"
      },
      "message": "Merge \"Implement issue #112113117: Ad library dependency declaration in manifest\""
    },
    {
      "commit": "813d7503c828f9d5f88e04fe7f47932ad4abc506",
      "tree": "857d462cea8445911e9ce18ebde010ae7bdf92ba",
      "parents": [
        "1d3ebe257c0475c88ff1702e5680cfd7b847ecfd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 02 16:59:46 2018 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 04 15:27:15 2018 -0700"
      },
      "message": "Implement issue #112113117: Ad library dependency declaration in manifest\n\nYou can now do a new form of \u003cuses-package\u003e that allows you to\nspecify a type of package along with required cert digests (like\nuses-static-library).\n\nThis defines the new attribute needed for this and XML tag, and\nupdates aapt2 to actually allow uses-library in the manifest and\noutput this data with \"dump badging\".\n\nWhile doing this I realized that \"dump badging\" was not printing\nthe data for uses-static-library or uses-library, so do those too.\n\nBug: 112113117\nTest: manual\nChange-Id: I5d02010aad9cb44675504a317df9cced421be8a1\n"
    },
    {
      "commit": "2250c93f14d576bbba657e4f05765bd8a21a6b20",
      "tree": "848d34e6d0300e10fdcaf1a0edec2df7c85dc4c7",
      "parents": [
        "c79b4690dcdb52a4409b6f0b6dbc4666836ff434"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:07:40 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 13:15:23 2018 -0700"
      },
      "message": "Fix badging meta-data value\n\nInteger meta data values were not printing correctly and instead were\nprinting as empty strings. Attempt to retrieve the integer value of the\nattribute if the value is not a string.\n\nBug: 117260085\nTest: manual\nChange-Id: I1cef672e03d07728819ca584b484dc372984c823\n"
    },
    {
      "commit": "6d0dbbbab3616f4b61a0e243cd150211406b9b5d",
      "tree": "d58d96e902ce93c95940042b8ce0bd407baa1108",
      "parents": [
        "4ddd969fb9d2dc75088b5acca13c3921a1e94bf6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:54:29 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:54:29 2018 -0700"
      },
      "message": "Add rtmitchell to AAPT2 OWNERS\n\nPer talks with Svet, it is time I became a co-owner of AAPT2 with\ntoddke. I look forward to continuing to support and improve AAPT2.\n\nChange-Id: I3a0f1c8a708abc41045b95dc958dbeb96a5160ff\n"
    },
    {
      "commit": "5c5f0cdd0404a856638df69d6ef115192e57692c",
      "tree": "a0224dd31400a94f37b2de01be71cf82d800dd6d",
      "parents": [
        "8b7e1a88038ff5894bd523cb4caadfd12f58fe58",
        "0ce89734d111ce3a9529254ccc9b8ef33fdeba73"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 20:56:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 03 20:56:06 2018 +0000"
      },
      "message": "Merge \"Fix failing Windows tests\""
    },
    {
      "commit": "8b7e1a88038ff5894bd523cb4caadfd12f58fe58",
      "tree": "43f794a5296b376f534a1636a2bd4d3d15f71ab7",
      "parents": [
        "07547c6c5804d644db35f91bb3eb974e9bdc6c04",
        "7e5236dc563595f1dca7ed3e6cb87b6ce995c402"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 20:54:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 03 20:54:14 2018 +0000"
      },
      "message": "Merge \"Restore Proguard behavior and add minimal flag\""
    },
    {
      "commit": "0ce89734d111ce3a9529254ccc9b8ef33fdeba73",
      "tree": "94536a693f37675e6f662746c951c9227c4069c8",
      "parents": [
        "88f0f6c9b1d2dfecd4f0bdb663f01a098a59fa83"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 09:20:57 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 11:35:37 2018 -0700"
      },
      "message": "Fix failing Windows tests\n\nSome tests were not written to run on Windows correctly. Compile also\nhas a bug that caused using the --zip flag to fail on Windows.\niswspace does count the non breaking space as Whiespace on Windows but\nnot on Unix based systems\n\nBug: 117156986\nChange-Id: I999375162bdfdf86fb25992ee88e2962ab90b577\nTest: aapt2_tests and wine aapt2_tests.exe\n"
    },
    {
      "commit": "56e559862dbddeaf90e67f5bcc4520997809cbd7",
      "tree": "c22117cb734d14929a125d1f347121b18bc2482d",
      "parents": [
        "f768ba4f7a471260f576b061406b834ff8b410b5",
        "f6fe9b6dabced73d5bc61a86dbf60cb060bc2d04"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 02 17:23:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 02 17:23:32 2018 +0000"
      },
      "message": "Merge \"Use empty data if file in zip has length 0\""
    },
    {
      "commit": "3b761c6b3b133c20fd1aa6235dd029435ec2f9cc",
      "tree": "72ffd699167b828968852f172273196ba12eef8f",
      "parents": [
        "77a0e97fb44a10333b8a036fa6a69024e870f186",
        "07a7250da3a0c08148bbf7efb915eac27e473305"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 18:59:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 18:59:22 2018 -0700"
      },
      "message": "Merge \"Add noexcept to move constructors and assignment operators.\" am: 9166e89374 am: 15dcc77fee\nam: 07a7250da3\n\nChange-Id: I74a6b6e53ba4f22b79b855e146aa260b2eaddb27\n"
    },
    {
      "commit": "c691c0528e708a47641b98f9cd1227bb92873a69",
      "tree": "1548695348ef61ab4338469c40e673f40ab4db6c",
      "parents": [
        "7891b6a95570615d09a2304e723066c62b920398",
        "7472303ff4b129ceafc3590f766659f2ec56d855"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Oct 01 18:00:49 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 18:00:49 2018 -0700"
      },
      "message": "Merge \"Do not use StringPiece in ExtractJavaIdentifier\" am: 20ecc6397b am: 206ccf1f61\nam: 7472303ff4\n\nChange-Id: Idd910ad9fb743093f8e43ddcdf5770722b4393e6\n"
    },
    {
      "commit": "9166e8937443f891cb20d8821d17ce5af33793ea",
      "tree": "d6c7492f0f0ac55de5241ab720e276cbd6120187",
      "parents": [
        "956791cee8dd0a7a0ab91f42abfbac404a50ec97",
        "fc81626ba6851f52c72c9858edf3f6818d66cf82"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 02 00:37:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 02 00:37:46 2018 +0000"
      },
      "message": "Merge \"Add noexcept to move constructors and assignment operators.\""
    },
    {
      "commit": "20ecc6397b33b39700e2de4dae14be5398bbc007",
      "tree": "abdd972f8bc78c2378864f6b28b5ece4006685b4",
      "parents": [
        "417b7b14bb0f3f3e5e0ad2e46848230e944a7ae9",
        "9ba5cb4796a66b387af1f9350134f742f490aa7f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 01 23:37:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 01 23:37:31 2018 +0000"
      },
      "message": "Merge \"Do not use StringPiece in ExtractJavaIdentifier\""
    },
    {
      "commit": "fc81626ba6851f52c72c9858edf3f6818d66cf82",
      "tree": "30551addf9eeb23a99149d1ca04c644285dacaea",
      "parents": [
        "6c35ea901c364f14198009b00b9e838842516911"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Sep 25 12:01:21 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 20:23:02 2018 +0000"
      },
      "message": "Add noexcept to move constructors and assignment operators.\n\nBug: 116614593\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ic3993d88eb3066aef402d74c4d543c56a1dfd5c3\n"
    },
    {
      "commit": "63c6be63a4683b094659639bb48309821ce47a46",
      "tree": "1ad6eece833d4bb88b8e02b107514d997f6dcce0",
      "parents": [
        "d43d0b0de11f876eb00c410ecd8abf2105091db4",
        "5d63c53071be5152b1e4771a7db17752b20f2c6f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 15:46:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 26 15:46:37 2018 -0700"
      },
      "message": "Merge \"Change FileStream test buffer from char* void*\" am: b839befd7b am: 47be78e523\nam: 5d63c53071\n\nChange-Id: I79fed846a0d7bd20be13a5d3845bfe1a171f5b62\n"
    },
    {
      "commit": "8f37734cf48c2ff15e8654cfa26fa4baa195d348",
      "tree": "93714e00f737a56b3ff190ed54757e26e828da6b",
      "parents": [
        "31830456cdb94cbe2a50debf5eaee5cd54dd7d3c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 10:26:53 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 14:54:45 2018 -0700"
      },
      "message": "Change FileStream test buffer from char* void*\n\nIt seems like GoogleTest prints string parameters before checking them.\nThis can be a problem in FileStream tests since these buffers are not\nnull terminated.  ASan reports heap-buffer-overflow.\n\nTest: m SANITIZE_HOST\u003daddress\nout/soong/.intermediates/frameworks/base/tools/aapt2/aapt2_tests/linux_glibc_x86_64_asan/aapt2_tests \\\n      LD_LIBRARY_PATH\u003dout/soong/.intermediates/external/libcxx/libc++/linux_glibc_x86_64_shared\nout/soong/.intermediates/frameworks/base/tools/aapt2/aapt2_tests/linux_glibc_x86_64_asan/aapt2_tests\n\nChange-Id: I9a1956d815729de23c7038fb0d498240eb917070\n"
    },
    {
      "commit": "7e5236dc563595f1dca7ed3e6cb87b6ce995c402",
      "tree": "a4a5a3779d4607a46d861ac290afa0fecdca40e9",
      "parents": [
        "d5180a5ec2ca69d48c468be8b2bb35ded12c50f2"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Sep 25 15:20:59 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Sep 25 15:20:59 2018 -0700"
      },
      "message": "Restore Proguard behavior and add minimal flag\n\nWe previously changed AAPT2 to correctly only generate keep rules for\nthe constructors required to inflate the different views. This cause\nprojects that did not have keep rules for the other constructors that\nwere accessed through reflection to have runtime crashes. This change\nadds a flag to the link stage (--proguard-minimal-keep-rules) that\nallows AAPT2 to only keep the constructors required for layout\ninflation. If the flag is not present, then AAPT2 will generate less\nspecific keep rules than keep all constructors.\n\nBug: 116201243\nTest: aapt2_tests\nChange-Id: I8bb5cdf8446518ab153ea988e1243ca9494258c7\n"
    },
    {
      "commit": "9ba5cb4796a66b387af1f9350134f742f490aa7f",
      "tree": "9526df3430e982770a42719f2dc6cc198353950b",
      "parents": [
        "4a2dd10d834529311bf0daa4d5fa7c81f903bf61"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Sep 24 15:20:15 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Sep 25 13:21:35 2018 -0700"
      },
      "message": "Do not use StringPiece in ExtractJavaIdentifier\n\nBug: http://b/91353691\n\nAfter assigning the result of TransformToFieldName to \u0027result\u0027, the\nunderlying storage is destroyed after the \u0027if\u0027 statement of the function\ncall.  \u0027result\u0027 ends up with garbage if the identifier has a \u0027-\u0027.\n\nManifestClassGeneratorTest.NormalizePermissionNames is broken for this\nreason in 32-bit Windows when using libc++ and 32-bit Linux.  ASAN also\nreports this failure for both 32-bit and 64-bit linux.\n\nTest: Run test on the cases mentioned above and ensure all of them pass.\nChange-Id: I69163c423c1171b7ac7838f2abe06bdf8058df4c\n"
    },
    {
      "commit": "f6fe9b6dabced73d5bc61a86dbf60cb060bc2d04",
      "tree": "453eb802aa09764f91708c0b4d72edc37b61c1f7",
      "parents": [
        "d5180a5ec2ca69d48c468be8b2bb35ded12c50f2"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Sep 24 12:13:31 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Sep 24 13:41:35 2018 -0700"
      },
      "message": "Use empty data if file in zip has length 0\n\nMmap fails when the length of a file in a zip is 0, so use an\naapt::io::EmptyData when the file length is 0.\n\nBug: 113094267\nTest: manual\nChange-Id: I2c1071293bf9b0fe33e8c279c8d78ff906fba5d6\n"
    },
    {
      "commit": "23ad8d73ac7bdc614073263abab207823a31c161",
      "tree": "16d182f974e65ec280dfc1cf1bb012e47913fb87",
      "parents": [
        "536c961460ec45fd091aeaea55ea02845f5dc31c",
        "c94b7551c512ab39f95386d34ea14739403abded"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Thu Sep 20 21:01:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 21:01:15 2018 +0000"
      },
      "message": "Merge \"Add basic details on aapt2 development.\""
    },
    {
      "commit": "c95add6ddc8902e6b5b30afccae1b16aa0f06a18",
      "tree": "01d423dda9ac256a5176a506c6201b5636f89d94",
      "parents": [
        "c8c4fea61f4295309895a11949d2cc538386bc39",
        "e0eba7a3bb951906476d16731a214f65b50f27f1"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 19 18:33:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 18:33:46 2018 +0000"
      },
      "message": "Merge \"AAPT2: Increase maximum proto size\""
    },
    {
      "commit": "500d3f1aeea4e5f77003ee40c0d5b183c296285c",
      "tree": "04f12ff6599d46ed11790a6a012914d765e9e3c6",
      "parents": [
        "3427156b2c6ef97771fc9692c782247f0566c56e",
        "fc225b21c1f6bdfbb3723669b9e8378fb49e11b2"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 19 00:10:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 00:10:11 2018 +0000"
      },
      "message": "Merge \"AAPT2: Added badging and permission\""
    },
    {
      "commit": "fc225b21c1f6bdfbb3723669b9e8378fb49e11b2",
      "tree": "aa24e1e30f21be4cfce5a9c213470b3002442cf7",
      "parents": [
        "a1a74cb44d1f6dd0962d0e7ef1bc0b4474fbb50c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 21 14:52:51 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Sep 18 13:17:01 2018 -0700"
      },
      "message": "AAPT2: Added badging and permission\n\nAdded the remaining dump commands to aapt2.\naapt2 dump badging [apk]\naapt2 dump permissions [apk]\n\nBug: 73351292\nTest: Diffing aapt and aapt2 output across apps from the Android tree\nChange-Id: Idee820db410ad8d777d0d250c2657e7b83112a00\n"
    },
    {
      "commit": "c94b7551c512ab39f95386d34ea14739403abded",
      "tree": "dd66d62609ec2d29bff4e514e41d7d702c9246db",
      "parents": [
        "08b171d0ff84eeac5dc60cc319d43ede0f700fb3"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Fri Sep 14 15:30:51 2018 -0700"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Tue Sep 18 10:36:13 2018 -0700"
      },
      "message": "Add basic details on aapt2 development.\n\nWriting down notes for getting started on aapt2.\n\nTest: None\nChange-Id: I15c2518bf0ba5c455b83277d24ed683bfb9e446c\n"
    },
    {
      "commit": "837cefb8c4dc44502822576191330f0a07f28e5f",
      "tree": "6f8b76abf2c8d550bcc1f0874085b540651b9088",
      "parents": [
        "6acca823b1bac6c3d08153a2ca6e2392c02a41ec",
        "9fbdf89dda658c3b21924f6e28df7401d868394a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 18 00:17:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 00:17:57 2018 +0000"
      },
      "message": "Merge \"Don\u0027t allow splitting on an empty configuration\""
    },
    {
      "commit": "9fbdf89dda658c3b21924f6e28df7401d868394a",
      "tree": "22d31299968eef57cca5cd2adf205b1a04527960",
      "parents": [
        "5ed02df4df31373d7ff7c7deb9686f9508c031df"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Aug 28 16:31:15 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Sep 17 14:16:21 2018 -0700"
      },
      "message": "Don\u0027t allow splitting on an empty configuration\n\nWhen aapt breaks out splits, it may remove the SDK constraint [if\nit\u0027s lower than the min sdk]. If that is the only constraint, we\nwould create a resource split with no constraints. Don\u0027t allow\nthat situation. There must always be _some_ constraint.\n\nBug: 113115970\nTest: atest CtsAppSecurityHostTestCases:SplitTests\nTest: aapt2_tests\nChange-Id: I424c875677c3be2a3ff5ddd39100b998bd650a4b\n"
    },
    {
      "commit": "f4b2999910974d0926cc842ae17a3b6062722d46",
      "tree": "4a15c426b75b03b6c5aded1230ca716f3124c609",
      "parents": [
        "79a85ae200d8d30bfa41a607b4acdf3b34d72814",
        "4353d61b8b90a01fc20264612aa8e5bb72cf1cdd"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 14 22:36:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 22:36:28 2018 +0000"
      },
      "message": "Merge \"AAPT2: Convert from Modified UTF-8 ResStringPool\""
    },
    {
      "commit": "4353d61b8b90a01fc20264612aa8e5bb72cf1cdd",
      "tree": "750f3cdb336170c34d0d92da7a580a7117204f31",
      "parents": [
        "342df6ddd178d55aa94e01ff94e5be00457f3440"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Sep 10 17:09:12 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 14 09:23:44 2018 -0700"
      },
      "message": "AAPT2: Convert from Modified UTF-8 ResStringPool\n\nSince ResStringPools are encoded using Modified UTF-8, retrieving\nstrings from the string pool convert the strings to UTF-8 before\nreturning.\n\nBug: 114734350\nTest: m aapt2_tests\nChange-Id: Ib459018186f4c5b40f3f3786425a335ecfb9ed02\n"
    },
    {
      "commit": "00d5548355ed5a15219ad848ab7a947ea54f82de",
      "tree": "49f1b8b155c999aae5a2263a195efee25377a48f",
      "parents": [
        "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 07 14:33:14 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 13 22:12:37 2018 -0700"
      },
      "message": "AAPT2: Add the rest of supported manifest elements\n\nAdds elemnts that are parsed in PackageParser to the manifest parsing of\nAAPT2.\n\n\u003cpackage\u003e found in \u003cmanifest\u003e\n\u003cpreferred\u003e found in \u003cmanifest\u003e\u003capplication\u003e\u003cactivity\u003e\n\nBug: 79755007\nTest: manual building of broken targets listed in the bug\nChange-Id: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\nMerged-In: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\n(cherry picked from commit 28afe682cd84c894c4da880ace41db77268400c4)\n"
    },
    {
      "commit": "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4",
      "tree": "28c4d899141ac3aeb920a03d730184f14024c59b",
      "parents": [
        "741521940a1b0d0b05b20719a38e3970917dd5ef"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jul 25 16:15:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 13 22:11:59 2018 -0700"
      },
      "message": "AAPT2: Add supported manifest elements\n\nAdds some elements present in res/values/attrs_manifest.xml to manifest\nparsing.\n\n\u003cadditional-certificate\u003e in \u003cmanifest\u003e\u003capplication\u003e\u003cuses-static-library\u003e\n\u003cmeta-data\u003e in \u003cmanifest\u003e\u003cpermission\u003e\n\u003cpackage-verifier\u003e in \u003cmanifest\u003e\n\u003crestrict-update\u003e in \u003cmanifest\u003e\n\nBug: 79755007\nTest: manual\nChange-Id: I50520a99ce5ced9908001430b2108d7a5c71f8a7\nMerged-In: I50520a99ce5ced9908001430b2108d7a5c71f8a7\n(cherry picked from commit 66f6cfb8a561a653db084b97adfa8c4d48979000)\n"
    },
    {
      "commit": "9e7af7577634a0211c0744aa86b19bcea2579802",
      "tree": "a870675f97b6db3bc6b79f30d1ea37c220d5543e",
      "parents": [
        "d75020c65f8c041c0de8a5238550211964befefe",
        "28afe682cd84c894c4da880ace41db77268400c4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Sep 13 23:50:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 13 23:50:24 2018 +0000"
      },
      "message": "Merge \"AAPT2: Add the rest of supported manifest elements\""
    },
    {
      "commit": "917caf75bee94df78ad32e16a13d67f17c4ca664",
      "tree": "cc23602a07162e1e6d71320420a195ebc854347e",
      "parents": [
        "921f354c6c0b9ee0eedc4e4a1c055a814576385d",
        "7984854750224e53e66b175ea5e399b7d307463a"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Sep 13 21:28:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 13 21:28:40 2018 +0000"
      },
      "message": "Merge \"AAPT2: Fail on invalid id names in compiled xml\""
    },
    {
      "commit": "db0cad4c3589b18deba4bedf764bfd5e781a2a2e",
      "tree": "bdc8f1c29bf2b098d7c00c5917e69ec8baba4c35",
      "parents": [
        "a1a74cb44d1f6dd0962d0e7ef1bc0b4474fbb50c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Sun Sep 09 23:06:59 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Sep 13 15:27:58 2018 +0000"
      },
      "message": "AAPT2: Fix windows multiple directory creation\n\nWhen attempting to create directories on different drives, AAPT2 would\nfail because it would attempt to call _wmkdir on the drive\n(eg. _wmkdir(\"D:\\\")). Split on directories after the drive letter\ninstead.\n\nBug: 68936311\nTest: manual testing using Android Studio\nChange-Id: Iad47f466af6f82d4ac402e9bf52853edaa9a5e0b\n"
    },
    {
      "commit": "7984854750224e53e66b175ea5e399b7d307463a",
      "tree": "4e57e9834ddce57e7eb2ba2a8dc68424bc2b7c5e",
      "parents": [
        "342df6ddd178d55aa94e01ff94e5be00457f3440"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Sep 11 10:41:09 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Sep 13 15:23:56 2018 +0000"
      },
      "message": "AAPT2: Fail on invalid id names in compiled xml\n\nAAPT2 was not erroring on invalid resource ids created in layouts with\ncreation syntax. This change causes this to error suring compile.\n\nBug: 71394154\nTest: aapt2_tests\nChange-Id: Idf16fb4bd011ed2d65e8c48f7cba0429ead5a055\n"
    },
    {
      "commit": "e0eba7a3bb951906476d16731a214f65b50f27f1",
      "tree": "b2b522f081230f8e685baea7f32fe18721b24a92",
      "parents": [
        "342df6ddd178d55aa94e01ff94e5be00457f3440"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 12 08:54:07 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 12 08:54:07 2018 -0700"
      },
      "message": "AAPT2: Increase maximum proto size\n\nDeserializing a proto form a string throws an error when 64MB have been\nread from the stream. This change removes the maximum size but shows a\nwarning when a proto is larger than 64MB.\n\nBug: 114020398\nTest: manual test with resources.pb greater than 64MB\nChange-Id: Iee397b6709d79a9338133a6136fe6e8f70a4964c\n"
    },
    {
      "commit": "28afe682cd84c894c4da880ace41db77268400c4",
      "tree": "9954502d61ed2b24eb5d127ca0aa812d4eb75103",
      "parents": [
        "a1a74cb44d1f6dd0962d0e7ef1bc0b4474fbb50c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 07 14:33:14 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 07 15:19:53 2018 -0700"
      },
      "message": "AAPT2: Add the rest of supported manifest elements\n\nAdds elemnts that are parsed in PackageParser to the manifest parsing of\nAAPT2.\n\n\u003cpackage\u003e found in \u003cmanifest\u003e\n\u003cpreferred\u003e found in \u003cmanifest\u003e\u003capplication\u003e\u003cactivity\u003e\n\nBug: 79755007\nTest: manual building of broken targets listed in the bug\nChange-Id: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\n"
    },
    {
      "commit": "bd263a40cac6728b11b4cbee83fa221540041ee4",
      "tree": "8c837452e6eca901579ce51da96ce43f438807f6",
      "parents": [
        "cca7d943cfaad5e47060d9dcfbc6f2390c854b24",
        "dea2fe3f9f8c499f12967ef0bbcec9afdbbb9ae4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 31 00:01:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 00:01:40 2018 +0000"
      },
      "message": "Merge \"AAPT2: Fix dump apk format\""
    },
    {
      "commit": "dea2fe3f9f8c499f12967ef0bbcec9afdbbb9ae4",
      "tree": "aabcc4f87ed01d9864e3ee67ec931f7687a6e5b3",
      "parents": [
        "342df6ddd178d55aa94e01ff94e5be00457f3440"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 30 13:48:54 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 30 13:48:54 2018 -0700"
      },
      "message": "AAPT2: Fix dump apk format\n\nDumping resources printed the incorrect apk type.\n\nBug: 113062289\nTest: manual\nChange-Id: I8b250a470afa26697f80b1dfa8ba677ed654a958\n"
    },
    {
      "commit": "8d4ee973fa631c13ad458a3b906d8c1319fe0913",
      "tree": "52bdaa2fda135ea05a60237c281981012bcbc0c7",
      "parents": [
        "342df6ddd178d55aa94e01ff94e5be00457f3440"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Aug 27 11:24:04 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Aug 27 22:35:34 2018 +0000"
      },
      "message": "AAPT2: Fix resource table load time regression\n\nA previous change (deee395) caused duplicate entries to be created for\nentries eith entry ids greater than 0x0ff. This is because the wrong\ndata type was used (uint8_t instead of uint16_t). This made loading in\nresources slower as well since more entries had to be iterated over.\n\nBug: 36051266\nTest: Dumping all resources in 700 apks found in the android tree took 1\nminute instead of 5 minutes. Created a test in aapt2_tests.\n\nChange-Id: I1c3d830da517a56ac3496221dbe605c72e0c6014\n"
    },
    {
      "commit": "7d64dbe87adb5432e7f642f15c6179b44dc9364e",
      "tree": "74cebf322d134e09289dda087654a4f9d0e628d4",
      "parents": [
        "e55a556061a0cb506af4e24c5dd9b0df356178c4",
        "908b7fcfa1f9ae6da1edb5613aeb1764d21e99dc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 24 19:34:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 19:34:34 2018 +0000"
      },
      "message": "Merge \"dump package name\""
    },
    {
      "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": "908b7fcfa1f9ae6da1edb5613aeb1764d21e99dc",
      "tree": "e25847acb648e897f523fdda46967ca3e123ae2f",
      "parents": [
        "6dd61f53dfc911215152fab045953d6ee3fd27e0"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Aug 24 10:11:21 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Aug 24 10:55:44 2018 -0700"
      },
      "message": "dump package name\n\nTest: aapt2 dump packagename foo.apk\nBug: 113105112\nChange-Id: Ibea429adc3a2a890be10548824583addc59ad42d\n"
    },
    {
      "commit": "ed72380fac1145a53395dbba8cb9969967a04f2f",
      "tree": "cc9a116e16fbd8a831d693d22891620d1f60bb18",
      "parents": [
        "9ac32b99ec57f98124d001eeec3dbb7451fb4088",
        "66f6cfb8a561a653db084b97adfa8c4d48979000"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 23 21:45:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 21:45:53 2018 +0000"
      },
      "message": "Merge \"AAPT2: Add supported manifest elements\""
    },
    {
      "commit": "595d12e581b5499f2b5f8bc950a9b049ef971090",
      "tree": "05516e357712ff8582e572ebbbc8ef4dff3e9c5d",
      "parents": [
        "abaa38a1f76444beaa390d004a582cab747cef79",
        "6b8d5414e0f7805827d0f971bfb7f973467b2a28"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Aug 21 03:26:41 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 21 03:26:41 2018 -0700"
      },
      "message": "Merge \"Mark symbols as dynamic for shared libraries\" am: c07d4e7118 am: 857718307c\nam: 6b8d5414e0\n\nChange-Id: I9bb2b7333abb11747d48a4ced8686052c77963aa\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": "e0936a1fda17fe5e6bbbd739a284cdb61ffb5021",
      "tree": "0415dc60834629ec24c8e916bc21fd4faabd8cff",
      "parents": [
        "93a2daf1c00286a206564a17af087688a39c0af1",
        "9f1911181ddd40c61622dfb9d120fe37190e4adf"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Mon Aug 20 17:11:01 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 17:11:01 2018 +0000"
      },
      "message": "Merge \"Include values in error message.\""
    },
    {
      "commit": "93a2daf1c00286a206564a17af087688a39c0af1",
      "tree": "86e66eb439821cc0a924a6be94ac24b4f29cfa1c",
      "parents": [
        "c5f23bfc69ea54b03bad3c469685d2031dd275d6",
        "0f7da5eda824fb86ec957cfb36f7e68c2f55ffc3"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Aug 20 16:41:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 16:41:33 2018 +0000"
      },
      "message": "Merge \"AAPT2: Set array element keys\""
    },
    {
      "commit": "9f1911181ddd40c61622dfb9d120fe37190e4adf",
      "tree": "8aeaa44caef005ec5bc60897e1ebd199727a4419",
      "parents": [
        "7dd9fce65282e8b2d35b5c660ba0f03e3c9b9b8c"
      ],
      "author": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Mon Aug 13 17:12:42 2018 -0700"
      },
      "committer": {
        "name": "Donald Chai",
        "email": "dchai@google.com",
        "time": "Mon Aug 20 03:48:47 2018 +0000"
      },
      "message": "Include values in error message.\n\nBug: 112554546\nTest: N/A\nChange-Id: I56c468a9a4f162f6ce8079d6b4b61c5ec4b8f633\n"
    },
    {
      "commit": "0f7da5eda824fb86ec957cfb36f7e68c2f55ffc3",
      "tree": "33bb1cfab30d4965e684f317ac63b8dd944c67f7",
      "parents": [
        "ccef833bbe11a6c2ea96ed324ab782b8504be895"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 16 16:10:00 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Aug 17 14:37:33 2018 -0700"
      },
      "message": "AAPT2: Set array element keys\n\nMany google3 apps using lemon resource filtering had difficulty\nconverting to aapt2. AAPT2 never set the name of the ResTable_map name\nvalue mapping.\n\nBug: 78472540\nTest: blaze build java/com/google/android/apps/gmail:Gmail_go_release\nand checking that all array resources are present\nChange-Id: I3d253a4c52c6100085e4c1083f4c36a943f11c76\n"
    },
    {
      "commit": "ead275e19fc9ffbd751b3956a84e27844b97ffe7",
      "tree": "f19915c04e52949cb29908ef1e0f6588ad98d766",
      "parents": [
        "a60283fdd1f2c67259e8b0c10d88ecfb60a1328b",
        "f3649d669059b924ce9eb3eb7909cbf0a2ed31a8"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 16 17:26:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 17:26:08 2018 +0000"
      },
      "message": "Merge \"AAPT2: Compile --zip flag\""
    },
    {
      "commit": "5d2755129dae6ff6f0061da0abe634f44054b23e",
      "tree": "1cb30f47af58b340f5598defc4b062139812954d",
      "parents": [
        "1a8a69075e8710b3457f685de3984c7028ef2ffb"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Jul 19 14:29:00 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 14 15:56:29 2018 -0700"
      },
      "message": "AAPT2: Reformatted dump command invocations\n\nUse with:\n  aapt2 dump apc [apc]\n  aapt2 dump configurations [apk]\n  aapt2 dump strings [apk]\n  aapt2 dump resources [apk]\n  aapt2 dump xmlstrings [apk] --file [file]\n  aapt2 dump xmltree [apk] --file [file]\n\nWill add permissions and badging in a later commit.\n\nBug: 73351292\nTest: Manual tests of the commands\nChange-Id: I97eec01222af14053a98bd70255f1bfecd16b1c4\n"
    },
    {
      "commit": "1a8a69075e8710b3457f685de3984c7028ef2ffb",
      "tree": "bfa1feaf4b5242f1066079236bf864556abc7795",
      "parents": [
        "14590e6d0e3b6d885be97f0635c1538a0c49cb6e",
        "83a37adfbb3c9fc139cc7881995ddd63db4caff8"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 14 22:51:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 22:51:35 2018 +0000"
      },
      "message": "Merge \"AAPT2: Loosen loading apk format requirements\""
    },
    {
      "commit": "f3649d669059b924ce9eb3eb7909cbf0a2ed31a8",
      "tree": "9c484a1b455554f6939d066a4418ec4747a7cbd3",
      "parents": [
        "196a2956b2ddee915c524e5c0f511e5ce90cc7b4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 02 16:16:45 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 14 15:42:01 2018 -0700"
      },
      "message": "AAPT2: Compile --zip flag\n\nAdded a --zip flag similar to --dir that allows resources to be passed\ninto \"aapt2 compile\" using a zip file.\n\nAlso refactored Compile.cpp to be easier to mock and test in the future.\n\nBug: 74574557\nTest: aapt2_tests\nChange-Id: Idb90cb97e23a219525bdead38220cbf7bc6f3cab\n"
    },
    {
      "commit": "dc8d0be1e273df08b6e57bffd7334b480892aae5",
      "tree": "49285684ac35f7df3315ca41d5b34413229290c1",
      "parents": [
        "eef1b6cd4b62c32def28cad49294cc6e44ebe04e",
        "eb9c9ac8b8c68ab79ce983dbe787171520ef484f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 14 18:20:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 18:20:57 2018 +0000"
      },
      "message": "Merge \"AAPT2: Update SDK development codename to Q\""
    },
    {
      "commit": "eef1b6cd4b62c32def28cad49294cc6e44ebe04e",
      "tree": "b18a67c2bd91fa8b38f148341c7c073b0f85b32d",
      "parents": [
        "08070ebd6af031e920065c9a740d24161d4d2e25",
        "70f797208ce11279f9914e871cfe654b74aa3596"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 14 18:20:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 18:20:57 2018 +0000"
      },
      "message": "Merge \"AAPT2: Adaptive icon refactor\""
    },
    {
      "commit": "eb9c9ac8b8c68ab79ce983dbe787171520ef484f",
      "tree": "b5e4873cdcbabd348e68f71fb42491de43ecb555",
      "parents": [
        "deee39507f594db017f0e1beab5c973d178387a4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 09 09:18:26 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Aug 14 09:33:22 2018 -0700"
      },
      "message": "AAPT2: Update SDK development codename to Q\n\nTest: aapt2_tests\nChange-Id: I815e0bfc786660d6ad70897287fb5fb21023068c\n"
    },
    {
      "commit": "f2c5ee5900ed5710bb0aaad31401937837fbe6fb",
      "tree": "0dd814beb6fa134d9b9e97cfde606225d642f7f1",
      "parents": [
        "031bfca15733a538b9e018c05b1b91dc5afda69e",
        "f67d486e58f93a1d45795cee04633fce5e5e2bc7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 13 18:07:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 13 18:07:38 2018 +0000"
      },
      "message": "Merge \"AAPT2: partial files contain only local resources\""
    },
    {
      "commit": "70f797208ce11279f9914e871cfe654b74aa3596",
      "tree": "40854397c7c1ad6232871e8f8a95d69a04b944b0",
      "parents": [
        "88ee680e4c8cd8f66d6117f74caf5324244cc316"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Aug 13 07:37:24 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Aug 13 07:37:24 2018 -0700"
      },
      "message": "AAPT2: Adaptive icon refactor\n\nPart of a refactor to specify sdk version for all \u003cadaptive-icons\u003e xml\nresources.\n\nBug: 79676805\nTest: build success\nChange-Id: I1cf1109103722a9562eaf6bf2dcd68d0ef8757eb\n"
    },
    {
      "commit": "66f6cfb8a561a653db084b97adfa8c4d48979000",
      "tree": "d5ddeb81e6b9ceafd6333e37234eb6e84d6a1dfb",
      "parents": [
        "07d8016861205daff0325fb5a97f1a080e668f0f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jul 25 16:15:17 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Aug 10 09:27:35 2018 -0700"
      },
      "message": "AAPT2: Add supported manifest elements\n\nAdds some elements present in res/values/attrs_manifest.xml to manifest\nparsing.\n\n\u003cadditional-certificate\u003e in \u003cmanifest\u003e\u003capplication\u003e\u003cuses-static-library\u003e\n\u003cmeta-data\u003e in \u003cmanifest\u003e\u003cpermission\u003e\n\u003cpackage-verifier\u003e in \u003cmanifest\u003e\n\u003crestrict-update\u003e in \u003cmanifest\u003e\n\nBug: 79755007\nTest: manual\nChange-Id: I50520a99ce5ced9908001430b2108d7a5c71f8a7\n"
    },
    {
      "commit": "83a37adfbb3c9fc139cc7881995ddd63db4caff8",
      "tree": "706379b92d5d73409c3d2e158fc560f720d764a1",
      "parents": [
        "deee39507f594db017f0e1beab5c973d178387a4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Aug 06 16:32:24 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Aug 09 10:57:29 2018 -0700"
      },
      "message": "AAPT2: Loosen loading apk format requirements\n\nThe Android runtime and AAPT are more lenient of apk format, allowing\nfor duplicate enty, types, and configs. This change loosens the\nResourceTable\u0027s checks on resource uniqueness when apks are loaded; not\nwhen ResourceTables are being created by aapt2.\n\nBug: 36051266\nTest: Tested using apks in bug with allow_duplicates on and off\nChange-Id: I9296417bf2dc53e1e891479a53679a0388210d50\n"
    },
    {
      "commit": "792dbbb2ab965940dd6ce9793c7d2f81453bd9d8",
      "tree": "feea2c154e71190bf050a3668decfbf2cd4fc85c",
      "parents": [
        "06ea043275c61d4121ad6264e8ec895ce9586694",
        "704090e02add5dccbad5e5edb1ff3181af073d81"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Aug 08 23:53:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 23:53:14 2018 +0000"
      },
      "message": "Merge \"AAPT2: Version code major flag\""
    },
    {
      "commit": "a9e316051b85e9c33e45ed815be94e2e9e2704e4",
      "tree": "eb026cae6f0e3ee8e6a93360df238a5069429128",
      "parents": [
        "0b015de77e40f9dc55d7add73089e4251fb43f82"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Jun 28 16:41:38 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jul 31 16:11:49 2018 -0700"
      },
      "message": "AAPT2: Do not overlay comments\n\nAlways take the original comment of a resource. Resources passed in\nthrough regular file arguments and resources added using the -R and\n--auto-add-overlay flags will keep the same comments when overlayed by\nanother resource.\n\nThis will allow R.java files to remain consistent across devices between\nproduct overlays.\n\nBug: 70641212\nTest: aapt2_tests\nChange-Id: I4ed1037a8d42f7e77d85e5c2a8ee78051053831a\n"
    },
    {
      "commit": "704090e02add5dccbad5e5edb1ff3181af073d81",
      "tree": "68ed45df5c5b156ebca0bb1a48b61e5048e31d08",
      "parents": [
        "0b015de77e40f9dc55d7add73089e4251fb43f82"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jul 31 14:59:25 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jul 31 22:06:24 2018 +0000"
      },
      "message": "AAPT2: Version code major flag\n\nAdds flag --version-code-major that injects android:versionCodeMajor\ninto the manifest if none is present or when overriding.\n\nBug: 109883459\nTest: aapt2_tests\nChange-Id: I10b27abb8fa8a99a41976c42c4d684b99978b4f9\n"
    },
    {
      "commit": "f67d486e58f93a1d45795cee04633fce5e5e2bc7",
      "tree": "e2d40be90b2a0f3890ae07b06ea51b356ee55636",
      "parents": [
        "a6f3ba1dc578c14e3ccbf61676ab7d3b54c69f1c"
      ],
      "author": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Tue Jul 24 11:54:32 2018 +0100"
      },
      "committer": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Wed Jul 25 09:50:15 2018 +0000"
      },
      "message": "AAPT2: partial files contain only local resources\n\nWhen writing a partial R file for the compiled file, only include\nresources defined locally - meaning those without a package. Do not\nwrite resources from other packages (e.g. \"android\").\n\nTest: manual\nBug: 73927419\nChange-Id: I84241352e643ca1f22a581e6847372e2a4278824\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": "58e2fbf16970d9e0c1e93f60b881765e87bfc7a6",
      "tree": "4ac5c6568a8dd55a61d12346121ebd1dddeed5f7",
      "parents": [
        "2e8c7670b12ce7075bcc34c1502d268a71f99a0d"
      ],
      "author": {
        "name": "Chris Warrington",
        "email": "cmw@google.com",
        "time": "Mon Jul 23 14:12:20 2018 +0000"
      },
      "committer": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Mon Jul 23 17:23:25 2018 +0100"
      },
      "message": "Revert \"AAPT2: Automatic Static Library Namespacing.\"\n\nThis reverts commit 481f027ddc3e0ff0e1838a9375c1286e8ad70d70.\n\nReason for revert: Not needed any more\n\nBug: 111543815\nTest: existing unit and integration tests\nChange-Id: I87b039192682636d81c2d33512495cb005c9504d\n"
    },
    {
      "commit": "24a464a9be413dfef1476fd1919e2008609de93a",
      "tree": "a4b6f646ae8088ccdb39023dd0b3058b307d3dac",
      "parents": [
        "2fea10559beacb6f47f0e6c7ad343153f86de8f0",
        "cc65b8dba6cc18faf7a47584ef3a3557ed8ce77b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 20 17:14:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 17:14:35 2018 +0000"
      },
      "message": "Merge \"Only keep necessary constructor for custom view nodes\""
    },
    {
      "commit": "41dcc4eac50c2c8ba51b5cd6677b1eac2ef1ce63",
      "tree": "b04b3c9c06d4e8803f8d6f4ea5db132108bcdd07",
      "parents": [
        "9c512f1c216e328de1da04a734d4eeba0db30db4",
        "98100c382890b1b935a17265bc6cb1be3bf69640"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 20 16:36:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 16:36:24 2018 +0000"
      },
      "message": "Merge \"Only keep methods with correct signature for more types\""
    },
    {
      "commit": "848585e1a41c52fb723d17fe5e9eb98956c614d6",
      "tree": "f053b51de3834bc85f89e0b189a0191cbf837ff1",
      "parents": [
        "bc458577c9e7f6a65aeccbe2c1a7a4d224ff399b",
        "23cc5d5dbecf34c205af40761ca762f3258f341f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jul 20 15:18:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 15:18:05 2018 +0000"
      },
      "message": "Merge \"AAPT2: Fix R.java for styleable in different package\""
    },
    {
      "commit": "cc65b8dba6cc18faf7a47584ef3a3557ed8ce77b",
      "tree": "93ee29d598e1114a9a6c2cf0bf09f0df9f666eaf",
      "parents": [
        "98100c382890b1b935a17265bc6cb1be3bf69640"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Mon Jun 11 17:05:35 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Fri Jul 20 10:44:11 2018 -0400"
      },
      "message": "Only keep necessary constructor for custom view nodes\n\nThis expands the Context+AttributeSet constructor specificity from only work on \u003cview class\u003d\u003e nodes to \u003cmy.Type\u003e nodes.\n\nBug: 37123156\nTest: make aapt2_tests\nChange-Id: I8fb950731383f86bee225333bda27baf5a7a34c5\n"
    },
    {
      "commit": "98100c382890b1b935a17265bc6cb1be3bf69640",
      "tree": "39fc1c157fb7f2be242dfb1918e271ba90752783",
      "parents": [
        "55f098118c3b4be381d48a94817b923e58b72b21"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Mon Jun 11 15:46:03 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Fri Jul 20 10:44:11 2018 -0400"
      },
      "message": "Only keep methods with correct signature for more types\n\n- For transition and pathMotion attributes the method must have Context and AttributeSet parameters.\n- For actionViewClass and actionProviderClass attributes the constructor must have a single Context parameter.\n- For Fragment\u0027s class or name attributes the constructor must have zero parameters.\n\nBug: 37123156\nTest: make aapt2_tests\nChange-Id: I34017abd182867ba95172835051d114cb2f3b3ac\n"
    },
    {
      "commit": "e4bd16028442e36b13fe6fc119393eae5840508d",
      "tree": "342a6e793238f7ea45e302192668169f71f03d29",
      "parents": [
        "cfbc767b61f5a0afab2bf1b993151d57a743ce31"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 12 09:39:14 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Wed Jul 18 12:09:17 2018 -0400"
      },
      "message": "Add rule emissions for appComponentFactory\n\nThis attribute was added in API 28 and is reflectively instantiated from a zero-argument constructor.\n\nTest: make aapt2_tests\nChange-Id: Ie9de0764165c6fe6c6fcda6cc38b0cc633f03bbd\n"
    },
    {
      "commit": "cfbc767b61f5a0afab2bf1b993151d57a743ce31",
      "tree": "e1b81dd846551342644e40ec7de7785192a81f55",
      "parents": [
        "3e2d62bd86e91f3dc62a8c323b84c4b90bf1d79e"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 12 09:26:13 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Wed Jul 18 12:09:17 2018 -0400"
      },
      "message": "Add Application name to manifest test case\n\nTest: make aapt2_tests\nChange-Id: I4df26375bdf480b7d09e9cf816b7a9feaa141115\n"
    },
    {
      "commit": "5fa2bb14ec6e2a824559909f25e6ea82a2842f5a",
      "tree": "0544bf2e6da16b978251407e581a0ad7502c4cb5",
      "parents": [
        "89c9a12826b5d0c52edb97c17ee55c317425d5b8"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Jul 12 11:24:51 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jul 13 23:41:46 2018 +0000"
      },
      "message": "AAPT2: Fix long version code bugs\n\nRefactoring areas in AAPT2 that use android:versionCode to also use\nabdroid:versionCodeMajor. Does not add versionCodeMajor command line flag yet.\n\nBug: 109883459\nTest: aapt2_tests\nChange-Id: I573fbea37491cf8c5742f9e385c66ee64c4e5166\n"
    },
    {
      "commit": "833a1a6c4a7b57431ae620fc83f4c17f6fbf6a06",
      "tree": "acac93a67f807052f0b77700195377f904ed20fa",
      "parents": [
        "53208af20d501b892b9cc9971033a9f2e2d7cf35"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jul 10 13:51:36 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jul 13 14:26:06 2018 -0700"
      },
      "message": "AAPT2: Refactor flags into commands\n\nRefactors the flag based command invocation into classes that make using\nsubcommands easier.\n\nTest: manual tests of printing\nChange-Id: Ic8df6af0be30db552e32150afebecbfeec7e1075\n"
    },
    {
      "commit": "23cc5d5dbecf34c205af40761ca762f3258f341f",
      "tree": "e137bef17cabb6139826fc2fc790217bac035755",
      "parents": [
        "53208af20d501b892b9cc9971033a9f2e2d7cf35"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Jul 12 17:16:40 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jul 13 11:19:56 2018 -0700"
      },
      "message": "AAPT2: Fix R.java for styleable in different package\n\nWhen generating the R.java file, attributes of styleables do not always\nhave package names on them. This caused a problem where when an apk\nthat was previously linked and that also contained a declare-styleable\nis linked again to an AndroidManifest.xml with a different package name,\nstyleable attributes\u0027 resource symbols could not be looked up correctly.\n\nThis change does not rename the resources but makes sure that the java\ngenerator finds the attribute symbols correctly.\n\nBug: 110877419\nTest: Created a test in aapt2_tests and verified correct behavior of\nrepro example from bug\n\nChange-Id: Ib99d84cbe44dadca86603bc610ad3f4e09e3fb11\n"
    },
    {
      "commit": "d86ea58bddea7d5608e3539fc77e3d805c0af1d1",
      "tree": "59aee68a419d4d4a4559ed50a3589abeaee3a258",
      "parents": [
        "af5753836912a1c76ac35071b8343a6d00782d9e"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jun 27 11:57:18 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Jul 02 14:14:33 2018 -0700"
      },
      "message": "AAPT2: Encode 4-byte strings in Modified UTF-8\n\nCodepoints that are encoded to 4 bytes in UTF-8 are not allowed in\nModified UTF-8. They instead should be encoded as surrogate pairs in the\nsame way that CESU-8 allows for surrogate pairs. This will also cause 4\nbyte UTF-8 codes to be represented in 6 bytes.\n\nBug: 37140916\nTest: aapt2_tests\nChange-Id: I155dc24f166139d1d36a16bac088dcfcd59eb321\n"
    },
    {
      "commit": "d6ace01c5a58d896435d87ff2ef3a632cad0550a",
      "tree": "436182ae8035a4c9010e55c8931b3051c7367e91",
      "parents": [
        "79e27cd27d0d0403da1d0ba22d7cb7e65d0ec8af",
        "cb76d734fef789bf7246c3c687f3a2d394fe284a"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Jun 25 16:10:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 25 16:10:59 2018 +0000"
      },
      "message": "Merge \"AAPT2: Fix unrecognized CDATA\""
    },
    {
      "commit": "cb76d734fef789bf7246c3c687f3a2d394fe284a",
      "tree": "08fbe6e3ae9d727ea9a9030aa1752b9826ce0c55",
      "parents": [
        "e42868974bda97f00dfd63559074bb02c1fc6531"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jun 05 10:15:04 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jun 22 14:06:02 2018 -0700"
      },
      "message": "AAPT2: Fix unrecognized CDATA\n\nThis change adds support for resources that have CDATA blocks within\ntheir values. The blocks should allow any character to occur without\nbeing escaped. It also should not effect the current state of quote\nprocessing.\n\nBug: 80326349\nTest: Created tests in aapt2_tests\nChange-Id: Ie1a00e50cffc877e2eb5f788f8d7a1bda839c0cf\n"
    },
    {
      "commit": "fdc40f52d89769709c264a0c8f081ffc0ca8c87b",
      "tree": "740cc4ae1ba80333c0cfe74905777317b5aa6f1f",
      "parents": [
        "381f62878d238f59b9b3bc39204c8141d80c337e",
        "fae24f5aa239e81ca5cf911698fbb8e71d9a986e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 18 13:38:11 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 18 13:38:11 2018 -0700"
      },
      "message": "Merge \"Fix ManifestMerger issues\" into stage-aosp-master am: 669c4d7ae7\nam: fae24f5aa2\n\nChange-Id: I66e9b74a7db9ae9a0c4040e37a3f2807b24aa391\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"
    }
  ],
  "next": "1b327db1affc2e20198a0ab3b2847fe3d03435fc"
}
