)]}'
{
  "log": [
    {
      "commit": "3d31b4e018742c492c3ebc8d52272e26d873000c",
      "tree": "055095519d992b6bd625c594afae6801c8b64ff8",
      "parents": [
        "3ce70560d8eeb425fa3fdae5c4d5c7b061637388",
        "41773b73ea02db5b2dc19b6077a5b965feeac374"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 30 20:18:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 20:18:25 2018 +0000"
      },
      "message": "Merge \"Don\u0027t rely on fallthrough in incident_section_gen\""
    },
    {
      "commit": "bd7077065c211f49b090aa4250b53b58461adfd9",
      "tree": "f97634299fd45f85b7aabe02d369ffb9ca1a433a",
      "parents": [
        "0ba5e3d6cbf9e5666a0db15d330f5424c1fad391"
      ],
      "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": "Fri Nov 30 09:00:43 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 inpsect output.\nChange-Id: I71fb1215ad2790751be336b4955c163bb323a4a6\n"
    },
    {
      "commit": "2a0e196a54571ed70fe2d856ea9e4220bcc52505",
      "tree": "4209aa31ca1553627d62ff8c23e46951a8acfd1b",
      "parents": [
        "8faacd383d997996273f289218b519a23f700f46",
        "795bfbaabfac07be7063b12789a5286ac1ebf579"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 30 01:25:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 01:25:54 2018 +0000"
      },
      "message": "Merge changes Ibc9ada6f,I2c5fce16\n\n* changes:\n  Power model calculation based on batterystats data.\n  Parse the raw batterystats into an ActivityReport object.\n"
    },
    {
      "commit": "f69ca4e970166c2c26f5f6b5fef90daf1112db89",
      "tree": "cfbdde4e7259f59b948a3026f928a2f4fabb1c1d",
      "parents": [
        "ab4a8d2eb702d417ec7633baad2f6ea6dfe8b148",
        "8e6f9983009eadf32d05ad65e38906d3985bc9ba"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 22:52:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 22:52:57 2018 +0000"
      },
      "message": "Merge \"Skip writing message field in an atom if it\u0027s empty\""
    },
    {
      "commit": "626a973099ade26adffbb81945986a490782187d",
      "tree": "fb5b0711c4dcac051adf38d3ffbf781ff4cab72f",
      "parents": [
        "d930083b079269fa3cfe7a867eb5dc26ccd8f1e2",
        "6e6208769903f2fd466250033abf7084fbef550e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 21:02:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 21:02:10 2018 +0000"
      },
      "message": "Merge changes If2dee6bf,Ifeae68ce,Ib0f7aceb,I79802f91\n\n* changes:\n  Add the concept of apps to the battery stats parser.\n  Class to parse the raw batterystats csv.\n  Add csv parser for the power profile library.\n  Off-device library for the power model.\n"
    },
    {
      "commit": "8e6f9983009eadf32d05ad65e38906d3985bc9ba",
      "tree": "347aee3288ccf837ddb4f8edb6eb1217c4af1dd4",
      "parents": [
        "d8a9db84862b7f9a8d2dc50373e7642b818862f4"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 29 09:39:45 2018 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 29 10:59:57 2018 -0800"
      },
      "message": "Skip writing message field in an atom if it\u0027s empty\n\nTest: unit test added\nChange-Id: I825b1ce526944a20fe65705508ad180ece37492c\n"
    },
    {
      "commit": "795bfbaabfac07be7063b12789a5286ac1ebf579",
      "tree": "7ac092bdba8e9914b7f9b1d76756266ad44a3360",
      "parents": [
        "68cf7a9e196d1702082a61f02ae259a59c0fe800"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 16 17:41:09 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Nov 29 10:48:26 2018 -0800"
      },
      "message": "Power model calculation based on batterystats data.\n\nSimilar to the ActivityReport, the PowerReport contains the power\nusage for a device.  To do the calculations, each of the\nComponentActivity objects are called, giving them the whole activity\ninfo (in case they need to apportion blame) and the PowerProfile.\nFrom that, they compute the per-component power usage, which is\nthen summed up into the AppPower and PowerReport objects.\n\nTest: atest frameworks/base/tools/powermodel --host\nChange-Id: Ibc9ada6f7f4a667152fc4af388f04766125ca74c\n"
    },
    {
      "commit": "6e6208769903f2fd466250033abf7084fbef550e",
      "tree": "2d115e1e0fab4fcc4e5964bb5769216d69c25256",
      "parents": [
        "a3f265fa2e28a2ea1f4fc0e7eeea64bbb1423028"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 16 16:26:13 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Nov 29 10:48:26 2018 -0800"
      },
      "message": "Add the concept of apps to the battery stats parser.\n\nAttributionKey is how we identify an app.  It contains either\na set of package names, read from the uid records from batterystats\n(or later UidMap from statsd), or one of the hard coded SpecialApps.\n\nTest: atest frameworks/base/tools/powermodel --host\nChange-Id: If2dee6bffd2d3dafccfeff5c92bafc651b356b15\n"
    },
    {
      "commit": "68cf7a9e196d1702082a61f02ae259a59c0fe800",
      "tree": "375f0ffa6117d2b162981c457bf8c538e39369fd",
      "parents": [
        "6e6208769903f2fd466250033abf7084fbef550e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 16 17:27:01 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Nov 29 10:48:26 2018 -0800"
      },
      "message": "Parse the raw batterystats into an ActivityReport object.\n\nFor each app that appears in the batterystats data, there is an AppActivity\nobject (which subclasses from AppInfo, because the needs of the upcoming\nPowerReport object are similar).  Inside the AppActivity, there are\nComponentActivity objects.  Each power using component has a ComponentActivity\nfor the fields required.  The additional Report objects in RawBatteryStats are\nalso added here.\n\nThis change usess modem data as a proof of concept. The exact fields in it\nmay evolve, even though the calculation uses tx and rx packets, the final power\ncalculation uses time, and putting the batterystats apportioning logic in the\nbatterystats handling code seems better than what we\u0027re doing here.  Anyway,\nthat can be iterated upon.\n\nTest: atest frameworks/base/tools/powermodel --host\nChange-Id: I2c5fce16d4fef3628d64107562d6cf9ea4edbbc2\n"
    },
    {
      "commit": "41773b73ea02db5b2dc19b6077a5b965feeac374",
      "tree": "a0c8f06d65bda3c31deee6bc755775b68e4324b2",
      "parents": [
        "edc46f4239c3f7410468c115d1604e5c871b8809"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Nov 29 14:38:30 2018 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Nov 29 19:11:41 2018 +0100"
      },
      "message": "Don\u0027t rely on fallthrough in incident_section_gen\n\nSilences the following warning during build:\n\nframeworks/base/tools/incident_section_gen/main.cpp:265:13:\n    warning: unannotated fall-through between switch labels\n[-Wimplicit-fallthrough]\n            default:\n            ^\nframeworks/base/tools/incident_section_gen/main.cpp:265:13:\n    note: insert \u0027GOOGLE_FALLTHROUGH_INTENDED;\u0027 to silence this warning\n            default:\n            ^\n            GOOGLE_FALLTHROUGH_INTENDED;\n\nframeworks/base/tools/incident_section_gen/main.cpp:265:13:\n    note: insert \u0027break;\u0027 to avoid fall-through\n            default:\n            ^\n            break;\n\nTest: make -j50 2\u003e\u00261 | grep incident_section\nChange-Id: Ie59510025e59e96f0763726794ff19dae595c672\n"
    },
    {
      "commit": "da1293aba95a63aff11927e1b8b09743b3de1944",
      "tree": "43f2a852f125f789e6421e2060529343715370f1",
      "parents": [
        "46f1f376e5e8fa0218a4c82d95a485b1909718c7",
        "da53a737cab7126917fb654b54bb74f5bb48f2bb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Nov 29 08:34:17 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 29 08:34:17 2018 -0800"
      },
      "message": "Merge changes from topic \"libcore-remaining-hiddenapi\" am: 74c171b4da am: a51da7d3be\nam: da53a737ca\n\nChange-Id: I7e5ca251a6c15ea6f040897a8e5cf4c653f4ddd1\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": "a3f265fa2e28a2ea1f4fc0e7eeea64bbb1423028",
      "tree": "ae107465017db127872ecae4398ce14fdc650a84",
      "parents": [
        "7d1851fe49b2f923bb33f2a2db2f0baeb38b413b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 16 16:15:31 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Nov 28 13:01:47 2018 -0800"
      },
      "message": "Class to parse the raw batterystats csv.\n\nThis parser builds a set of objects from the csv by looking\nat the annotations on the fields.  Each line in the csv\ncorresponds to a Record object.\n\nTest: atest frameworks/base/tools/powermodel --host\nChange-Id: Ifeae68ce3bc3a6ea9330ff924204f016bff20663\n"
    },
    {
      "commit": "7d1851fe49b2f923bb33f2a2db2f0baeb38b413b",
      "tree": "c441ffb622077e0c291b9dc7d94a81579e123073",
      "parents": [
        "9112a5e07a82d0e27d91e34971dc7afce53542f9"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 16 16:08:15 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Nov 28 12:34:31 2018 -0800"
      },
      "message": "Add csv parser for the power profile library.\n\nThere are enough variants of csv, and it\u0027s simple enough that\nit\u0027s easier to just have our own parser than to introduce a\ndependency on some other library, as this library will be used\nin a variety of environments.\n\nTest: atest frameworks/base/tools/powermodel --host\nChange-Id: Ib0f7aceb2a58b58f447f6bcef5c95729303dee8a\n"
    },
    {
      "commit": "9112a5e07a82d0e27d91e34971dc7afce53542f9",
      "tree": "bff058569e07a5a2dcbadea6f37e112222939c92",
      "parents": [
        "5af89dfbd56d6ca829c1c5c31a3e364f1eab0561"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 16 15:56:37 2018 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Nov 28 12:06:31 2018 -0800"
      },
      "message": "Off-device library for the power model.\n\nThis first CL adds a class, PowerProfile that parses the power\nprofile xml file into a set of individual *Profile classes, one\nfor each of the hardware \"components.\"\n\nThere will be more to come.  This library will be used to compute\nthe power model from a batterystats or statsd dump, with abstractions\nso clients don\u0027t need to know all of the nuances of batterystats\u0027\nold versions, or statsd\u0027s configs.\n\nTest: atest frameworks/base/tools/powermodel --host\nChange-Id: I79802f91234b09539072d10f15534cef391fe04a\n"
    },
    {
      "commit": "86445841ac90e04941dbc8dad34f2a893a2e0f8b",
      "tree": "8cff063d0f414bc5721cf3e2b0e72b72c37ff115",
      "parents": [
        "9ba4a5ceeaf475d742eb06c97ec118b64066d878"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Nov 27 17:33:42 2018 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Nov 27 17:36:07 2018 -0700"
      },
      "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"
    },
    {
      "commit": "2f5dd12af0c78ba077a9dc2b9cf77b772b618cd1",
      "tree": "8e3bfa22f96a7d8ed6a72a5f293e8c167f1a089a",
      "parents": [
        "abbcfb2dba6517d19455ce565a782977b827b11f"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Nov 23 15:21:20 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Nov 23 15:25:52 2018 +0000"
      },
      "message": "Add linter for strings attribute names\n\nOnly one bad example for now, which is a misspelling that\u0027s not\nentirely uncommon and can lead to real problems (see linked bug).\n\nExample output:\nLine 58: \u0027my_new\u0027: Misspelled \u003cstring\u003e attribute.\n        Actual: translateable\n        Example: translatable\n\nBug: 119884572\nTest: with a misspelled attribute\nChange-Id: If61412fe318a34191920781c4834584363080e11\n"
    },
    {
      "commit": "19954a261cdc6f1022faa2fca16f5b62660c4c3d",
      "tree": "71adf5c0aa7114e18ca6ce0c6cf5c390eac80e61",
      "parents": [
        "c8a685abf9e703e97230a5f445840683c0c12ce2",
        "467b689a4c0869b98b4c8c67c8accd1422cd1956"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Nov 19 22:13:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 19 22:13:35 2018 +0000"
      },
      "message": "Merge \"Do not serialize empty text in manifest proto\""
    },
    {
      "commit": "adc63f02b36c2f80a02f30cdb04985abcf03f469",
      "tree": "883d2eeccff247393883e62dbbc13ed86808da67",
      "parents": [
        "5c9cf0e485c8f6c741fe0265829f7eaa358ac223",
        "beea2153abc5a56e9986080051b2303230983d50"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 19 13:46:31 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 19 13:46:31 2018 -0800"
      },
      "message": "Merge changes I664fb325,I5e289469 am: 701001688f am: 833a491fab\nam: beea2153ab\n\nChange-Id: Ifd30d79d06e4e80103ff2f09b0ae960ceb8bc7f9\n"
    },
    {
      "commit": "d1633c3bdba426143f06c8c89fa942e761140908",
      "tree": "3b20816c31a6a8f9d3d20aafa3ee0c09d521fe77",
      "parents": [
        "c2d4773ec8cbfb162fd756cc732c7ba97971cfd0",
        "da9b8d0ad19f439bc4c77ada798edd02a92de85e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 19 20:14:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 19 20:14:12 2018 +0000"
      },
      "message": "Merge \"Incidentd: Fix switch break warnings\""
    },
    {
      "commit": "467b689a4c0869b98b4c8c67c8accd1422cd1956",
      "tree": "71f32b75baec19f724bada5594ad754ba20d89b5",
      "parents": [
        "67dd91e6a301c9dd15f4f95ac715064534296a53"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Nov 09 15:52:07 2018 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Nov 16 15:58:06 2018 -0800"
      },
      "message": "Do not serialize empty text in manifest proto\n\nWhen linking an APK in the proto format, the manifest is currently\nserializes text nodes that only contain whitespace:\n\nchild: {\n  text: \"\\n        \"\n  source: {\n    line_number  : 0x0000000f\n    column_number: 0x0000002f\n  }\n}\n\nThese whitespace bloat the proto size unnecessarily. Do not write these\ntext nodes for proto apks.\n\nBug: 118800653\nTest: make aapt2_tests\nChange-Id: Icfaaf88976f81450bbf51610a316b336deeae60c\n"
    },
    {
      "commit": "a7d9f269d614fe3d38ca51c2c2fc276a8ddb7547",
      "tree": "6b9413fc173491daefa1495c34a95d91fb0e746e",
      "parents": [
        "46fa840747307c6679c214c30f8c37b7e692a5d6",
        "4e9a922ede24f7f7bfe793321f7328623ee2a061"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Nov 16 17:27:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 16 17:27:23 2018 +0000"
      },
      "message": "Merge \"Fix loaded apk string pool order\""
    },
    {
      "commit": "4e9a922ede24f7f7bfe793321f7328623ee2a061",
      "tree": "b74d2ecefc7e6902ff37c1be7798adc5861ae13d",
      "parents": [
        "67dd91e6a301c9dd15f4f95ac715064534296a53"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Nov 13 10:40:07 2018 -0800"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Nov 15 11:37:01 2018 -0800"
      },
      "message": "Fix loaded apk string pool order\n\nLoading in an APk changed the ordering of strings in the string pool.\nWhen loading an apk, assign the strings to the same index as they\nare in the ResStringPool.\n\nBug: 118831219\nTest: \"aapt2 dump strings left.apk\" prints in the correct order,\n\"aapt2 convert left.apk --output-format binary -o left_binary.apk\" has\nentries in the correct order, and aapt2_tests\n\nChange-Id: I00014c02195f39c1152a110e90083d9b14e9216e\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": "da9b8d0ad19f439bc4c77ada798edd02a92de85e",
      "tree": "db3d8e762f3dc1010c01b97200cec7c6ea683b4d",
      "parents": [
        "10113a7c36838cb7da6b36e7f4800d6cfae6178d"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Wed Nov 14 13:14:45 2018 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Wed Nov 14 13:35:30 2018 -0800"
      },
      "message": "Incidentd: Fix switch break warnings\n\nA few switches didn\u0027t have explicit breaks in them, which was causing\nwarnings. They were all benign, as the logic did not necessitate a\nbreak. But this is will stop the warnings and perhaps prevent future\nbugs.\n\nChange-Id: Idb293a4896f4df8d3f11d748e0e716efc26bbd6a\nFixes: 119047812\nTest: N/A\n"
    },
    {
      "commit": "252c7c43c916aafb1f7d137285b64a4e667ffcbf",
      "tree": "16ebd45f6d42c7f74a63c8f7fc810c1a62200a35",
      "parents": [
        "4d75ccd3287e71711e667fb44a474c335108df02",
        "39b679925aaeb47fdf5bd39f9afbd4025be79a44"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 12 19:27:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 12 19:27:58 2018 +0000"
      },
      "message": "Merge \"Pass the last error code when statslog.write fails\""
    },
    {
      "commit": "39b679925aaeb47fdf5bd39f9afbd4025be79a44",
      "tree": "c4e0a0e8fb2353ef140a1a866cb34f43e430560f",
      "parents": [
        "306406790868def006d6cebf4c4b2830e73916aa"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 08 15:32:17 2018 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 09 09:56:36 2018 -0800"
      },
      "message": "Pass the last error code when statslog.write fails\n\nThe error code will give us some clue on what caused the loss (e.g., EBUSY, or ENOENT)\n\nTest: manual\nBug: 80538532\n\nChange-Id: I446c6e2255bdae063dfb8803ad0b702ead87c645\n"
    },
    {
      "commit": "4b55bd77fb69629798e3221025e0740252cbfe41",
      "tree": "d728588b86154588e68ef0d777272d5b6b2093ba",
      "parents": [
        "70c02611090acb5627aaa71b3d5cbac8229c80d7"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Thu Oct 11 08:38:08 2018 +0200"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Nov 07 08:23:06 2018 -0800"
      },
      "message": "AAPT2: propagate SPEC_OVERLAYABLE to splits\n\nA resource marked SPEC_OVERLAYABLE in the base package was not marked as\nsuch in the corresponding split packages. Add missing copy statement.\n\nTest: manual (aapt2 dump test content in libandroidfw)\nChange-Id: I800e92111a9da7c6f5e83f8a546d260c8d93b308\n(cherry picked from commit ee41b3a36dcd87f79f3c2a21383a97743530099d)\n"
    },
    {
      "commit": "e0c2f7e17d2dfb426d1f0f09a5f61c4284fd150e",
      "tree": "8cd77449e221f9fcd633cabf140098ae7dae7e29",
      "parents": [
        "e07602d79ba6b7438117206f9b55a59d0fe17c29",
        "e4e989ccba19f9bfad44d070873d67e7a3fd29c4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 06 16:49:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 06 16:49:55 2018 +0000"
      },
      "message": "Merge \"RRO: Added partition policies for overlays\""
    },
    {
      "commit": "e4e989ccba19f9bfad44d070873d67e7a3fd29c4",
      "tree": "35b0df5967d8878063bb98bbc0c8c1e5fd2508b7",
      "parents": [
        "cfc152af9cbfc47ed4c8ab8a8b6e9ee4214206ea"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Oct 29 02:21:50 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Nov 06 00:10:26 2018 +0000"
      },
      "message": "RRO: Added partition policies for overlays\n\n\u003coverlayable\u003e tags can now have policy elements that indicate which\npartition the overlay apk must reside on in order to be allowed to\noverlay a resource. This change only adds parsing of \u003cpolicy\u003e and\nencoding of policy in the proto ResourceTable. A later change will add\nthe encoding of policy and overlayable in the binary APK.\n\n\u003coverlayable\u003e\n  \u003cpolicy type\u003d\"system|vendor|product|product_services|public\" \u003e\n    \u003citem type\u003d\"string\" name\u003d\"oof\" /\u003e\n  \u003c/policy\u003e\n\u003c/overlayable\u003e\n\nBug: 110869880\nTest: make aapt2_tests\nChange-Id: I8d4ed7b0e01f981149c6e3190af1681073b79b03\n"
    },
    {
      "commit": "51025d638d9a949b2863ad3a56d8b783ec9fc6c4",
      "tree": "00583af19fe8c69a8c2501aeb3675070383d2e94",
      "parents": [
        "c18cd05c6f69b028720a5bc66e2b2a361062805a",
        "469705cca4939f024808eeb4316cdb134e6d6c2c"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 25 17:58:17 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 25 17:58:17 2018 -0700"
      },
      "message": "Merge \"Allow implicit-fallthrough warnings locally.\" am: 36afe11a64 am: 9c5738238d\nam: 469705cca4\n\nChange-Id: I4bc5f389495ed535762438632e65ccd6c66f3739\n"
    },
    {
      "commit": "6baf5e4e1c3aba355dfffc48247231e032679ab8",
      "tree": "8909143628ca94664d39da8ff5dd70c23407277c",
      "parents": [
        "f456997a8ab47acbdba5c36a5cbee2798a5650ff",
        "18f16d6241c6398a034237c2a5343f94d1938f6a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 19:39:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 25 19:39:11 2018 +0000"
      },
      "message": "Merge \"Don\u0027t try to compress opus resources\""
    },
    {
      "commit": "18f16d6241c6398a034237c2a5343f94d1938f6a",
      "tree": "f97f35b6880f0b25b9aa203b13001ec580e52292",
      "parents": [
        "c2896a27fadc416458e883282bb0d8a0f81ee13a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 08:18:22 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 08:31:19 2018 -0700"
      },
      "message": "Don\u0027t try to compress opus resources\n\nTest: build\n\nChange-Id: Ibf398b3afca02d4111d88b126c8d107ac44068a6\n"
    },
    {
      "commit": "bbdd67d19f4912fbec00220b22e44c68eff5ab3f",
      "tree": "a837c507d7b7006e54330db020729d73d8dc1e98",
      "parents": [
        "7a1b30e9db4c73e9109e99fc8cdaeafbb8218709"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Oct 24 12:15:56 2018 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Oct 24 13:12:13 2018 -0700"
      },
      "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\nFix: 118386797\nTest: unit test \u0026 manual test\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": "061b522b91dc9d5955af4cd6033f75d899998ee9",
      "tree": "1c711c964cb8b5af4eb71b94be7d38ae75e6bb88",
      "parents": [
        "840f2758f8c6cc2f476f77eab00ccc11e9e95b99",
        "92b1736e661102bf539f599263889035d6b6e52e"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Oct 18 08:23:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 18 08:23:01 2018 -0700"
      },
      "message": "Merge \"Merge hidden API metadata into a single CSV file.\" am: 5037a7eb93 am: 3ffa1cad11\nam: 92b1736e66\n\nChange-Id: I55b39b42411e93adf2716bf59ef15eb5981f526a\n"
    },
    {
      "commit": "67f94b40024e07e64fd2875b7382b762805bebae",
      "tree": "02be1e3f80ad96ee835ce682b4960698196f5637",
      "parents": [
        "7aa64840b8a7098b4feb2587aba32dfe1504f139",
        "ec74f2fbd56a5021ab7c74bd7e65c165e287ad7f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 17 23:53:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 17 23:53:04 2018 +0000"
      },
      "message": "Merge \"Fix incorrect proto apk loading\""
    },
    {
      "commit": "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": "ec74f2fbd56a5021ab7c74bd7e65c165e287ad7f",
      "tree": "02a209b2729d37ee6d2453f543b9d84ad80a7b11",
      "parents": [
        "bbcfda0d35e83b95b2acc742c36ced3f92700ce9"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 17 09:30:01 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 17 09:30:01 2018 -0700"
      },
      "message": "Fix incorrect proto apk loading\n\nIf a proto apk is missing resources.pb, AAPT2 would fail to detrmine the\napk format because of an incorrect check. This fixes that check and\nremoves the checking fuction from the LoadedApk header.\n\nBug: 117820549\nTest: removed resources.pb from proto apks and confirmed that loading in\napks still works\n\nChange-Id: If3628a821e7b59c7dfcbefb502b6080be083cec1\n"
    },
    {
      "commit": "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": "9ad6ab595d02c2d8a2b5a97266acc4d261b8928d",
      "tree": "82153599744d02d6c6812b01b522d6da2db0b9c3",
      "parents": [
        "cd75edb817892de713f433b35527a5e2d193bb49",
        "fa5b2040297119265bbb34cc25c79098c431ec08"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 16 18:01:26 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 18:01:26 2018 -0700"
      },
      "message": "Merge \"Stop using DIST_DIR directly, use dist-for-goals instead\" am: a8f2601d28 am: 9b767e275e\nam: fa5b204029\n\nChange-Id: Ic052f5d1de317c2f271f5a2df83c733c79978679\n"
    },
    {
      "commit": "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": "043424db98c24b08ea949ce97ae79c33f88d067d",
      "tree": "0cc88a35e85f725203864c7dfec0b0608b9c9795",
      "parents": [
        "ef3026c190d9f4d4799dcf29b5aa9e73794f2946",
        "1a73c07ab40ab8dedd670bb2a8bc82cf07b09f61"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 16 10:41:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 10:41:54 2018 -0700"
      },
      "message": "Merge \"Fix issue with sort_api.sh\" am: f943c52105 am: 66e9d98618\nam: 1a73c07ab4\n\nChange-Id: I214977be62710e359839acd25fda1b22d7f043f8\n"
    },
    {
      "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": "0085baa1591e5e9213c376032723e8d8fc419b31",
      "tree": "ba0f76ff749748068fa7719e2a08aeb635ee6ece",
      "parents": [
        "80d3529acd6e3bd00b0be943b8f9ce5c25121958",
        "94db53428792ff68bd5a549e2b6a87103e33ac21"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Oct 16 06:10:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 06:10:51 2018 -0700"
      },
      "message": "Merge \"Add new \"max-sdk-p blacklist\".\" am: adbc7dfc28 am: f0a45a4114\nam: 94db534287\n\nChange-Id: Ie0e9cfd4d0f0eff82736741a768f607872589244\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": "b6b77c6fb46f5f4b53880f1419339eae5df49484",
      "tree": "b32d27f50743ae699db159fbfb47303c7cc8c949",
      "parents": [
        "7ccf46bed5dbd4ab585f61b98bf69ace00bd4c18"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Fri Oct 12 19:33:24 2018 -0700"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Sat Oct 13 10:40:09 2018 -0700"
      },
      "message": "Make state atom field annotation name consistent between google3 and android.\n\nTest: statsd test\nFix: b/117681672\n\nChange-Id: I3b0145516c594cc23565df67acc1cfa9f79d306e\n"
    },
    {
      "commit": "d4bf08501a4383f80131c87ea54e160186379def",
      "tree": "b7e2a7b9e02a8569108871a8f98f96d5ea1d0d17",
      "parents": [
        "c5f8fa9d8142170679fc9584a23916cd8681de83",
        "05aebf46b45b2abb48e883bc495907be223a5e0c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Oct 12 16:42:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 12 16:42:34 2018 +0000"
      },
      "message": "Merge \"Preserve compression of xml files in convert\""
    },
    {
      "commit": "05aebf46b45b2abb48e883bc495907be223a5e0c",
      "tree": "6aa8cc9892f07832b763cc50d913b0e09eda6f26",
      "parents": [
        "167aa777b038a9833127a975c747d90f35aa5069"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 15:08:41 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 11 17:14:29 2018 -0700"
      },
      "message": "Preserve compression of xml files in convert\n\nRespect the compression the original compression of xml files when using\naapt2 convert. Uncompressed files should remain uncompressed, and\ncompressed files should remain compressed.\n\nBug: 117289326\nTest: manual\nChange-Id: I81b431b4a4abd81f5694ea7dc3b3c6ec8c13ca32\n"
    },
    {
      "commit": "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": "13e6a1dc3e25040a16d0fef47e909f08179bb9ce",
      "tree": "6167744ee5676ba69d8501d3eda52b192399c46a",
      "parents": [
        "c997fc62e06f1fb2eadbceb6e7dfaa71fb2cf080"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Tue Sep 25 16:11:40 2018 -0700"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Tue Oct 09 13:55:31 2018 -0700"
      },
      "message": "Add style parents dump command.\n\nThis command prints out the parent graph of a given style\n\nTest: out/host/linux-x86/bin/aapt2 dump styleparents \\\n    --style Widget.MaterialComponents.TextInputLayout.FilledBox \\\n    out/target/product/generic_x86/system/priv-app/SystemUIGoogle/SystemUIGoogle.apk\nChange-Id: Ib2ace7e90bee6f1c4b6a184edc591b1a3993db75\n"
    },
    {
      "commit": "1e7b9347d7cbaf94760ebd9b5af1e5df2e5173ea",
      "tree": "8d1e093d75034b31e7b072f7f6ad1246b1e0c5ae",
      "parents": [
        "e0017d64ee950fccc6c34da4f266f099671e2768",
        "214846df59118ebe6b75706ea3505a8bb3b2f93c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 19:15:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 19:15:47 2018 +0000"
      },
      "message": "Merge \"Created resuable DumpApkCommand and added \"badger\"\""
    },
    {
      "commit": "8cf68fcac11fb0e3af1a924349108e4b28f4798b",
      "tree": "e9e4e66735e01d9abd5ac51734000377a4c9c44c",
      "parents": [
        "96af49eb0179d672eae72aa517946475697ee463",
        "ca7411c0e9b2d4b165b8dfe0b0f5d08e936986a7"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 10:51:55 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 09 10:51:55 2018 -0700"
      },
      "message": "Merge \"Add rtmitchell to AAPT2 OWNERS\" am: 0d3f4e61c9 am: f1aadaf8c5\nam: ca7411c0e9\n\nChange-Id: Ie50f8397291a83194c556e7647fe071788ebcdd9\n"
    },
    {
      "commit": "214846df59118ebe6b75706ea3505a8bb3b2f93c",
      "tree": "993d34675e462c8e535b8b8ee543c7b22328e4fe",
      "parents": [
        "99ecc121bca092afb2ace650f879f437c9d3ff9b"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 19 16:57:01 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 09 10:51:25 2018 -0700"
      },
      "message": "Created resuable DumpApkCommand and added \"badger\"\n\nThis change refactors the dump commands to inherit from a base\nDumpApkCommand and adds a command that prints out an ASCII\nimage of a badger if the user wrote \"badger\" instead of\n\"badging\". The command is hidden from the help menu.\n\nBug: 73535002\nTest: manual\nChange-Id: I9bdd8a7bbf6a4282c4933e5c478f6d1d8e32d99e\n"
    },
    {
      "commit": "96af49eb0179d672eae72aa517946475697ee463",
      "tree": "f2ba664fd73602db5fd526b8d6d3ca6f6be7abde",
      "parents": [
        "ee3fa7ed269406db5bc509b3b6ee0ad4972bafd9",
        "d8d290107a18a00631e2ef254ea1b6521202b871"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 09 17:32:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 17:32:29 2018 +0000"
      },
      "message": "Merge \"AAPT2: optionally keep resources without default value\""
    },
    {
      "commit": "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": "d8d290107a18a00631e2ef254ea1b6521202b871",
      "tree": "aac2780bfc007881466bdda6575ee1470f8d5712",
      "parents": [
        "ec5c04f4ab781938123e5f68569048cf65fddc14"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Mon Jun 11 14:13:37 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Oct 09 07:01:17 2018 -0700"
      },
      "message": "AAPT2: optionally keep resources without default value\n\nTeach \"aapt2 link\" about a new flag --no-resource-removal. When given,\naapt2 will not filter out resources that lack default values. This is\nuseful mostly when building overlay packages that define resources for\nnon-default configurations, such as only for values-sv.\n\nTest: manual: build package with resource only in values-vs, verify apk with aapt2 dump\nChange-Id: Idc513bcb3f43bbff7f073163562c3dfccdb9bc9b\n"
    },
    {
      "commit": "5c541f6e36c049d2a00628083ca0534bf39db971",
      "tree": "b96859ed3ac2264eaae528d3eaf11f7a0901aeb0",
      "parents": [
        "61b9b6c9eb7acb7b5f260f43b04d31d17bb59557"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Wed Jun 20 08:46:41 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Oct 08 09:56:09 2018 -0700"
      },
      "message": "libandroidfw: move ConfigDescription from aapt2 to libandroidfw\n\nThis is to allow idmap2 to access ConfigDescription.\n\nTest: libandroidfw_tests\nTest: aapt2_tests\nChange-Id: I54210bbbd8dad5903cb7100807df977efa394ad5\nMerged-In: I54210bbbd8dad5903cb7100807df977efa394ad5\n"
    },
    {
      "commit": "6d659e8cebf8037d8ba98ffc6e30fe18e83b0575",
      "tree": "44bb82e5930c571c2175f9235c36babe40b72d57",
      "parents": [
        "a60c94aab934ae67aee981b771c9da2a46baef9f",
        "24c9aa65411207067f509c5e88ad31b303d26fcd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 08 15:41:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 08 15:41:13 2018 +0000"
      },
      "message": "Merge \"libandroidfw: move ConfigDescription from aapt2 to libandroidfw\""
    },
    {
      "commit": "24c9aa65411207067f509c5e88ad31b303d26fcd",
      "tree": "9a7405282c003f0c360c95bd051681733d765919",
      "parents": [
        "ec5c04f4ab781938123e5f68569048cf65fddc14"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Wed Jun 20 08:46:41 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Oct 08 06:50:22 2018 -0700"
      },
      "message": "libandroidfw: move ConfigDescription from aapt2 to libandroidfw\n\nThis is to allow idmap2 to access ConfigDescription.\n\nTest: libandroidfw_tests\nTest: aapt2_tests\nChange-Id: I54210bbbd8dad5903cb7100807df977efa394ad5\n"
    },
    {
      "commit": "b61b0e57313268132af94e9d8a5e3ee59d430ce3",
      "tree": "133d37b086bcbbe9c6786a7941d9a1a2c29372c8",
      "parents": [
        "683af643fab49515608c62673ea24c12ec0ba278",
        "813d7503c828f9d5f88e04fe7f47932ad4abc506"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 05 00:45:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 05 00:45:06 2018 +0000"
      },
      "message": "Merge \"Implement issue #112113117: Ad library dependency declaration in manifest\""
    },
    {
      "commit": "813d7503c828f9d5f88e04fe7f47932ad4abc506",
      "tree": "857d462cea8445911e9ce18ebde010ae7bdf92ba",
      "parents": [
        "1d3ebe257c0475c88ff1702e5680cfd7b847ecfd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 02 16:59:46 2018 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 04 15:27:15 2018 -0700"
      },
      "message": "Implement issue #112113117: Ad library dependency declaration in manifest\n\nYou can now do a new form of \u003cuses-package\u003e that allows you to\nspecify a type of package along with required cert digests (like\nuses-static-library).\n\nThis defines the new attribute needed for this and XML tag, and\nupdates aapt2 to actually allow uses-library in the manifest and\noutput this data with \"dump badging\".\n\nWhile doing this I realized that \"dump badging\" was not printing\nthe data for uses-static-library or uses-library, so do those too.\n\nBug: 112113117\nTest: manual\nChange-Id: I5d02010aad9cb44675504a317df9cced421be8a1\n"
    },
    {
      "commit": "2250c93f14d576bbba657e4f05765bd8a21a6b20",
      "tree": "848d34e6d0300e10fdcaf1a0edec2df7c85dc4c7",
      "parents": [
        "c79b4690dcdb52a4409b6f0b6dbc4666836ff434"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:07:40 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 13:15:23 2018 -0700"
      },
      "message": "Fix badging meta-data value\n\nInteger meta data values were not printing correctly and instead were\nprinting as empty strings. Attempt to retrieve the integer value of the\nattribute if the value is not a string.\n\nBug: 117260085\nTest: manual\nChange-Id: I1cef672e03d07728819ca584b484dc372984c823\n"
    },
    {
      "commit": "6d0dbbbab3616f4b61a0e243cd150211406b9b5d",
      "tree": "d58d96e902ce93c95940042b8ce0bd407baa1108",
      "parents": [
        "4ddd969fb9d2dc75088b5acca13c3921a1e94bf6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:54:29 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Oct 04 11:54:29 2018 -0700"
      },
      "message": "Add rtmitchell to AAPT2 OWNERS\n\nPer talks with Svet, it is time I became a co-owner of AAPT2 with\ntoddke. I look forward to continuing to support and improve AAPT2.\n\nChange-Id: I3a0f1c8a708abc41045b95dc958dbeb96a5160ff\n"
    },
    {
      "commit": "5c5f0cdd0404a856638df69d6ef115192e57692c",
      "tree": "a0224dd31400a94f37b2de01be71cf82d800dd6d",
      "parents": [
        "8b7e1a88038ff5894bd523cb4caadfd12f58fe58",
        "0ce89734d111ce3a9529254ccc9b8ef33fdeba73"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 20:56:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 03 20:56:06 2018 +0000"
      },
      "message": "Merge \"Fix failing Windows tests\""
    },
    {
      "commit": "8b7e1a88038ff5894bd523cb4caadfd12f58fe58",
      "tree": "43f794a5296b376f534a1636a2bd4d3d15f71ab7",
      "parents": [
        "07547c6c5804d644db35f91bb3eb974e9bdc6c04",
        "7e5236dc563595f1dca7ed3e6cb87b6ce995c402"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 20:54:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 03 20:54:14 2018 +0000"
      },
      "message": "Merge \"Restore Proguard behavior and add minimal flag\""
    },
    {
      "commit": "0ce89734d111ce3a9529254ccc9b8ef33fdeba73",
      "tree": "94536a693f37675e6f662746c951c9227c4069c8",
      "parents": [
        "88f0f6c9b1d2dfecd4f0bdb663f01a098a59fa83"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 09:20:57 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Oct 03 11:35:37 2018 -0700"
      },
      "message": "Fix failing Windows tests\n\nSome tests were not written to run on Windows correctly. Compile also\nhas a bug that caused using the --zip flag to fail on Windows.\niswspace does count the non breaking space as Whiespace on Windows but\nnot on Unix based systems\n\nBug: 117156986\nChange-Id: I999375162bdfdf86fb25992ee88e2962ab90b577\nTest: aapt2_tests and wine aapt2_tests.exe\n"
    },
    {
      "commit": "56e559862dbddeaf90e67f5bcc4520997809cbd7",
      "tree": "c22117cb734d14929a125d1f347121b18bc2482d",
      "parents": [
        "f768ba4f7a471260f576b061406b834ff8b410b5",
        "f6fe9b6dabced73d5bc61a86dbf60cb060bc2d04"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Oct 02 17:23:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 02 17:23:32 2018 +0000"
      },
      "message": "Merge \"Use empty data if file in zip has length 0\""
    },
    {
      "commit": "3b761c6b3b133c20fd1aa6235dd029435ec2f9cc",
      "tree": "72ffd699167b828968852f172273196ba12eef8f",
      "parents": [
        "77a0e97fb44a10333b8a036fa6a69024e870f186",
        "07a7250da3a0c08148bbf7efb915eac27e473305"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 18:59:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 18:59:22 2018 -0700"
      },
      "message": "Merge \"Add noexcept to move constructors and assignment operators.\" am: 9166e89374 am: 15dcc77fee\nam: 07a7250da3\n\nChange-Id: I74a6b6e53ba4f22b79b855e146aa260b2eaddb27\n"
    },
    {
      "commit": "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": "c691c0528e708a47641b98f9cd1227bb92873a69",
      "tree": "1548695348ef61ab4338469c40e673f40ab4db6c",
      "parents": [
        "7891b6a95570615d09a2304e723066c62b920398",
        "7472303ff4b129ceafc3590f766659f2ec56d855"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Oct 01 18:00:49 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 18:00:49 2018 -0700"
      },
      "message": "Merge \"Do not use StringPiece in ExtractJavaIdentifier\" am: 20ecc6397b am: 206ccf1f61\nam: 7472303ff4\n\nChange-Id: Idd910ad9fb743093f8e43ddcdf5770722b4393e6\n"
    },
    {
      "commit": "9166e8937443f891cb20d8821d17ce5af33793ea",
      "tree": "d6c7492f0f0ac55de5241ab720e276cbd6120187",
      "parents": [
        "956791cee8dd0a7a0ab91f42abfbac404a50ec97",
        "fc81626ba6851f52c72c9858edf3f6818d66cf82"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 02 00:37:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 02 00:37:46 2018 +0000"
      },
      "message": "Merge \"Add noexcept to move constructors and assignment operators.\""
    },
    {
      "commit": "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": "3328d1ce55322f344505173860ebf0525784fb62",
      "tree": "74c3c3b4044ee71a2fb863eb1d9e609aebcc9e2c",
      "parents": [
        "914857349e66eb3ce4361c412797319ea0a24386"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Sep 26 22:11:31 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Sep 28 15:59:15 2018 -0700"
      },
      "message": "Introduce OEM customization XML parser\n\nAs the initial version of the OEM customization XML, support\nnew-named-family customization. This allows OEMs to add new named\nfamily.\n\nBug: 111544833\nTest: atest FrameworksCoreTests:android.graphics\nChange-Id: If58711fc038898175fcad0ae095865312bd738e2\n"
    },
    {
      "commit": "58131839f0d4b1202a71de9123fa783c9a529d5c",
      "tree": "d2ad36ee71483a867062be72a27f515cebf6a110",
      "parents": [
        "9a56463f0e425b7d5b646ecd7d53bcb20dab5fc5",
        "daac37f229f84ed844adcf1ffd3432b235524d9b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Sep 28 16:50:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 16:50:29 2018 +0000"
      },
      "message": "Merge \"Moar lint rulez!\""
    },
    {
      "commit": "9a56463f0e425b7d5b646ecd7d53bcb20dab5fc5",
      "tree": "39b6744387c761e0648d53de24a233172b1c1302",
      "parents": [
        "6bf1126cc48a2ecd3fcec895cb6e1e11d5377bb5",
        "4078dd4e153c6252aba614422f5d110a1a1e9aa2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 28 16:46:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 16:46:23 2018 +0000"
      },
      "message": "Merge \"Support int32_t (Java Integer) in KeyValuePair atom\""
    },
    {
      "commit": "4078dd4e153c6252aba614422f5d110a1a1e9aa2",
      "tree": "31ed9c5b98c9b4232c7040d74d7cc370a71c8497",
      "parents": [
        "a7dc405fcbeb9c3d1e30e94ad6a03eb300a9085f"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Sep 27 17:41:08 2018 -0700"
      },
      "committer": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Sep 27 17:51:40 2018 -0700"
      },
      "message": "Support int32_t (Java Integer) in KeyValuePair atom\n\nBug: 116826451\nTest: statsd_test + manual verification through logcat\nChange-Id: I0157c22033907fea46e26ee4262c723fa8c0b518\n"
    },
    {
      "commit": "daac37f229f84ed844adcf1ffd3432b235524d9b",
      "tree": "0a501e64545d41d787818cf20f222d8cd6de90ef",
      "parents": [
        "1780672b198a24839bf26882f8b2eb3128fd6542"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 27 16:29:25 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 27 16:29:52 2018 -0600"
      },
      "message": "Moar lint rulez!\n\nBug: 37534642, 116675691, 116798271, 72059458, 111790177\nTest: manual\nChange-Id: Ib079ae580a827f225be08f90dbdddeee7d341c48\n"
    },
    {
      "commit": "63c6be63a4683b094659639bb48309821ce47a46",
      "tree": "1ad6eece833d4bb88b8e02b107514d997f6dcce0",
      "parents": [
        "d43d0b0de11f876eb00c410ecd8abf2105091db4",
        "5d63c53071be5152b1e4771a7db17752b20f2c6f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Sep 26 15:46:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 26 15:46:37 2018 -0700"
      },
      "message": "Merge \"Change FileStream test buffer from char* void*\" am: b839befd7b am: 47be78e523\nam: 5d63c53071\n\nChange-Id: I79fed846a0d7bd20be13a5d3845bfe1a171f5b62\n"
    },
    {
      "commit": "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": "7e5236dc563595f1dca7ed3e6cb87b6ce995c402",
      "tree": "a4a5a3779d4607a46d861ac290afa0fecdca40e9",
      "parents": [
        "d5180a5ec2ca69d48c468be8b2bb35ded12c50f2"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Sep 25 15:20:59 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Sep 25 15:20:59 2018 -0700"
      },
      "message": "Restore Proguard behavior and add minimal flag\n\nWe previously changed AAPT2 to correctly only generate keep rules for\nthe constructors required to inflate the different views. This cause\nprojects that did not have keep rules for the other constructors that\nwere accessed through reflection to have runtime crashes. This change\nadds a flag to the link stage (--proguard-minimal-keep-rules) that\nallows AAPT2 to only keep the constructors required for layout\ninflation. If the flag is not present, then AAPT2 will generate less\nspecific keep rules than keep all constructors.\n\nBug: 116201243\nTest: aapt2_tests\nChange-Id: I8bb5cdf8446518ab153ea988e1243ca9494258c7\n"
    },
    {
      "commit": "9ba5cb4796a66b387af1f9350134f742f490aa7f",
      "tree": "9526df3430e982770a42719f2dc6cc198353950b",
      "parents": [
        "4a2dd10d834529311bf0daa4d5fa7c81f903bf61"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Sep 24 15:20:15 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Sep 25 13:21:35 2018 -0700"
      },
      "message": "Do not use StringPiece in ExtractJavaIdentifier\n\nBug: http://b/91353691\n\nAfter assigning the result of TransformToFieldName to \u0027result\u0027, the\nunderlying storage is destroyed after the \u0027if\u0027 statement of the function\ncall.  \u0027result\u0027 ends up with garbage if the identifier has a \u0027-\u0027.\n\nManifestClassGeneratorTest.NormalizePermissionNames is broken for this\nreason in 32-bit Windows when using libc++ and 32-bit Linux.  ASAN also\nreports this failure for both 32-bit and 64-bit linux.\n\nTest: Run test on the cases mentioned above and ensure all of them pass.\nChange-Id: I69163c423c1171b7ac7838f2abe06bdf8058df4c\n"
    },
    {
      "commit": "f6fe9b6dabced73d5bc61a86dbf60cb060bc2d04",
      "tree": "453eb802aa09764f91708c0b4d72edc37b61c1f7",
      "parents": [
        "d5180a5ec2ca69d48c468be8b2bb35ded12c50f2"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Sep 24 12:13:31 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Sep 24 13:41:35 2018 -0700"
      },
      "message": "Use empty data if file in zip has length 0\n\nMmap fails when the length of a file in a zip is 0, so use an\naapt::io::EmptyData when the file length is 0.\n\nBug: 113094267\nTest: manual\nChange-Id: I2c1071293bf9b0fe33e8c279c8d78ff906fba5d6\n"
    },
    {
      "commit": "d4cf67e2966fd5c577211f37e10a3f69eaf530cf",
      "tree": "66f72f453eb00aa8108cabd37a5a8a053c38f389",
      "parents": [
        "cc704723bdd4e26d476898bfa3f09b1f3ee0bc0f",
        "ad8cf079f55503f5c688249226ae03af28c9a8ab"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 24 12:12:24 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 24 12:12:24 2018 -0700"
      },
      "message": "Merge \"Fix clang-tidy performance warnings in frameworks/base.\" am: 4a2dd10d83 am: 18242e5c08\nam: ad8cf079f5\n\nChange-Id: Ifc615a1e50872a24e59d2d10122c6f90589099f5\n"
    }
  ],
  "next": "18242e5c089fbdbe396d902ccac4479fcbbaab83"
}
