)]}'
{
  "log": [
    {
      "commit": "13588dc9e4e21c0802202db9c1617cb75a88c9cf",
      "tree": "841217f4bcbc2e8839cca9382d239bcd5cf018d1",
      "parents": [
        "8049afc395e19fee9fb28c23a44fee8b5b230831",
        "325129964e5b0a9794cf5bb63a2d2d8774ea6a1b"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 21:29:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 21:29:17 2018 +0000"
      },
      "message": "Merge \"Allow using reserved package IDs\" into pi-dev"
    },
    {
      "commit": "325129964e5b0a9794cf5bb63a2d2d8774ea6a1b",
      "tree": "6916dd14dd937ad9650558c8afca42929acd26f2",
      "parents": [
        "a93ab56ed802f320cbf1ac9452cae75acbef47c3"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Apr 25 16:45:59 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 10:27:30 2018 -0700"
      },
      "message": "Allow using reserved package IDs\n\nPre-O, the platform treats negative resource IDs [those with\na package ID of 0x80 or higher] as invalid.  In order to work\naround this limitation, we allow the use of traditionally\nreserved resource IDs [those between 0x02 and 0x7E].\n\nBug: 78041707\nTest: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\nTest: ./out/host/linux-x86/nativetest/libandroidfw_tests/libandroidfw_tests\nTest: Manual. Create a feature split with a package ID of 0x7E and see it runs and can reference base resources.\n\nChange-Id: I3d9782cc05d3a55e1a2467bf39566788847e1160\n"
    },
    {
      "commit": "e5dc64d4281dd9f38c2b585202e26ae4278fcfc5",
      "tree": "3be3567f0d0845379211f251d025398ce25182ab",
      "parents": [
        "fd935d3a126c4cfe643765d500a4fbed11d77b9b"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Apr 23 16:13:14 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 24 15:15:13 2018 +0100"
      },
      "message": "Add presubmit hook for hidden API lists.\n\nCheck that they\u0027re sorted as expected and contain no duplicates.\nThe sort order now uses:\n$ LC_COLLATE\u003dC sort -f\n\nSo that non-alphanumeric characters are not ignored, giving a more\nintuitive sort order. the \u0027-f\u0027 means ignore case.\n\nAlso sort the existing lists accordingly.\n\nTest: repo upload\nBug: 64382372\nMerged-In: I52b884da33a9a46455df6747a215683d9d3c3218\nChange-Id: I4cdd3bc5c11be91a9a3f678580af49ac67f3c968\n"
    },
    {
      "commit": "fd5166ddac5fceb3942cef9f95ff2920eac1ac84",
      "tree": "a656bc5aa6b53f3e83d3a2e23af718f1301b29fd",
      "parents": [
        "ab416a115a9b736270fcefbde7b21dcc34f2dae1",
        "9f6dec11e6fe003609f4c5908d3a965b1f196c47"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 24 03:14:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 24 03:14:04 2018 +0000"
      },
      "message": "Merge \"Allow overriding the compile SDK\" into pi-dev"
    },
    {
      "commit": "485a197ab0807f459388f1bc60c6090246007ff9",
      "tree": "602ad62962a4e167eefb98a48804958ef42d77ec",
      "parents": [
        "42b5621e1287b88825bfdf24501d6ca6f85f16fe",
        "d97df5a2803f1e87ed6c129d57e9d6109e6d1040"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Apr 23 18:19:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 18:19:22 2018 +0000"
      },
      "message": "Merge \"Update fontchain_linter for emoji 11\" into pi-dev"
    },
    {
      "commit": "9f6dec11e6fe003609f4c5908d3a965b1f196c47",
      "tree": "7cc213656e21060287a4b194e0efe8070074409a",
      "parents": [
        "dbdf5df96e2b8d97de89720da256c8296dbbec4f"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Apr 20 12:29:29 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Apr 20 22:41:52 2018 +0000"
      },
      "message": "Allow overriding the compile SDK\n\nWe automatically pull the compile SDK from the platform. But,\nin certain circumstances the platform\u0027s SDK codename is\nincorrect. Allow the name to be overridden on the command line.\n\nChange-Id: I398f1b00b29db42e4ce202b94cda483c98971a14\nFixes: 78324052\nTest: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\n"
    },
    {
      "commit": "f7bc6ab7fa21f849250d0f5ee2849f9e49a8d436",
      "tree": "3d751dab478cd4792facae3762ada90308b70cb1",
      "parents": [
        "46e58e1b4086aa0e3eb62f9cdae0eefaea08943f"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Apr 18 13:45:48 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Apr 20 14:52:01 2018 -0700"
      },
      "message": "Allow StatsLog to directly write to statsd\u0027s socket.\n\n+ Reuse the log_event_list from liblog. StatsLog\u0027s binary format remains unchanged\n+ Copied socket write code from liblog, including the retry logic.\n+ Added build flags to control the StatsLog channel (logd, statsd, or both for debugging)\n\nBug: 78239479\nTest: locally tested and saw logs being written to statsd\n\nChange-Id: I7b1f0069ead00bbf3c29e4bd5b7f363a7ce26abe\n"
    },
    {
      "commit": "1a12311433a0ebce2d0c383ac886a257ae32e3d6",
      "tree": "7ca0d9bbe657804e0c5ca8f273f2085a5e10bebe",
      "parents": [
        "686fab14645298ca04f23f0e10a64e839e32703f",
        "8b74927e9ecf4d14898d09c168d0d38f164a92bc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 18:59:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 18:59:11 2018 +0000"
      },
      "message": "Merge \"Fix fraction and dimension type in Resource.proto\" into pi-dev"
    },
    {
      "commit": "8b74927e9ecf4d14898d09c168d0d38f164a92bc",
      "tree": "c2f69546b0a90e38264a944a4b4adcbd58979276",
      "parents": [
        "1074688a265db2d44b244f2f57b9ac081f825e99"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Apr 18 18:52:47 2018 -0700"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Fri Apr 20 10:46:47 2018 -0700"
      },
      "message": "Fix fraction and dimension type in Resource.proto\n\nChange fraction and dimnesion type from float to uint32\n\nChange-Id: I641dc42cf7b6bdd8bc16c8cdbd573ec3281a084a\nFixes: 78182701\nTest: aapt2_tests\n"
    },
    {
      "commit": "247ecfa4989c4a2a1096a9960831286cca7eaab5",
      "tree": "a7a3f9bc9f52db8d468641a86959ee089c82e6c0",
      "parents": [
        "bb35e9e0e978ab6ff518462e9483dcb24232cf7b",
        "9efbbef2e060cd5e05f5b652ba5c7aaf687f64d6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 19 21:35:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 21:35:59 2018 +0000"
      },
      "message": "Merge \"AAPT2: Support id reference chaining from AAPT\" into pi-dev"
    },
    {
      "commit": "d97df5a2803f1e87ed6c129d57e9d6109e6d1040",
      "tree": "80196a23875bb75357dba4ecb008d9a07e35438c",
      "parents": [
        "3f8884829f6dcea454a74c6cf18e4bd89cf70acc"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Thu Apr 12 13:11:42 2018 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Thu Apr 19 12:10:16 2018 -0700"
      },
      "message": "Update fontchain_linter for emoji 11\n\n* Add default genders for super villain and super hero.\n* Read capability to read from emoji exclusions file.\n* Update lint rule to use different glyphs for couple with heart.\n\nTest: m fontchain_lint\nTest: Visual test with a build and sample app\nBug: 77148691\nChange-Id: Icd92f0455709625b3998fc8eef1d448e17a5d71f\nMerged-In: Icd92f0455709625b3998fc8eef1d448e17a5d71f\nMerged-In: I56dd3c1e1258bab2fcbdf42e5c42587e45dd92fe\n(cherry picked from commit e853efc0817ef38f6ba561ea768d49caf1e53dba)\n"
    },
    {
      "commit": "4602926f83d7aa3b52b190122955b5b0d6d8089d",
      "tree": "4b483cd443fb3b1b9f7eb03d4d326c22da213998",
      "parents": [
        "34a0b18a5c730e4fa16e27c63ed0cd79a6df188e"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 18:13:14 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 20:58:50 2018 +0000"
      },
      "message": "AAPT2: Modified StringPool uniqueness detection #2\n\nb/77862560 detected that when converting an apk to binary using aapt2,\nall resource ids of attributes that have been replaced with resource\nidentifiers become set to the identifier of the first attribute. This is\nbecause the attribute names are all empty because the names are not necessary\nsince the resource ids are present. The empty attribute names all map to\nthe same string pool reference and cause all the ids to be the first\nempty string into the string pool.\n\nThe ag/3897499 approach to fix the specified bug was extremely inefficient\nand caused hour long builds. This change takes advantage of the multimap\ndata structure to do lookups efficiently.\n\nBug: 77862560\nTest: Converted apk in listed bug from proto to binary and observed\ncorrect resource ids and correct badging. Also built the Android tree to\ncheck for regressions in build time.\n\nChange-Id: I27a9ee4ffbed8b9ff6f238ad315cdf87b588947c\n"
    },
    {
      "commit": "9efbbef2e060cd5e05f5b652ba5c7aaf687f64d6",
      "tree": "a906595eedebc28b14a4e86e135b225eb1d5d79b",
      "parents": [
        "34a0b18a5c730e4fa16e27c63ed0cd79a6df188e"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 11:29:09 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 11:46:53 2018 -0700"
      },
      "message": "AAPT2: Support id reference chaining from AAPT\n\nAAPT would allow for ids to be declared in the form:\n\n\u003citem name\u003d\"name\" type\u003d\"id\u003e@id/other\u003c/item\u003e\n\n@id/name should hold a reference to @id/other. When\ngetResources().getValue() is called on R.id.name with resolveRefs\nenabled, the resuling reference should be R.id.other.\n\nBug: 69445910\nTest: Created tests for correct parsing of id references and correct\nresolving of deep references\n\nChange-Id: Id1feb37b2565c213dc6a19b4c401906260d7fc14\n"
    },
    {
      "commit": "61ac57283fecb20d4287b81b293a2579d0386c15",
      "tree": "7e775dd544f0beaa76474c3af1712e6e1f371bee",
      "parents": [
        "116e05cbba0f851c0d5c0da3e1c664444ea5b6f2",
        "61ffd4029032862c871c98ac04f12d4141d59383"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 19:28:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 19:28:43 2018 +0000"
      },
      "message": "Merge \"Revert \"AAPT: Modified StringPool uniqueness detection\"\" into pi-dev"
    },
    {
      "commit": "61ffd4029032862c871c98ac04f12d4141d59383",
      "tree": "b49449dd559ce7c717750d9da9684fdfce5ce481",
      "parents": [
        "35ecb89a8aa68f24d2e991df5bb9964ad15075dc"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 18:21:14 2018 +0000"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 18:21:14 2018 +0000"
      },
      "message": "Revert \"AAPT: Modified StringPool uniqueness detection\"\n\nThis reverts commit 35ecb89a8aa68f24d2e991df5bb9964ad15075dc.\n\nReason for revert: \u003cLong make duration (infinite loop)\u003e\n\nChange-Id: I10d1cf53ca3054d40e23b06368ebaff6af69beab\n"
    },
    {
      "commit": "356feb53b6b16c08e9adf37243e755f03c4f947e",
      "tree": "8de7b38f8647c344e1d22e492e0924ec04a28e7c",
      "parents": [
        "1c70ecb455069b2497ab2f95ce29c9686afc9c21",
        "35ecb89a8aa68f24d2e991df5bb9964ad15075dc"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 16 17:15:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 17:15:53 2018 +0000"
      },
      "message": "Merge \"AAPT: Modified StringPool uniqueness detection\" into pi-dev"
    },
    {
      "commit": "35ecb89a8aa68f24d2e991df5bb9964ad15075dc",
      "tree": "4a6694c3430fea5d6ae5b0bd3680aab24a303232",
      "parents": [
        "a668c663019dcabe62d1f667ec5402806a22b0a8"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 11:25:12 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 16:15:42 2018 -0700"
      },
      "message": "AAPT: Modified StringPool uniqueness detection\n\nb/77862560 detected that when converting an apk to binary using aapt2,\nall resource ids of attributes that have been replaced with resource\nidentifiers become set to the identifier of the first attribute. This is\nbecause the attribute names are all empty because the names are not necessary\nsince the resource ids are present. The empty attribute names all map to\nthe same string pool reference and cause all the ids to be the first\nempty string into the string pool.\n\nBug: 77862560\nTest: Converted apk in listed bug from proto to binary and observed\ncorrect resource ids and correct badging.\n\nChange-Id: I635c13cd1ad7a395fe40a57198cfe5ec91602d01\n"
    },
    {
      "commit": "3da5f3b2ddf35ed436cd9a0c6a349c59c97f8d78",
      "tree": "df1d8625e3297350e40d450835c2e24a8cb5ca28",
      "parents": [
        "79634c7025f66e26444df12c12db2ebbf2d81bfe"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Apr 11 15:12:31 2018 -0700"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Thu Apr 12 15:26:31 2018 -0700"
      },
      "message": "Finalizing P SDK\n\nBug: 77588754\nTest: builds\nChange-Id: Ic06cad790a3dc53d012a7c43dfac911fc6dc61e7\n"
    },
    {
      "commit": "f8458910317ea21b407f712f704265180fd1d5b5",
      "tree": "18747f9e2980dc785aa69117c7c758bad22e5ac7",
      "parents": [
        "ccaba49ab541b19acc0a0ec9bd8159109e66154b",
        "d6b83299a6d636c67fee8bd4ae07555a9ae2269a"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 12 17:21:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 17:21:32 2018 +0000"
      },
      "message": "Merge \"AAPT: Multiple period legacy support and errors\" into pi-dev"
    },
    {
      "commit": "d6b83299a6d636c67fee8bd4ae07555a9ae2269a",
      "tree": "3ba4327af7207a6a57c2375f87cdda1804651d08",
      "parents": [
        "65317bac02e993d1313a1958a8497ff5f2a2ecd5"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 11 09:54:56 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 11 15:52:43 2018 -0700"
      },
      "message": "AAPT: Multiple period legacy support and errors\n\nAAPT would accept files with multiple periods in the filename as input.\nThis lead to cases explained in b/74999475. This change adds error\nmessages for files with multiple periods unless the legacy flag is\npresent. With the legacy flag present, AAPT2 will behave like AAPT\nrather than throwing an error.\n\nTest: Added tests to aapt2_tests\nBug: 73071563\nBug: 74999475\nChange-Id: I28dfceeea7b39f8e4b9e6671e0fc8793cf388f52\n"
    },
    {
      "commit": "8b141b9db00aa95a9610770b1a7757fb155d097c",
      "tree": "d6a5d0cc71f8cb423fb68a644183743579ea0b13",
      "parents": [
        "997e7b7ea43282a9216d205ec291358dfa01136a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 10:05:44 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 10:43:16 2018 -0600"
      },
      "message": "Lint to identify \"deprecated at birth\" APIs.\n\nWhen API council requests changes, teams regularly perform the\nrequested refactoring, but simply mark the old APIs as @Deprecated\nwithout @removed, due to internal users.\n\nAs part of finalizing an SDK, we should ensure that no new APIs are\nmarked @Deprecated, since they\u0027re typically cleanup that someone\nforgot to finish.  This extension to the lint script makes it easy\nto identify these cases.\n\n$ python tools/apilint/apilint.py --show-deprecations-at-birth \\\n        api/current.txt ../../prebuilts/sdk/api/28.txt\n\n$ python tools/apilint/apilint.py --show-deprecations-at-birth \\\n        api/system-current.txt ../../prebuilts/sdk/system-api/28.txt\n\nBug: 77588754\nTest: manual inspection\nChange-Id: Ie9658006bb08f780bee0e503481d3bafec1038a1\n"
    },
    {
      "commit": "ca5c0869f0e32014c0cbf48e48886d5b06956c75",
      "tree": "00b3fc8f1e6d60d2f4f04c779613166e1a0df244",
      "parents": [
        "6a67b8640b5ed69ea1cf994f6015ae9a008435ff"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Mon Apr 09 22:39:53 2018 -0700"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Apr 10 11:20:57 2018 -0700"
      },
      "message": "Logd retry throttling.\n\nTest: statsd test\n\nBUG: b/77852322\nChange-Id: I3b4c46aaa592e21bfed13330c2ca72fac8e8320a\n"
    },
    {
      "commit": "164a73e0cfa880f26acdc04e0c35255cf8cd671d",
      "tree": "908bc03a1ca416b3fb7ac04c4e7d757a97185f7a",
      "parents": [
        "bd2e79094623e5b1a89eff4e51eb7b295f2390da",
        "b8382a10a0dca8ff50b0afc35071e47440ecf86c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 18:04:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 18:04:18 2018 +0000"
      },
      "message": "Merge \"Retry logs write when it fails. Report skipped event in statsd.\" into pi-dev"
    },
    {
      "commit": "b8382a10a0dca8ff50b0afc35071e47440ecf86c",
      "tree": "0ea260b9ef4826f41715195456d1df3566025c24",
      "parents": [
        "48920ab48d5d43e22871b688c830670b56aac3ec"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Apr 04 10:39:12 2018 -0700"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Apr 04 17:53:48 2018 -0700"
      },
      "message": "Retry logs write when it fails.\nReport skipped event in statsd.\n\nTest: manual test\nBUG: b/77222120\nChange-Id: I257f5e76d557893c4eb4a8e8a13396d8b5d1afc0\n"
    },
    {
      "commit": "6a23deef5d6d9f9fae40dbe1775f5cf5556421fc",
      "tree": "ab7d54a79f90754a9f49f4cb98efb9eba0231c59",
      "parents": [
        "1d513fc5d04ce6bd27953fe5854c3cb3234f9a99",
        "9beaa9cfe3bd8c7c59eed053ff6ca18951c34a86"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 05 00:14:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 00:14:38 2018 +0000"
      },
      "message": "Merge \"Changed AAPT2 to abide by AAPT resource whitespace triming.\" into pi-dev"
    },
    {
      "commit": "498baa82e645619ddf7e79bd3930ff519ad4526d",
      "tree": "c1ce506fcc27673d92b321277c991479ccc23973",
      "parents": [
        "49668cd130b57e3ba2f98c7613b215773b4246fa",
        "e5b38a676ce0fe6ee08635a7167ee5d76a225a06"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 21:21:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 21:21:28 2018 +0000"
      },
      "message": "Merge \"Added --debug-mode flag to AAPT2\" into pi-dev"
    },
    {
      "commit": "70414f22dcab1d4ce3c2e9d981f3256a9ba62515",
      "tree": "4f16c1c60a077ba21af55e0df26d791143afa9cf",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Mar 26 11:05:31 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:54:43 2018 +0000"
      },
      "message": "Check the size of the strings in the StringPool before flattening.\n\nTest: Tested for normal functionality when string does not exceed\nmaximum length and tests for detection of string that is too lonhg for\nUTF8i\nBug: b/74176037\n\nChange-Id: Ic71d3671a069e7012e8ca107e79e071499eebbf6\n(cherry picked from commit a15c2a8957b9883cb293fdacaeabd7f2e037a0a5)\n"
    },
    {
      "commit": "9beaa9cfe3bd8c7c59eed053ff6ca18951c34a86",
      "tree": "0a14c76b75c770328fadb68b75d83751121637e7",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Mar 28 18:22:57 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:54:05 2018 +0000"
      },
      "message": "Changed AAPT2 to abide by AAPT resource whitespace triming.\n\nBug: b/74331008\nTest: Created tests in ResourceParser_test.cpp\nChange-Id: Id7b387692b795774cd77452ca8cf06a8447bf3be\n(cherry picked from commit a04880771254f5169a1fe460ff40b565d9dceb0d)\n"
    },
    {
      "commit": "e5b38a676ce0fe6ee08635a7167ee5d76a225a06",
      "tree": "ca4c69d4f3f9c60225e9b28ff4572708a249b2b2",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Mar 23 13:35:00 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:51:53 2018 +0000"
      },
      "message": "Added --debug-mode flag to AAPT2\n\nBug: 74968793\nTest: Tested for correct debuggable attribute presense with and without\nflag\n\nChange-Id: I0148d1caba62db8cf258926f1d9e87a849aa283f\n(cherry picked from commit 444f9bb6a18ff34b69cba504c8658b7013eaa53a)\n"
    },
    {
      "commit": "6cacbcbf436be744a34f7ea0d4f838ff97757446",
      "tree": "776d8808c385eff13b39097a1b64585df88959e3",
      "parents": [
        "6a8ea4fe24dc0116de74a19b3d2a5fe89d0d1736"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Mar 30 14:04:52 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Mar 30 17:36:49 2018 -0700"
      },
      "message": "Use modern c++ code style for incidentd.\n\nThis cl does not contain code logic changes.\n\nBug: 77333635\nTest: manual and incidentd_test\nChange-Id: Iea0a402b1051defd45159ca267e6dd705f9ffa49\n"
    },
    {
      "commit": "03cd687912154e8ebfc7c09cfba5c829c7ed0260",
      "tree": "5f8665aa9216f879bc0f85ca4a1cc3c39ea17f71",
      "parents": [
        "49c27f2267b3742a2f1b59cd23b94dbbfa42295e",
        "97e21ec34029e17848c9cd91c27dee1a6eca3a78"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 20:57:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 20:57:56 2018 +0000"
      },
      "message": "Merge \"Surface the log write errors to StatsLog.write\" into pi-dev"
    },
    {
      "commit": "97e21ec34029e17848c9cd91c27dee1a6eca3a78",
      "tree": "1ce90fffe5724c403d5b72253c4fb1a055ac9ea4",
      "parents": [
        "d9afdee26f01d1e0277749959094d9f396799a69"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Mar 29 11:00:38 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Mar 29 11:00:38 2018 -0700"
      },
      "message": "Surface the log write errors to StatsLog.write\n\nTest: statsd_test\nBug: 77222120\nChange-Id: I1c6e41a3949ce21fbec6893da7f5f94f5aec8c36\n"
    },
    {
      "commit": "c65461e584e127d23a6df9fa8b356285661c0fe0",
      "tree": "2b51a65e46c53f587dfd5ccffa93d14f01b66e64",
      "parents": [
        "abe058c0f02fa34af186ce9ac642fd7369aebee8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 27 16:16:13 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 27 16:26:19 2018 -0600"
      },
      "message": "Detect paths without lunch.\n\nTest: manual\nBug: 76097999\nChange-Id: I47b97719f6aa957b0a216e6e1930ae2fe2f0108b\n"
    },
    {
      "commit": "abe058c0f02fa34af186ce9ac642fd7369aebee8",
      "tree": "584041014c78489cc70a40ec4c1d627994f719c9",
      "parents": [
        "b133cbfd0b5afb0217ee45c8e26847465c6a717a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 26 09:38:01 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 26 11:04:48 2018 -0600"
      },
      "message": "Add linter for strings.xml.\n\nStrings are tedious to get right, so write a lint script that catches\ncommon errors to warn developers before they\u0027re uploaded.\n\nTest: builds, boots\nBug: 76097999\nChange-Id: I9826ca796c17cd93a100951d56214653de63a379\n"
    },
    {
      "commit": "aed0fed078170d466217ed71fd03cebee050e595",
      "tree": "2f798906ca0be7c71650b85dddae74a78a930935",
      "parents": [
        "8cf1ae492877182fe37aca4237f67fb0634047fb",
        "c40a19d2e43d5de3e036e926bf070220c2c865e6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 20 17:12:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 17:12:25 2018 +0000"
      },
      "message": "Merge \"Add uid field annotation in atoms.proto and statd memory usage optimization.\" into pi-dev"
    },
    {
      "commit": "f7db43ee354a9cbda937e642952d8b3ac4ca66c4",
      "tree": "15bebe8d955e3a66bee671a1a07f3b75780add36",
      "parents": [
        "6b4e6a17e93198ffedfb6a447ff49364da9307f3"
      ],
      "author": {
        "name": "corysmith@google.com",
        "email": "corysmith@google.com",
        "time": "Tue Mar 13 12:04:10 2018 -0400"
      },
      "committer": {
        "name": "corysmith@google.com",
        "email": "corysmith@google.com",
        "time": "Sun Mar 18 14:30:13 2018 -0400"
      },
      "message": "Writes the resource table proto out when writing a LoadedApk.\n\nSmall fixes for consistancy to use constants instead of strings.\n\nChange-Id: I33439c376e1634b7957730ce16e241b0f5bb92f8\nFixes: 74594854\nTest: Manual, tested against blaze test //javatests/com/google/devtools/build/android:UnitTests\n"
    },
    {
      "commit": "c40a19d2e43d5de3e036e926bf070220c2c865e6",
      "tree": "4fa3688aee73fdd1a7295fd83a782665f7676650",
      "parents": [
        "ddbb9d00a262e46054636582d3dda02f57694d77"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Mar 15 16:48:25 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Mar 16 13:56:38 2018 -0700"
      },
      "message": "Add uid field annotation in atoms.proto and statd memory usage optimization.\n\n[memory]\n  statsd binary size from 664k -\u003e 600k\n  memory usage 1978k -\u003e 1813k (with no configs)\n  + Avoid initialize any static map in statslog.h to avoid many copies of the map in each include.\n    - Do it in cpp so that it is initialized only in places that use them\n\n[Uid annotation]\n+ Uid annotation is needed for extracting uid from dimension for UidCpuPuller.\n+ After the change, stand-alone uids don\u0027t need to be in field 1 anymore.\n+ Also added exclusive bit annotation in AppDied\n+ Currently only allow one uid field in an Atom. This is to keep things simple until\n  we find an exception.\n\nTest: statsd_test\nBug: 73958484\nBug: 72129300\n\nChange-Id: I8a916d5c00d5930e24ae7e0825a57dea19c0e744\n"
    },
    {
      "commit": "934cc613fde11548e5b166cb51e3afb9c9943734",
      "tree": "ff6666e89a87709e337af47c172986aeff00d764",
      "parents": [
        "874b0091372a5a74e8a959c15dc93b4e82a2329d"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Mar 15 14:14:26 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Mar 15 14:23:01 2018 -0700"
      },
      "message": "Fix bug to break switch cases.\n\nBug: 75001195\nTest: N/A\nChange-Id: I99274cbf34d191c25ad9ced08f999c59f922cb25\n"
    },
    {
      "commit": "eadd123d68850cb27aa6d030ade6190e30991b19",
      "tree": "28ee59bef758929559dde7b34a9dbe962f1196c9",
      "parents": [
        "0efaf2088d8e3ba8ec560aa5eb597ef456b5213e"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Feb 05 16:45:13 2018 -0800"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Mar 07 21:50:12 2018 +0000"
      },
      "message": "Dumping stack traces to proto.\n\nBug: 72177715\nTest: flash device and check incident.proto output\nChange-Id: Id2a15e0fc62b66efe875949af97f0eb651c7e322\n(cherry picked from commit 5c804e2b9893c7892900148229cf19fa6268e7dc)\n"
    },
    {
      "commit": "d137c872cdc5e157c0ff65076689f7c4552a9013",
      "tree": "3c2dffe6115c25dc65faf975c7d3bc12f397bde4",
      "parents": [
        "aa79f03ca6c4c5a3a262aeaf2b608ffd4807ab13"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Mar 07 11:42:04 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nExempt-From-Owner-Approval: Global cleanup\nChange-Id: I26458e41ecb84de91ac9a356a5d4bafb44f463c1\n"
    },
    {
      "commit": "7d55509c199a624a5a4f7f0b4374edd1eb114d6f",
      "tree": "8176eb170c56b20197d813cab0f561a7ac3a626a",
      "parents": [
        "74564a43bf6ca32999641eb3fc947bb564651b3b",
        "ecf4bdb4477d5fcc469c1c4ea7418e16e71037b8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 03 00:02:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 03 00:02:52 2018 +0000"
      },
      "message": "Merge \"Modifying proto csv output to include privacy levels.\""
    },
    {
      "commit": "f3c951fd528ae240ef149b815d644ddef3a1c361",
      "tree": "ab7a5714e8707cf37b65a472d4fa3702995a8067",
      "parents": [
        "51aed1c8b9f395cdd2ac7b0aa8ed7a6bf183d214",
        "a95e841846c3add37cab0ca228e1e1a4eb0a1455"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 22:38:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 22:38:46 2018 +0000"
      },
      "message": "Merge \"Change ownership of AAPT2 and libandroidfw\""
    },
    {
      "commit": "51aed1c8b9f395cdd2ac7b0aa8ed7a6bf183d214",
      "tree": "b7230ca97902f54105351830ba6b9cdd978d0659",
      "parents": [
        "a3767f0747c5b64068faa54a86f3cdd8550f8927",
        "c9a2926e661df75ba2517da166bf3b561fd678ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 22:36:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 22:36:22 2018 +0000"
      },
      "message": "Merge \"AAPT2: Allow to inline XML into custom attribute\""
    },
    {
      "commit": "a95e841846c3add37cab0ca228e1e1a4eb0a1455",
      "tree": "1f9694d068249d7dc4c1b9a0b81db0f3bb4f6f26",
      "parents": [
        "8e4419a087a6112d1a656636175fe765d0cd1916"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 12:10:25 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 12:11:03 2018 -0800"
      },
      "message": "Change ownership of AAPT2 and libandroidfw\n\ntoddke@ is now the new owner of these projects.\n\nTest: none\nChange-Id: Ie92b020e0ba063f48ce8a76ebaef768fe0d554f1\n"
    },
    {
      "commit": "c9a2926e661df75ba2517da166bf3b561fd678ec",
      "tree": "f0f074fc40f9d17d06352930ed7f6938e30e59f9",
      "parents": [
        "b437f30f286131cc3a01bca7b56ca7dcab37cf74"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 01 20:04:00 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 01 20:04:00 2018 -0800"
      },
      "message": "AAPT2: Allow to inline XML into custom attribute\n\nPreviously, doing something like\n\n\u003cparent xmlns:app\u003d\"http://schemas.android.com/apk/res-auto\"\n        xmlns:aapt\u003d\"http://schemas.android.com/aapt\"\u003e\n    \u003caapt:attr name\u003d\"app:foo\"\u003e\n        \u003cchild /\u003e\n    \u003c/aapt:attr\u003e\n\u003c/parent\u003e\n\nwould result in something like:\n\n\u003cparent xmlns:app\u003d\"http://schemas.android.com/apk/res-auto\"\n        xmlns:aapt\u003d\"http://schemas.android.com/aapt\"\n        foo\u003d\"@generated_name\" /\u003e\n\nwhile it should result in:\n\n\u003cparent xmlns:app\u003d\"http://schemas.android.com/apk/res-auto\"\n        xmlns:aapt\u003d\"http://schemas.android.com/aapt\"\n        app:foo\u003d\"@generated_name\" /\u003e\n\nBug: 36809755\nTest: make aapt2_tests\nChange-Id: I72ea4b402e196ca05b53b788e4768a265190a0dc\n"
    },
    {
      "commit": "34a1687a67cfc08dd2baca6e92180e0930006c6f",
      "tree": "5f2d9f08a58c44faab6377bf02dc412dbf18daf3",
      "parents": [
        "c2c1d7094b9b4d22d99c62df234054b37548092b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 23 16:18:10 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 01 11:18:23 2018 -0800"
      },
      "message": "AAPT2: Remove resources that define locales but no default values.\n\nAccording to our docs:\nhttps://developer.android.com/guide/topics/resources/localization.html#defaults-r-important\n\nSome resources *require* that there is a default definition. So far,\nthe pain is felt when doing translations for strings that have been\nrenamed, etc.\n\nThis CL strips out resources that don\u0027t have a default value and define\na resource for a locale. This is conservative, but should be expanded\nto other configuration properties moving forward.\n\nBug: 36572857\nTest: make aapt2_tests\nChange-Id: Ife94a1f8a2ee221f8532ffa856541a9c8c4e7143\n"
    },
    {
      "commit": "ec98448f153aff274e7e9c7db473d8413049ba2f",
      "tree": "669f1deede8c86b67632c5315c1db3b41d2445d3",
      "parents": [
        "ff1f7090c62ac7b4abff39ad432c38e7d30f2b3d",
        "1a11fa10977ee1e2645d400844ff4d472b8f5f02"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 03:02:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 03:02:16 2018 +0000"
      },
      "message": "Merge \"Implement a new section to attach LAST_KMSG to incident report This section simply gzip a large file and stores result in GZippedFileProto\""
    },
    {
      "commit": "2eed52ecc0c2fa3e96530e4b5556eaa82f7c2dfc",
      "tree": "4e0a49770f684a2ca823d958c0f1a2b3adabcab9",
      "parents": [
        "e1094a2e232277a719025aa5c97c492502c34f5b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 21 15:55:58 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 27 11:39:10 2018 -0800"
      },
      "message": "AAPT2: Fix styled string whitespace processing\n\nChange styled string whitespace processing to be like AAPT\u0027s was.\n\nMain changes:\n- whitespace around tags is preserved.\n- tags start exactly where they are supposed to, not off by one.\n\nBug: 72406283\nTest: make aapt2_tests\nChange-Id: I4d12728c493efd8c978e2e3d2718b56534ff52ef\n"
    },
    {
      "commit": "1a11fa10977ee1e2645d400844ff4d472b8f5f02",
      "tree": "f2a56b25e6da627ab148344900be49ee6e8281c7",
      "parents": [
        "acb42c36f5ecfa2ab442fce1b97ab446c73008a8"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Feb 22 16:44:10 2018 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Feb 27 11:36:29 2018 -0800"
      },
      "message": "Implement a new section to attach LAST_KMSG to incident report\nThis section simply gzip a large file and stores result in GZippedFileProto\n\nThis greatly improves the size, before gzip, the last kmsg size ~500KB,\nafter gzip the proto size is ~60KB.\n\nBug: 73354384\nTest: atest incidentd_test and manual on device test\nChange-Id: I9bfc2cf07384487671edbffb5f0bd8495608fea6\n"
    },
    {
      "commit": "e1094a2e232277a719025aa5c97c492502c34f5b",
      "tree": "8b3c1a4edfcac8198689716386d93da17e93be6b",
      "parents": [
        "3e946e9309e62f6d0405ded1e96a362cf3d9dbde"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 22 17:27:17 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 23 14:59:37 2018 -0800"
      },
      "message": "AAPT2: Fix issue with String flattening in XmlFlattener\n\nCompiled Strings (previously not encountered) in an XML resource\nwere using a different StringPool than the one being referred to\nin the XmlFlattener, and so the indices were all wrong.\n\nBug: 72700446\nTest: make aapt2_tests\nChange-Id: I663924f8fad50fd4c69cfa196318dc63fb641a25\n"
    },
    {
      "commit": "ecf4bdb4477d5fcc469c1c4ea7418e16e71037b8",
      "tree": "1b41e458a94385e2fa2eafb3bd5f03641e4454d3",
      "parents": [
        "414189fefe71beb998541cb2932b90f073ae8bcd"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Feb 22 15:05:48 2018 -0800"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Feb 22 17:48:23 2018 -0800"
      },
      "message": "Modifying proto csv output to include privacy levels.\n\nBug: 73775471\nTest: use new output in go/irpf\nChange-Id: Ib9e836e350f8d664ef66ecfe2539d15d164953be\n"
    },
    {
      "commit": "868688ed1610b55461175db752bf4ef1900f7fcc",
      "tree": "eee2c51ff18348ca27429c431c9729e38653c819",
      "parents": [
        "2cb882d61a6f213eaf231f106c8aa735ca28ccfc",
        "9c1debe330006b2b4d5c08a55905789c57369609"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 05:36:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 05:36:45 2018 +0000"
      },
      "message": "Merge \"Add annotation to atoms that represent a state change in atoms.proto\""
    },
    {
      "commit": "9c1debe330006b2b4d5c08a55905789c57369609",
      "tree": "ec02b691f65a16d75d5cee817b404012706ea961",
      "parents": [
        "75c515effa72b2e7af774ee2c513cff7ec1dbd0e"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Feb 19 14:39:19 2018 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Feb 21 16:46:56 2018 -0800"
      },
      "message": "Add annotation to atoms that represent a state change in atoms.proto\n\n+ A state change atom can have one exclusive state field, and any\n  number of primary key fields.\n\n  When there is primary key in the atom, it means the state belongs to the primary key.\n  For example,\n  message UidProcessStateChanged {\n    optional int32 uid \u003d 1 [(stateFieldOption).option \u003d PRIMARY];\n    optional android.app.ProcessStateEnum state \u003d 2 [(stateFieldOption).option \u003d EXCLUSIVE];\n  }\n\n  When there is no primary key fields in the atom, the state is global.\n  For example,\n  message ScreenStateChanged {\n     optional android.view.DisplayStateEnum state \u003d 1 [(stateFieldOption).option \u003d EXCLUSIVE];\n  }\n\n+ The annotation is consumed by stats_log_api_gen to generate a static map from the state\n  atoms to its primary fields, and exclusive fields\n\n+ stats_log.proto is splitted into 2 proto files, because statsd needs proto lite, and c++\n  lite proto library cannot properly ignore the field options which requires full proto.\n\n This CL doesn\u0027t change any logic in the statsd yet. A separate CL will use the field option\n information to correctly track the state.\n\nTest: added unit tests in stats_log_api_gen_test. and statsd_test pases.\nChange-Id: I9e8a979fe81ba60efd4d854bb7087ce4b2b147ec\n"
    },
    {
      "commit": "c4aa760428c3fddf891c4bf74c145688e914ee29",
      "tree": "41f10beb85b95eb551e62fac0629e6673b6e0fca",
      "parents": [
        "581ff5ec0dd4c63cae9f86ad95b76ff951853b13"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Feb 20 13:12:27 2018 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Feb 20 13:20:54 2018 -0800"
      },
      "message": "Remove a few atoms from the timestamp truncating whitelist.\n\nTest: statsd test\nChange-Id: Ic6a152cb400bef33139357d60f6d0feca855ade2\n"
    },
    {
      "commit": "581ff5ec0dd4c63cae9f86ad95b76ff951853b13",
      "tree": "821e9760b7cab91e028fd2144c7148ee99ff7e04",
      "parents": [
        "62b618eef6749283382b325264daeddb31294a2f",
        "d5c356214fabec1ad9d5d16d673f000deb49ea30"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 20 20:41:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 20 20:41:29 2018 +0000"
      },
      "message": "Merge \"Timestamp Truncating whitelist.\""
    },
    {
      "commit": "3ac786d2177388cfa7adf1dfd3f04f87e8a61f5a",
      "tree": "f0390f717c35cdec4f47dcc64a56419ccbd96e35",
      "parents": [
        "29ff057e1a2d7d3421d2d551818b36cc44c302cb",
        "d31bc123a06d2ffc2ca1b76a591a07865744ae12"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 19 10:42:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 19 10:42:35 2018 +0000"
      },
      "message": "Merge \"AAPT2: normalize Manifest java identifiers.\""
    },
    {
      "commit": "d5c356214fabec1ad9d5d16d673f000deb49ea30",
      "tree": "42ebd65160ded90da5941fcf1bf90dda6f3bdbdd",
      "parents": [
        "15235cd5f700ba9dfa30532b38bad66f2f75b60e"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Fri Feb 02 10:33:25 2018 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Sat Feb 17 21:11:54 2018 -0800"
      },
      "message": "Timestamp Truncating whitelist.\n\nTest: manually tested.\nChange-Id: I46da375b6c0773ffc611bc06fff12cb4f9a7fc18\n"
    },
    {
      "commit": "983bacb959f45fbe098ab99ddcef40ccc9de4652",
      "tree": "3c89096c8a71ba8f0e7b37cecbaa2c50cc157282",
      "parents": [
        "3d9ae24567134a454132581908d182a51c242c5d",
        "a65bbdf43c2c29222e4067e97cc1ec1137fea516"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 17 01:58:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 17 01:58:18 2018 +0000"
      },
      "message": "Merge \"AAPT2: Ensure output formats of files are correctly set\""
    },
    {
      "commit": "ee21f695b6dbc5b9e3e8f4c97d0960569da0f3d2",
      "tree": "190fc031ee5a80c1658c2670ab90833a4caf7558",
      "parents": [
        "0f888de06b3dcbb73a410578d48539ca970f4f3b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Feb 16 13:29:29 2018 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Feb 16 13:29:32 2018 -0700"
      },
      "message": "Recommend ICU replacements, no clone, no Impl.\n\nWhen ICU has a better replacement class, recommend that APIs use\nthat instead.\n\nYell if someone implements clone(), and point them towards a copy\nconstructor instead.\n\nYell if someone exposes \"Impl\" classes.\n\nTest: manual\nBug: 73392214, 71906588, 62627348\nChange-Id: I75dcba2c4ab7ca426057eefb0335c935c3ced79a\n"
    },
    {
      "commit": "a65bbdf43c2c29222e4067e97cc1ec1137fea516",
      "tree": "5d86bfd1dde9364897dd09c4d79006a4655849fc",
      "parents": [
        "bbf429795d0558797e7ac8d1024fa5c16552e96c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 15 12:39:44 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 15 16:44:15 2018 -0800"
      },
      "message": "AAPT2: Ensure output formats of files are correctly set\n\nWhen compiling straight to proto from source, the file types\nwere not set correctly (binary XML or proto XML).\n\nBug: 73406447\nTest: manual\nChange-Id: I68c1881a00a2ec1ad58f7ec485af2543d262d076\n"
    },
    {
      "commit": "f74309f5e213d57dc9c53bd4d9310bc1eeee4a96",
      "tree": "d8490d29b8c23040dfcb1b46fa2024a0a5ceaca2",
      "parents": [
        "67d9a90b63fb40320104f027d1e6979e033775d3",
        "bbf429795d0558797e7ac8d1024fa5c16552e96c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 06:39:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 06:39:21 2018 +0000"
      },
      "message": "Merge \"AAPT2: Fix issue with deserializing binary XML\""
    },
    {
      "commit": "79fe852dab82ee0081c291f698e7c3fccdc857cc",
      "tree": "ebf26a9205681ca92eb79ea94e2bd37cd11fc848",
      "parents": [
        "4a9bde84829986a5dc34b85aeea3d0b39bdb5015",
        "31ddcde690e9a8c5d2450152ba784de4c54a1801"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 06:11:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 06:11:59 2018 +0000"
      },
      "message": "Merge \"Log the elapsed realtime in non-chained interface.\""
    },
    {
      "commit": "237b1d0cf699c6e9fe3f59ac00d1167227e52a80",
      "tree": "d3ca94a50aa83003e77eda7c52606b301836e30b",
      "parents": [
        "6467e98270a96c2fe5ff3680804c5ffa90df946d",
        "d05b9130fdbff8062084b566a380c5b058273d75"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 05:46:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 05:46:47 2018 +0000"
      },
      "message": "Merge changes I2f594c22,I37a2b8b8\n\n* changes:\n  AAPT2: Fix compatible-screens element in AndroidManifest.xml\n  AAPT2: Add order attribute to groups\n"
    },
    {
      "commit": "f19f505772e661c0c64b004ae875b95410f82a0b",
      "tree": "1b3ff2bf781fc62754f1c69498e2963cae16db6d",
      "parents": [
        "697c09560e09111ab3597374d42af842c8dcba6b",
        "da9eba300b0f84505fe094374c14d4bc910880d2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 02:41:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 02:41:54 2018 +0000"
      },
      "message": "Merge \"Dump XML files in aapt2 dump\""
    },
    {
      "commit": "bbf429795d0558797e7ac8d1024fa5c16552e96c",
      "tree": "987ac3c405f420e07ff2fdaec3bc3f7037eca487",
      "parents": [
        "da9eba300b0f84505fe094374c14d4bc910880d2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 14 13:36:09 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 14 16:11:23 2018 -0800"
      },
      "message": "AAPT2: Fix issue with deserializing binary XML\n\nWe assumed that a raw text value set for an attribute meant there\nwere no compiled values set either.\n\nThis would only really happen for attributes that did not belong to any\nnamespace (no prefix:), since we always kept their raw string values\nin case some code relied on it.\n\nBug: 72700446\nTest: make aapt2_tests\nChange-Id: Icba40a1d4b181bfe7cad73131c4dbe5ba7f8b085\n"
    },
    {
      "commit": "31ddcde690e9a8c5d2450152ba784de4c54a1801",
      "tree": "82ed1a5282c8eaf25e43da182565e95e34a08c6a",
      "parents": [
        "9a7b7adca36b2381cc472e0938d2c7e9baf95e92"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Feb 14 16:09:35 2018 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Feb 14 16:09:35 2018 -0800"
      },
      "message": "Log the elapsed realtime in non-chained interface.\n\nTest: statsd test\nChange-Id: I61e457bd069147fd1b1fc964b27d42d4ec19230d\n"
    },
    {
      "commit": "d05b9130fdbff8062084b566a380c5b058273d75",
      "tree": "c841be557f76cf8be9ce9152860d4a47ff15f0bb",
      "parents": [
        "11cdc1cf7ab2e915611e2bb7264bd312012a9b64"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Feb 14 15:40:35 2018 -0800"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Feb 14 15:44:42 2018 -0800"
      },
      "message": "AAPT2: Fix compatible-screens element in AndroidManifest.xml\n\nFix an issue where the compatible-screens element was not being\npopulated correctly. The previous version was missing the screenSize\nattribute which is mandatory. The attributes were also missing the\nresource ID from the framework library as these are a part of the public\nAPI.\n\nChange-Id: I2f594c2259831dbbd96c58db4ba55e8288d4231e\nTest: unit tests\nTest: manually split an APK and dumped with aapt\n"
    },
    {
      "commit": "da9eba300b0f84505fe094374c14d4bc910880d2",
      "tree": "61f967b9c7ea92490db7b309ee3291dd52c32308",
      "parents": [
        "97661735aab95260f68d33896f76d071fe025fcd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 13 16:44:10 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 14 10:49:32 2018 -0800"
      },
      "message": "Dump XML files in aapt2 dump\n\nTest: manual\nChange-Id: Id7f656c1385f6d1fec8eaa993c8e2b36bb1ae5b0\n"
    },
    {
      "commit": "330af58f2b8582b855085655fae553cdfaf44e6c",
      "tree": "b93137833b438812155cac1ae1958cf963f7d8d3",
      "parents": [
        "73d6050edf397d38aa262f2eff19551a4458ca73"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Thu Feb 08 15:24:38 2018 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Feb 13 23:30:39 2018 -0800"
      },
      "message": "Use elapsed realtime instead of times based on wall clock, which can jump around and go backwards.\n\nTest: statsd unit test passed\n\nChange-Id: Ib541df99231e171b3be2a24f75632693e36da90e\n"
    },
    {
      "commit": "d31bc123a06d2ffc2ca1b76a591a07865744ae12",
      "tree": "5debe4c21d27bb8c66622e4666c621ebe424b1b3",
      "parents": [
        "40ce09581d8ef85ef9d5222d9b7c875429e913d1"
      ],
      "author": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Mon Feb 12 11:03:42 2018 +0000"
      },
      "committer": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Tue Feb 13 14:09:00 2018 +0000"
      },
      "message": "AAPT2: normalize Manifest java identifiers.\n\nCurrently AAPT2 does not allow permissions which last piece contains the\n\"-\" symbol (since it is an illegal character for a java identifier).\n\nAAPT1 would normalize the last piece, therefore creating a valid java\nidentifier.\n\nThis CL makes AAPT2 behave in a similar way to AAPT1, but instead of\nmodifying the original value of the permission string, modifies only the\njava identifier part, leaving the permission string unchanged.\n\nFixes: 72980877\nTest: updated\nChange-Id: Ie44317e07407341ba3e91a84d9b06980547b3448\n"
    },
    {
      "commit": "7d07ad1ef2b0edd4c850d366ea77ab0d24cd9db8",
      "tree": "4cbdd3ffcecf79e81ccaaee650c3c4dd94ee8c67",
      "parents": [
        "d120065f3e50101db4721a3b2235f07dc1044145",
        "37ba3de333a0bdc6ef2833afbdfb57260a58a1a4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 13 08:41:41 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 13 08:41:41 2018 +0000"
      },
      "message": "Merge \"Don\u0027t put android.os.Parcelable in framework.aidl\" am: 0872f6d5e3 am: 6864210fe2\nam: 37ba3de333\n\nChange-Id: Ib8d8277171ede82ea4626b6d2de2fcb9c1a1d307\n"
    },
    {
      "commit": "37ba3de333a0bdc6ef2833afbdfb57260a58a1a4",
      "tree": "0898f89771e11081f9e4a82a406a56fcba86ff4e",
      "parents": [
        "7532fc8bb98a56adea7b9d07da26b33a3ec9f76f",
        "6864210fe2011bd0e40ea1808dfed5dcd33c64a5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 13 07:51:59 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 13 07:51:59 2018 +0000"
      },
      "message": "Merge \"Don\u0027t put android.os.Parcelable in framework.aidl\" am: 0872f6d5e3\nam: 6864210fe2\n\nChange-Id: I17a5277ece615569670f5f8ea9c2ed42fb473a52\n"
    },
    {
      "commit": "0ac5791e9ef884762921c8a5c2e2503aea8b5296",
      "tree": "0f7177c277520e68cb6714ee400ad2ff9ba2bcc3",
      "parents": [
        "ca8b6fdf1bea5691e4461ed0819d4eb157afbc81",
        "35e1410551ad82b9bed51b28f57585ff5ea069bc"
      ],
      "author": {
        "name": "Nick Butcher",
        "email": "nickbutcher@google.com",
        "time": "Fri Feb 09 22:42:26 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 09 22:42:26 2018 +0000"
      },
      "message": "Merge \"Prevent AAPT from versioning \u003canimated-selector\u003e tags.\" into oc-mr1-dev\nam: 35e1410551\n\nChange-Id: If9f28bfe12d75fca6b8f07c15b77f78267ef6292\n"
    },
    {
      "commit": "fdbe7d1ca90ac40f9b629524d9aea26e59899c50",
      "tree": "136ed4bf0b85a3bf73654be606a1c1385e8072a3",
      "parents": [
        "4c8fa81d177bfd2f144ebe153df74edb8b332f5a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 09 11:24:14 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 09 11:29:15 2018 -0800"
      },
      "message": "Don\u0027t put android.os.Parcelable in framework.aidl\n\nParcelable shouldn\u0027t be in the list of parcelables in framework.aidl.\nRemove it to fix warning when running aidl:\nframework.aidl:287 attempt to redefine built in class android.os.Parcelable\n\nAlso make the dependency on sdk_parcelables not be order-only so\nframework.aidl gets rebuilt when sdk_parcelables changes.\n\nBug: 73135791\nTest: ParcelableDetectorTest\nTest: out/target/common/obj/framework.aidl does not contain android.os.Parcelable\nChange-Id: If5222879be9ec1e5fa08810adc624ec526ddc0ec\n"
    },
    {
      "commit": "e78a8169665c19b5539508f113093b6c2a4b80de",
      "tree": "0f645728f1a25f71a0db4046d96226bc3d77afb6",
      "parents": [
        "c8b76fe1f4d48aadf07c479dc9412d6b344bab1a"
      ],
      "author": {
        "name": "Nick Butcher",
        "email": "nickbutcher@google.com",
        "time": "Tue Jan 09 15:24:21 2018 +0000"
      },
      "committer": {
        "name": "Nick Butcher",
        "email": "nickbutcher@google.com",
        "time": "Fri Feb 09 11:36:27 2018 +0000"
      },
      "message": "Prevent AAPT from versioning \u003canimated-selector\u003e tags.\n\nBug: 69359529\nTest: Manually tested with ag/3178054\nChange-Id: I10ae4d96c2a31a0a7c363d7a9292ecdfd3bb526a\n"
    },
    {
      "commit": "1084432e1e15ffa96ea03045daaa2220dc21d566",
      "tree": "d9abdb849f002c16c32afee18a08525012af666a",
      "parents": [
        "ea8feabec59d4c4925a8ff8b3c35ff7ba909d671"
      ],
      "author": {
        "name": "Mohamed Heikal",
        "email": "mheikal@google.com",
        "time": "Wed Feb 07 15:17:38 2018 -0500"
      },
      "committer": {
        "name": "Mohamed Heikal",
        "email": "mheikal@google.com",
        "time": "Thu Feb 08 14:50:14 2018 -0500"
      },
      "message": "AAPT2: Fix silent failure when ContainerReader fails during Link\n\nCurrently in the link step ContainerReader is used to read files but the\nreader is not checked for errors prior to the read. This can lead to\nsilent failure when reading invalid resource files.\n\nChange-Id: I6420699ad30b5b84b0b2c696af8eb5a6cbd4111e\n"
    },
    {
      "commit": "83b3cb483088a175e6bc473e92853c13a2b273b3",
      "tree": "7cde67ffe392e5651ee55f5d7077856397d0fcb2",
      "parents": [
        "a0f75399e240ef82c4e56a47d1016d02558c5b21",
        "cf4d62fdd3a604eb53ed9b1912d6cc0c28d54c97"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 07 02:13:05 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 07 02:13:05 2018 +0000"
      },
      "message": "Merge \"Add missing copyright messages\" am: 872f386f6b am: 32a1dc5075\nam: cf4d62fdd3\n\nChange-Id: I75f2c81a9e7c7ec0175e50b3bb58cedc8c36a2be\n"
    },
    {
      "commit": "cf4d62fdd3a604eb53ed9b1912d6cc0c28d54c97",
      "tree": "30699a0baeb8ab4fde952331da404b6168110aa2",
      "parents": [
        "2c732796e1e6499006b4e1165dd9a47d0cd59972",
        "32a1dc5075a216582bdeb21589cc5348e041c5e2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 06 23:06:08 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 06 23:06:08 2018 +0000"
      },
      "message": "Merge \"Add missing copyright messages\" am: 872f386f6b\nam: 32a1dc5075\n\nChange-Id: I9602e1c9dda5e842fd71c9f48cf354aea4650d74\n"
    },
    {
      "commit": "1b27440abc8d515012da44914d3ced17c104a68e",
      "tree": "712c73f292f5c943ba0df8809ec43fdcdf309185",
      "parents": [
        "1f14eab551c8c0d32b5b922618c41ac3e72d85e3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 06 11:10:25 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 06 11:10:25 2018 -0800"
      },
      "message": "Add missing copyright messages\n\nBug: 72993971\nTest: m sdkparcelables\nChange-Id: I9fa422160c29ce3054748b2b8d1e26541a697a90\n"
    },
    {
      "commit": "11cdc1cf7ab2e915611e2bb7264bd312012a9b64",
      "tree": "80eafc89fd3c394718d6eb1e5d2023c4586fdb7a",
      "parents": [
        "d82eeb321b2f6ef504f7d5679ae2069997c70024"
      ],
      "author": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Wed Jan 31 16:43:24 2018 -0800"
      },
      "committer": {
        "name": "Shane Farmer",
        "email": "safarmer@google.com",
        "time": "Fri Feb 02 12:11:18 2018 -0800"
      },
      "message": "AAPT2: Add order attribute to groups\n\nRequire explicit ordering of groups in the configuration file to ensure\nthat the correct version code is set. Ordering based on a single ABI is\nstraight forward to ensure Play Store delivers the correct APK, but when\nan APK needs more than one ABI things get messy quickly. This also goes\nfor screen density etc. The only thing that is easily sorted without\nthis attribute is android-sdk since an artifact can only reference a\nsingle SDK.\n\nTest: unit tests\nTest: manually split an APK with update config.xml\nChange-Id: I37a2b8b8a8409d6d6ff27c7142d4c8c8065a7a51\n"
    },
    {
      "commit": "22ed4122e7849a4538208c65f403298fe0fff891",
      "tree": "6989cf803cebd137da27b3b2bb2d858246362247",
      "parents": [
        "2043082f968a385c2ab976dffed4d02b027c50e4"
      ],
      "author": {
        "name": "Dave Ingram",
        "email": "dmi@google.com",
        "time": "Tue Jan 30 16:11:52 2018 -0800"
      },
      "committer": {
        "name": "Dave Ingram",
        "email": "dmi@google.com",
        "time": "Tue Jan 30 21:15:36 2018 -0800"
      },
      "message": "AAPT2: Fix typo in BinaryPrimitives oneofs\n\nFollow-up to ag/3449569\n\nBug: 69587794\nTest: aapt2_tests\nChange-Id: I95d2ba600c00bda2a8420794e43501f9bfca01df\n"
    },
    {
      "commit": "b8344dc72fde9386cdecbb1aa8a47f1e8e430111",
      "tree": "6b28079105fb9b0ff8bd194c66e6a1eb03ac46af",
      "parents": [
        "c04c265dd57e0fe2c880e529cc5cfc8164180009"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Jan 24 17:33:35 2018 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Jan 24 18:25:33 2018 -0800"
      },
      "message": "Fix command line tool to set the right privacy enum.\n\nTest: manual\nChange-Id: I3f0845ea32b46f1a028f8b6d3d4180a90a47beb5\n"
    },
    {
      "commit": "adb4fc73b0d9be2ad5f76c9e7248440625b80b75",
      "tree": "964bf06ab633b33c24e14147e636e87f03969381",
      "parents": [
        "2cef59dc7b027aa499d06882e7f864c1fc971329",
        "68985805f26f5da6cc6b63934cb00fbff2741ca9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 18:18:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 18:18:24 2018 +0000"
      },
      "message": "Merge \"Avoid processing log event when there is no uid field.\""
    },
    {
      "commit": "ae992b6392c10134fe250d32f0d7e85e21998e6f",
      "tree": "036d0753b7233e13479db6348e874e08d8ae92c7",
      "parents": [
        "240ad971ebae7e8870584c840cbc35d55095c994",
        "5fb872e7878266c850bef249a0417a3bc3e18251"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Wed Jan 24 12:45:48 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 24 12:45:48 2018 +0000"
      },
      "message": "Merge \"Fail when there is an ASM error\" am: 4152497b4b am: 05bb83c87d\nam: 5fb872e787\n\nChange-Id: I63222e0f376184649f8634932edc6ee296418b91\n"
    },
    {
      "commit": "5fb872e7878266c850bef249a0417a3bc3e18251",
      "tree": "1de713567da01253f2c1fc29b576365b343fdf1c",
      "parents": [
        "eacecc37e8fd3b2157ef2a591cd211dead57bb89",
        "05bb83c87db6d1ec874e51760810c81210bac185"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Wed Jan 24 12:36:26 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 24 12:36:26 2018 +0000"
      },
      "message": "Merge \"Fail when there is an ASM error\" am: 4152497b4b\nam: 05bb83c87d\n\nChange-Id: I27be59afd9f021c2933d10b6becb0f7542162a37\n"
    },
    {
      "commit": "68985805f26f5da6cc6b63934cb00fbff2741ca9",
      "tree": "73239566cf18c18f34d58ac8d4a4cff8fc83a038",
      "parents": [
        "4953824b89bfbdd5a85a2a7182c0903d9283e1d1"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Sun Jan 21 10:05:09 2018 -0800"
      },
      "committer": {
        "name": "Yang Lu",
        "email": "yanglu@google.com",
        "time": "Tue Jan 23 16:43:07 2018 +0000"
      },
      "message": "Avoid processing log event when there is no uid field.\n\nTest: all statsd unit test passed\n\nChange-Id: Id434d86586950a485b30a244f3c030e8202c1c6d\n"
    },
    {
      "commit": "9f17dfcba6f286bca0fb47c32105c07328a4cc5c",
      "tree": "09240955569f717529a572ce2fec9d254c00e321",
      "parents": [
        "b3c2efc6156cb86ae1f8958ee89a8ac404b190df"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Mon Jan 22 17:38:41 2018 +0100"
      },
      "committer": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Mon Jan 22 17:42:21 2018 +0100"
      },
      "message": "Fail when there is an ASM error\n\nOtherwise during a build, Locked Region Code Injection may encounter an\nASM Analyzer exception, and the build will not fail, even though\ninjection won\u0027t have succeeded.\n\nTest: make\nChange-Id: Iee69f1a78fde735db62c7f73405b8cec4e410793\n"
    },
    {
      "commit": "e5b3296316b49bda30b2753025632bd8d9c3bf2e",
      "tree": "10ea488e40ec7b72d9cec7fcb80eb0aff8c27e59",
      "parents": [
        "f4e08c3efeda28ce7a9d839745dc14f2ca75d7f4",
        "cf5326fae1da55b9050834bb63bfa264a6d2af60"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 17:10:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 17:10:29 2018 +0000"
      },
      "message": "Merge \"Allow \u003cadopt-permissions\u003e tag in manifest\""
    },
    {
      "commit": "cfd1b4b263da8fac7bda724fae0e42e618256871",
      "tree": "3abe0d80a7f5ba306e7580d13357f3d2d0c923c1",
      "parents": [
        "24de6a45aae21d576e84b1398ce346baf7639710",
        "e3c1a4a9d21e7698e9e5196086198569ac5cc6cd"
      ],
      "author": {
        "name": "David Chaloupka",
        "email": "chaloupka@google.com",
        "time": "Fri Jan 19 10:57:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 10:57:53 2018 +0000"
      },
      "message": "Merge \"Handle multiple packages of same name in \u0027aapt2 convert\u0027\""
    },
    {
      "commit": "e52851673117f2e486152c606b517637285b17aa",
      "tree": "5a2294840879975d88ae25bf7b65ec21e81ac536",
      "parents": [
        "3727179195cc9d8c46431b6ab2616663b95889aa",
        "1403ff2b0b5f23b11ce427f54c16d3ebd62100eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 03:37:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 03:37:25 2018 +0000"
      },
      "message": "Merge \"Ignore missing font in fontchain_linter.py\""
    },
    {
      "commit": "1403ff2b0b5f23b11ce427f54c16d3ebd62100eb",
      "tree": "c6bbf4201c1336faa512c59fd8f40d21f121533f",
      "parents": [
        "633792e2d3fd0d09eebc4294119dcc9b1b1de970"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 17:24:31 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 17:24:31 2018 -0800"
      },
      "message": "Ignore missing font in fontchain_linter.py\n\nIt is totally valid if the font is missing even if the font is listed in\nfonts.xml. Android Watch has less fonts and OEM vendor may reduce the\nfont files.\n\nBug: 72159040\nTest: m fontchain_lint\nChange-Id: I22bdf7bfeb6d80a2a338ebf7536c8eaf193b03c5\n"
    },
    {
      "commit": "8f2fffd809690bbef2593fbf45bc3d86a9ceedab",
      "tree": "626897cd34a290d31286b4879683ae19ded07e7f",
      "parents": [
        "f5e25a3052070485fc520863e3e6162097466e39",
        "d06f1f38a9266f4674a89d69d33198abd12b0e78"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 01:00:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 01:00:00 2018 +0000"
      },
      "message": "Merge \"AAPT2: Store BinaryPrimatives in protos as oneofs\""
    },
    {
      "commit": "e3c1a4a9d21e7698e9e5196086198569ac5cc6cd",
      "tree": "e26d206ea6ea40e0d670f6daf14fce0e894130e5",
      "parents": [
        "588a06f5a25adad63337ac481f9e1b55dcc169a1"
      ],
      "author": {
        "name": "David Chaloupka",
        "email": "chaloupka@google.com",
        "time": "Thu Jan 18 13:44:36 2018 +0000"
      },
      "committer": {
        "name": "David Chaloupka",
        "email": "chaloupka@google.com",
        "time": "Thu Jan 18 19:20:01 2018 +0000"
      },
      "message": "Handle multiple packages of same name in \u0027aapt2 convert\u0027\n\naapt2 currently looks-up packages only by package name and then verifies\nwhether the package ID has the expected value. For pre-L we need to be able\nto handle resource tables having packages of same package name but\ndifferent IDs.\n\nNote that this CL fixes only proto-\u003ebinary conversion but many other aapt2\ncommands are still affected. This is because many transformations still\nconsider package name as sufficient identifier of a package.\n\nBug: 72143207\nTest: Manual\nChange-Id: Id8a920d6cd15bec747d3124270f5bcb7f48924cf\n"
    },
    {
      "commit": "415689bb1ca2554c8752debc0a1ed927a885c723",
      "tree": "e40df0b4b2a7c8805ddb23de197dbf46c8a17970",
      "parents": [
        "0b2941fb09c0f6015fc587d47c4d809c29eb168d",
        "b66db4ec4c24d0d46c91d527b7f500fa66efca2b"
      ],
      "author": {
        "name": "David Chaloupka",
        "email": "chaloupka@google.com",
        "time": "Thu Jan 18 10:06:01 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 18 10:06:01 2018 +0000"
      },
      "message": "Merge \"Adjust file reference type in \u0027aapt2 convert\u0027\""
    },
    {
      "commit": "d06f1f38a9266f4674a89d69d33198abd12b0e78",
      "tree": "3b9e22ed452d5008cfe7d7ae3606a19eabfbd082",
      "parents": [
        "a629e4c393e5ac52c07598a5d3b4ed120115c97d"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Thu Jan 11 18:36:22 2018 -0800"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Jan 17 16:58:43 2018 -0800"
      },
      "message": "AAPT2: Store BinaryPrimatives in protos as oneofs\n\nFixes: 69587794\nTest: aapt2_tests\n\nChange-Id: Idf5526f6b1b720b6e476bcdf8c2155e13a6ecc0f\n"
    },
    {
      "commit": "bd56951c5bce2b3b799de1e306275120cf336763",
      "tree": "17e03fa6c928dbf284d657f8d4d3f8058ffd9236",
      "parents": [
        "072abed5f552871db18a86863d04cfc89714ad5f",
        "a4fb17bbbba59c5ee92402eb8c5da4e3c52560b2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 17 20:20:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 17 20:20:29 2018 +0000"
      },
      "message": "Merge \"aapt2: Fix issue with Manifest duplicate handling\""
    },
    {
      "commit": "b66db4ec4c24d0d46c91d527b7f500fa66efca2b",
      "tree": "9f0d23edea8a06eb02524a855db208b4e14b1dfb",
      "parents": [
        "200cd63fb3ff5b4354773e9994f4340f18b39cbc"
      ],
      "author": {
        "name": "David Chaloupka",
        "email": "chaloupka@google.com",
        "time": "Mon Jan 15 12:35:41 2018 +0000"
      },
      "committer": {
        "name": "David Chaloupka",
        "email": "chaloupka@google.com",
        "time": "Wed Jan 17 11:07:44 2018 +0000"
      },
      "message": "Adjust file reference type in \u0027aapt2 convert\u0027\n\nWhen converting between binary and proto APKs in either direction, the\n\u0027aapt2 convert\u0027 command did not adjust FileReference type for entries\ninside the resource table. This fix makes in-place changes of the resource\ntable passed to ConvertApk, which is safe since the resource table is\nthrown away after the conversion.\n\nBug: 71854843\nTest: Manual\nChange-Id: Ide6e141269392db15b399db3566f18175f5133d5\n"
    },
    {
      "commit": "a4fb17bbbba59c5ee92402eb8c5da4e3c52560b2",
      "tree": "5b89566ac4d6cbd47a892211be26ff5948d6a28f",
      "parents": [
        "d6808dc0c00ba45fd589449647f792daf9fa8126"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 16 17:05:10 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 16 17:06:33 2018 -0800"
      },
      "message": "aapt2: Fix issue with Manifest duplicate handling\n\nFixed a memory-corruption issue that led to multiple duplicate\npermission entries being generated for Manifest.java.\n\nBug: 71641288\nTest: make aapt2_tests\nChange-Id: I8cd37929c4883aaba2beebbf874c7ee3234d51d8\n"
    },
    {
      "commit": "ba5b9e44bbfa7577c45c5c5e7e75cc1cd82a31b7",
      "tree": "275dfe9ba25338043f86c3f9ef4f431c135991a7",
      "parents": [
        "02c0e98600b6b0cdf912effea48877b5ddbafed9"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Jan 10 21:31:59 2018 -0800"
      },
      "committer": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Mon Jan 15 16:41:29 2018 -0800"
      },
      "message": "Stats log interface for single node attribution chain.\n\nUsually the input parameters for attribution chain is list of int64/string.\nThe new c++interface takes one int64 and one string as input and write\nas a single node into logd.\n\nThis will help avoid allocating temp objects in battery stats java code.\n\nTest: all statsd unit test passed.\nChange-Id: Ia0f7f26b71a570bd3628c42726a5afb0a500d073\n"
    },
    {
      "commit": "db947de10f2231cece6924537b73e1ac56fd5a88",
      "tree": "3fb03e8749712067957a31052f2b7614b2ee861c",
      "parents": [
        "21d4f67a317a2a806320b9a02e3e13af5e1b6acd",
        "336dd0bf63814e9bc51635d763099f27939b9fb6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 12 20:57:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 12 20:57:05 2018 +0000"
      },
      "message": "Merge \"Add another pass of commont lint rules.\""
    }
  ],
  "next": "336dd0bf63814e9bc51635d763099f27939b9fb6"
}
