)]}'
{
  "log": [
    {
      "commit": "275c3ec6584534739c43da9508f8623508edebeb",
      "tree": "e5eaeaa8e8f2173c5e9837ef04161d785a3a4747",
      "parents": [
        "439c73b13e999e51340557ebd459eeeb699951ed",
        "3c918b8cee9a5dc5381cc7a5f4938a1095e99559"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 01 02:13:08 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 02:13:08 2019 +0000"
      },
      "message": "Merge \"Option to exclude configs from AAPT2 Link\""
    },
    {
      "commit": "ab364fc3b6ab26ddf4f1b4a6bf01b64056a181ef",
      "tree": "33e2040299ad0f39ab677a98f01334d97cc18a34",
      "parents": [
        "447919d2e5efdf907976e7d2b5f6860dc1400bf3"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Wed Jan 30 08:32:57 2019 -0800"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Wed Jan 30 08:32:57 2019 -0800"
      },
      "message": "Suppress -Wimplicit-fallthrough in aapt code\n\nAaptAsssets intentinally falls through in a switch statement.\nThis change adds [[fallthrough]]; to suppress this implicit fallthrough.\n\nframeworks/base/tools/aapt/AaptAssets.cpp:305:17: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]\n                case 5:\n                ^\nframeworks/base/tools/aapt/AaptAssets.cpp:305:17: note: insert \u0027[[fallthrough]];\u0027 to silence this warning\n                case 5:\n                ^\n                [[fallthrough]];\nframeworks/base/tools/aapt/AaptAssets.cpp:305:17: note: insert \u0027break;\u0027 to avoid fall-through\n                case 5:\n                ^\n                break;\n\nTest: make -j aapt\nChange-Id: Ia9d2ca3b59eb804e20c6295791f6a19f0f5f63ab\n"
    },
    {
      "commit": "1ebc40339a7102f95a3938703ff1f20e41c45ed8",
      "tree": "893a5ae2db60bea555dc0fef9d457fcbb4cdcf96",
      "parents": [
        "526e9a00da70a8fa4ec343109acb844ecd4663e9",
        "06f2c9fc73299b5440b25eab5718a1e757b4e1ab"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 29 22:23:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 22:23:21 2019 +0000"
      },
      "message": "Merge \"Revert \"Add android.hardware.fingerprint for pre-Q\"\""
    },
    {
      "commit": "b47ddd4a1d3363ed6477e6cf4ffbc13cc8164c24",
      "tree": "eae01a52e23563abcf8a7efe0a8f7154abd07491",
      "parents": [
        "a319c6448b027f1169722295ceedac564a13de78"
      ],
      "author": {
        "name": "Ashley Rose",
        "email": "ashleyrose@google.com",
        "time": "Mon Jan 28 19:54:09 2019 -0500"
      },
      "committer": {
        "name": "Ashley Rose",
        "email": "ashleyrose@google.com",
        "time": "Tue Jan 29 13:34:31 2019 -0500"
      },
      "message": "Run inspector annotation processor on framework\n\nTest: m\nBug: 117616612\nChange-Id: Ifb013cf576e57818493a52aefec9729ecca4ac08\n"
    },
    {
      "commit": "fcbec265e6c08a4a837752925ee78687bac51e5c",
      "tree": "de3a34ce0b95ba11ace306b3b1ba530e87989ed1",
      "parents": [
        "3fce7487c3a9b4358202285b09603a31f5e84a69",
        "ea23830f1b0214287d0ed24ff5f023b56b49681e"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 29 08:43:16 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 29 08:43:16 2019 -0800"
      },
      "message": "Merge \"apilint: Allow parsing 3.0 signature files\" am: 34b11c92b3 am: f9cd2cb759\nam: ea23830f1b\n\nChange-Id: Ifaf2deff0451455d26a3301354753b751c3b464d\n"
    },
    {
      "commit": "34b11c92b34c8244c47fc2c1f9d8eb733b884004",
      "tree": "1a330d29a994899c0be4191325a553216519b489",
      "parents": [
        "9fdc6d296378bd17432ba1de507c83f4c3b8ed3a",
        "cf82e044003398a57d29c31f498ea2428edc7587"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 29 16:05:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 29 16:05:21 2019 +0000"
      },
      "message": "Merge \"apilint: Allow parsing 3.0 signature files\""
    },
    {
      "commit": "cf82e044003398a57d29c31f498ea2428edc7587",
      "tree": "1591912465efdbc16ccd0d3a2137acb9a8040176",
      "parents": [
        "87c1081c4222e490364422a1f21dbec9a35c6791"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 29 15:01:28 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 29 15:01:28 2019 +0100"
      },
      "message": "apilint: Allow parsing 3.0 signature files\n\nTest: python apilint_test.py\nChange-Id: I59df950229c05329afde93f94efc13adb4640ad7\n"
    },
    {
      "commit": "171c9cdc6addc3528733a47541ed7b93b139693b",
      "tree": "c3060f2f6d0447bdd1d8e0084506d2db575047f3",
      "parents": [
        "3ffdb26aa8da4778c10739049299a09d6d9febf5",
        "32885536233f16b1369d6cc93616de03d0e97559"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 28 22:15:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 22:15:35 2019 +0000"
      },
      "message": "Merge \"clang-format ManifestFixer_test.cpp\""
    },
    {
      "commit": "3c918b8cee9a5dc5381cc7a5f4938a1095e99559",
      "tree": "ea49c379af359c91043cdff577e2adc60ce5c335",
      "parents": [
        "2ddb1c8f521413112042aafbdb95a889e1a69ef8"
      ],
      "author": {
        "name": "Winson",
        "email": "chiuwinson@google.com",
        "time": "Fri Jan 25 14:25:37 2019 -0800"
      },
      "committer": {
        "name": "Winson",
        "email": "chiuwinson@google.com",
        "time": "Mon Jan 28 11:06:33 2019 -0800"
      },
      "message": "Option to exclude configs from AAPT2 Link\n\nAdds --exclude-configs to remove matching configs from resulting APK. This matches on explicitness, so if the resource contains all the flags set by the option exactly, it will be removed, but not the other way around.\n\n\"--exclude-configs fr\" with fr-land resource will remove.\n\"--exclude-configs fr-land\" with fr resource will not remove.\n\nBug: 119678846\n\nTest: aapt2_tests ResourceExcluder_test\nTest: manually ran link on a test set of res\n\nChange-Id: Ieccdecde4aea1fa0502abfd092dffa7da8f929ea\n"
    },
    {
      "commit": "0b671da4b19c7bd36ac7de01c65912fd09d2f36f",
      "tree": "b4e3688893296eb690b07cf77eedfdf78d182f01",
      "parents": [
        "e8d1eaa1dcc8308c5959a83ce483f3194a40cd82"
      ],
      "author": {
        "name": "Ashley Rose",
        "email": "ashleyrose@google.com",
        "time": "Fri Jan 25 15:41:29 2019 -0500"
      },
      "committer": {
        "name": "Ashley Rose",
        "email": "ashleyrose@google.com",
        "time": "Mon Jan 28 18:21:30 2019 +0000"
      },
      "message": "Annotation processing for int enum and flag mapping\n\nBug: 117616612\nTest: atest --host view-inspector-annotation-processor-test\nChange-Id: I791ffd8ce6bf6ec3ba408bb2a781fd91871b0ed6\n"
    },
    {
      "commit": "70edfa8c31309032b27277f1b897a374dbbd6f23",
      "tree": "29b14fa9dec09570b70b19a044bbc0549b8e6795",
      "parents": [
        "ce0bd06d174460b69594518e5cf35a85e13b73f8"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Dec 14 15:46:27 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Jan 26 09:48:40 2019 -0800"
      },
      "message": "[bit] Use aapt2 instead of aapt, and don\u0027t also adb install apps on the system partition\n\nTest: bit services\nChange-Id: I7d44ffbb2745b1a6265bbc77f24f885e5f1d3981\n"
    },
    {
      "commit": "ce0bd06d174460b69594518e5cf35a85e13b73f8",
      "tree": "41bbda1fbcb89427e7c6313f8b056694fc5ee3b0",
      "parents": [
        "08f1ef2d156eed9e3a4f8cd85ef0123f049c16b9"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Jan 14 15:30:05 2019 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Jan 26 09:48:25 2019 -0800"
      },
      "message": "[bit] Cache the build variables so we don\u0027t have to run make to figure them out unless the environment has changed.\n\nTest: bit GooglePermissionControllerTest:*\nChange-Id: Ie79226026477df22115ed1146875b82c2255bdef\n"
    },
    {
      "commit": "ced0b0c90c05007b0b0e223a6afcf6f5a3672a56",
      "tree": "3b8a22b776283fe19e9f67dad5ed4eb9c16accf2",
      "parents": [
        "cea31af085a8ad79c71fe52fbce3ad358c6e6bc2",
        "f54c9a1d72aa3f307e6d78b7f9221354d72fc6e1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 25 22:03:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 25 22:03:49 2019 +0000"
      },
      "message": "Merge \"De-duplicate entries written with AAPT2 convert\""
    },
    {
      "commit": "32885536233f16b1369d6cc93616de03d0e97559",
      "tree": "b00ccf9375f10eb244c103ff58ac8539e8e8071a",
      "parents": [
        "1b9de57f3844c8aa784a5163a4581851c2f17baf"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 11 13:20:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 25 21:33:02 2019 +0000"
      },
      "message": "clang-format ManifestFixer_test.cpp\n\nFix formatting errors introduced by Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336.\n\nTest: m checkbuild\nChange-Id: I5d9a4cec277e31f4124bff281bf7a52cc97f73e3\nMerged-In: I10b27abb8fa8a99a41976c42c4d684b99978b4f9\n"
    },
    {
      "commit": "f54c9a1d72aa3f307e6d78b7f9221354d72fc6e1",
      "tree": "664f1f24f58a89a407724aebdf85135eae396190",
      "parents": [
        "3b943e777e57c6f3c7351c23daea2f12ac8ea928"
      ],
      "author": {
        "name": "Winson",
        "email": "chiuwinson@google.com",
        "time": "Wed Jan 23 12:39:40 2019 -0800"
      },
      "committer": {
        "name": "Winson",
        "email": "chiuwinson@google.com",
        "time": "Thu Jan 24 16:10:16 2019 -0800"
      },
      "message": "De-duplicate entries written with AAPT2 convert\n\nThere was no check for whether we had already written a specific file path to the APK when using the convert command.\n\nIf the resources table points 2 resource IDs at the same file on disk, the convert command would write the file twice, creating two entries.\n\nThis holds a set of file paths already written and ignores duplicates.\n\nBug: 123271593\n\nTest: Ran convert on linked bug\u0027s weird.apk\nTest: aapt2_tests case for duplicate entries\n\nChange-Id: Ia22515bf8e8297624aaadbf6a9e47159026c63e5\n"
    },
    {
      "commit": "9237af70809c2aff09b6064838ede685fe19487e",
      "tree": "945954849df71bf270f5077225dbebca83b68725",
      "parents": [
        "6302322fe969048ad1b5d5342af3ca2d852b5630",
        "a3b22bfd1427ce1c38a64f8b76410578f2e7fda2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 24 17:57:17 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 17:57:17 2019 +0000"
      },
      "message": "Merge \"Replace annotation_processors with plugins\""
    },
    {
      "commit": "591aacaf62a2a85db922e5b73b58041ae9bbcc10",
      "tree": "f85375e0e935a7406000f1780e6ded9d454db93d",
      "parents": [
        "52792d160a876e533658283c08985e9a996a8f98",
        "b55d7a0a9dfab68a65906429ba4d7d54452347be"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 13:47:11 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 13:47:11 2019 +0000"
      },
      "message": "Merge \"Replace debug key.\""
    },
    {
      "commit": "b55d7a0a9dfab68a65906429ba4d7d54452347be",
      "tree": "92f3dc60ed08214176f5f5ff71004a4df93b756f",
      "parents": [
        "6fee8818700e435c5c4f8aa590259af4dd9e3eae"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jan 23 17:52:39 2019 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jan 24 10:02:00 2019 +0000"
      },
      "message": "Replace debug key.\n\nThis gives better consistency with the release key. Also improve the\ndebug_sign script to use base64, to eliminate issues with escaping and\nnewlines.\n\nBug: 110509075\nTest: atest CtsSignedConfigHostTestCases\nChange-Id: Id8d7b6b5bee3340803d30d3a4a34c7e62f565a93\n"
    },
    {
      "commit": "636da777af074a9f6ce52b1247c6f6bb75d8f286",
      "tree": "9b450a47f60a13142aad56965793ea35160958dd",
      "parents": [
        "f3b120041d78346c753c16da03b7989cec6c9245",
        "b7be7934b05c810978466c151e17c4e199e7272b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 07:50:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 07:50:24 2019 +0000"
      },
      "message": "Merge \"Hold data pointer reference to AAPT2 test file\""
    },
    {
      "commit": "a3b22bfd1427ce1c38a64f8b76410578f2e7fda2",
      "tree": "f20687a92fe7b003cc451c418037b9a0cadc686a",
      "parents": [
        "515bd282c5651e8d42f007c47ade8ecc39c802e4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 23 15:38:30 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 23 15:54:30 2019 -0800"
      },
      "message": "Replace annotation_processors with plugins\n\nThe annotation_processors property is deprecated, replace it with\nplugins, and use java_plugin for modules that provide annotation\nprocessors.\n\nBug: 77284273\nTest: m checkbuild\nChange-Id: I467b899e0c8f2c8fa74a9bfbe6e952ad0f7aa009\n"
    },
    {
      "commit": "5d4bd49013bcb8047a929e8abd64d6a6694922bd",
      "tree": "47201e440e36946a2550145796ad9075cebe87c1",
      "parents": [
        "5f80ac0c9b5d5e734ee739d4ebff688f8d372191",
        "4262bd19add797aebef4a6c0daa20338cee6608c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 23 13:03:29 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 23 13:03:29 2019 -0800"
      },
      "message": "Merge \"Replace annotation_processors with plugins\" am: bc40469e19 am: f30fba0a60\nam: 4262bd19ad\n\nChange-Id: I0b417cccddebdccc8613d82d93ff9f0658be8217\n"
    },
    {
      "commit": "bc40469e19fbca8a1bc7a70514cc84aa7e9717a4",
      "tree": "3896199499edb151927b7e05d6404b20ea611109",
      "parents": [
        "436e2ad4c718f8e86e6bc93dec68c23273b831c2",
        "a1f8e1ab3d9f6e2f7db4602d63bf491173642c6c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 23 20:18:02 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 20:18:02 2019 +0000"
      },
      "message": "Merge \"Replace annotation_processors with plugins\""
    },
    {
      "commit": "b7be7934b05c810978466c151e17c4e199e7272b",
      "tree": "c3c36329b3b26ce09b45c95a36195663340cf796",
      "parents": [
        "3b943e777e57c6f3c7351c23daea2f12ac8ea928"
      ],
      "author": {
        "name": "Winson",
        "email": "chiuwinson@google.com",
        "time": "Wed Jan 23 11:10:52 2019 -0800"
      },
      "committer": {
        "name": "Winson",
        "email": "chiuwinson@google.com",
        "time": "Wed Jan 23 11:11:12 2019 -0800"
      },
      "message": "Hold data pointer reference to AAPT2 test file\n\nTo try and solve test flakiness, hold the unique_ptr in the method scope to make sure it\u0027s cleaned up after we assert on it.\n\nBug: 123079798\n\nTest: gonna merge and check for failures, since it passes locally\n\nChange-Id: Id348d1112832cbb82f605a84ef675c25a7488b11\n"
    },
    {
      "commit": "f67808b78dad59ec6b28b53b2390ae08eb19cef8",
      "tree": "f833c151d2b30eb3c40792113170b14d90aa49a3",
      "parents": [
        "9ce77e9b7f0a1d001428030f3ad738220378ae40"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jan 22 16:16:13 2019 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jan 22 16:16:13 2019 -0800"
      },
      "message": "Optimize aapt2 compile for pngs\n\nDo not copy the png data when compiling pngs.\n\nBug: 122950060\nTest: aapt2 compile -o . BaseAppPhoto1_copy.png\n\nChange-Id: I78fbdaa9a40ada406d7b07cf072d6cd76124168e\n"
    },
    {
      "commit": "a1f8e1ab3d9f6e2f7db4602d63bf491173642c6c",
      "tree": "c44d7ab66b6c53c3d1384f0355d57a7d18a51f87",
      "parents": [
        "a4c1416c28c115d9e9bdac2a63e00286d3508aa2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 21 21:45:20 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 22 11:09:51 2019 -0800"
      },
      "message": "Replace annotation_processors with plugins\n\nThe annotation_processors property is deprecated, replace it with\nplugins, and use java_plugin for modules that provide annotation\nprocessors.\n\nBug: 77284273\nTest: m checkbuild\nChange-Id: I14ed4d81e097510866cbb9a27c72be4426117885\n"
    },
    {
      "commit": "06f2c9fc73299b5440b25eab5718a1e757b4e1ab",
      "tree": "39305517cef802bcd654f26ad65226bd324e9bde",
      "parents": [
        "e1de284ae9e163b90c8bac9f428026f3213ef358"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Tue Jan 22 18:19:26 2019 +0000"
      },
      "committer": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Tue Jan 22 18:19:26 2019 +0000"
      },
      "message": "Revert \"Add android.hardware.fingerprint for pre-Q\"\n\nThis reverts commit e1de284ae9e163b90c8bac9f428026f3213ef358.\n\nReason for revert: b/115639644 comment #27\n\nChange-Id: Icf1f067b4d8f6b83be86128f07a89608112cebeb\n"
    },
    {
      "commit": "258c572d5e9421e547fb893e935fbfd544fd236c",
      "tree": "63b2ecc16a2a87454d0009b4f991c31d3be2c12e",
      "parents": [
        "d1e3892119a6a415fb39da5db21e06483db0ae03"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jan 21 15:43:15 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:42:39 2019 +0100"
      },
      "message": "apilint: correctly parse enum_constant\n\nChange-Id: I1a243caa3a01837ff989d21926478f20d70372ae\nFixes: 120132045\nTest: python apilint_test.py\n(cherry picked from commit 373df11baab1fbbd9f6986e38a1a929abc901d63)\n"
    },
    {
      "commit": "0fa45f1e50c130b3f9c620ac47f905abf26ad20c",
      "tree": "22c5ef36f3baa9a38be29dcf62883d1bf74aebf0",
      "parents": [
        "7106cc314edc6486a4d54780615d39c13982b6eb",
        "373df11baab1fbbd9f6986e38a1a929abc901d63"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 10:41:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 22 10:41:53 2019 +0000"
      },
      "message": "Merge \"apilint: correctly parse enum_constant\""
    },
    {
      "commit": "d1e3892119a6a415fb39da5db21e06483db0ae03",
      "tree": "8c51f9f65fd760be08b02c7084f09d47c28a0b0c",
      "parents": [
        "5cdfb69429eb60fc274424d4dcb6b166ed550a42"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jan 14 15:44:15 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:38 2019 +0100"
      },
      "message": "ApiLint: Add operator keyword and property parsing\n\nAlso fix up some issues with expression parsing, type use annotations, etc.\n\nTest: python tools/apilint/apilint_test.py\nChange-Id: I38145a51470ce6c3e5813a546d681489fd87fc19\n(cherry picked from commit 403c8e35d8e7cc0f81a0a2c42d038c47e1b2703f)\n"
    },
    {
      "commit": "5cdfb69429eb60fc274424d4dcb6b166ed550a42",
      "tree": "b433cb91085562876a2216b2d835bfd03f9c455f",
      "parents": [
        "1f1b6a84644916bd2b48f26ccb8cb31b336d4e2f"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 22:04:55 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:37 2019 +0100"
      },
      "message": "ApiLint: Add Kotlin-style type support\n\nTest: tools/apilint/apilint_sha.sh HEAD \u0026\u0026 python tools/apilint/apilint_test.py\nChange-Id: Iac1fdabcbeffe57c8288d73b2359e8ce0b2bc3eb\n(cherry picked from commit 7884d6b9090c586ac0d72abe0e6efab191a143a7)\n"
    },
    {
      "commit": "1f1b6a84644916bd2b48f26ccb8cb31b336d4e2f",
      "tree": "7494836313c86c63cd3997827e088de332000bea",
      "parents": [
        "e5eeae7c23e2b35565274ad9cac38a3a550f33c9"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 20:09:38 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:37 2019 +0100"
      },
      "message": "ApiLint: Performance improvements for verification\n\nTest: tools/apilint/apilint_sha.sh HEAD\nTest: python tools/apilint/apilint_test.py\nChange-Id: I90f18181cd0d3c43f176d7c9d1b198f6f5172390\n(cherry picked from commit 7f8886a9933abbb6f1fdd97d920185b80d439339)\n"
    },
    {
      "commit": "e5eeae7c23e2b35565274ad9cac38a3a550f33c9",
      "tree": "972ab39539dca4b39a7f36447cf69fdf36f5afea",
      "parents": [
        "b787c183a2061c4deb0301c970c00c43fe72fed4"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Jan 04 20:10:06 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:37 2019 +0100"
      },
      "message": "ApiLint: Performance improvements for 2.0 signature format parsing\n\nTest: tools/apilint/apilint_sha.sh HEAD\nTest: python tools/apilint/apilint_test.py\nChange-Id: I76b979dd81702afce6468ac377230e589a25e08f\n(cherry picked from commit a30d062775da3812589a6ce3e49be9d697ef0d6d)\n"
    },
    {
      "commit": "b787c183a2061c4deb0301c970c00c43fe72fed4",
      "tree": "36e3579ff4cc88431cf45b32de3a62d4e7f13709",
      "parents": [
        "038a02992abc2c6bd36f5461529216d9aef3eeb1"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Jan 03 18:54:33 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:37 2019 +0100"
      },
      "message": "ApiLint: Allow parsing 2.0 API signature files\n\nTest: tools/apilint/apilint_sha.sh HEAD\nTest: python tools/apilint/apilint_test.py\nChange-Id: Id2e1792392b3626746f1ec99f481d0cb27e523a1\n(cherry picked from commit d170961b02bf67189ddd14f358c9f263009df786)\n"
    },
    {
      "commit": "038a02992abc2c6bd36f5461529216d9aef3eeb1",
      "tree": "74c77e855fdc2dfd6f1e9bd0f8f527d3c5831e53",
      "parents": [
        "5ed42b6a2e99ae75177cb5790c908b12c4bc47b9"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Dec 19 17:11:21 2018 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:36 2019 +0100"
      },
      "message": "apilint: Fix API lint issues 2/2\n\nFixes false positives that occur when a class in current.txt is faulty, and an\nentry for that class is then added to system-current.txt.\n\nThis was so because when parsing the previous revison\u0027s system-current.txt, we\ndid not know about the class and thus didn\u0027t look for it in current.txt, and\nthus never recorded that the error is preexisting.\n\nTo avoid that, we track all classes in system-current.txt with a matching entry\nin current.txt in the current revision, and later use that to look up all classes we\nmay have missed when examining the previous revision.\n\nTest: python tools/apilint/apilint_test.py\nChange-Id: Ibe09f1159e351e56b35b8816ce0db760de4ef791\n(cherry picked from commit 61e3730bc07e04181a01760d2eb1db834a854683)\n"
    },
    {
      "commit": "5ed42b6a2e99ae75177cb5790c908b12c4bc47b9",
      "tree": "413a099a647477ff3805b51a05cc7663482c95c6",
      "parents": [
        "6eb57b0f4a51255c656c71337fe41b81ff96a3dd"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Dec 19 17:10:22 2018 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:36 2019 +0100"
      },
      "message": "apilint: Fix API lint issues\n\nFixes a bug where only the name instead of the fully qualified name was\nconsidered when looking for a class, which lead to faulty results for inner\nclasses.\n\nTest: python tools/apilint/apilint_test.py\nChange-Id: Ib015669ed3faef21d2bdd16f1e27bc55c8669d70\n(cherry picked from commit 2c5cacfd36128f43f5fab4f0665acf69ac049a44)\n"
    },
    {
      "commit": "6eb57b0f4a51255c656c71337fe41b81ff96a3dd",
      "tree": "12e077d390ec4358f7395a5ec43bc2c3dd7b6cac",
      "parents": [
        "a8e5df06a010406b20a081c780a6e9854a2bad31"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Dec 13 22:08:29 2018 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:36 2019 +0100"
      },
      "message": "API Lint: Add support for base current.txt\n\nAllows specifying a base current.txt and previous.txt file when linting\nsystem-current.txt and test-current.txt to avoid false positive error\nmessages due to public API members not being duplicated in the respective\nnon-public APIs\n\nTest: python tools/apilint/apilint.py --base-current\u003dapi/current.txt api/system-current.txt\nChange-Id: I306a99b1423584ef3fcdc9272a83cb5eacc37227\n(cherry picked from commit 7690d0d4eea0ffa429351b0b1caa34cdb3e0d37f)\n"
    },
    {
      "commit": "a8e5df06a010406b20a081c780a6e9854a2bad31",
      "tree": "52d26c4747292c7aab95e02c94aa01c2e40a4210",
      "parents": [
        "eff9e228c12e1f75feab9c59a3edf546050cc1bc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Nov 27 17:33:42 2018 -0700"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:36 2019 +0100"
      },
      "message": "Guide towards Context.createPackageContextAsUser().\n\nIt\u0027s a better alternative that should be used instead of adding\nnew \"ForUser\" or \"AsUser\" methods.\n\nBug: 115654727\nTest: manual\nChange-Id: I8742c2ef42d743ef69f8f7a91378f498fdc81e43\n(cherry picked from commit 86445841ac90e04941dbc8dad34f2a893a2e0f8b)\n"
    },
    {
      "commit": "eff9e228c12e1f75feab9c59a3edf546050cc1bc",
      "tree": "557156379dcaf0376a34ba260e66195a58b24b29",
      "parents": [
        "0a2e15dd6eb16d0796a871d55710048c05c54d2f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 27 16:29:25 2018 -0600"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:35 2019 +0100"
      },
      "message": "Moar lint rulez!\n\nBug: 37534642, 116675691, 116798271, 72059458, 111790177\nTest: manual\nChange-Id: Ib079ae580a827f225be08f90dbdddeee7d341c48\n(cherry picked from commit daac37f229f84ed844adcf1ffd3432b235524d9b)\n"
    },
    {
      "commit": "0a2e15dd6eb16d0796a871d55710048c05c54d2f",
      "tree": "30561f901166312afaf83f16cf99508eb51a5024",
      "parents": [
        "40d67f4b6dcad3f5728f9b3542e350028bbe8b8f"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Thu Sep 13 16:06:59 2018 -0700"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:35 2019 +0100"
      },
      "message": "Update lint rules for graphics/text package layering\n\nTest: N/A\nBug: 77347886\nChange-Id: I907d99b4a1dee0c69b914e55a033d3d9c4eebe56\n(cherry picked from commit e23aeb802409cb337ad66454049c9e3b6af0db9a)\n"
    },
    {
      "commit": "40d67f4b6dcad3f5728f9b3542e350028bbe8b8f",
      "tree": "11eff6bdaba450180d47a2f9422a64051829d275",
      "parents": [
        "fe5ee6e74b45553e408b1f5c47db773fd971ea7e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 17 13:29:40 2018 -0600"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:34 2019 +0100"
      },
      "message": "Handle new current.txt format.\n\nWe\u0027re starting to see \"@interface\" show up, so handle them like any\nother interface.  We\u0027re also seeing more details argument lists\nwith names and annotations; ignore them for now, since all our\nexisting lint checks work on the \"real\" data type.\n\nVerified that it handles new support library current.txt files\nwithout causing any regressions against existing framework\ncurrent.txt files.\n\nTest: manual inspection\nBug: 111555356\nChange-Id: Id11c3561edd317e4ba1a9b43993fd96d8243e00d\n(cherry picked from commit bd2611916990b0d18a36483060365207fdd94c13)\n"
    },
    {
      "commit": "fe5ee6e74b45553e408b1f5c47db773fd971ea7e",
      "tree": "0cb7cfa29323038bf2f7a0ddbc4db34d4f44916d",
      "parents": [
        "20f1e0ca1d6c3a0724e94b8fbcbe4b36c93b42b8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 20 11:26:16 2018 -0600"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 22 11:36:34 2019 +0100"
      },
      "message": "Extend lint script to emit API statistics.\n\nBug: 77588754\nTest: manual\nChange-Id: I240dba5fae1a8635a4265a1af903517f00dec54c\n(cherry picked from commit daa7cf3a365c24e3a81d0df178c188b12e6d3a91)\n"
    },
    {
      "commit": "c3457450d95f03d649225c4d577f2556623042f6",
      "tree": "f1a0fc30a5bc0f4a3c166e38f0557c921d177eb7",
      "parents": [
        "ea26641aa8bc4b470258148082abac2dbdb4fa6b",
        "ed9f1140d1f845ae30a9810570181eb6df095efd"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 12:21:52 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jan 21 12:21:52 2019 -0800"
      },
      "message": "Merge changes from topics \"coreapi-flag\", \"coreapi-stubs-csv\" am: 4620039dc5 am: e5aa99f45c\nam: ed9f1140d1\n\nChange-Id: I860b4e8953af55382c875a6c62951bb5c0da70e3\n"
    },
    {
      "commit": "ea26641aa8bc4b470258148082abac2dbdb4fa6b",
      "tree": "53693d45482204f252b5624ce39cbc08255726d9",
      "parents": [
        "c58b652ee037697b591396e1326b9442fdf02582",
        "20d06a01661d118be6ea5cdaea7e85ff082cf17c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 12:14:55 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jan 21 12:14:55 2019 -0800"
      },
      "message": "hiddenapi: Expect public/private API as CSV am: 17d16e84da am: 046c140ff3\nam: 20d06a0166\n\nChange-Id: I3982dc2b0ed6ef0771522acbfe97a8002195b2ea\n"
    },
    {
      "commit": "373df11baab1fbbd9f6986e38a1a929abc901d63",
      "tree": "372d3fa0ae3aa273725fe0096223f3d7f621581c",
      "parents": [
        "7f6d6a95f53153fd03a378be9c970df9a300a8a7"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jan 21 15:43:15 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jan 21 16:01:51 2019 +0100"
      },
      "message": "apilint: correctly parse enum_constant\n\nChange-Id: I1a243caa3a01837ff989d21926478f20d70372ae\nFixes: 120132045\nTest: python apilint_test.py\n"
    },
    {
      "commit": "17d16e84da23464dc7a621eaa87a79c6cc1170ce",
      "tree": "3322550f528428f4eb4d7f2b88e71429a6faea54",
      "parents": [
        "bc6e433ae488b4ad807c1503a53155a3259fd0b8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 13 17:00:09 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Jan 19 15:57:36 2019 +0000"
      },
      "message": "hiddenapi: Expect public/private API as CSV\n\nRefactor of `hiddenapi` changed the output format of public/private API\nlists to a single CSV file. Change API list generation accordingly.\n\nIn order to avoid special-casing this CSV file, it is treated the same\nas the CSV files produced by `class2greylist`. The merging rules are\nrelaxed so that signatures in CSV files are not checked against\na pre-initialized set of all signatures (previously generated from the\npublic/private API files). This should not lead to build errors as the\nCSV files are always auto-generated, and a missing/extra signature will\nbe caught by `hiddenapi`.\n\nAPI lists in frameworks/base/config are processed later and checked\nthat they are a subset of the signatures in CSV.\n\nBug: 119068555\nTest: compiles, hiddenapi-flags.csv unchanged\nChange-Id: I33f2cbaa15f2d423a75e6ca64abe1c5b0c40c86f\n"
    },
    {
      "commit": "439d3496ed38cea04824f7ad48e277297ab1f243",
      "tree": "0de7538e6832966d630f246b1493bfdd16ff8ffb",
      "parents": [
        "17d16e84da23464dc7a621eaa87a79c6cc1170ce"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 07 11:49:55 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Jan 19 15:57:36 2019 +0000"
      },
      "message": "hiddenapi: Support \u0027core-platform-api\u0027 flag\n\nLibcore class members annotated with @CorePlatformApi now generate\na new hiddenapi flag. This is the first of \"domain API\" flags which\ncan be used in conjunction with API list flags. Therefore modify\nthe \u0027generate_hiddenapi_lists.py\u0027 logic to treat them differently.\nSpecifically, the script marks otherwise unassigned class members\nblacklisted. A class member with \u0027core-platform-api\u0027 may still not\nbe assigned an API list and should be blacklisted.\n\nBug: 119068555\nTest: m appcompat\nChange-Id: I2b67e7a619677e853c87bc2da934410458ce4d14\n"
    },
    {
      "commit": "c1a4decb3945604583badf4b5eb5b5f0c6c39375",
      "tree": "7b8fe72bac7459acd84382def4aaf772cfdafbd8",
      "parents": [
        "61ae7ed2c6697d95c06422cad6aa4d4063dd4b24"
      ],
      "author": {
        "name": "Ashley Rose",
        "email": "ashleyrose@google.com",
        "time": "Thu Dec 13 18:06:30 2018 -0500"
      },
      "committer": {
        "name": "Ashley Rose",
        "email": "ashleyrose@google.com",
        "time": "Fri Jan 18 16:47:29 2019 -0500"
      },
      "message": "Annotation processing for @InspectableProperty\n\nTest: atest --host view-inspector-annotation-processor-test\nBug: 117616612\nChange-Id: Ia9641b4efae5f6945084849309f81f2d31faf2ec\n"
    },
    {
      "commit": "feccee99fabf0d42564550f2a80463633aabd818",
      "tree": "f103845f6f45dd37ec43a12780114329da2e9b5d",
      "parents": [
        "0f5eade4a492fc91130da1aedcad0999932f4137",
        "d8ebfefceee7fbfaae730d3414c8017840097761"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Fri Jan 18 16:53:46 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 18 16:53:46 2019 +0000"
      },
      "message": "Merge \"Remove old private constant from ResourceId.\""
    },
    {
      "commit": "0857c584aee8dd07339791107c7dbb3d4e81c496",
      "tree": "75e785934043b653f53976c001abadee3cc924c9",
      "parents": [
        "25b35daba89f1b0765f72baed1db0d8d314cb373",
        "a3ab21f04ac976ced7933af04e8f8cb593571a03"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 18 10:59:42 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 18 10:59:42 2019 +0000"
      },
      "message": "Merge \"AAPT2: always say which file failed to compile\""
    },
    {
      "commit": "a117526b4a7555a355e784de35cc7750c6c2abdf",
      "tree": "be06363b2157990471cc246d336ffabba0b557bc",
      "parents": [
        "9853845074f1d44c1498b9ca4b7fbd3544122abb",
        "02d9c1e931610d4732d474b1b33ad836db450016"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 18 00:41:31 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 18 00:41:31 2019 +0000"
      },
      "message": "Merge \"Remove RRO policy product_services\""
    },
    {
      "commit": "d8ebfefceee7fbfaae730d3414c8017840097761",
      "tree": "8339a6341f406023a62912bb16599a1c2b99b87d",
      "parents": [
        "01c723743942183b9ade382f410756dc3e90c427"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Wed Jan 16 12:46:42 2019 -0800"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Thu Jan 17 12:51:58 2019 -0800"
      },
      "message": "Remove old private constant from ResourceId.\n\nBug: 122967079\nTest: make -j builds\nChange-Id: I3e999044df02549e84208d38bb77d2ce1d1bd73b\n"
    },
    {
      "commit": "a3ab21f04ac976ced7933af04e8f8cb593571a03",
      "tree": "1830e2539e6e7cb7b0ef8c3b7428ec3714403f2e",
      "parents": [
        "352ed665f5820e0088739c681289269794cce7d1"
      ],
      "author": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Thu Jan 17 12:09:59 2019 +0000"
      },
      "committer": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Thu Jan 17 12:12:25 2019 +0000"
      },
      "message": "AAPT2: always say which file failed to compile\n\nSometimes AAPT2 doesn\u0027t include the path of the file in the error\nmessage, or just outputs a warning where an error should be printed\n(but the overall build still fails without an error message). Let\u0027s\nalways include the file path to make it easier for the users to find out\nthe source of the failure.\n\nFixes: 122856772\nTest: manual\nChange-Id: Ibbbfd21b372792e5eaa40278186eb64cdfb0f60e\n"
    },
    {
      "commit": "54938a0534b2dfdc98a3113eadacb5196929577c",
      "tree": "9ae0b075c5f8209ccf7527f2f232d7320e6b464f",
      "parents": [
        "46c2a56f6d21bed16a75f378de6756b3e4952ef4",
        "79f039689895f620d8dee5d3a58e63f8cca1ba3e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 16 23:24:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 16 23:24:10 2019 +0000"
      },
      "message": "Merge \"AAPT2: Add support for parsing codeNames with fingerprints.\""
    },
    {
      "commit": "02d9c1e931610d4732d474b1b33ad836db450016",
      "tree": "e7eba585fa7280552667fab9c771121b19302c57",
      "parents": [
        "d10d06d0b01151d6fcdf7ac70b5382e08858e233"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 11 16:36:58 2019 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jan 16 11:47:33 2019 -0800"
      },
      "message": "Remove RRO policy product_services\n\nSince Q will no longer have a product_services partition, remove instances of\nthe product_services policy across aapt2, androidfw, and idmap2.\n\nBug:122745343\nTest: aapt2_tests and libandroidfw_tests\nChange-Id: I97c223a0bf5a2eab95811e5f738b44af6335e0ea\n"
    },
    {
      "commit": "bf08b91174dfd3fab0fd1001f1624544776018d2",
      "tree": "0f8de7c6201369ea2de3e7fdc0ff5d85d0994a56",
      "parents": [
        "e59718c3d1480755a4b0cae997be93a536887bc2",
        "e1de284ae9e163b90c8bac9f428026f3213ef358"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jan 16 19:18:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 16 19:18:59 2019 +0000"
      },
      "message": "Merge \"Add android.hardware.fingerprint for pre-Q\""
    },
    {
      "commit": "79f039689895f620d8dee5d3a58e63f8cca1ba3e",
      "tree": "b32eea286726171e5cc9bcff40bc9b7355942120",
      "parents": [
        "f8e7ff917512017baf1fff7b2a9efd533fec78a5"
      ],
      "author": {
        "name": "Nicholas Lativy",
        "email": "nlativy@google.com",
        "time": "Wed Jan 16 16:19:09 2019 +0000"
      },
      "committer": {
        "name": "Nicholas Lativy",
        "email": "nlativy@google.com",
        "time": "Wed Jan 16 16:49:31 2019 +0000"
      },
      "message": "AAPT2: Add support for parsing codeNames with fingerprints.\n\nIn addition to supporting manifest declared codenames of the form\n\"[codename]\", also support codenames of the form \"[codename].[fingerprint]\".\n\nMatches the behaviour of PackageParser as of ag/6056697.\n\nTest: ResourceUtils_test\nChange-Id: I814330eba9d383e4549e35da791fcfa9bd0cdf57\n"
    },
    {
      "commit": "cf9dd94323e0bf4934281582a1851e60f1fa36ac",
      "tree": "1a7a160c3f03987d1929a6c23717f0ffb78bd040",
      "parents": [
        "edb5e1a1b8e6791f85040a6b602d5c7929260be7",
        "ef5673a4c4021ca27b40e48020203928d71c95a8"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jan 15 19:34:30 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 19:34:30 2019 +0000"
      },
      "message": "Merge \"Add encoding of name and actor overlayable fields\""
    },
    {
      "commit": "c6223792246f1188f4357f10cd360bd695cb18b9",
      "tree": "fbead0cc9100dba48a703a21ba448c3a4eb7aea6",
      "parents": [
        "149b0d29c6f9a5558111e5d8ae7832c5b7280f88",
        "403c8e35d8e7cc0f81a0a2c42d038c47e1b2703f"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 15 15:37:37 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 15:37:37 2019 +0000"
      },
      "message": "Merge \"ApiLint: Add operator keyword and property parsing\""
    },
    {
      "commit": "149b0d29c6f9a5558111e5d8ae7832c5b7280f88",
      "tree": "e15fe81ca2b3e62bc91226162dc08e85b288150a",
      "parents": [
        "40f4cb5d5e440789cc0862a6bd81a39d9b3a271d",
        "c76940363197de1772b761aa38e819b55fb80cb7"
      ],
      "author": {
        "name": "Mohamed Heikal",
        "email": "mheikal@google.com",
        "time": "Tue Jan 15 15:34:06 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 15:34:06 2019 +0000"
      },
      "message": "Merge \"Resource Path Obfuscation\""
    },
    {
      "commit": "403c8e35d8e7cc0f81a0a2c42d038c47e1b2703f",
      "tree": "a9edcd83f36b9b12b5073b8ca318baf1398489fa",
      "parents": [
        "efad1da2f1559decf1d8ed41d353dfa338af0a92"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jan 14 15:44:15 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jan 15 14:32:57 2019 +0100"
      },
      "message": "ApiLint: Add operator keyword and property parsing\n\nAlso fix up some issues with expression parsing, type use annotations, etc.\n\nTest: python tools/apilint/apilint_test.py\nChange-Id: I38145a51470ce6c3e5813a546d681489fd87fc19\n"
    },
    {
      "commit": "45942518a5f7a94ae90c9e0204dc3cdc891fc7d7",
      "tree": "f1fd0d98fea36fd905f0a9e2d9055cd2e222db60",
      "parents": [
        "38421787e12081e0d3a4871f4c5012ab4bdad4d8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Dec 14 13:53:52 2018 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Jan 15 11:54:18 2019 +0000"
      },
      "message": "Add prod key for serverless config.\n\nIntegrate this into SignatureVerifier too.\n\nBug: 110509075\nTest: atest CtsSignedConfigHostTestCases\nTest: atest SignedConfigTest\nChange-Id: I816598c3332f9577c802109053d0d0b9b1f2a699\n"
    },
    {
      "commit": "ef5673a4c4021ca27b40e48020203928d71c95a8",
      "tree": "b97e02462524775bd8a1a5a6104ff0b726d3a478",
      "parents": [
        "56ac01ebb4475440669f5f009c453dba0a86f6dd"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Dec 12 18:45:34 2018 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 11 14:45:09 2019 -0800"
      },
      "message": "Add encoding of name and actor overlayable fields\n\nEncode the actor and name attributes of \u003coverlayable\u003e elements in the\noverlayable chunks. Two chunks cannot have the same name.\n\nBug: 110869880\nBug: 119390855\nTest: aapt2_tests and libandroidfw_tests\nChange-Id: I0ed95efef640b3927046b6155d1840f0d96030dd\n"
    },
    {
      "commit": "e1de284ae9e163b90c8bac9f428026f3213ef358",
      "tree": "5761d873fa96714c0ef9f2d3dad23e07bc15c26e",
      "parents": [
        "98bb5d4dd26ec24660c0d398ef395d62e442e802"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 04 10:20:16 2019 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 11 14:36:20 2019 -0800"
      },
      "message": "Add android.hardware.fingerprint for pre-Q\n\nAdd \"android.hardware.fingerprint\" when\n\"android.hardware.biometric.fingerprint\" is found, since the former is\ndeprecated in Q and the latter is not present pre-Q.\n\nBug: 115639644\nTest: aapt2_tests\nChange-Id: Id2b30e9fcc208759ee2e14a05d17c43db1e63db8\n"
    },
    {
      "commit": "56ac01ebb4475440669f5f009c453dba0a86f6dd",
      "tree": "0c8727e845d304900f5f077905db5d320c0e7070",
      "parents": [
        "4ffbbbb8c8728c955e3d520f9a957cbd1e550dbb",
        "81bae2d1583c983bbd584218b419241b388044f7"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 11 22:35:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 11 22:35:25 2019 +0000"
      },
      "message": "Merge \"Statically link libc++ into aapt2\""
    },
    {
      "commit": "213e8cf8af691025a3e136d115b6ee50902cb680",
      "tree": "b8c052bf3c013b7c122fa3562fce9c858186d850",
      "parents": [
        "2351fa8b8fe7bfb0fcf05ea06984c11dfc456691",
        "037ad04df72ee0c826c8370e1b755dadaf9fd9d8"
      ],
      "author": {
        "name": "yaochen",
        "email": "yaochen@google.com",
        "time": "Fri Jan 11 19:02:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 19:02:29 2019 +0000"
      },
      "message": "Merge \"Add a struct wrapper for bytes fields in stats_log cpp APIs.\""
    },
    {
      "commit": "8940b940c1408dc1688ff5fdb01793ab15ad63bb",
      "tree": "61d48d4046842ed7a33d5bf7ec11261884ea3ece",
      "parents": [
        "9c14f5d103ea6bab070d20cfbbb08d590de58938",
        "c7aeafd2db8bf96b4086b259d54c314177ddec97"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jan 11 10:15:59 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 11 10:15:59 2019 -0800"
      },
      "message": "Merge \"Fix/suppress tools google-explicit-constructor warnings\" am: 18f469b088 am: 0d2565a424\nam: c7aeafd2db\n\nChange-Id: I5fd12dc7ffdfc72da9dd1de7f67e23e7e05136df\n"
    },
    {
      "commit": "037ad04df72ee0c826c8370e1b755dadaf9fd9d8",
      "tree": "131585b3026b9e508ef7426a64453e86c91b38a1",
      "parents": [
        "5c6e4acbe1c0e8db56a605f73d94f0b19b614f8f"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Jan 09 15:41:50 2019 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Jan 10 17:26:26 2019 -0800"
      },
      "message": "Add a struct wrapper for bytes fields in stats_log cpp APIs.\n\nTo avoid conflict between statslog.write() function signatures for\n\nAtom1 {\n  Foo foo \u003d 1 [logMode\u003dbytes];\n}\n\nand\n\nAtom2 {\n  string bar \u003d 1;\n  int64 arg2 \u003d 2;\n}\n\nBug: 122571213\nTest: manually tested with new atoms.\n\nChange-Id: Ied0f0bd81cef8d0964f571e921f47022301157d9\nMerged-In: Ied0f0bd81cef8d0964f571e921f47022301157d9\n(cherry picked from Ied0f0bd81cef8d0964f571e921f47022301157d9)\n"
    },
    {
      "commit": "e89572cb941f1b1b158a91e962b86d9b5ff834cb",
      "tree": "6dfa6ebbe4f9ea1b77dd53f00e9185b4348b9837",
      "parents": [
        "2c9dad72bddfd16bc0d111d4f3e86337e6ee13a4"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Jan 09 15:41:50 2019 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Jan 10 15:18:21 2019 -0800"
      },
      "message": "Add a struct wrapper for bytes fields in stats_log cpp APIs.\n\nTo avoid conflict between statslog.write() function signatures for\n\nAtom1 {\n  Foo foo \u003d 1 [logMode\u003dbytes];\n}\n\nand\n\nAtom2 {\n  string bar \u003d 1;\n  int64 arg2 \u003d 2;\n}\n\nBug: 122571213\nTest: manually tested with new atoms.\nChange-Id: Ied0f0bd81cef8d0964f571e921f47022301157d9\n"
    },
    {
      "commit": "93561ab3b902746f679f8ef7ac73b9d069c322e8",
      "tree": "5bb5c9c3b00f18a85ad58aaaf387a14a77a5bd04",
      "parents": [
        "c0f3daa11ab5038ea6338db8822c7a7bacb07a40"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 20 13:54:17 2018 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 10 19:52:49 2019 +0000"
      },
      "message": "Fix/suppress tools google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n* Remove redundant explicit of copy constructors\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Ic11c22c59beb7aa32b878a23315b1036ca4e3c6a\n"
    },
    {
      "commit": "6948154e7012e74f50e9686455bf303801d513b7",
      "tree": "1c0712ea699a7e0dd902092bc908f81e6be7316d",
      "parents": [
        "b867295c3ea7204e8e9278a05f7d3e6bc957683e",
        "9e9899720c4ad3a74b783318ce729c72db87ca9b"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Jan 09 07:43:04 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 09 07:43:04 2019 -0800"
      },
      "message": "Merge \"118395019: Hide constants and methods in StatsLogInternal\" am: 0a5f26376f am: d6393758a7\nam: 9e9899720c\n\nChange-Id: I7814e47f241fc433c5baa5d45b630088e5b8876b\n"
    },
    {
      "commit": "0f2dc8d0f0ff6b15cdfed0087a1ed527169cc324",
      "tree": "19df8f9d20ea2669648d6cf0d2a827431037aadf",
      "parents": [
        "9ebc299b734ee2babf1587ec9537c18dfc302dd0"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Jan 08 12:07:15 2019 -0800"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Jan 08 14:20:31 2019 -0800"
      },
      "message": "118395019: Hide constants and methods in StatsLogInternal\n\nThis CL updates the code generator which creates the\nhidden StatsLogInternal class to explicitly hide\nthe generated constants and write methods as well.\n\nThe intent of this class was for everything to be hidden,\nbut it turns out that public methods and fields in\nhidden classes which are extended by a public class also\nends up in the SDK, even though they don\u0027t appear in the\nsignature file. StringBuilder#setLength(int) is an\nexample of this.\n\nBug: 118395019\nTest: make sdk\nChange-Id: I97e510e8155ee50ade653f6abeb5479c7ca9029d\n"
    },
    {
      "commit": "7884d6b9090c586ac0d72abe0e6efab191a143a7",
      "tree": "4ed450af149c833f1993118610fe1ca4acd03278",
      "parents": [
        "7f8886a9933abbb6f1fdd97d920185b80d439339"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 22:04:55 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 22:53:22 2019 +0100"
      },
      "message": "ApiLint: Add Kotlin-style type support\n\nTest: tools/apilint/apilint_sha.sh HEAD \u0026\u0026 python tools/apilint/apilint_test.py\nChange-Id: Iac1fdabcbeffe57c8288d73b2359e8ce0b2bc3eb\n"
    },
    {
      "commit": "7f8886a9933abbb6f1fdd97d920185b80d439339",
      "tree": "dfa81ddd1767669b0be886739b73a1ba201985c3",
      "parents": [
        "a30d062775da3812589a6ce3e49be9d697ef0d6d"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 20:09:38 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 20:09:38 2019 +0100"
      },
      "message": "ApiLint: Performance improvements for verification\n\nTest: tools/apilint/apilint_sha.sh HEAD\nTest: python tools/apilint/apilint_test.py\nChange-Id: I90f18181cd0d3c43f176d7c9d1b198f6f5172390\n"
    },
    {
      "commit": "a30d062775da3812589a6ce3e49be9d697ef0d6d",
      "tree": "be1f15e96df17a4dcd86b193a63e1475f17b570d",
      "parents": [
        "d170961b02bf67189ddd14f358c9f263009df786"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Jan 04 20:10:06 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 14:02:38 2019 +0100"
      },
      "message": "ApiLint: Performance improvements for 2.0 signature format parsing\n\nTest: tools/apilint/apilint_sha.sh HEAD\nTest: python tools/apilint/apilint_test.py\nChange-Id: I76b979dd81702afce6468ac377230e589a25e08f\n"
    },
    {
      "commit": "d170961b02bf67189ddd14f358c9f263009df786",
      "tree": "01739004aab7eda46a3effcd10155f8290d19862",
      "parents": [
        "86760ea679faae596ee5aed2ac2cde5fefca3076"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Jan 03 18:54:33 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Sat Jan 05 14:02:38 2019 +0100"
      },
      "message": "ApiLint: Allow parsing 2.0 API signature files\n\nTest: tools/apilint/apilint_sha.sh HEAD\nTest: python tools/apilint/apilint_test.py\nChange-Id: Id2e1792392b3626746f1ec99f481d0cb27e523a1\n"
    },
    {
      "commit": "81bae2d1583c983bbd584218b419241b388044f7",
      "tree": "9828af5066f3095a7037c33f1f2be67e2f6d0242",
      "parents": [
        "d59bfa45683c53d27402a48380c889d0d36dc483"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 04 13:48:04 2019 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 04 22:27:51 2019 +0000"
      },
      "message": "Statically link libc++ into aapt2\n\nBug: 121280559\nChange-Id: Ide6513d5cf51b832ad2c4a15676db050856728df\nTest: ldd aapt2 and manual testing\n"
    },
    {
      "commit": "3b3be3f10f666f0c9fc368d0567466ee9bb8cc68",
      "tree": "f1a91f4089ea24dea0d4ce26dc3f950867205e93",
      "parents": [
        "e2ad62f797d794717790ee955c09dd378a4c74bf",
        "0bf62f1309fc279039b98a5faaa999ac95f9ee24"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jan 04 12:20:01 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 04 12:20:01 2019 -0800"
      },
      "message": "Merge \"Fix/suppress aapt/aapt2 google-explicit-constructor warnings\" am: cdf6be573f am: d42fe48c93\nam: 0bf62f1309\n\nChange-Id: Iffb7e4a145b172a35dd58b9450d4a5184d8b07f7\n"
    },
    {
      "commit": "1fc78e1814d6e1ad8d49e905a569d2589bbb2b8f",
      "tree": "aed2dad2df847dd375759f3ab6378466a9abe482",
      "parents": [
        "bd7379858523c4e06175ee6cd92b46750d05b1dd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 20 13:37:44 2018 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jan 04 17:38:13 2019 +0000"
      },
      "message": "Fix/suppress aapt/aapt2 google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n* Use NOLINT or NOLINTNEXTLINE to suppress warnings on intended converters\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Ie02101ea7c422e8add535c111a30a2f21ead0ace\n"
    },
    {
      "commit": "a4ee276629a0289364d9100157b031e3b225f0eb",
      "tree": "f26e7432bcb430ae14d0fd0931728afd563271c2",
      "parents": [
        "e4efe2af7c981f5128dd6a20bdf0bf76cdb8b725",
        "479fa39d6583188a1d7be8b4ebebbd87f250d510"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Jan 04 16:43:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 16:43:22 2019 +0000"
      },
      "message": "Merge \"Remove raw values from proto APK\""
    },
    {
      "commit": "479fa39d6583188a1d7be8b4ebebbd87f250d510",
      "tree": "cbb0f89d93549f57d9216c9bca8ac78b7afcdbfe",
      "parents": [
        "d692ddf66dc1ccc184a6a6b2fff9aa072d142006"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jan 02 17:15:39 2019 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Jan 03 16:19:04 2019 -0800"
      },
      "message": "Remove raw values from proto APK\n\nRaw attribute values are not included in xml files when building binary\nAPKs but they are when building proto APKs. Remove raw attribute values\nand create a new convert flag that (--keep-raw-values) that allows raw\nvalue to be kept.\n\nAlso added flag to link to keep raw attribute values.\n\nBug: 115915884\nBug: 116700688\nTest: aapt2_tests\nChange-Id: Id50136b775b3f43d159ca06181282f6a7b8eaf40\n"
    },
    {
      "commit": "a695f1da1f35c912523bfbea934abb9d1bf02927",
      "tree": "81dd7727b77e56b5018f052c7be78a393f52eccd",
      "parents": [
        "05c48793f4dc8ccd7828e4d88578e87b0f64abec",
        "2c8fc8669477c8f075215e4a076a4c7c150ca862"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Jan 03 23:38:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 03 23:38:21 2019 +0000"
      },
      "message": "Merge \"Fix long file paths for Windows\""
    },
    {
      "commit": "b708a7953d306cb79177bd79862b363292ac02e5",
      "tree": "a6fc23abbc5d383586bcb478c429dfc5cb8beb86",
      "parents": [
        "34ba791b2576047c188370b57ff391f8d3891a25",
        "ee844ad9a20fe1922ee04d9f8dfc17ed932f864d"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Dec 21 09:24:28 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 21 09:24:28 2018 -0800"
      },
      "message": "Merge \"Fix/suppress incident* google-explicit-constructor warnings\" am: 6af0e228f3 am: 78085ba0a3\nam: ee844ad9a2\n\nChange-Id: I53c2fd3886e565d824e2765671fb7965f07bd08d\n"
    },
    {
      "commit": "6af0e228f3a3dccd3c7eb5d2fba16007fd710297",
      "tree": "e5b3d3625558eca65ab73d87a89c7ed63c51985b",
      "parents": [
        "63790135f49cea682497bfeb85bc5488e25f0f21",
        "7a88a938d2988a95e70ab73905f040d8c8fcc425"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Dec 21 16:30:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 21 16:30:12 2018 +0000"
      },
      "message": "Merge \"Fix/suppress incident* google-explicit-constructor warnings\""
    },
    {
      "commit": "c76940363197de1772b761aa38e819b55fb80cb7",
      "tree": "28c9afa0e073be59b396dbe8aebc6a118deca382",
      "parents": [
        "9da2ff0fdc6af2153c12701ae8344f10f9a26413"
      ],
      "author": {
        "name": "Mohamed Heikal",
        "email": "mheikal@google.com",
        "time": "Wed Nov 07 16:49:02 2018 -0500"
      },
      "committer": {
        "name": "Mohamed Heikal",
        "email": "mheikal@google.com",
        "time": "Thu Dec 20 18:19:25 2018 -0500"
      },
      "message": "Resource Path Obfuscation\n\nThis CL allows aapt2 to obfuscate resource paths within the output apk\nand move resources to shorter obfuscated paths. This reduces apk size\nwhen there is a large number of resources since the path metadata exists\nin 4 places in the apk.\n\nThis CL adds two arguments to aapt2, one to enable resource path\nobfuscation and one to point to a path to output the path map to (for\nlater debugging).\n\nTest: make aapt2_tests\nBug: b/75965637\n\nChange-Id: I9cacafe1d17800d673566b2d61b0b88f3fb8d60c\n"
    },
    {
      "commit": "fe88a7d7f2915c44107f35f3ce5a7917896ed075",
      "tree": "072ea91c1f21d159d4432ec1d018c513e5309e8f",
      "parents": [
        "222a0f4e21fb034d09257380c0a97da855657727",
        "b60a7cdc07576acd4e74613f1178b6ceb178cab5"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Dec 20 15:04:34 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 20 15:04:34 2018 -0800"
      },
      "message": "Merge \"Statsd: Enable host_supported for libstatslog\" am: 0d7970f4e9 am: 46efaea281\nam: b60a7cdc07\n\nChange-Id: I59c5e4c8e27d31ba38af827162e0adb50fc183b1\n"
    },
    {
      "commit": "0d7970f4e9e83915f4f6e2d74d7f4b44f723ef73",
      "tree": "7029a69be2e4a8b38648e23debf338f2b7757498",
      "parents": [
        "bcf293c674307a90238671edcf5c82b17e3bca62",
        "34a892d2f5d770ceea4d7a5bbb6de2bb41588f4d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 20 22:05:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 20 22:05:58 2018 +0000"
      },
      "message": "Merge \"Statsd: Enable host_supported for libstatslog\""
    },
    {
      "commit": "7a88a938d2988a95e70ab73905f040d8c8fcc425",
      "tree": "470255ec6f136d95eb55cf6a558b6b6bf9032a8e",
      "parents": [
        "bcf293c674307a90238671edcf5c82b17e3bca62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 20 13:45:04 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 20 13:45:04 2018 -0800"
      },
      "message": "Fix/suppress incident* google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n* Remove redundant explicit of copy constructors\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: I26a11bb798d25605577269ed340e97afc8566960\n"
    },
    {
      "commit": "b34e8528ca7e6aee84ba5eef9739155f658690c5",
      "tree": "4fdd8e30aa99ca95122a218207ca25a2893943a8",
      "parents": [
        "bdadd6cc4c666f3fc1ddb742a778d3b708e33b8d",
        "b9e195546ee80e46fca5e075c9b1ea069821f18a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 20 14:39:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 14:39:20 2018 +0000"
      },
      "message": "Merge \"Use vector instead of VLA to avoid uninitialized values\""
    },
    {
      "commit": "bdadd6cc4c666f3fc1ddb742a778d3b708e33b8d",
      "tree": "c09101dd5f72fad93000a7516e46184e4185f0ed",
      "parents": [
        "9ad1461eb9faebf81c62b3fdf211483081c20b99",
        "61e3730bc07e04181a01760d2eb1db834a854683"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Dec 20 14:31:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 14:31:47 2018 +0000"
      },
      "message": "Merge changes Ibe09f115,Ib015669e\n\n* changes:\n  apilint: Fix API lint issues 2/2\n  apilint: Fix API lint issues\n"
    },
    {
      "commit": "34a892d2f5d770ceea4d7a5bbb6de2bb41588f4d",
      "tree": "a95ac5f92b72ad3249d04bd7e961a4deb685b702",
      "parents": [
        "783ec049091357ae892d4c62e4e75008734815e7"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Dec 20 00:42:31 2018 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Dec 20 00:56:15 2018 -0800"
      },
      "message": "Statsd: Enable host_supported for libstatslog\n\n* libutils must be used as a static library when compiled on host\n* Host does not have Android system properties and hence we cannot\n  use \u003ccutils/properties.h\u003e. In fact, properties.cpp is not even\n  compiled on host for libcutils. Therefore, this CL adds a check\n  for __ANDROID__ macro before including \u003csys/propoerties.h\u003e and\n  before calling properties_get_bool()\n* On host, statsd logging will be disabled since host does not\n  use statsd for anything\n\nFixes: 121294178\nTest: test drive statsd\nChange-Id: I838ff02468c650c5f7d85e68fa5008b98f08ce8c\n"
    },
    {
      "commit": "cfc7952cc8649a1b2418f6502f40cef32487464f",
      "tree": "ef3a4ad7adf71ed67ae16ad2e18607be320b37ff",
      "parents": [
        "a89f04a7421a519e2625959fa474b5cf2bcca083"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Nov 23 14:57:28 2018 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Dec 20 07:47:29 2018 +0000"
      },
      "message": "Include annotation property values in output.\n\nWhen editing annotations, we want the ability *not* to overwrite any\nexisting annotation properties already in place. Include any properties\nset on the annotation in the output, so that the edit_annotations script\ncan know that they\u0027re there.\n\nThe annotation properties are encoded like URL query parameters for\nconvenience; it makes them easy to encode here \u0026 subsequently decode on\nthe other side (in Python).\n\nTest: m framework-annotation-proc \u0026 inspect output.\n\n(cherry picked from commit bd7077065c211f49b090aa4250b53b58461adfd9)\n\nMerged-In: I71fb1215ad2790751be336b4955c163bb323a4a6\nChange-Id: I0b33e2b379076346ce258d93a9225a9143b7d91a\n"
    },
    {
      "commit": "b9e195546ee80e46fca5e075c9b1ea069821f18a",
      "tree": "67facfdda4183f890cd01858d5b2277cf3047b5f",
      "parents": [
        "90c5bfe0776fe185abaf2fc983f5320cb9d6a78f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 19 22:55:15 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 19 23:04:42 2018 -0800"
      },
      "message": "Use vector instead of VLA to avoid uninitialized values\n\nI502b34f23d61a7346d79ff0dc378add8461d2d27 added a continue before\nskip[i] was set, which left it uninitialized and caused\nnon-deterministic output of incident-section-gen incidentd and a\nnon-deterministic incidentd binary.  Use a vector instead of a\nvariable length array for skip so that it is always initialized.\n\nTest: valgrind incident-section-gen incidentd\nChange-Id: Iac9778dc8bbf4ec5540e5e2ffdaa8e2dd852d6cc\n"
    },
    {
      "commit": "2c8fc8669477c8f075215e4a076a4c7c150ca862",
      "tree": "f5b06cb76fc89b91fe41fad338ac7906c5f500ed",
      "parents": [
        "802c62150985110df7718e874e7b0a0f89dc4d8f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Dec 13 16:56:07 2018 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Dec 19 14:07:43 2018 -0800"
      },
      "message": "Fix long file paths for Windows\n\nAllows specifying which arguments into aapt2 are file paths.\nIf the path exceeds the maximum path length for Windows, encode the path using\nthe extended-length prefix.\n\nBug: 120853927\nTest: aapt2_tests.exe\n\nChange-Id: Ibe5c1cc79a70c33c302157f2ffd54525439a910f\n"
    },
    {
      "commit": "ed2af4df00028b1cdee2a4d45b20102b46441daa",
      "tree": "c26a691f8b242ed52cdfbf9b5d09eec608129f84",
      "parents": [
        "7b2b4c838be94e6ca7cfbb255523c800da4a0cce",
        "54237ffed4e63279042084968b77cc17e13c84a8"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Dec 19 17:31:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 19 17:31:50 2018 +0000"
      },
      "message": "Merge \"Add actor and name parsing for overlayable\""
    },
    {
      "commit": "61e3730bc07e04181a01760d2eb1db834a854683",
      "tree": "086b9db1c7ebb4915b6d878e2c6055856d00e01d",
      "parents": [
        "2c5cacfd36128f43f5fab4f0665acf69ac049a44"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Dec 19 17:11:21 2018 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Dec 19 17:27:12 2018 +0100"
      },
      "message": "apilint: Fix API lint issues 2/2\n\nFixes false positives that occur when a class in current.txt is faulty, and an\nentry for that class is then added to system-current.txt.\n\nThis was so because when parsing the previous revison\u0027s system-current.txt, we\ndid not know about the class and thus didn\u0027t look for it in current.txt, and\nthus never recorded that the error is preexisting.\n\nTo avoid that, we track all classes in system-current.txt with a matching entry\nin current.txt in the current revision, and later use that to look up all classes we\nmay have missed when examining the previous revision.\n\nTest: python tools/apilint/apilint_test.py\nChange-Id: Ibe09f1159e351e56b35b8816ce0db760de4ef791\n"
    },
    {
      "commit": "2c5cacfd36128f43f5fab4f0665acf69ac049a44",
      "tree": "c3117af188895220c1df9ee5ac5b5178d320c6ae",
      "parents": [
        "bb28a036c3cd0ef6433efb16ed99ae703bcfe4a7"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Dec 19 17:10:22 2018 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Dec 19 17:27:12 2018 +0100"
      },
      "message": "apilint: Fix API lint issues\n\nFixes a bug where only the name instead of the fully qualified name was\nconsidered when looking for a class, which lead to faulty results for inner\nclasses.\n\nTest: python tools/apilint/apilint_test.py\nChange-Id: Ib015669ed3faef21d2bdd16f1e27bc55c8669d70\n"
    },
    {
      "commit": "d4dcb418634fcab4090e6952895bdd8e3e3913e0",
      "tree": "2a2aac9d8fc172bd9afa3278787f3f4fe0148ab4",
      "parents": [
        "342b64cd411087abf2e18f74f354177df730032b",
        "cd2d8e2021e1d91765f61357d9585bd6969f93bb"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Dec 19 10:36:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 19 10:36:08 2018 +0000"
      },
      "message": "Merge \"Make aapt2 dump badging print overlay info\""
    },
    {
      "commit": "2491af24a8f7195d7c2ae0b2450dcaa701852891",
      "tree": "6318ba7aada88a08b48d8293cea7aa3bd708f0e5",
      "parents": [
        "73d3d815cd5e7613735d429be7f1398a9053b9f1",
        "2296036a400e77572c0e346db1f499438d5196d5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Dec 17 14:31:14 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 17 14:31:14 2018 -0800"
      },
      "message": "Merge \"Fix performance-for-range-copy warnings\" am: bc29242288 am: 7adb73f332\nam: 2296036a40\n\nChange-Id: Ia99ea6c9633986e68340bc88983d06baa7a1c597\n"
    },
    {
      "commit": "a1b644e88cfe5319e9ada7ad24e6cd215a7ea402",
      "tree": "e4b24972d2c59b6512cd981b3edf78b03f7c1add",
      "parents": [
        "d0c404cb21de6e86329b5ceb79d1459dd8f2f4cb"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 11:09:20 2018 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Dec 17 20:00:55 2018 +0000"
      },
      "message": "Fix performance-for-range-copy warnings\n\nBug: 30413223\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,performance*\nChange-Id: Ie481e88025a7a1f3abde8ff63420d5ccd8577e52\n"
    },
    {
      "commit": "d66ecfccf6f5a1be8f934776dfe72e5bf9c779ec",
      "tree": "c523edb8be2d421c72178d2af0db7f5f29813e26",
      "parents": [
        "2822b4f42f49650b194f6561454aeb48f4f3d9d1"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Dec 06 10:34:25 2018 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Sat Dec 15 13:52:47 2018 -0800"
      },
      "message": "Add byte size of the bytes fields to statslog c++ APIs.\n\nThe proto binary data can contain \u0027\\0\u0027s and in the native layer,\nthe current liblog api would convert that into string and thus\nthe data is truncated.\n\nThis CL adds a \"size_t bytes_field_len\" after the bytes fields so that\nwe can correctly pass the data from JAVA to native.\n\nJava StatsLog.write() APIs remain the same\n\nBug: 120635548\nTest: test_drive with atom 103\nChange-Id: I34f1c4ddd6a4ec5f3604b0c67a47a5399e3c6ddd\nMerged-In: I34f1c4ddd6a4ec5f3604b0c67a47a5399e3c6ddd\n(cherry picked from commit 1fe9f594984b47144b958f0ac423eeffc56b62ea)\n"
    }
  ],
  "next": "2822b4f42f49650b194f6561454aeb48f4f3d9d1"
}
