)]}'
{
  "log": [
    {
      "commit": "a0994a80d10a61ba6a5136e36da23955ce90bd6a",
      "tree": "259db297bb5c98a415136d331bff689563e0d6bb",
      "parents": [
        "5de80df81e205aea56dea0eda94aa2e63a51e177"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Mon Feb 11 15:29:47 2019 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Fri Feb 15 10:52:57 2019 -0800"
      },
      "message": "Convert Android.mk file to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122332340\nTest: treehugger\nChange-Id: I89cb31814f1442c91c31e5b867501d768679230e\n"
    },
    {
      "commit": "31754eb5df1f5a98638ce5c93b90c0814bf43b35",
      "tree": "fcd66370633d5825517e64de2a6ae1d6df1c70bb",
      "parents": [
        "3b988d1782981ac2c0a491c022c00d90e1696622"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Mon Feb 11 14:41:25 2019 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Mon Feb 11 14:58:20 2019 -0800"
      },
      "message": "Convert Android.mk file to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122332340\nTest: treehugger\nChange-Id: I52416790e1e4493dd4fe57404095351b8d37ea22\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "2822b4f42f49650b194f6561454aeb48f4f3d9d1",
      "tree": "76a4e9cc9ad13c0acd8878c86a5ce4594cd4c003",
      "parents": [
        "046b51295ea28500333794fb93b6ce96ad71c6af"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 29 09:39:45 2018 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Sat Dec 15 13:52:27 2018 -0800"
      },
      "message": "Skip writing message field in an atom if it\u0027s empty\n\nTest: unit test added\nBug: 120635548\nChange-Id: I825b1ce526944a20fe65705508ad180ece37492c\nMerged-In: I825b1ce526944a20fe65705508ad180ece37492c\n(cherry picked from commit 8e6f9983009eadf32d05ad65e38906d3985bc9ba)\n"
    },
    {
      "commit": "8b71c74894462fc68f2ebe551b82615d0cd67184",
      "tree": "ec08fbb4f907b0572f78fa30a45cce2d9e688ec9",
      "parents": [
        "cb61d10c905f6ca40ae21fd8f0fb7efb4ae90444"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Oct 24 12:15:56 2018 -0700"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Sat Dec 15 13:51:08 2018 -0800"
      },
      "message": "Allow atoms to log fields in bytes format.\n\nThere are an increasing number of requests to log data in complex format to statsd, while the data\nis not expected to be parsed or aggregated by statsd and only to be uploaded as events.\n\nInstead of making an exception for each of these cases in a hard coded way, this CL add a feature to\nannotate these field in atoms.proto and the stats-log-api-gen tool will produce byte array\ninterfaces for them.\n\nNote that log_msg does not have byte array type, and only has string type, when statsd receives the\nlog, these fields are in string type. Only when the atom is written to proto, we will check if this\nfield should be bytes field and write it to protobuf in message format.\n\nChange-Id: If53dd95c5826710c76d7fe982bf951a435dfc738\nMerged-In: If53dd95c5826710c76d7fe982bf951a435dfc738\nFix: 118386797\nBug: 120635548\nTest: unit test \u0026 manual test\n(cherry picked from commit bbdd67d19f4912fbec00220b22e44c68eff5ab3f)\n"
    },
    {
      "commit": "20b64c4bc707c99ebe32d44f4ffb1df27484ab9f",
      "tree": "fae403d7bacd763b8e5dde0771493c65ace599b6",
      "parents": [
        "833bc7dba78e5727f79048016204558057c2bfc1",
        "054dab1d476eab03823d4cbce40b1b081a65bf46"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Dec 12 02:58:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 02:58:22 2018 +0000"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings.\""
    },
    {
      "commit": "054dab1d476eab03823d4cbce40b1b081a65bf46",
      "tree": "06d7f8189b94f2899cb27d97723cc8e392fb78b4",
      "parents": [
        "3cfdb9484505f565025c8c2646b9fc2c7ceae7b9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Dec 10 13:52:46 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 11:27:17 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I2dc262d3407aafa969e921236dc3fc3ae60eb9d4\n"
    },
    {
      "commit": "352956b07e1cd5d7bdc3f3e747679fa49859f8ee",
      "tree": "7416429ef98a3da5a289606d6b10395a87818654",
      "parents": [
        "17f9b9bfb66be366e874ed98d52a622e0b97df2a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 07 11:52:19 2018 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 10 16:05:54 2018 +0000"
      },
      "message": "Switch last c.a.i18n.phonenumbers hiddenapi entries to annotations\n\nPrevious changes could not remove these entries as they are implicit\nmethods, i.e. are not present in the source, and so could not be\nannotated. That is no longer true and so these entries can now be\nremoved.\n\nThis was tested by making and then manually checking that the generated\nout/target/common/obj/PACKAGING/hiddenapi-light-greylist.txt was the\nsame (after sorting) before and after this change.\n\nBug: 117818301\nBug: 119861512\nTest: as above\nChange-Id: Ic33c693f50cac011332c5ba5a5c0e2b6562e6ef8\n"
    },
    {
      "commit": "ec62f08f8c0a5a947cd2042854e2b5055a291fa5",
      "tree": "dfc3576a4c1fab4cde5cdc25eba55e322a7dde57",
      "parents": [
        "08cbafefdc4924e1619da99082e8af3b94cc9ab3",
        "5cd148fc7ae213ceda868c22ee5c573b5b1a47c9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Dec 04 10:07:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 10:07:59 2018 +0000"
      },
      "message": "Merge \"hiddenapi: Add constants for \u0027greylist-max-p\u0027\""
    },
    {
      "commit": "aaaf1b7a88894a1b7cddd4b830245b7985ca7ee1",
      "tree": "bff0177ab3ddac93893c93b27c4a396e7594f689",
      "parents": [
        "4627ad60204e9afae1b531007c1a35b7e5577695"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 03 10:56:56 2018 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Mon Dec 03 10:58:42 2018 -0700"
      },
      "message": "People don\u0027t read warnings.\n\nBug: 113136846\nTest: manual\nChange-Id: If7e313b4f0fa90875795b24817553bbd9a8c60ff\n"
    },
    {
      "commit": "5cd148fc7ae213ceda868c22ee5c573b5b1a47c9",
      "tree": "b10725627f827ff755006452fb828ff6b7ff5f52",
      "parents": [
        "89bf0f28bf8dfe728083913f641202f103af9bf6"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 09:54:25 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 29 15:43:02 2018 +0000"
      },
      "message": "hiddenapi: Add constants for \u0027greylist-max-p\u0027\n\nNew category of hidden API has been created. Update the script\ngenerate_hiddenapi_lists.py with the new flag name.\n\nTest: m, phone boots\nChange-Id: I79e5478678880939e20e500cb8dad9b2a56fc84f\n"
    },
    {
      "commit": "89bf0f28bf8dfe728083913f641202f103af9bf6",
      "tree": "c90fde6bc79ceb1dd0cce4dbb54c9f49fd524cc2",
      "parents": [
        "74c171b4daa481301152f268e2f7cbdd7960b325"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 18:21:24 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 29 15:43:01 2018 +0000"
      },
      "message": "Turn hidden API lists into a single CSV\n\nMaintaining multiple text files has become too cumbersome as adding\neach new category of API requires changes across many projects.\nThis patch changes generate_hiddenapi_lists.py to produce a single\nCSV file in the format:\n\n  \u003capi_signature\u003e,\u003cflag1\u003e,...,\u003cflagN\u003e\n\nIt can accept legacy API list files as input (for existing\nframeworks/base/config/hiddenapi-*.txt files) as well as per-package\nCSVs produced by class2greylist.\n\nTest: m, check lists have not changed\nTest: phone boots\nTest: tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: Iebcef426ec93ea1d72b662bbff91d4e068fa0a70\n"
    },
    {
      "commit": "00537c15e876d88a967d9f656ea8fadb1a4015ef",
      "tree": "6a3f41d6b9b7b55dfa68029d7c8697a4c8b098c3",
      "parents": [
        "900ab8accef15f3a7622f0edccd53e99c44c03b7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Nov 28 12:22:14 2018 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Nov 29 09:41:56 2018 +0000"
      },
      "message": "Prevent hiddenapi entries being added for libcore related projects\n\nThe libcore related projects (see below) have been (mostly) switched\nover to use UnsupportedAppUsage annotations, This change will prevent\nentries for those projects being added to a config/hiddenapi-* file.\n\n* libcore\n* external/bouncycastle\n* external/conscrypt\n* external/icu\n* external/okhttp\n* external/libphonenumber - still has a couple of entries in\n      config/hiddenapi-light-greylist.txt due to limitations in\n      UnsupportedAppUsage/class2greylist.\n\nTested by attempting to upload the file with entries for libcore\nprojects and without those entries and checking that the behavior\nis expected.\n\nTest: see above\nBug: 117818301\nChange-Id: I67a30b307e12e842b28cfb2160fab0029868fa06\n"
    },
    {
      "commit": "d100107806bc02f8f9866790e0df8975d4764d4a",
      "tree": "e6ac242f964ae0fc24cd60dee7417e7b7ee22e8a",
      "parents": [
        "7751045a3aede1e938a1ab0a390db25bb3fafa0b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 15:13:39 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 15:54:32 2018 -0800"
      },
      "message": "switch to using android-base/file.h instead of android-base/test_utils.h\n\nTest: compile\nBug: 119313545\nChange-Id: I664fb32522d01909c603d7b903475c4e9aea9223\n"
    },
    {
      "commit": "e8abd0677674aab095aa192f2a85b1632a962791",
      "tree": "a1561a64a462aa2764852ee75be1a06bb45bf754",
      "parents": [
        "fccdf46adf096e9ba200ce79e00f6df379b5c649"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 22 09:56:12 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 22 09:56:12 2018 -0700"
      },
      "message": "Allow implicit-fallthrough warnings locally.\n\nIt will be a global error by default.\n\nTest: make checkbuild\nBug: 112564944\nChange-Id: I26616fd50ccf3639fa7c01d850a14d079273ede7\nExempt-From-Owner-Approval: do not block on new warnings\n"
    },
    {
      "commit": "3ffa1cad1142aa97146e066be1f8de28dc8e6e6e",
      "tree": "4b01ec9dd62be648a1603e1b526eeda18529c597",
      "parents": [
        "f093798a61ed90b68c14b86e7fb8c88d375ce51a",
        "5037a7eb93ec73c152da5f0f19f0ff04e9c3a02c"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Oct 17 10:35:39 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 17 10:35:39 2018 -0700"
      },
      "message": "Merge \"Merge hidden API metadata into a single CSV file.\"\nam: 5037a7eb93\n\nChange-Id: I0efce89576b0ca7ae90d49de3455466a866521de\n"
    },
    {
      "commit": "5037a7eb93ec73c152da5f0f19f0ff04e9c3a02c",
      "tree": "08f784442741cc842cbc70c5e8fb1c79f92a7f65",
      "parents": [
        "23ccecc4ca9f58139baa72bd4783451b780b1eb5",
        "ea14c0c36f2ff5c18c2e62c71f50f01cef47f077"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Oct 17 09:20:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 17 09:20:04 2018 +0000"
      },
      "message": "Merge \"Merge hidden API metadata into a single CSV file.\""
    },
    {
      "commit": "9b767e275e252cef0a8df2ecce68ea97cfed322b",
      "tree": "e6627c95883fb6f2df99eaccd46a01cdbb84bae6",
      "parents": [
        "646684732122d9dfe782a38145f7cf4c038247f3",
        "a8f2601d282018ff5e27a4f56f059701bc16afbe"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 16 17:43:35 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 17:43:35 2018 -0700"
      },
      "message": "Merge \"Stop using DIST_DIR directly, use dist-for-goals instead\"\nam: a8f2601d28\n\nChange-Id: Iabb2ddb086dda71887c3d50152db50f813c9556a\n"
    },
    {
      "commit": "a8f2601d282018ff5e27a4f56f059701bc16afbe",
      "tree": "3f517886066c3791c3c85b4a9a61866bc051e165",
      "parents": [
        "e5688052098f96e91feb1c6b9242153f15ca586f",
        "5cc170017128c25eb4ee887855444cbfcb930893"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 17 00:18:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 17 00:18:07 2018 +0000"
      },
      "message": "Merge \"Stop using DIST_DIR directly, use dist-for-goals instead\""
    },
    {
      "commit": "66e9d98618c96ad2c03168bf76c83b27ab0bc7a0",
      "tree": "b95ad6283679ac12cb12720b2c9fde10039f1413",
      "parents": [
        "d4d3e215d7a63f932f0bab5ed10a93b8359e2c85",
        "f943c5210514af581cdc1e5a28ab8a49af0efef4"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 16 10:10:45 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 10:10:45 2018 -0700"
      },
      "message": "Merge \"Fix issue with sort_api.sh\"\nam: f943c52105\n\nChange-Id: I196e57f5d5f96e5f5e1885e893be21ae81b75207\n"
    },
    {
      "commit": "c78bea41c6a6dc6c338ddfc4a4fb9d140ecb40f0",
      "tree": "34e319c65f30afd853599e37d76bc0bafa04eb19",
      "parents": [
        "08667cc9c12664cfcc69faf831e8cab878cc04b6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 16 14:28:26 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 16 14:30:01 2018 +0100"
      },
      "message": "Fix issue with sort_api.sh\n\nShould use -ne not -neq.\n\nTest: run script manually\nBug: 115609023\nChange-Id: I337ed43be1f9250e6c2b2c88d97c68a5c9e8941c\n"
    },
    {
      "commit": "f0a45a411439d1431a44159efcdade7fc9ba5bff",
      "tree": "c9c8ead0c69046f4c3b7f4f9466bf6ebbc33dbc0",
      "parents": [
        "923aa75d75b488d3e275de4bbafcbe00f33b0cf8",
        "adbc7dfc287299bc709b17e9d6a852aacf44cdc7"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Oct 16 05:38:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 05:38:00 2018 -0700"
      },
      "message": "Merge \"Add new \"max-sdk-p blacklist\".\"\nam: adbc7dfc28\n\nChange-Id: Ice435ecdef532f3d25b705cc734773deba84322f\n"
    },
    {
      "commit": "ea14c0c36f2ff5c18c2e62c71f50f01cef47f077",
      "tree": "a858e55b9521216d48399152f113273d513836e7",
      "parents": [
        "1ad4aed0b96877092080ea2225cbd70f27ae8eb8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Oct 05 14:41:03 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Oct 16 12:12:27 2018 +0100"
      },
      "message": "Merge hidden API metadata into a single CSV file.\n\nAdd a python script to merge the CSV files, dealing with the fact that the\nsource columns may differ due to the annotation properties present in the\nsource.\n\nAdd this new file and the existing greylist.txt files as dependencies of\nthe \u0027dist\u0027 target, so that they appear as artifacts on the build server.\nThis allows them to be processed later by reading them from the build\nserver.\n\nTest: m out/target/common/obj/PACKAGING/hiddenapi-greylist.csv\nBug: 117314178\nChange-Id: Ib9e5da90e4c32333a3f4f02ee7f159f77086ae5e\n"
    },
    {
      "commit": "50dea427292b6e5435c6cd0010e2f3f05b3900e4",
      "tree": "2b3f21e1db09f65f17484f2a17bcc6009cf62541",
      "parents": [
        "1ad4aed0b96877092080ea2225cbd70f27ae8eb8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Oct 05 15:47:29 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Oct 15 16:38:12 2018 +0100"
      },
      "message": "Add new \"max-sdk-p blacklist\".\n\nThis will contain greylist entries accessible by apps with a\ntargetSdkVersion of less than Q. Currently empty, will be populated in\nfollow up CLs.\n\nFor now, these APIs are just merged into the light greylist at build time,\npending support in the runtime for implementing the correct runtime\nbehavior.\n\nAlso fix a bug in sort_api.sh so it deals with empty API lists\ncorrectly.\n\nBug: 115609023\nTest: m\nChange-Id: I213874062f393f96d120648a934ae5ad7aba93af\n"
    },
    {
      "commit": "6ffa32f13dc4a05ed9b14a8b3ed4db02c4a3d102",
      "tree": "1b0701a02e7c57814551eed9e515f6098074988e",
      "parents": [
        "840beebdb4b1d3a7348b3ddbe9ac65d00b6eb866",
        "00d5548355ed5a15219ad848ab7a947ea54f82de"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 10 16:06:48 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 10 16:06:48 2018 -0700"
      },
      "message": "AAPT2: Add the rest of supported manifest elements\nam: 00d5548355\n\nChange-Id: I9c8002d2891d762e579d0d987bb52856fb20df17\n"
    },
    {
      "commit": "840beebdb4b1d3a7348b3ddbe9ac65d00b6eb866",
      "tree": "3f3a7f87731b90da0fa07fd2de6028a5e30d22ac",
      "parents": [
        "64106e43992ea08b960888a26de00ec9b2c5e5fe",
        "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 10 16:00:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 10 16:00:02 2018 -0700"
      },
      "message": "AAPT2: Add supported manifest elements\nam: 48d009ad32\n\nChange-Id: Ib620e6c3a5ee6b4a33f4d64a9afa44302de67d7a\n"
    },
    {
      "commit": "e75f2f504e4d119dc83d077802e62031efb9d300",
      "tree": "7dc043ba5f0e34433e90d88249c1a4dfa1198b48",
      "parents": [
        "4d9823f3eb12d27610770ea315512e460d8dbab3",
        "f5c86dc1c113dc2a898311ee4d446a9ab3ed8e72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 10 22:29:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 10 22:29:57 2018 +0000"
      },
      "message": "Merge changes from topic \"aapt2-manifest-elements\"\n\n* changes:\n  Remove workarounds for b/79755007\n  AAPT2: Add the rest of supported manifest elements\n  AAPT2: Add supported manifest elements\n"
    },
    {
      "commit": "b7c0800fa0fef9c9ffdc1f0fbb803b9298ab9d74",
      "tree": "9dc5e02017a73eb7b65cbd03c5c39bcecbdfa3f4",
      "parents": [
        "7672daf8e5dee9cc8e6a3874b9f06eed6b4361dd",
        "b14c8879746474fc021a6a1c869e153a4d347d3c"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Tue Oct 09 16:04:34 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 09 16:04:34 2018 -0700"
      },
      "message": "Merge \"libandroidfw: move ConfigDescription from aapt2 to libandroidfw\"\nam: b14c887974\n\nChange-Id: I14be80a2d2c3620919a78da5a42ed56ec1d1737f\n"
    },
    {
      "commit": "7672daf8e5dee9cc8e6a3874b9f06eed6b4361dd",
      "tree": "d2c6cf9f6cbfa464f261728ae2eb817dfd380602",
      "parents": [
        "247f18f47aca15efbb12fa30a9295299606e6402",
        "62a5d4249f531065dc97c2f7e8b9ab349aa1888d"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Tue Oct 09 16:00:31 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 09 16:00:31 2018 -0700"
      },
      "message": "Merge changes from topic \"idmap2-prerequisites\"\nam: 62a5d4249f\n\nChange-Id: I8db3f5ba0de6510c3327273c56e9fcc75c836694\n"
    },
    {
      "commit": "b14c8879746474fc021a6a1c869e153a4d347d3c",
      "tree": "94ce6086c7de4b877cdf17ca15d3f07dac833f33",
      "parents": [
        "62a5d4249f531065dc97c2f7e8b9ab349aa1888d",
        "5c541f6e36c049d2a00628083ca0534bf39db971"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "message": "Merge \"libandroidfw: move ConfigDescription from aapt2 to libandroidfw\""
    },
    {
      "commit": "62a5d4249f531065dc97c2f7e8b9ab349aa1888d",
      "tree": "d5e172014bc7cc5c2eac8312c27e32bc59d83301",
      "parents": [
        "16fcd3dcff4026fe6239478a5901fa121f2439e7",
        "668ec5bd3bd9d5fe6ebf46985eacd3d8d81af937"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 09 21:43:38 2018 +0000"
      },
      "message": "Merge changes from topic \"idmap2-prerequisites\"\n\n* changes:\n  AssetManager2: optionally keep non-matching configs\n  AAPT2: optionally keep resources without default value\n  libandroidfw: add resource ID iterator\n"
    },
    {
      "commit": "5cc170017128c25eb4ee887855444cbfcb930893",
      "tree": "bc5d1b7b079082c3a178db9ea210b8a0ab239487",
      "parents": [
        "16fcd3dcff4026fe6239478a5901fa121f2439e7"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 09 13:53:53 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 09 14:28:35 2018 -0700"
      },
      "message": "Stop using DIST_DIR directly, use dist-for-goals instead\n\nAs a preparation in refactoring how we handle dist, I\u0027m making\neverything use dist-for-goals. In this case, instead of fully relying on\na phony rule, write the gtest xml into an intermediate folder, and use\ndist-for-goals to copy that into the dist dir.\n\nBug: 117463001\nTest: DIST_DIR\u003ddist m aapt2_run_host_unit_tests dist\nTest: DIST_DIR\u003ddist m aapt2_run_host_unit_tests dist   (reruns test)\nChange-Id: I166c2b3088703875c6028c3479aec7cf09f3f635\n"
    },
    {
      "commit": "f1aadaf8c5c1216049310f56c9f361ba107475da",
      "tree": "98fedb714fbe74f8f00864de0a02423b5717a22c",
      "parents": [
        "884820a2a8373f96211de4f7c5d148738ea4579e",
        "0d3f4e61c99057c7e40c9159ba08286c34cf797c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 10:31:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 09 10:31:54 2018 -0700"
      },
      "message": "Merge \"Add rtmitchell to AAPT2 OWNERS\"\nam: 0d3f4e61c9\n\nChange-Id: I5285ed50123ed2fd219c6b9daa5e460c0cbdaa36\n"
    },
    {
      "commit": "f99eda450f172f13affa1c08ebea9c3be00ac4b6",
      "tree": "5b7872322e5d57fb2aa8b7e66d0a81ecbb4d7e2a",
      "parents": [
        "3f1f4fc11d2e19c4b297a97d21293d05ac3db622"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Mon Jun 11 14:13:37 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Oct 09 14:02:14 2018 +0000"
      },
      "message": "AAPT2: optionally keep resources without default value\n\nTeach \"aapt2 link\" about a new flag --no-resource-removal. When given,\naapt2 will not filter out resources that lack default values. This is\nuseful mostly when building overlay packages that define resources for\nnon-default configurations, such as only for values-sv.\n\nTest: manual: build package with resource only in values-vs, verify apk with aapt2 dump\nChange-Id: Idc513bcb3f43bbff7f073163562c3dfccdb9bc9b\nMerged-In: Idc513bcb3f43bbff7f073163562c3dfccdb9bc9b\n"
    },
    {
      "commit": "5c541f6e36c049d2a00628083ca0534bf39db971",
      "tree": "b96859ed3ac2264eaae528d3eaf11f7a0901aeb0",
      "parents": [
        "61b9b6c9eb7acb7b5f260f43b04d31d17bb59557"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Wed Jun 20 08:46:41 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Oct 08 09:56:09 2018 -0700"
      },
      "message": "libandroidfw: move ConfigDescription from aapt2 to libandroidfw\n\nThis is to allow idmap2 to access ConfigDescription.\n\nTest: libandroidfw_tests\nTest: aapt2_tests\nChange-Id: I54210bbbd8dad5903cb7100807df977efa394ad5\nMerged-In: I54210bbbd8dad5903cb7100807df977efa394ad5\n"
    },
    {
      "commit": "6d0dbbbab3616f4b61a0e243cd150211406b9b5d",
      "tree": "d58d96e902ce93c95940042b8ce0bd407baa1108",
      "parents": [
        "4ddd969fb9d2dc75088b5acca13c3921a1e94bf6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:54:29 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:54:29 2018 -0700"
      },
      "message": "Add rtmitchell to AAPT2 OWNERS\n\nPer talks with Svet, it is time I became a co-owner of AAPT2 with\ntoddke. I look forward to continuing to support and improve AAPT2.\n\nChange-Id: I3a0f1c8a708abc41045b95dc958dbeb96a5160ff\n"
    },
    {
      "commit": "15dcc77feeb6c7adbea42b0edc8d1ef12aff0201",
      "tree": "489593294ad28b3bde436c08ca81c44d28ca27df",
      "parents": [
        "dcdd224bc0baf7e9452841c49688bb270de52650",
        "9166e8937443f891cb20d8821d17ce5af33793ea"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 18:09:38 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 18:09:38 2018 -0700"
      },
      "message": "Merge \"Add noexcept to move constructors and assignment operators.\"\nam: 9166e89374\n\nChange-Id: I079060ef610c2d90c57140f001225c163a3dd21a\n"
    },
    {
      "commit": "9166e8937443f891cb20d8821d17ce5af33793ea",
      "tree": "d6c7492f0f0ac55de5241ab720e276cbd6120187",
      "parents": [
        "956791cee8dd0a7a0ab91f42abfbac404a50ec97",
        "fc81626ba6851f52c72c9858edf3f6818d66cf82"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 02 00:37:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 02 00:37:46 2018 +0000"
      },
      "message": "Merge \"Add noexcept to move constructors and assignment operators.\""
    },
    {
      "commit": "206ccf1f61832018db21fe7d46e7f64b673b7367",
      "tree": "aac620802db6be3e41a9dc4381cbaf9bb3c63d7c",
      "parents": [
        "05fb3806f336596066db2d1fa03774f20183f068",
        "20ecc6397b33b39700e2de4dae14be5398bbc007"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Oct 01 17:25:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 17:25:02 2018 -0700"
      },
      "message": "Merge \"Do not use StringPiece in ExtractJavaIdentifier\"\nam: 20ecc6397b\n\nChange-Id: I3c70a4b9db43d9590f52cdb6972cf9fba3501787\n"
    },
    {
      "commit": "20ecc6397b33b39700e2de4dae14be5398bbc007",
      "tree": "abdd972f8bc78c2378864f6b28b5ece4006685b4",
      "parents": [
        "417b7b14bb0f3f3e5e0ad2e46848230e944a7ae9",
        "9ba5cb4796a66b387af1f9350134f742f490aa7f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 01 23:37:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 01 23:37:31 2018 +0000"
      },
      "message": "Merge \"Do not use StringPiece in ExtractJavaIdentifier\""
    },
    {
      "commit": "fc81626ba6851f52c72c9858edf3f6818d66cf82",
      "tree": "30551addf9eeb23a99149d1ca04c644285dacaea",
      "parents": [
        "6c35ea901c364f14198009b00b9e838842516911"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Sep 25 12:01:21 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 20:23:02 2018 +0000"
      },
      "message": "Add noexcept to move constructors and assignment operators.\n\nBug: 116614593\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ic3993d88eb3066aef402d74c4d543c56a1dfd5c3\n"
    },
    {
      "commit": "47be78e5235e344019f4ef449c051bc08fca5790",
      "tree": "fc098d3ef692f0a02056e627148fd4f08d886ad1",
      "parents": [
        "95981b04889d466c94fdbf28b66f958dd5d86893",
        "b839befd7bd375b39d39723e42d912265031fbdf"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 15:14:41 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 26 15:14:41 2018 -0700"
      },
      "message": "Merge \"Change FileStream test buffer from char* void*\"\nam: b839befd7b\n\nChange-Id: Iffc125b995827c455fb4f2c3b2dca15de3321a86\n"
    },
    {
      "commit": "b839befd7bd375b39d39723e42d912265031fbdf",
      "tree": "fc3af5b86e14db8d717ef9b411027a6718e9e737",
      "parents": [
        "c4833e862e333c363d5a87f73141fc3ad06f6236",
        "8f37734cf48c2ff15e8654cfa26fa4baa195d348"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 21:58:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 26 21:58:44 2018 +0000"
      },
      "message": "Merge \"Change FileStream test buffer from char* void*\""
    },
    {
      "commit": "8f37734cf48c2ff15e8654cfa26fa4baa195d348",
      "tree": "93714e00f737a56b3ff190ed54757e26e828da6b",
      "parents": [
        "31830456cdb94cbe2a50debf5eaee5cd54dd7d3c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 10:26:53 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 14:54:45 2018 -0700"
      },
      "message": "Change FileStream test buffer from char* void*\n\nIt seems like GoogleTest prints string parameters before checking them.\nThis can be a problem in FileStream tests since these buffers are not\nnull terminated.  ASan reports heap-buffer-overflow.\n\nTest: m SANITIZE_HOST\u003daddress\nout/soong/.intermediates/frameworks/base/tools/aapt2/aapt2_tests/linux_glibc_x86_64_asan/aapt2_tests \\\n      LD_LIBRARY_PATH\u003dout/soong/.intermediates/external/libcxx/libc++/linux_glibc_x86_64_shared\nout/soong/.intermediates/frameworks/base/tools/aapt2/aapt2_tests/linux_glibc_x86_64_asan/aapt2_tests\n\nChange-Id: I9a1956d815729de23c7038fb0d498240eb917070\n"
    },
    {
      "commit": "9ba5cb4796a66b387af1f9350134f742f490aa7f",
      "tree": "9526df3430e982770a42719f2dc6cc198353950b",
      "parents": [
        "4a2dd10d834529311bf0daa4d5fa7c81f903bf61"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Sep 24 15:20:15 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Sep 25 13:21:35 2018 -0700"
      },
      "message": "Do not use StringPiece in ExtractJavaIdentifier\n\nBug: http://b/91353691\n\nAfter assigning the result of TransformToFieldName to \u0027result\u0027, the\nunderlying storage is destroyed after the \u0027if\u0027 statement of the function\ncall.  \u0027result\u0027 ends up with garbage if the identifier has a \u0027-\u0027.\n\nManifestClassGeneratorTest.NormalizePermissionNames is broken for this\nreason in 32-bit Windows when using libc++ and 32-bit Linux.  ASAN also\nreports this failure for both 32-bit and 64-bit linux.\n\nTest: Run test on the cases mentioned above and ensure all of them pass.\nChange-Id: I69163c423c1171b7ac7838f2abe06bdf8058df4c\n"
    },
    {
      "commit": "18242e5c089fbdbe396d902ccac4479fcbbaab83",
      "tree": "ccb7f6fa51f11a3ab3bd6e309c6fd80710b7b430",
      "parents": [
        "b2e9c6652e6236fee3b2b358a846707147ff12c3",
        "4a2dd10d834529311bf0daa4d5fa7c81f903bf61"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 24 11:50:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 24 11:50:54 2018 -0700"
      },
      "message": "Merge \"Fix clang-tidy performance warnings in frameworks/base.\"\nam: 4a2dd10d83\n\nChange-Id: Ic7266f1c23ab5218f47bf65bb2bde6f79a07a910\n"
    },
    {
      "commit": "6b3fac2945ffe078a30cbab684d6556ff643a1ab",
      "tree": "91098b40f54ec50139b45257fc5092e12ec697f4",
      "parents": [
        "f7190b65ab20a153191638c8ab2527994a56872a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 15:12:02 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 24 16:29:26 2018 +0000"
      },
      "message": "Fix clang-tidy performance warnings in frameworks/base.\n\n* Use more efficient overloaded string methods.\n\nBug: 30411878\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ia387e61770e1e7211280ed028ef0eef6e632a1d2\n"
    },
    {
      "commit": "b2e9c6652e6236fee3b2b358a846707147ff12c3",
      "tree": "0d89cc317deb8c51b675e6b47f9089d90ed7980a",
      "parents": [
        "77841856d2cb517f7f4e4320eca369bd1f78f120",
        "f7190b65ab20a153191638c8ab2527994a56872a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Sep 24 04:23:27 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 24 04:23:27 2018 -0700"
      },
      "message": "Merge \"Add serialization methods to whitelist not light greylist\"\nam: f7190b65ab\n\nChange-Id: Idecb27314ecbdea74354afb4f320eda124bfc72d\n"
    },
    {
      "commit": "e9622a3d3ae3ff6f61aa294aa16a0e232e97f09a",
      "tree": "0f2e960156f7b1b4345ed5044d1b158481e29edc",
      "parents": [
        "194170e7f7493c828235f325140dd860d31d077d"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Sep 20 11:03:40 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Sep 21 11:05:06 2018 +0100"
      },
      "message": "Add serialization methods to whitelist not light greylist\n\nChecked the contents of the hiddenapi lists before and after the change\nand the methods were definitely moved from light greylist to the\nwhitelist.\n\nFlashed the device and checked the log and did not see anything out of\nthe ordinary.\n\nTest: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I9b4b2426251e99495f65ae02a3c2c32ce6966625\n"
    },
    {
      "commit": "57a4bae7c3c79449fcb271375c8e3474a329f716",
      "tree": "5b6a7a7ed50df10cf22506add4b954651eb53e89",
      "parents": [
        "65e63ce0de5107ed95060b26e9fb02a5b637249c",
        "daabcae9557b085d7b9d3b1945753718b734f332"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Sep 14 21:55:58 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 14 21:55:58 2018 -0700"
      },
      "message": "Merge \"Don\u0027t fail if there are no comments.\"\nam: daabcae955\n\nChange-Id: I7d8139a98913ae17491f73314bd426287374c270\n"
    },
    {
      "commit": "6be0fdde4adc0c41fb9bc3376e7d1938a5d4de25",
      "tree": "acbc46e75c3bb287df6800b765990c6440f5b769",
      "parents": [
        "53f6d1b060c10121062c4054514c3e3a0c2444bd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Sep 14 15:19:10 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Sep 14 15:29:35 2018 +0100"
      },
      "message": "Don\u0027t fail if there are no comments.\n\nGrep exits with non-zero if it find no matches. But it doesn\u0027t matter in\nthis case, so just carry on.\n\nTest: frameworks/base/tools/hiddenapi/sort_api.sh \\\nTest:    frameworks/base/config/hiddenapi-light-greylist.txt\nChange-Id: I7c219ee617f7dfa3cff5232ab979cc4ba38ebbfd\n"
    },
    {
      "commit": "00d5548355ed5a15219ad848ab7a947ea54f82de",
      "tree": "49f1b8b155c999aae5a2263a195efee25377a48f",
      "parents": [
        "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 07 14:33:14 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 13 22:12:37 2018 -0700"
      },
      "message": "AAPT2: Add the rest of supported manifest elements\n\nAdds elemnts that are parsed in PackageParser to the manifest parsing of\nAAPT2.\n\n\u003cpackage\u003e found in \u003cmanifest\u003e\n\u003cpreferred\u003e found in \u003cmanifest\u003e\u003capplication\u003e\u003cactivity\u003e\n\nBug: 79755007\nTest: manual building of broken targets listed in the bug\nChange-Id: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\nMerged-In: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\n(cherry picked from commit 28afe682cd84c894c4da880ace41db77268400c4)\n"
    },
    {
      "commit": "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4",
      "tree": "28c4d899141ac3aeb920a03d730184f14024c59b",
      "parents": [
        "741521940a1b0d0b05b20719a38e3970917dd5ef"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jul 25 16:15:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 13 22:11:59 2018 -0700"
      },
      "message": "AAPT2: Add supported manifest elements\n\nAdds some elements present in res/values/attrs_manifest.xml to manifest\nparsing.\n\n\u003cadditional-certificate\u003e in \u003cmanifest\u003e\u003capplication\u003e\u003cuses-static-library\u003e\n\u003cmeta-data\u003e in \u003cmanifest\u003e\u003cpermission\u003e\n\u003cpackage-verifier\u003e in \u003cmanifest\u003e\n\u003crestrict-update\u003e in \u003cmanifest\u003e\n\nBug: 79755007\nTest: manual\nChange-Id: I50520a99ce5ced9908001430b2108d7a5c71f8a7\nMerged-In: I50520a99ce5ced9908001430b2108d7a5c71f8a7\n(cherry picked from commit 66f6cfb8a561a653db084b97adfa8c4d48979000)\n"
    },
    {
      "commit": "ac2b7439d9857807df81642a71981c1f87fbb777",
      "tree": "1fca11de89dac3857f465dae8a2a9a57452c2b9d",
      "parents": [
        "96b6adc014120b704139ae5e3eeec23f3abca3e6",
        "98cd65e17f02c649bef6d7bc34fdbbf47a1cf139"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 11 16:15:49 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 11 16:15:49 2018 -0700"
      },
      "message": "Merge changes from topic \"ownerz\"\nam: 98cd65e17f\n\nChange-Id: I42a137e73ab409a03f26abb0394be229c9d43e12\n"
    },
    {
      "commit": "5b471996ebebce503487ca08c86ee7eb62e6dd3d",
      "tree": "dadd7f10e7220be3bace09dae9d3707bf37dd003",
      "parents": [
        "0a9c731969fe590f82a5a4e34f9f1470d57d20b2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 11 10:36:57 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 11 12:14:48 2018 -0600"
      },
      "message": "Tweaks to AOSP upload hook logic.\n\nLists all matching files, and slightly more robust path handling.\n\nBug: 113136846\nTest: manual\nChange-Id: Ic1971a3df97b8b137993b5856b47d0d706a996cd\n"
    },
    {
      "commit": "0a9c731969fe590f82a5a4e34f9f1470d57d20b2",
      "tree": "235dfb994eef432c2753e85cfab3558fa2e96268",
      "parents": [
        "98627fa455f34da2791d2d65e30d38e87bee3022"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 23 22:01:53 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 11 11:09:05 2018 -0600"
      },
      "message": "Upload hook that guides people towards AOSP.\n\nThe canonical location of certain parts of the source tree live in\nAOSP, and should not be changed internally to avoid merge conflicts.\n\nThis initially starts with \"OWNERS\" files, but the hook can easily\nbe repeated to match any files based on file path regexes.\n\nBug: 113136846\nTest: manual\nChange-Id: I113e63b6133f20389d84ec0d6d8b81cdbdf35d38\nMerged-In: I113e63b6133f20389d84ec0d6d8b81cdbdf35d38\n"
    },
    {
      "commit": "5c6894a85b254cf8c484173054da7e70bac8a5d8",
      "tree": "3e25e589cf922f40931d8f2ebab7744d41765d78",
      "parents": [
        "14e10c3b10563e68030bba002f5ee948d3b0dc91",
        "e87700fc97e2988cd2ab870f33d362dc93f0d1b3"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 11 09:46:18 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 11 09:46:18 2018 -0700"
      },
      "message": "Merge \"Revert \"Check in P dark greylist, use it for hidden API list generation\"\"\nam: e87700fc97\n\nChange-Id: Ic4c73f2f482ab9260479e44e69a26bb55e510cca\n"
    },
    {
      "commit": "4a55eebf26a5366de302578f76947e7c05305a22",
      "tree": "2f1811bb36030f2252a422b3bca1b3a7f6762f0a",
      "parents": [
        "60ff003a9d988ba7459906b131fa5718b80dc093"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 11 11:09:01 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 11 11:43:07 2018 +0100"
      },
      "message": "Revert \"Check in P dark greylist, use it for hidden API list generation\"\n\nThis reverts commit 3cc74c71ef907a76547424aea6597f7b2907e9fb.\nWe saw app crashes due stricter classification of non-SDK APIs.\n\nBug: 115284625\nBug: 113881436\nTest: phone boots\n\nChange-Id: I689d0fbf66fabeffa5032e13f2f1f314c50b6cc5\n"
    },
    {
      "commit": "5c776dea7ebc68e31b16019093a191ef015ada97",
      "tree": "719c12072da84306cea79ba218862bac2dd6bb15",
      "parents": [
        "eb0b6de5105abac54e2df5c9bbb49bd4bff61609",
        "3d93d8f3238f26c9331c34ea01f2baceecfdb718"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 07 03:00:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 07 03:00:37 2018 -0700"
      },
      "message": "Merge changes from topic \"hiddenapi-dark-grey\"\nam: 3d93d8f323\n\nChange-Id: I7ee3cfd512553bcf5ff3297a7df0db6786d3436a\n"
    },
    {
      "commit": "38d2793a7d802388655b6db3ce9c017a446d8b29",
      "tree": "9dca53dbe9d11a6b01430526005eb3416b439c97",
      "parents": [
        "e3621c5e2e22d7eb86efbae60ce2128175c8a58d",
        "3cc74c71ef907a76547424aea6597f7b2907e9fb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 07 02:48:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 07 02:48:00 2018 -0700"
      },
      "message": "Check in P dark greylist, use it for hidden API list generation\nam: 3cc74c71ef\n\nChange-Id: I266a8661800078c7fd3f1717b94c81f3a7e9545a\n"
    },
    {
      "commit": "3d93d8f3238f26c9331c34ea01f2baceecfdb718",
      "tree": "fac5a236e0cd0c376dfc9285417e6bf9d7b53e66",
      "parents": [
        "4be1419838d8e356f28d05c186b4ba4609dea8a3",
        "ae88d4e21e072a5a4a15777ce2575b90a4689333"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 07 09:31:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 07 09:31:56 2018 +0000"
      },
      "message": "Merge changes from topic \"hiddenapi-dark-grey\"\n\n* changes:\n  Ignore comment lines in hidden api lists\n  Mark hidden API lists .KATI_RESTAT\n  Check in P dark greylist, use it for hidden API list generation\n"
    },
    {
      "commit": "e03a757d87e951a93fbb4427a7b1f406fdcd991c",
      "tree": "2daefe8e12d4f20824852ab7e965aa295ba800d7",
      "parents": [
        "5225d85626cb00b2deadb52c81db576461bc480c",
        "0d2f465ed798530ac0a4746153f771bee8b10f52"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 06 12:31:56 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 06 12:31:56 2018 -0700"
      },
      "message": "Merge \"Fix compilation when targeting OpenJDK 9.\"\nam: 0d2f465ed7\n\nChange-Id: I066771334a0d7c4d79c4035ccce95c08d7a23892\n"
    },
    {
      "commit": "8fb36157292db01854fbfa40815e0a37db6332e1",
      "tree": "6eb0b744d57417d5d8daeac6115ad7568f809812",
      "parents": [
        "08d7a208e8c8b6e23d7949d5ce9bc06cb5bea538"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 06 17:30:28 2018 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 06 17:33:57 2018 +0100"
      },
      "message": "Fix compilation when targeting OpenJDK 9.\n\nCL [1] added a new compilation target that uses internal API\nthat is now in the jdk.compiler module and is not exported\n(it is subject to removal without notice in future versions of\nOpenJDK). The fact that these packages are not exported suggests\nthat a replacement API is already available, but I don\u0027t know the\ndetails.\n\nFor now, this CL uses javac command-line flags to export these\npackages, which fixes compilation. Since the commit message from\nCL [1] implies that the entire tool can be removed once bug 77284273\nis fixed, a longer-term solution should not be required.\n\n[1] https://android-review.googlesource.com/c/platform/frameworks/base/+/745655\n    commit bad89e5e5b171a71e42d7c738ec97a39747e4318\n\nTest: The following breaks before but not after this CL:\n  EXPERIMENTAL_USE_OPENJDK9\u003dtrue make unsupportedappusage-annotation-processor\nBug: 113853502\n\nChange-Id: I24b77af9262891428a01e2eccc18fa3a5c3b3bc9\n"
    },
    {
      "commit": "ae88d4e21e072a5a4a15777ce2575b90a4689333",
      "tree": "cf0d7dbec4ac0d9c4e7f3406016e997559a31c66",
      "parents": [
        "081a589ad997e30062bfb9c6cd18f77d9cae0245"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 14:46:55 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 15:10:28 2018 +0100"
      },
      "message": "Ignore comment lines in hidden api lists\n\nIt is sometimes useful to add comments at the top of a source file. This\npatch changes hidden API list generation to ignore lines beginning with\na hash.\n\nNote that due to the sorting constraints on hidden API lists, comments\ncan be only at the top of the files.\n\nTest: m appcompat\nChange-Id: I1bc6fd44d1b1f10a5adc45093d7f7ed5a0c5a54f\n"
    },
    {
      "commit": "3cc74c71ef907a76547424aea6597f7b2907e9fb",
      "tree": "3b698fdf89b4a5abeed7a2b08aa2f6455fc20bd1",
      "parents": [
        "08d7a208e8c8b6e23d7949d5ce9bc06cb5bea538"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 11:02:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 11:10:51 2018 +0100"
      },
      "message": "Check in P dark greylist, use it for hidden API list generation\n\nWe want to preserve the same semantics as P wrt dark greylist. This will\neventually become the \"blacklist for target SDK \u003e\u003d P\".\n\nBug: 113881436\nTest: phone boots\nChange-Id: I3bb72102e1d054eb0f2cae089ab633a0bc2bb276\n"
    },
    {
      "commit": "22ea0b7a52205c046eb7244d4fca4328f130ac7f",
      "tree": "674240c55b622a1274e63cf3f9698df60dccaa6a",
      "parents": [
        "0d4d187ddc83213f65e2eb00d04f21addc7c84b4",
        "e5440456ca3af4028586db679a89edfc2ae4fd4a"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Sep 05 09:33:33 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 05 09:33:33 2018 -0700"
      },
      "message": "Merge \"Processor for @UnsupportedAppUsage annotations.\"\nam: e5440456ca\n\nChange-Id: I5e4d53b92c20bf3c34248c6cf4798ab4ba34af7c\n"
    },
    {
      "commit": "bad89e5e5b171a71e42d7c738ec97a39747e4318",
      "tree": "713d2fe9e6a0a149ac86044261094a4f9d487992",
      "parents": [
        "8ac363088ce16df9d50953c1aed636616513b7d8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jun 28 14:12:10 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Sep 05 15:01:21 2018 +0100"
      },
      "message": "Processor for @UnsupportedAppUsage annotations.\n\nThe processor outputs unsupportedappusage_index.csv, containing source\nposition info for every@UnsupportedAppUsage annotation processed. It is a\nmapping of dex signature to the source postion of the annotation on that\nsignature. It is used as input for scripts which update the annotations.\n\nWe include a META-INF file which causes the compiler to automatically\npick up the annotation processor. Otherwise we would need to explicitly\nspecify the processor with a -processor flag to javac.\n\nWe create a new build target for just the @UnsupportedAppUsage annotation\nand the @IntDef annotation (which it depends on) so that the processor can\nalso depend on that directly.\n\nThe processor only runs on a new build target framework-annotation-proc\nso that it is not invoked as part of a regular build. This is done so\nthat we don\u0027t slow down peoples builds: Soong does not support annotation\nprocessors when javac sharding is in use. This workaround can be removed\nonce b/77284273 is fixed.\n\nTest: m framework-annotation-proc\nBug: 113853502\n\nChange-Id: Ie9cd5a90ddf7a51f6035e849703fc39ad9127557\n"
    }
  ],
  "next": "8f7b234417706a3329427b739e926ffb001faf22"
}
