)]}'
{
  "log": [
    {
      "commit": "7cf8ca95aa587894cb80a38f9a1e4245335a9a73",
      "tree": "e67da849f916912eee7b487a450d685fd2cb9a2f",
      "parents": [
        "35312fd4c6fccaf5869b8fbf7bef9b1a6def75ba",
        "c10c0d0db24f2d3fbdeabf7aebaabf527786bba5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Apr 30 14:31:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 30 14:31:17 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix typo in manifest validation expectation\" into oc-dev"
    },
    {
      "commit": "557a0c50a0c4e0ee06f66a7fb8841953835d0e24",
      "tree": "3d904dcb98dc9805d301e6d02c021f1f6c55ee8a",
      "parents": [
        "f6bc1402edc3ec78931a6c331a2cee5fb91727c9",
        "742888f0fd9f00574049f52f6ede610888eea4ed"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 29 21:39:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 29 21:39:29 2017 +0000"
      },
      "message": "Merge \"AAPT2: binary parser should be more lenient with files\" into oc-dev"
    },
    {
      "commit": "f6bc1402edc3ec78931a6c331a2cee5fb91727c9",
      "tree": "02b06550ab95c0d2ca5ddf1b6754a7d8231e4ac3",
      "parents": [
        "53c9898e7952b966b61b0c1d74ee1186a8057a47",
        "48448e8a310e72eb2846ad0f86672ce4f0b47e47"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 29 21:04:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 29 21:04:38 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix string escaping\" into oc-dev"
    },
    {
      "commit": "53c9898e7952b966b61b0c1d74ee1186a8057a47",
      "tree": "4dda977e8de7ca5904a19d172ac9b242ce3e95b5",
      "parents": [
        "5bb8294f926dcaf4a7288ba4457d84d57bb4ab53",
        "360182156a8e188534620de1e804993a6458470d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 29 20:38:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 29 20:38:20 2017 +0000"
      },
      "message": "Merge changes I446fb6ab,Ife3bbd29 into oc-dev\n\n* changes:\n  Valid resource IDs may be negative\n  AAPT2: Workaround for findViewById with package ID \u003e 0x7f\n"
    },
    {
      "commit": "742888f0fd9f00574049f52f6ede610888eea4ed",
      "tree": "72ff2078c26fff697d37c6e50835995d0277a494",
      "parents": [
        "0ddca92018da69e7224b63cdedbf1944c63ddc34"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 15:34:52 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 15:34:52 2017 -0700"
      },
      "message": "AAPT2: binary parser should be more lenient with files\n\nSome APKs have file references that reference files that don\u0027t exist.\n\nFor now, just be lenient and ignore the files themselves.\n\nKeep the actual reference until such a time as general resource\nstripping is implemented.\n\nBug: 37749644\nTest: manual\nChange-Id: I773685acf41212405b71b064d64045fb4556dcfc\n"
    },
    {
      "commit": "c10c0d0db24f2d3fbdeabf7aebaabf527786bba5",
      "tree": "0da429493e44236f709f10ee9f7105397f5846d2",
      "parents": [
        "0ddca92018da69e7224b63cdedbf1944c63ddc34"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:54:08 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:54:08 2017 -0700"
      },
      "message": "AAPT2: Fix typo in manifest validation expectation\n\nChange expected tag from grant-uri-permissions -\u003e grant-uri-permission\n\nBug: 37714102\nTest: manual\nChange-Id: Ic0178b83fff8de961cb3fdfe38023eaf111237ee\n"
    },
    {
      "commit": "48448e8a310e72eb2846ad0f86672ce4f0b47e47",
      "tree": "42e2d993f2967ba5768530c826aab28eb12fb492",
      "parents": [
        "0ddca92018da69e7224b63cdedbf1944c63ddc34"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 26 15:13:52 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:51:23 2017 -0700"
      },
      "message": "AAPT2: Fix string escaping\n\nWe were processing escaped strings too early, before\nparsing of values into types. Now the escaped strings get\nprocessed when they are being flattened.\n\nBug: 37715376\nTest: make aapt2_tests\nChange-Id: Ic59aa2e3a20c40756c219752ff74b2a4f8a602ba\n"
    },
    {
      "commit": "1e4b0e54a3db31bdbcb9385bf22bab4b96096d1f",
      "tree": "3c87c9080c067aacf8235a07214d3edc35bd86ed",
      "parents": [
        "0ddca92018da69e7224b63cdedbf1944c63ddc34"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 27 15:01:10 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:47:48 2017 -0700"
      },
      "message": "AAPT2: Workaround for findViewById with package ID \u003e 0x7f\n\nThe entire View code base checks IDs against View.NO_ID except\nfindViewById(), which checks to see if the ID is negative.\n\nAny package ID \u003e 0x7f is interpreted as a negative number in Java\n(no unsigned ints), so this check prevents the use of IDs \u003e 0x7f.\n\nfindViewById is final, so support library workarounds are not possible.\n\nInstead, IDs (@id/foo) are just sentinels, their values don\u0027t matter.\nIf building for pre-O devices, rewrite any references to these IDs of\nthe for 0xPPTTEEEE, where PP \u003e 7f, to 0x7fPPEEEE.\n\nThe symbol table will check for potential collisions against the base\nAPK, so this should be safe.\n\nBug: 37498913\nTest: manual\nChange-Id: Ife3bbd29db287757ef8a2ffd83053d97f1db2613\n"
    },
    {
      "commit": "820d72adc0eccbfe4ac4238cdc89b7680ea03d9e",
      "tree": "d7f39f1675f4b0f20f764dfa8b70dfb1a26e14e5",
      "parents": [
        "3dfd8275749a734380282437579156b6b35ccc51"
      ],
      "author": {
        "name": "Chris Warrington",
        "email": "cmw@google.com",
        "time": "Thu Apr 27 15:27:01 2017 +0100"
      },
      "committer": {
        "name": "Chris Warrington",
        "email": "cmw@google.com",
        "time": "Fri Apr 28 10:06:38 2017 +0100"
      },
      "message": "AAPT2: Error reporting through JNI.\n\nRather than relying on stderr being wired correctly.\n\nTest: Tests for JNI integration in studio-master-dev.\nChange-Id: I1c7e7130bc4e56d61de259a9596bee3a6b3520fb\n"
    },
    {
      "commit": "e7172ff9fb4103339aa4095ab543ad4d259b1ebc",
      "tree": "57f18b44e7d6b32d10f310038fec9f449e87b004",
      "parents": [
        "afd8d9e2b289fe623118e849e0915f940a19bf2f",
        "4ca56978a9aea3f021a54ed9265de10811984d94"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 27 23:45:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 27 23:45:44 2017 +0000"
      },
      "message": "Merge \"AAPT2: Add workaround for non-standard package IDs\" into oc-dev"
    },
    {
      "commit": "4ca56978a9aea3f021a54ed9265de10811984d94",
      "tree": "1634b01c81b725ff3d286b7a8bf6cd16682cf7eb",
      "parents": [
        "9e55fcbdc254da098bb792f460296ff0649c3b00"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 26 21:49:53 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 26 21:55:31 2017 -0700"
      },
      "message": "AAPT2: Add workaround for non-standard package IDs\n\nThe dynamic ref table used to map build-time IDs to runtime IDs\nis mainly used for shared resource libraries and has a few built-in\nmappings (app 0x7f and framework 0x01).\n\nUsing a non-standard package ID like 0x80 causes a failure in package ID\nlookup. The solution is to ship the dynamic_ref_table with an identity mapping\nwith any resource table that uses a non-standard package ID.\n\nAdds some tests to ensure this works correctly.\n\nBug: 37498913\nTest: make libandroidfw_tests\nTest: make aapt2_tests\nChange-Id: Ic3f67942384d34e7fdcbc94ded360e940e3ebc8a\n"
    },
    {
      "commit": "b9dbee430dda735b8a92d150349381a9e147c682",
      "tree": "0f8494e80a3b0cb0a755b35895a410541ed23a3c",
      "parents": [
        "7beb895d75232262d45696c43e5135a8fabb51b8",
        "776aa959c7122f23f3c58443ea1b673127ed01f2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 25 15:26:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 25 15:26:24 2017 +0000"
      },
      "message": "Merge \"AAPT2: Add better error message when processing invalid files\" into oc-dev"
    },
    {
      "commit": "7beb895d75232262d45696c43e5135a8fabb51b8",
      "tree": "9b8084718e87602e1b3b3c2f972526a8d08b60aa",
      "parents": [
        "4f86a894e124989ce7c4d1d8f9f6536a9f820399",
        "25783cab0b8a1e294d0706d3630756a16668a47b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 25 15:25:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 25 15:26:01 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow \u003cpath-permission\u003e tag in \u003cprovider\u003e\" into oc-dev"
    },
    {
      "commit": "776aa959c7122f23f3c58443ea1b673127ed01f2",
      "tree": "39be8ea438a97a730ff65bf052e234576b4e0ad3",
      "parents": [
        "57b999605c373b4798f29174c0fddb47ddc2c263"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 24 15:09:32 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 24 22:19:53 2017 +0000"
      },
      "message": "AAPT2: Add better error message when processing invalid files\n\nInstead of showing a failed mmap error, show a better error when a file\nbeing compiled is a directory or other unsupported file type.\n\nBug: 37626838\nTest: manual\nChange-Id: Ib9acf5f48ab5da37e79411c6a9f37c51f00f925f\n"
    },
    {
      "commit": "25783cab0b8a1e294d0706d3630756a16668a47b",
      "tree": "6c08bcb4af1dd470bd8dec7dcc6127f401410e52",
      "parents": [
        "3fc176913a947fae8df28d19d896216a07491a8f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 24 13:33:47 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 24 22:18:48 2017 +0000"
      },
      "message": "AAPT2: Allow \u003cpath-permission\u003e tag in \u003cprovider\u003e\n\nFix a typo where the wrong tag name was expected under \u003cprovider\u003e\nin AndroidManifest.xml.\n\nBug: 37627250\nTest: manual\nChange-Id: I45afd09b4ff25feb320f7991e16c4172e20dd417\n"
    },
    {
      "commit": "b522f04bc2a581e2877bef4a44ac00b827f879ed",
      "tree": "4cb0aa93571e8abfdc485ad6e3f2070ba5569347",
      "parents": [
        "9431c476f35431f45a13c257b305e9999821190d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 21 16:57:59 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 21 17:02:09 2017 -0700"
      },
      "message": "AAPT2: Allow truncating of package names\n\nResTable_package header only allows 127 UTF-16 characters, so AAPT\nwould truncate the real package name to fit. AAPT2 would error-out\non any package name longer than 127 UTF-16 characters. This strictness\nis not required except when building shared libraries, which use the\nfull package name as a way of identifying the runtime assigned\npackage ID to package name mapping.\n\nBug: 36940145\nTest: make aapt2_tests\nChange-Id: I7d2b7e50c7ab30c6a6c4f15d310e711f68e35091\n"
    },
    {
      "commit": "9431c476f35431f45a13c257b305e9999821190d",
      "tree": "7cb0433f19dcb7761dccfad88eb33a0897e93e69",
      "parents": [
        "aca246565a7426654685ff0653519f40af8a3b01"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 21 16:08:02 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 21 16:09:24 2017 -0700"
      },
      "message": "AAPT2: Make BinaryResourceParser more lenient\n\nTrailing data after the main RES_TABLE_TYPE should be logged but not\ncause an error.\n\nBug: 36945869\nTest: (aapt2 dump apk/attached/in/bug.apk)\nChange-Id: I784406a680b79630798fdb4b7ca81f9d1f2b96d1\n"
    },
    {
      "commit": "b97d51a0d2bd28f597cd81df9bbd776436d03fb6",
      "tree": "716e3d6504e69097e60df7d27ce854ce01f999c3",
      "parents": [
        "676bd21542d991edfadf8b655d481baa83d23511",
        "db091577fff5bcddac703bc8ac4f932fd53e0621"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 14 00:58:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 14 00:58:08 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow the \u0027;\u0027 separator on Windows for split args\" into oc-dev"
    },
    {
      "commit": "db091577fff5bcddac703bc8ac4f932fd53e0621",
      "tree": "9367138a0889a4c84c7ea993853eb62db099c549",
      "parents": [
        "ec8f35366851fcfea2d8b8e42821dda72bdca344"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 13 12:48:56 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 13 16:07:35 2017 -0700"
      },
      "message": "AAPT2: Allow the \u0027;\u0027 separator on Windows for split args\n\nBug: 36870463\nTest: manual (wine)\nChange-Id: I8a38545a3cac9354b41858e1840b197b60925c03\n"
    },
    {
      "commit": "62b713ed73e72ce18ae81367322e5de00aabeb07",
      "tree": "f60ba4b2dff556dba638f4cd0525749a65ad697c",
      "parents": [
        "07525d4f259934e43d10c733b203a55c6fa8e1ef",
        "ea134e08d70d156bdd17714d5f9ab9c44c91d4fa"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 13 22:53:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 22:54:02 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix order-of-destruction crash\" into oc-dev"
    },
    {
      "commit": "ea134e08d70d156bdd17714d5f9ab9c44c91d4fa",
      "tree": "6a4f5d5db064e11a303d6adb7b5e0cec2e126282",
      "parents": [
        "ec8f35366851fcfea2d8b8e42821dda72bdca344"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 13 12:55:19 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 13 12:57:06 2017 -0700"
      },
      "message": "AAPT2: Fix order-of-destruction crash\n\nMake sure that users of StringPool are destroyed before\nthe StringPool itself.\n\nTest: valgrind aapt2 optimize -o opt.apk out/target/common/obj/APPS/framework-res_intermediates/package-export.apk\nChange-Id: I140c2d32f8449028976795d5d6865d83e1409b53\n"
    },
    {
      "commit": "d1a6e6740f08025925878e29d6909f7afd996378",
      "tree": "0dabcb104b4eb50edd23ab438c917b0b99558f1a",
      "parents": [
        "07d60cce02069c111207399a292d7713a8e4d272",
        "418763ff54170484c527bf618ef2fad34fe63f97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 13 06:54:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 06:54:21 2017 +0000"
      },
      "message": "Merge \"AAPT2: Generate R.txt\" into oc-dev"
    },
    {
      "commit": "418763ff54170484c527bf618ef2fad34fe63f97",
      "tree": "fd7d16b9602e9487917058997bda65bed6551c85",
      "parents": [
        "ec8f35366851fcfea2d8b8e42821dda72bdca344"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Apr 11 17:36:53 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Apr 11 17:40:02 2017 -0700"
      },
      "message": "AAPT2: Generate R.txt\n\nIn order to support a staged rollout of support for AAPT2,\nlibraries being built the old way (merged into a single resource\ndirectory) still need to make use of the generated R.txt AAPT\nemitted. Do the same as AAPT.\n\nTest: manual\nChange-Id: Iaac1e824ddbd67e4efbab7692cddc1e4aa052f5a\n"
    },
    {
      "commit": "014d315653ac66ea1ac5810b32b099a1a5b93d4d",
      "tree": "6a87ed88afbde140b6127abe04a4065edb712d76",
      "parents": [
        "62abe8f8027ccc5a98133b93582ad23ff0573d0c"
      ],
      "author": {
        "name": "Chris Warrington",
        "email": "cmw@google.com",
        "time": "Mon Apr 10 11:49:59 2017 +0100"
      },
      "committer": {
        "name": "Chris Warrington",
        "email": "cmw@google.com",
        "time": "Tue Apr 11 09:21:29 2017 +0000"
      },
      "message": "AAPT2: expose return values through JNI.\n\nTest: Tests for JNI in the studio-master-dev branch.\nChange-Id: I709595aabf31c9c2fea659c7af20a5c50d1e3d34\n"
    },
    {
      "commit": "d0f492db038c6210c1138865d816bfb134376538",
      "tree": "1d4ed362037758111a28ecb453d527403d5d6815",
      "parents": [
        "0015a153536c51cdd66dce5e9f08d19eb517fab8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 03 18:12:45 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 10 11:59:18 2017 -0700"
      },
      "message": "AAPT2: Share split functionality between link and optimize\n\nGenerating splits should be possible to do from the optimize command.\nThis means that a lot of infrastructure around split APKs can be\nshared by both the optimize and link phase.\n\nBug: 35925830\nChange-Id: Ia88b9e4bff300a56353b2f7a4a2547c8eb43a299\nTest: manual\n"
    },
    {
      "commit": "f4dacf29cc995fad4aea8e8f25811f9ee4685d91",
      "tree": "8b75908098416f6cee9505070e409f2c6c8777f1",
      "parents": [
        "ca73ff016f29bb091cd404717b5908db4cce10d0"
      ],
      "author": {
        "name": "Mihai Nita",
        "email": "mnita@google.com",
        "time": "Fri Apr 07 08:25:06 2017 -0700"
      },
      "committer": {
        "name": "Mihai Nita",
        "email": "mnita@google.com",
        "time": "Fri Apr 07 09:27:03 2017 -0700"
      },
      "message": "AAPT2: fixing the -c flag being ignored\n\nBug: 36999175\nTest: manual\n\nChange-Id: Id9a4a00a3b37bc088d86df7c75bbe711536b980f\n"
    },
    {
      "commit": "448727bdae6a8225ed998d623d6e79c168603c4e",
      "tree": "80cd7bd936bc845991b8bf7843a616fdfbbef5d1",
      "parents": [
        "7e5205137cb9fd7b89d84f34a88e05f65ca7ff5a",
        "8049f3da712ea9c3154b57ce2276c97e749d1f2c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 05 20:43:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 05 20:43:23 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix pseudolocalization (again)\" into oc-dev"
    },
    {
      "commit": "7a7e415967ace2d554cedb4ceb76123324c0ef94",
      "tree": "9737df6901d0faa6ca8fb5b7a2d3ef5b6319cea0",
      "parents": [
        "6cf445bd3d97ea72f89bfbc7c1681f288cae28d5",
        "113ee097386380daa8f01d74916504a9a1338a63"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 19:14:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 19:14:47 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow multiple -c flags\" into oc-dev"
    },
    {
      "commit": "113ee097386380daa8f01d74916504a9a1338a63",
      "tree": "eec257e64dd728c8d4432c7ad08773d4821a92d6",
      "parents": [
        "881a623e3522e3e4f0905b606ca5c77cf899b21c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 03 19:38:25 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 03 19:38:25 2017 -0700"
      },
      "message": "AAPT2: Allow multiple -c flags\n\nAAPT allows multiple -c flags in addition to separating -c arguments\nwith commas.\n\nBug: 35671619\nTest: manual\nChange-Id: I90491968e8ea2b28e3cd6e9246bcdd62bd6d6a3c\n"
    },
    {
      "commit": "8049f3da712ea9c3154b57ce2276c97e749d1f2c",
      "tree": "cd4b22971ad876eb8421a7a5870da9e49d62c9f1",
      "parents": [
        "881a623e3522e3e4f0905b606ca5c77cf899b21c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 31 18:28:14 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 31 18:30:20 2017 -0700"
      },
      "message": "AAPT2: Fix pseudolocalization (again)\n\nPseudolocalization didn\u0027t properly handle spans in\nstrings like \"\u003csmall\u003e\u003csmall\u003eHello\u003c/small\u003e\u003c/small\u003e\".\n\nThe spans would be identical and when doing range checks\nonly one of them would be updated.\n\nSwitched to a more robust way of extracting the relevant\nchunks of a styled string. This uses a stack, which is more\nin line with the real representation in XML.\n\nBug: 34088357\nTest: make aapt2_tests\nChange-Id: Ia4e4501713e688c96a89e26e4e2b1384f4cd3889\n"
    },
    {
      "commit": "c26ace07545e5dfb830e9ea22bcdaf409acff627",
      "tree": "4353138c82dfcb7076e59154222f3b13f273f314",
      "parents": [
        "86cb762ae64d64244fe70aab01710a55a27ac205",
        "33af6c730f9f7fc51f04516c7a22cac82cb9823e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 30 00:30:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 30 00:31:01 2017 +0000"
      },
      "message": "Merge \"AAPT2: Parse an ID encoded as a map\" into oc-dev"
    },
    {
      "commit": "b1afa07745280c7a36077beda6293b69c6ba4ea2",
      "tree": "77483b34ca63be514c3ee1caa562c7fd503cd3da",
      "parents": [
        "22ea35187f7d8a55ad7ede0d0e97be65b83801be"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 13:52:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 20:56:32 2017 +0000"
      },
      "message": "AAPT2: Allow arbitrary entry names with aapt2 optimize\n\nPresumably, the apps build fine for the developers, so just\nfeed the existing names through without validation. Validation\nstill exists when building an app from source.\n\nBug: 36051854\nChange-Id: Idc64ee91b08dce67d3c28f3c5284a7afa1312df1\nTest: run aapt2 optimize on the apks from b/36051854 and build aapt2_tests\n"
    },
    {
      "commit": "33af6c730f9f7fc51f04516c7a22cac82cb9823e",
      "tree": "94f834ef6df06b8b534cb3a053de308f74793a09",
      "parents": [
        "c463bed8dbfbb5bbac791299e8997282685e64d2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 13:00:35 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 20:11:04 2017 +0000"
      },
      "message": "AAPT2: Parse an ID encoded as a map\n\nID types should not be encoded as a map. AAPT and AAPT2 emit\nIDs as boolean types.\n\nSome apps exist that for some reason have their ID types encoded\nas empty maps. This is the case only for the auto generated IDs\nfrom enum values in \u003cattr\u003e tags.\n\nAllow IDs as maps and ignore their content when processing an APK\nfor optimizing.\n\nAlso fixes an issue with expected size of the ResTable_package struct.\n\nBug: 35861796\nTest: tested against the APK in b/35861796\nChange-Id: I29a19cd9777bb10bed6766cd42e35e50e098797b\n"
    },
    {
      "commit": "27a01ef0632fc31d558d6cb91c98e6eb8457eb33",
      "tree": "4e8e43052384fbbd52334e35eae37b6f4132b4cc",
      "parents": [
        "4e8da712d9f92d207b6a23ed161d360abe477763",
        "06460ef0d7072114ea3280e1650f77f55e7223f4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 24 22:04:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 22:04:59 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix up file IO\""
    },
    {
      "commit": "06460ef0d7072114ea3280e1650f77f55e7223f4",
      "tree": "5045dafbd896153c191ee0ea14717359021175e2",
      "parents": [
        "3910adfb62b6db705878058ccbae52af0fecb172"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 14 18:52:13 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 16:53:46 2017 -0700"
      },
      "message": "AAPT2: Fix up file IO\n\nThis also enables an AAPT behavior that CTS tests have\ncome to depend on.\n\nSmall files that compress negatively (get larger) are stored\nuncompressed. Some CTS tests assume this and try to open these\nfiles by mmapping them, which is only possible if they are\nuncompressed.\n\nBug: 35461578\nTest: make aapt2_tests\nChange-Id: Id622a6150fe72477ad65d67d1bad897a8ee2ffb9\n"
    },
    {
      "commit": "ed69ce84bdfa5ba82008a9b66485ef71c953657a",
      "tree": "a255aa92ea253c3cc2ec575279d4e28adfca8c2a",
      "parents": [
        "5c690d55dd2d0286db1ba3331a64769c07636ff8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 10:55:01 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 14:51:13 2017 -0700"
      },
      "message": "libandroidfw: Fix mass logspam of ResourceTypes warnings\n\nAn overlay was incorrectly leaking its own resources into the\nframework resource package, which caused warnings for every app\nthat tried to access framework resources (all of them).\n\nThis change skips including any resources that are not overlaying\nanything (not present in IDMAP).\n\nBug: 36256974\nTest: make libandroidfw_tests\nChange-Id: I8c710af6849bb848938825aacca02799ee96c003\n"
    },
    {
      "commit": "b0c47ef8779e445865e63355ab66265461e1f2a3",
      "tree": "b0823faa314d767d90f9f0d2120c56ca57653ed0",
      "parents": [
        "1665d0f028e3a225cb117d3e227bef5c5dace2d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 06 20:05:57 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 16 15:45:16 2017 -0700"
      },
      "message": "AAPT2: Finish support for feature splits\n\n- Prefix the config split name generated from a feature split with the\n  name of the feature split.\n- Add the \u0027configForSplit\u0027 attribute to the \u003cmanifest\u003e tag of a config\n  split and give it the same name as the feature split it was generated\n  from.\n- Look for the featureSplit attribute in \u003cmanifest\u003e and automatically\n  convert it to \u0027split\u0027 and inject \u0027android:isFeatureSplit\u003d\"true\"\u0027.\n\n  Feature splits should be written like so:\n\n  \u003cmanifest xmlns:android\u003d\"http://schemas.android.com/apk/res/android\"\n            package\u003d\"com.foo.example\"\n            featureSplit\u003d\"feature_b\"\u003e\n\n        \u003cuses-split android:name\u003d\"feature_a\" /\u003e\n\n        ...\n  \u003c/manifest\u003e\n\nBug: 34703094\nTest: manual\nChange-Id: I01b5c4a9aa03a2d25ef1e87bc7874b57c9deede9\n"
    },
    {
      "commit": "b39ad7c9f66877f92ea8583aa8b7b5a8daa6031e",
      "tree": "8b444f19230497d8a12e940c2ecd7a6673386345",
      "parents": [
        "208e2644618af7474f399089c264f0da1cfb0c81"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 13 11:40:48 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 14 12:26:28 2017 -0700"
      },
      "message": "AAPT2: Add -A (assets) support\n\nLooks like the build system doesn\u0027t support assets/ for\nresources, so we will re-introduce them in aapt2, even though\nwe\u0027re just copying them around and they would be better\nsuited for inclusion in the APK when classes.dex gets inserted.\n\nBug: 35461578\nTest: CTS test android.content.res.cts.AssetManager#testAssetOperations should pass\nChange-Id: I18361d7367d476806bcf7154ee76df3f0e83b565\n"
    },
    {
      "commit": "f34b6f4f2b969b47a3f371eb9549e92ef1680d91",
      "tree": "ba2db0d2374464655c54dd7a3c24a65207e415a3",
      "parents": [
        "df2870df9ae6e5dbb7acfe3d5fd840a3317b0e66"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 16:33:26 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 07 11:06:16 2017 -0800"
      },
      "message": "AAPT2: Add --package-id flag for feature-split suppport\n\nBug: 35928935\nChange-Id: Ia8496505e61cfcfdb8f9f62366d2f36e453db111\nTest: make aapt2_tests\n"
    },
    {
      "commit": "df2870df9ae6e5dbb7acfe3d5fd840a3317b0e66",
      "tree": "0b25318bf65a84bb9cf9cb4f9cb59ec375395a3e",
      "parents": [
        "a3d279fa4b258498f3b7ee678e546a82e76cdaaf",
        "136fd0764faf7a588b4a1b479d7a8cc6fe18fcc6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 20:01:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 06 20:01:17 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix parsing ResTable_type\""
    },
    {
      "commit": "ae3c244944267e2fd5fdd7bd3e1cd09e599ee118",
      "tree": "db6a7ea886dedf49efb6ee236386eb5bd8705ed3",
      "parents": [
        "64979aacb51b7a577862b7069e2f89d7e0fe8062",
        "8f7c550e20a6edbc9af7bb48675afaf8bcb3783f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 04 00:50:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 04 00:50:51 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix Plural::Equals() method\""
    },
    {
      "commit": "136fd0764faf7a588b4a1b479d7a8cc6fe18fcc6",
      "tree": "91f7316861e5d879a627bd00578170791889c528",
      "parents": [
        "485c0feea53199b1d43db8782073044c846424c4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 13:50:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 14:01:09 2017 -0800"
      },
      "message": "AAPT2: Fix parsing ResTable_type\n\nResTable_type\u0027s size changes due to it containing\nResTable_config. Make sure we check for the minimum size\nrequired to read it.\n\nBug: 35861796\nTest: Manual (don\u0027t have an integration test harness setup yet)\nChange-Id: Ifb0cd1d732625f59835c8ed0449adb78129636de\n"
    },
    {
      "commit": "ac6edc501b61e14e3b70ccbbd4d8ed112d92b96c",
      "tree": "cadb08aa8c867bbcd359aaa8ce87997b53f9acf0",
      "parents": [
        "555bf41049bbc387d920704f7a1f23314bc84986"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 19:31:28 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 19:32:32 2017 -0800"
      },
      "message": "AAPT2: Fix escaping sequence processing in XML parsing\n\nBug: 35483813\nTest: make aapt2_tests\nChange-Id: I68baba17ab3639c220b734a2a68d86aad0dedf8c\n"
    },
    {
      "commit": "8f7c550e20a6edbc9af7bb48675afaf8bcb3783f",
      "tree": "7a04d263f79324e59a30fda3a78034159578c90d",
      "parents": [
        "555bf41049bbc387d920704f7a1f23314bc84986"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 17:45:01 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 17:45:51 2017 -0800"
      },
      "message": "AAPT2: Fix Plural::Equals() method\n\nTest: make aapt2_tests\nBug: 35902437\nChange-Id: I8797f89af58876f891f0b0c5cce85fd7781c4e24\n"
    },
    {
      "commit": "b5dc4bd49a036e3403ca17e961d2c8e13e038295",
      "tree": "e07c0d9a9718a34e2834fe6adbfd99e449cebb8b",
      "parents": [
        "9a53d03104c4535f512ec24e63afe9a965979812"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 19:29:29 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 19:54:43 2017 -0800"
      },
      "message": "AAPT2: Few tweaks to get shared-libraries working\n\nTest: manual (building shared support library demo)\nChange-Id: I4730645aa92ba1893baf67ffe35fbd4aac0f8e46\n"
    },
    {
      "commit": "d48944a745f9ed121e6bde22ef6feb3a44fbec39",
      "tree": "349c152caa68f1283535b2f9c49f5cd8a50eb59b",
      "parents": [
        "ceb9b2f80f853059233cdd29057f39a5960a74ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 21 14:22:30 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 11:41:55 2017 -0800"
      },
      "message": "AAPT2: Rename strip phase to optimize\n\n- Allow resource deduping, version collapsing, and sparse resource\n  encoding.\n\nTest: manual\nChange-Id: Ia4aa892ab5b06ba1d5ea4a6efb51b00bc3a980c4\n"
    },
    {
      "commit": "ceb9b2f80f853059233cdd29057f39a5960a74ae",
      "tree": "9093e8537319a97d8a2cbd8d4f0042c81de5ff8e",
      "parents": [
        "f9bd2944694539f1dce74d420156cc50bbb4af14"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 16 12:05:42 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 11:16:13 2017 -0800"
      },
      "message": "AAPT2: Shared library support\n\nTest: make aapt2_tests\nChange-Id: I98dddf1367e6c0ac425bb20be46e6ff05f4f2f45\n"
    },
    {
      "commit": "c8f71aa67ea599cb80205496cb67e9e7a121299c",
      "tree": "2966aa97b09f04f9b7379fd93a7fc3ea1ae9009f",
      "parents": [
        "c535d122c6a58a152ff2581f936070c2695c45ba"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 07:03:50 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 15 12:40:02 2017 -0800"
      },
      "message": "Add ResTable_sparseTypeEntry support\n\nBenchmarks on bullhead-userdebug show that there is a negligent\nperformance impact when using sparse entries on a 30% loaded\nsparse type of 1000 resources.\n\nBenchmark                                             Time           CPU Iterations\n-----------------------------------------------------------------------------------\nBM_SparseEntryGetResourceSparseLarge                255 ns        254 ns    2751408\nBM_SparseEntryGetResourceNotSparseLarge             254 ns        254 ns    2756534\n\nBug: 27381711\nTest: make libandroidfw_tests aapt2_tests\nChange-Id: I051ea22f2f6b2bc3696e446adc9e2a34be18009f\n"
    },
    {
      "commit": "5b12734fb0d1c189ed9ab699bdb1a4d26c6ed8b8",
      "tree": "606403e46191c1a8855af7456f7ada99333b4535",
      "parents": [
        "f700fb1f23459ba0b4cfad12d0ef7291139c31b9",
        "672384b41e1fc7195424533b7aa6753fb771a6cb"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Sun Feb 12 18:43:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 12 18:44:01 2017 +0000"
      },
      "message": "Merge \"Allow for multiple preferred densities in the strip command.\""
    },
    {
      "commit": "672384b41e1fc7195424533b7aa6753fb771a6cb",
      "tree": "2fa775cab3a3f4b0df5649b2f25e6c0577c0e44c",
      "parents": [
        "85a05cd9b5945c42f46ce1bcacb2d1e0aa8c7a44"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Mon Feb 06 10:29:02 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Sun Feb 12 15:57:41 2017 +0000"
      },
      "message": "Allow for multiple preferred densities in the strip command.\n\nTest: Unit tests pass.\n\nChange-Id: I1f27ac8c36ff3489e4c8e4fce7f3d9cb31df6906\n"
    },
    {
      "commit": "024d22fdb76a75f72ac1a421c4dd184bbfe2ba12",
      "tree": "074240054a9d37547ab9ddd3cac73a05e08b3f0e",
      "parents": [
        "34895c404b0153f021094d149cf36918edbd4552",
        "7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 09 16:17:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 09 16:17:18 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix pseudolocalization to respect \u003cxliff:g\u003e\""
    },
    {
      "commit": "7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38",
      "tree": "0358684e3551d67eb93cb80ae81ef391ba1a9091",
      "parents": [
        "c270de85cc0c398d9ce165592908d2740219a708"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 06 15:20:04 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 06:23:45 2017 -0800"
      },
      "message": "AAPT2: Fix pseudolocalization to respect \u003cxliff:g\u003e\n\nThe XLIFF \u0027g\u0027 tag specifies content that should NOT be translated.\nAAPT2\u0027s pseudolocalization process should respect it.\n\nBug:34064599\nTest: make libandroidfw_tests\nChange-Id: Ice437d7f0ff246730ee04896fd035e2d846148fb\n"
    },
    {
      "commit": "929d6517dfd338f0d481dbe6587643d5aef27ec6",
      "tree": "b80a93b93946bd4e982b9f4abd97a4c3aa43feb3",
      "parents": [
        "c270de85cc0c398d9ce165592908d2740219a708"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 16 19:11:19 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 06:04:52 2017 -0800"
      },
      "message": "AssetManager2: Add GetResourceId\n\nAdd ability to lookup a resource by name.\n\nTest: make libandroidfw_tests\nChange-Id: I262ba5ce4c9892458226fbdb44cf21f9877fb92d\n"
    },
    {
      "commit": "0355dccc85b70ae6e68a11c0dd1e6b8fb2feb94b",
      "tree": "5c5d8a13dc0bb5dd6e02abe4a5ae2ddcb0c8e1ba",
      "parents": [
        "466149d78c8483094840db8c70976427a9dab0a7",
        "fa131d5312011fc1a95cc9a679dbe52f0a7dbe4d"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Sat Feb 04 03:54:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 04 03:54:43 2017 +0000"
      },
      "message": "Merge \"Only compress files that were already compressed in the original APK.\""
    },
    {
      "commit": "558a63056e55424c1033d078e950e5329288cb57",
      "tree": "92bc949903bfd210322d3eb36947843c6f018c43",
      "parents": [
        "a07efe52d59a8d9652140d44f1744a43fdb690a5",
        "86d67df8d57b9537666f9b54a9ca563779a2288b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Feb 04 03:44:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 04 03:44:25 2017 +0000"
      },
      "message": "Merge \"AAPT2: Support CtsContentTestCases build\""
    },
    {
      "commit": "fa131d5312011fc1a95cc9a679dbe52f0a7dbe4d",
      "tree": "f488c2401aab2030859d822c11efe1d5838823af",
      "parents": [
        "2a1232426826d08124502fc48101a8eae326fcc4"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 19:15:03 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 19:49:37 2017 +0000"
      },
      "message": "Only compress files that were already compressed in the original APK.\n\nAlso fix a log message.\n\nTest: Manually. Unit tests pass.\n\nChange-Id: Iea236bbcfbe1a0a0894ce1bfce09c19208c5a0bc\n"
    },
    {
      "commit": "2968cbf4aa67e952d79dd57e39806dbe92a0148e",
      "tree": "77988c62bdfe8ddd5215c71f956fb1ba7f73ea11",
      "parents": [
        "fc866baa333a60a988208293fa2eb99d7e90d427"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 22:38:40 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 18:57:09 2017 +0000"
      },
      "message": "Strip the resources from the APK using the TableSplitter.\n\nTest: Unit tests pass.\n\nChange-Id: I1dd71581113fb9a6feeefa9c794cc282529c3754\n"
    },
    {
      "commit": "fc866baa333a60a988208293fa2eb99d7e90d427",
      "tree": "f9d164ee808e72896dffcab33b32a5582caeef2b",
      "parents": [
        "265066c51d3f0fcc924fb12482780231329c95f2",
        "880d65b4fdfcdc5ac24a3d697a2acfc8511d8b37"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 18:51:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:51:42 2017 +0000"
      },
      "message": "Merge \"Iterate over the zip entries in order.\""
    },
    {
      "commit": "265066c51d3f0fcc924fb12482780231329c95f2",
      "tree": "29e881b39a307c95af0e1db765cb458024916331",
      "parents": [
        "1d23c581645c891f5d24247e766fe1f06c616d6d",
        "970732dc453f84bdf4e232490925ee7c48513734"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 18:50:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:50:16 2017 +0000"
      },
      "message": "Merge \"Expose whether a file was compressed before being loaded in memory.\""
    },
    {
      "commit": "970732dc453f84bdf4e232490925ee7c48513734",
      "tree": "78476848b1dc7f27eff82c7f9841aa6a57bba92c",
      "parents": [
        "ddb80216b9d536be0f2af287f44a41872aa1d809"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 23:13:58 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 23:39:24 2017 +0000"
      },
      "message": "Expose whether a file was compressed before being loaded in memory.\n\nThis is useful when we want to write an APK and keep the same\ncompression parameters as the original APK.\n\nTest: Unit tests pass.\n\nChange-Id: I3afcae1c8727e429b08c9ac7359cf0789ff4abfc\n"
    },
    {
      "commit": "880d65b4fdfcdc5ac24a3d697a2acfc8511d8b37",
      "tree": "afca5c8fd9417eac0f150585a64d4724089994d6",
      "parents": [
        "ddb80216b9d536be0f2af287f44a41872aa1d809"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 22:33:17 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 22:52:44 2017 +0000"
      },
      "message": "Iterate over the zip entries in order.\n\nTest: Unit tests pass.\n\nChange-Id: I0501fad51a87c6cc91f2fc22358cd356616e1a2e\n"
    },
    {
      "commit": "2599aa4dfd29627a5690460bdcd5568d1029d4dc",
      "tree": "e7cf03b50d729f80cb85ec15ba1dc68bda841759",
      "parents": [
        "ddb80216b9d536be0f2af287f44a41872aa1d809"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 22:47:03 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 21:35:21 2017 +0000"
      },
      "message": "Add a method LoadedApk::WriteToArchive.\n\nTest: Manually.\n\nChange-Id: I61717204e58ca2bbfba9a52c7aecf27882a853f8\n"
    },
    {
      "commit": "86d67df8d57b9537666f9b54a9ca563779a2288b",
      "tree": "d7498429238104f724b28ff68a84e7deeebef8af",
      "parents": [
        "a9285db08883dbbe7b5eb9276cb52b7e01b42aa3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 31 13:47:27 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 01 15:28:23 2017 -0800"
      },
      "message": "AAPT2: Support CtsContentTestCases build\n\n- Add \u003cfeature-group\u003e to ManifestFixer.\n- Support \u003cmeta-data\u003e in \u003cinstrumentation\u003e\n- Add support for \u003cbag\u003e and type\u003d\"configVarying\". Some CTS tests use this\n  old notation, we need to support it (even though configVarying isn\u0027t\n  anything supported by the framework convention).\n\nChange-Id: I6946fa633ce513ea8437c1496db883cf27dcf6de\nTest: make aapt2_tests\n"
    },
    {
      "commit": "8a7b4cb99290ec8c1b7d7df4f6e64999a9f4de6e",
      "tree": "19ec30b335440f6fd50e7b371c55261083bd5adc",
      "parents": [
        "df7278d842eb89e24b94305890c3932c77e27cf2"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Tue Jan 31 23:58:27 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 18:49:19 2017 +0000"
      },
      "message": "Backbone of the new aapt2 strip command.\n\nThe strip command takes an APK as argument and a --target-densities flag which\ncontains the list of screen densities for which to optimize the APK. All\nthe resources that would be unused for a device having the given\ndensities are stripped from the APK leaving only the ones actually being\nused.\n\nTest: Manual.\n\nChange-Id: I68368b00876a18ccdbbfc0a8dd265bd361117933\n"
    },
    {
      "commit": "ff759e6a6ef6dd741b174e58a0f01cb87accc897",
      "tree": "97d5fa59235dad2144b90caf5f3340b2b4ff566a",
      "parents": [
        "db88bfaa31a559921657cd255e31cde2e73c6f99"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 00:29:25 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 00:31:55 2017 +0000"
      },
      "message": "Moving the LoadedApk class to its own file.\n\nTest: Unit tests pass.\n\nChange-Id: Id706f9ad1f3406bb73a60a33139a04745d5d72c0\n"
    },
    {
      "commit": "e84ad491c82168228f042644285a2581fc619baf",
      "tree": "4c14b28f519d939da23578fc7b4935cfb5b1adb6",
      "parents": [
        "b7cab6a19096458a7fafa905eed52db83759b6c6",
        "4832745b84d6a358582f2264d22acacf25e01b07"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 01:20:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 01:20:28 2017 +0000"
      },
      "message": "Merge \"Add color mode to activity/window\""
    },
    {
      "commit": "4832745b84d6a358582f2264d22acacf25e01b07",
      "tree": "cde7e923e06892dfa7c9b1a10a10e8da91e007f1",
      "parents": [
        "a393ff7dc7e7e7002a400d37868e0d6c14507b43"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 17:03:35 2017 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 24 15:55:09 2017 -0800"
      },
      "message": "Add color mode to activity/window\n\nThe color mode lets an application request a wide color gamut for\na specific window. This will also be used in the future to request\nHDR. The color mode is currently either default (sRGB) or an undefined\nwide gamut color space chosen by the platform. These attributes could\nlater be used to choose a specific color space if we deem this important\nor useful.\n\nThis change also renames the various \"colorimetry\" attributes and\nconstants to \"color mode\" for consistency. These symbols were\nadded in O and can be safely renamed.\n\nTest: CtsColorModeTestCases\nBug: 32984164\nChange-Id: I4d4691dd12dbe3f3aa6a5cf893cff39aa16c739e\n"
    },
    {
      "commit": "4d35cca96ce55eb29d1948086214f91ae94e9adb",
      "tree": "2ddb5bd63163bf8806be9dc4773e66630b5c4712",
      "parents": [
        "9727f22fc092fe7ccdbf2929d697126f2095d62e"
      ],
      "author": {
        "name": "Yuichi Araki",
        "email": "yaraki@google.com",
        "time": "Wed Jan 18 20:42:17 2017 +0900"
      },
      "committer": {
        "name": "Yuichi Araki",
        "email": "yaraki@google.com",
        "time": "Tue Jan 24 14:59:51 2017 +0900"
      },
      "message": "AAPT: Add --no-version-transitions flag\n\nAdd a new flag to disable versioning of Transition related XMLs.\nTransition support library will use this to handle these XMLs on older\nAPI levels.\n\nTest: make libaapt_tests AaptTestAppOne\nBug: 34427868\nChange-Id: I66e81cca049e71ef6704177b2ca21c9cdeaff78f\n"
    },
    {
      "commit": "c9ba55902123be5abcf2dcda5af9995be0b8d3d8",
      "tree": "953bf264c1f748816ad8ebc4898f580d163ce959",
      "parents": [
        "a2b1774d758b58fc5977f631eff76fa21d303906"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 18 16:34:42 2017 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 18:44:00 2017 -0800"
      },
      "message": "Add wide color gamut and HDR resource qualifiers\n\nBug: 32984164\nTest: Config_test, AaptConfig_test and aapt2_tests\nChange-Id: Ie9c82bfe2d36b1d6180ee223250ab5bb2ce90dd4\n"
    },
    {
      "commit": "d5083f6f6b9bc76bbe64052bcec639eee752a321",
      "tree": "29b5dfb74c7e9b12164ced408315b0ad8d5cf527",
      "parents": [
        "04e7b6c6de620406348142ba9dd65bad094e264b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 16 15:07:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 17 18:55:51 2017 -0800"
      },
      "message": "Move StringPiece to libandroidfw\n\nlibandroidfw needs to make use of StringPiece, so\nmove it to libandroidfw and update all code referencing\nStringPiece in aapt2.\n\nTest: make libandroidfw_tests libaapt2_tests\nChange-Id: I68d7f0fc7c651b048d9d1f5e7971f10ef5349fa1\n"
    },
    {
      "commit": "d8cb7dcc4150b1ad2a087e8f3c9acf88b64e32d0",
      "tree": "f4a97d7eeba248400a693d006070d9a83059900f",
      "parents": [
        "1bb70191766c25a6463295c88bd2e2b5886dc2f8",
        "191602091bafb08228a6d3708871c314faff681e"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue Jan 17 16:34:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 16:34:06 2017 +0000"
      },
      "message": "Merge \"AAPT2: Convert Android.mk to Android.bp\""
    },
    {
      "commit": "191602091bafb08228a6d3708871c314faff681e",
      "tree": "07bd02f297a357950232e163cb7e7ff0dbe8fdc8",
      "parents": [
        "ba5124b48bff2455c089e803ea6ffcc197a26c51"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Thu Jan 12 14:24:31 2017 -0500"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Fri Jan 13 18:56:55 2017 -0500"
      },
      "message": "AAPT2: Convert Android.mk to Android.bp\n\nChange-Id: I6c563993b57e3f04165ca57743f9a2878aba556c\n"
    },
    {
      "commit": "1a6acdbb86c3e72bdb0a4dcab3bda58cbc4ea34c",
      "tree": "1b243f434a14a25dc0eb39097293c3f27b74a54a",
      "parents": [
        "3c6f28aa5968b1edb823495efa15e7358de5261e"
      ],
      "author": {
        "name": "Zak Cohen",
        "email": "zakcohen@google.com",
        "time": "Mon Dec 12 15:21:21 2016 -0800"
      },
      "committer": {
        "name": "Zak Cohen",
        "email": "zakcohen@google.com",
        "time": "Wed Jan 11 11:44:47 2017 -0800"
      },
      "message": "Introduce new UI_MODE_TYPE_VR_HEADSET and qualifier.\n\nBug: 30989383\nTest: Unit test for aapt2\nChange-Id: I66dc65af6327b94fed74538bee08cada0b8be4fa\n"
    },
    {
      "commit": "38665547bb10f65f72d3358fb16cdc63d5febf15",
      "tree": "6a8053ce0d89d81546ed966c0c6fed082d7ff4a9",
      "parents": [
        "db10a2094c7e12ea0f30972a91ed892e085c836f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 28 12:25:46 2016 -0500"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 28 12:40:35 2016 -0500"
      },
      "message": "AAPT2: Treat non-AAPT attributes as Attributes with no format specified.\n\nAttributes in XML like \"class\" should be treated as attributes with no\nformat specified. That means that something like \u0027version\u003d\"1\"\u0027 will\nbe interpreted as an Integer value instead of as a string.\n\nThis is more in line with the old AAPT behaviour.\nBug: 30763349\nTest: make libaapt2_tests\n\nChange-Id: I02fe41617e3c62c354714056198ef480d62afee7\n"
    },
    {
      "commit": "5119e517308b84011fbd4d1a013296f4f5ffb8e4",
      "tree": "e926e96418644b4af981623aa28d06ba376adc8e",
      "parents": [
        "7dbbf956f73012ad0ea50bba37a21555cccfc726"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 05 19:48:20 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 05 21:09:52 2016 -0800"
      },
      "message": "AAPT2: Allow \u003cmeta-data\u003e in \u003cmanifest\u003e\n\nBug:32171613\nTest: libaapt2_tests\nChange-Id: I30fdd9475ff7dff6ceb0ff46a4a00991b72db68b\n"
    },
    {
      "commit": "67387af732f1b5e9b9bc270f03dbb1aedd5632cc",
      "tree": "113d9d560a625cb3f622789b506b8f489f14ad31",
      "parents": [
        "2fb2556833d9f6384004be9cbce4ba8321820909",
        "383db5ebcc3a4a615faf249bf4f126f42e80b82e"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Nov 09 13:38:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 09 13:38:58 2016 +0000"
      },
      "message": "Merge \"Update package names to work with the proto3 compiler\""
    },
    {
      "commit": "f96789d37c71064f3222d9a628af16f5711145e2",
      "tree": "e08cb8095f88d9b322e50f4558d3e2c146c74a69",
      "parents": [
        "80361c9ea7f3ff694425b6bd9e42e8c933b1196c",
        "c0c366394c658e3787b12e65833b520c9a9a34d9"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 08 23:03:54 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 23:03:58 2016 +0000"
      },
      "message": "Merge \"Add font type to AAPT2\""
    },
    {
      "commit": "383db5ebcc3a4a615faf249bf4f126f42e80b82e",
      "tree": "75bf14fb2ad46cc7f0cdb8c9c008d1f8c37fa519",
      "parents": [
        "e7f6ca32de6eebfed88e31156f2e264dc72fc3f1"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Jun 22 15:21:38 2016 +0100"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Tue Nov 08 14:06:09 2016 +0000"
      },
      "message": "Update package names to work with the proto3 compiler\n\nBug: b/28974522\nChange-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a\n"
    },
    {
      "commit": "a256408b243cc9851655b10d4a9d99ef44915e17",
      "tree": "64a6fe8f0a7ab61933cfe5ed7e91cc7ace2d972b",
      "parents": [
        "cb291f38f8aa1517ca66c7331765becb47442edd"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Nov 04 11:28:44 2016 +0000"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Nov 04 11:28:44 2016 +0000"
      },
      "message": "Renamed Aapt2.java to Aapt2Jni.java.\n\nSee http://ag/1590668 for a discussion.\n\nTest: Done in tools\nChange-Id: I3bfced0da98ab24531c1c1a79970841b32bfa1fa\n"
    },
    {
      "commit": "573cccfea713d54bb6c962112b65fa1679e4e58c",
      "tree": "699093b2df068693b6fe3d7c3f134e7e1ae339b3",
      "parents": [
        "eff7a8e4aab1cccd5b961e5ff4343a3f32e06f31",
        "b555b59f2e53c18e8bd10b51fd963c849eff2cef"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Nov 03 18:39:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 03 18:39:04 2016 +0000"
      },
      "message": "Merge \"Updated JNI interface.\""
    },
    {
      "commit": "b555b59f2e53c18e8bd10b51fd963c849eff2cef",
      "tree": "96cb13336317741a3800508ed2d6973f069cece4",
      "parents": [
        "88dea2dd23e3df5f87826aa6e524233f37b17588"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Tue Nov 01 14:50:46 2016 +0000"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Nov 03 10:14:42 2016 +0000"
      },
      "message": "Updated JNI interface.\n\nAdded new \"ping\" method used to detect if the shared\nlibrary has already been loaded.\n\nFixed a few bugs in the implementation (and now it works\nfrom the Java side).\n\nSee http://ag/1590668 for the implementation on devtools.\n\nTest: Done on the tools side\nChange-Id: Ifa41073dc3b6ac69cdb9f77e655bf261c3b4c3d1\n"
    },
    {
      "commit": "3497b265076f338e320fcf01d3e46379492669b2",
      "tree": "842d1f034b3f00afdb6f44ba1ae33ccce477e65e",
      "parents": [
        "88dea2dd23e3df5f87826aa6e524233f37b17588"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Tue Nov 01 17:07:06 2016 +0000"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Nov 03 09:39:43 2016 +0000"
      },
      "message": "Added Windows support for aapt/JNI.\n\nThis includes copying and slightly modifying\nlibnativehelper\u0027s ScopedUtfChars\u0027 implementation.\n\nTest: Done in studio-master-dev\nChange-Id: I2aacc67b444668478aaa5bb0db991a201c571d1f\n"
    },
    {
      "commit": "c0c366394c658e3787b12e65833b520c9a9a34d9",
      "tree": "0f8edb0b05d1d2899100fd114053ba1b8baa39a0",
      "parents": [
        "9212fc742ff4fc92561c8055388d119d8ef195ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 18:37:53 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 18:09:00 2016 -0700"
      },
      "message": "Add font type to AAPT2\n\nTest: make libaapt2_tests AaptTestAppOne\nChange-Id: I8fbf01675a218cc3c0b59598b6b1ec173851e946\n"
    },
    {
      "commit": "e343eb145c42d00c4fd3fdde93cd0be55cb5b855",
      "tree": "687304b2b9ca6106eaa7387c304ac4e46570ddc1",
      "parents": [
        "584264f6af08faea57653c65db4abcb8111009c0"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 16:31:58 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 16:31:58 2016 -0700"
      },
      "message": "AAPT2: Insert \u003cuses-sdk\u003e element before \u003capplication\u003e\n\nPackageParser on the device uses the targetSdkVersion of the\napp while it parses \u003capplication\u003e. That means that if the\n\u003cuses-sdk\u003e tag comes after \u003capplication\u003e, the targetSdkVersion\nis assumed to be 0.\n\nTest: make libaapt2_tests\nChange-Id: I60f2179a7ff44e7419217afb53f3d24f8c030f6e\n"
    },
    {
      "commit": "ce5e56e243d262a9b65459c3bd0bb9eaadd40628",
      "tree": "cf0ecea98883d090d8d2856fc6d32046c7e3d9e8",
      "parents": [
        "0f7cc4dc2c49a30c072cbc7aa6c0c5d5c31496d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 17:56:45 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 26 19:30:23 2016 -0700"
      },
      "message": "AAPT2: Rename to match new style\n\nUse Google3 naming style to match new\nprojects\u0027 and open source google projects\u0027 style.\n\nPreferred to do this in a massive CL so as to avoid\nstyle inconsistencies that plague legacy code bases.\nThis is a relatively NEW code base, may as well keep\nit up to date.\n\nTest: name/style refactor - existing tests pass\nChange-Id: Ie80ecb78d46ec53efdfca2336bb57d96cbb7fb87\n"
    },
    {
      "commit": "418063c63f1af7ed5373c524fce7672cc84bd752",
      "tree": "6b2b8fd06dcadaf299537efffe63a0d63feb9157",
      "parents": [
        "ff356a5661422d6753ad4df74e807b76eb53067c",
        "255960857d7682fdad4fe461ac1348b618d1dbb2"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Sat Oct 22 08:19:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 22 08:19:19 2016 +0000"
      },
      "message": "Merge \"Added JNI interface for aapt2.\""
    },
    {
      "commit": "b366402a687193ae584ea0ff040b2a1231333e8c",
      "tree": "dd69d681212cd7c85e6bce2d3265ce766c1d392e",
      "parents": [
        "f524e1c67f34b3fe842eda16052861f522845f68",
        "b54ef10f55ab9f11fdc73b0436b708e518fb5029"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 22 00:37:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 22 00:37:20 2016 +0000"
      },
      "message": "Merge \"AAPT2: Ensure string pool ordering is compact\""
    },
    {
      "commit": "b54ef10f55ab9f11fdc73b0436b708e518fb5029",
      "tree": "52b1225899d166dd1f65a576bdf7fcc6796f0224",
      "parents": [
        "011cef54ee0a8260f6b4381c7ea28a450cd3cbce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 13:38:42 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 13:51:59 2016 -0700"
      },
      "message": "AAPT2: Ensure string pool ordering is compact\n\nKeep styledstrings at the beginning of the StringPool\nto reduce the padding in the StyledString array.\n\nBug:32336940\nTest: manual\nChange-Id: Iec820c21a54daac40ecc3b2f87517a0f1efc9d3d\n"
    },
    {
      "commit": "577e66cc432a348c5fe811b006472d2026c7d12a",
      "tree": "1809b85eed6c84fd51c720b1f579063e0a2c00ff",
      "parents": [
        "09731444e72aba92e248238ff361a4c2084e122c",
        "dfaecafbe9fb7c5800191edfe3aa5d5938705204"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 21 03:04:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 21 03:04:12 2016 +0000"
      },
      "message": "Merge \"AAPT2: Fail compile on bad output file/dir\""
    },
    {
      "commit": "dfaecafbe9fb7c5800191edfe3aa5d5938705204",
      "tree": "5e4c34cebdb64a146d4cb6ee91f0ed70060e9bf0",
      "parents": [
        "011cef54ee0a8260f6b4381c7ea28a450cd3cbce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 17:08:51 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 17:08:51 2016 -0700"
      },
      "message": "AAPT2: Fail compile on bad output file/dir\n\nTest: manual\nChange-Id: I2578e32c52430a62df942822ddf6bd3f06357bce\n"
    },
    {
      "commit": "12bfe65410ba7f01f5d70038332467d061747263",
      "tree": "b0d8de73a345225eed4b8a8c98eb868d02ea9ba6",
      "parents": [
        "c9eb24ceab80639b015395fc19ce4805c5c66a89",
        "6a396c1abb4e52f5a8fed5fab204ebc7b8e16dec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 20 23:58:13 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 23:58:15 2016 +0000"
      },
      "message": "Merge \"AAPT2: Error on uncompiled XML or PNG files in link phase\""
    },
    {
      "commit": "6a396c1abb4e52f5a8fed5fab204ebc7b8e16dec",
      "tree": "7494b207c6cc2a37a84ee988cec11b2ffc4831d4",
      "parents": [
        "011cef54ee0a8260f6b4381c7ea28a450cd3cbce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 14:38:23 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 14:40:49 2016 -0700"
      },
      "message": "AAPT2: Error on uncompiled XML or PNG files in link phase\n\nIncorrectly passing text XML and unprocessed PNG files to\nthe AAPT2 link phase should raise an error.\n\nTest: manual incorrect invocation of aapt2\nChange-Id: Iab47f99bc378b5d1c4f4d87098f08243b9a4dc6a\n"
    },
    {
      "commit": "092db3c88ae5f2ba1b34516666c2b87ed7404965",
      "tree": "8d3b157d3a1336745afa8398d36d8806391ca885",
      "parents": [
        "3e934442faa0627d05ac45ee87c67792ff34d292",
        "281e9f30c05d033b49141922e438eb47afaa0e8f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 20 19:35:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 19:35:45 2016 +0000"
      },
      "message": "Merge \"Fix a static-analyzer warning.\" am: 63b4f6f5db am: ea4423b181\nam: 281e9f30c0\n\nChange-Id: If34a4265ceb5bc6f4bf31c35e82270f90e970457\n"
    },
    {
      "commit": "ea4423b181ab793b7ec9eebe5bc388abbc7be35a",
      "tree": "f6be23ebb39018cb6480eb5510b889f192b4b641",
      "parents": [
        "abfd527d0924b56bc2e4e8b4281300bfabd791f7",
        "63b4f6f5db4d5ea0114d195a0f33970e7070f21b"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 20 19:19:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 19:19:15 2016 +0000"
      },
      "message": "Merge \"Fix a static-analyzer warning.\"\nam: 63b4f6f5db\n\nChange-Id: I85fd6d25733d59da76eb0bab381fdbd3b5a0430d\n"
    },
    {
      "commit": "255960857d7682fdad4fe461ac1348b618d1dbb2",
      "tree": "52f0e74f56c725a08c92bb86b7964f21c19dc5d0",
      "parents": [
        "c4ee093bf618cc73788ee07df1051054ac10b585"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Oct 07 12:00:26 2016 +0100"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Oct 20 12:03:34 2016 +0100"
      },
      "message": "Added JNI interface for aapt2.\n\nTest: None (tests will be made on the Android Studio Tools project)\n"
    },
    {
      "commit": "cacb28f2d60858106e2819cc7d95a65e8bda890b",
      "tree": "c8ac4af72b0a9599983567029e5680c40f9883a3",
      "parents": [
        "733f0bc08ea0c93d095016a791c2914658d0cdde"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "message": "Use Google3 style guide with .clang-format\n\nTest: style change only, builds ok\nChange-Id: I885180e24cb2e7b58cfb4967c3bcb40058ce4078\n"
    },
    {
      "commit": "56f5f7b79bca91d6b241d35be0f4bf56155cf855",
      "tree": "309a11ef2d9c053c79dcb20ec22f1014dd403a42",
      "parents": [
        "c98b34bdce1fb1b43755af7fb8538efb0d0dc953"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Oct 11 18:08:23 2016 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 13 15:52:34 2016 -0700"
      },
      "message": "Fix a static-analyzer warning.\n\nframeworks/base/tools/aapt2/util/Files.cpp:81:21: warning: Null pointer\npassed as an argument to a \u0027nonnull\u0027 parameter\n     while ((entry \u003d readdir(dir))) {\n\nBug: None.\nTest: Warning no longer appears.\nChange-Id: If242598405e995928378ce317a2e909654e1e985\n"
    },
    {
      "commit": "56f823be9ad6626234300e7c787a74eb0186ee18",
      "tree": "b7bdf447b958a937f150ea163aa83ee57893c134",
      "parents": [
        "7a31d42c5ded0e81839d5685facfbe14419b8a35",
        "437b8c95a803736a8917bd2b89c5653ba48976b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 17:42:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 10 17:42:08 2016 +0000"
      },
      "message": "Merge \"Rely on the platform -std default.\" am: 66f15cc01b am: 5a989a504a am: 39ad1b92fa\nam: 437b8c95a8\n\nChange-Id: Idacd1cad6e0e241404c99b680974aae2b8f81926\n"
    },
    {
      "commit": "437b8c95a803736a8917bd2b89c5653ba48976b6",
      "tree": "ced0844dd0c946b2e05ad1a09b199888fd67ef97",
      "parents": [
        "3590533125d0f352104f2b0c739ee7ffffc89d0b",
        "39ad1b92fa808c5a4f67cc50d72531ad6ad8fdb5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Oct 08 22:03:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Oct 08 22:03:56 2016 +0000"
      },
      "message": "Merge \"Rely on the platform -std default.\" am: 66f15cc01b am: 5a989a504a\nam: 39ad1b92fa\n\nChange-Id: Iec4bca8e96c776d61c5da5540a74acc6773c2bce\n"
    },
    {
      "commit": "c08e32e0beb52400e3957f03429b83bbee1832de",
      "tree": "cf13fdbc53e7155db98b0ee36ad8c985fa0a96f1",
      "parents": [
        "f12c6e4f5e0eecef53a75b6f3eb323018ff2ec7c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:57:17 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:57:17 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I7180f1eb539ff8cbe33832d010775f053a922946\n"
    }
  ],
  "next": "edba94106473b8d7b3aa8a4805d2e45497084755"
}
