)]}'
{
  "log": [
    {
      "commit": "c7d76117196f27bfa5f40218910f29a27d8e8f8a",
      "tree": "7c71d2d3abf4878a1c143d4cca32dc020b53b158",
      "parents": [
        "507537ee165558a519d9be88837fd29642b93af1",
        "60413d0697a0bdaf6ac597f4388ff954d3dcfcf0"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Jul 16 14:31:10 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 16 14:31:10 2018 -0700"
      },
      "message": "Merge \"Loosen resource file verification\" into pi-dev am: cf0b127110\nam: 60413d0697\n\nChange-Id: I95400ba3a885605bc52df10968ef2b4adf7f90a6\n"
    },
    {
      "commit": "60413d0697a0bdaf6ac597f4388ff954d3dcfcf0",
      "tree": "568a12c1191c8a47f1633fe487c7fc6c953e978c",
      "parents": [
        "deb8dbad23eab0d2ac2e0fbb89b735a5a0bdc540",
        "cf0b12711057a2a23dc08f1ac6acfe67892b945d"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Jul 16 14:15:09 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 16 14:15:09 2018 -0700"
      },
      "message": "Merge \"Loosen resource file verification\" into pi-dev\nam: cf0b127110\n\nChange-Id: I0b4012085579aa172a1a3f5a83325f0827523af5\n"
    },
    {
      "commit": "28e663cbed28fb6c8c8dec0849e0277daf67651b",
      "tree": "7d0ddd6373a15fbbf69f878c61eafc571c2eccea",
      "parents": [
        "4ab42d5b8aa2cb2e36f46b34962dd23832f45280"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Jul 12 13:15:54 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Jul 16 20:52:55 2018 +0000"
      },
      "message": "Loosen resource file verification\n\nBug: 77808145\nTest: Tried to install corrupt APK prior to the change, install failed\nTest: Tried to install corrupt APK after the change, install succeeded\nTest: atest CtsAppSecurityHostTestCases:CorruptApkTests\nChange-Id: I19a69e52a17c1080beaf2cc575c32f564b1033a3\n"
    },
    {
      "commit": "426f8d2db859072677d5a9ce6e029bc0f31fb652",
      "tree": "711a048c335cc033ff86803bc6ba039842d01ca5",
      "parents": [
        "5aef9e8d8a81e25059d961431168b12d803cbdee",
        "6899839e0712880f7c539b1035006dd2855a63e6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jun 06 16:43:03 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 06 16:43:03 2018 -0700"
      },
      "message": "Merge \"Fix DynamicRefTable::load security bug\" into oc-mr1-dev am: 2b6805fedc am: 5ae85666ac\nam: 6899839e07\n\nChange-Id: I3920ae30c0fdd5ef5b1176476d769abb269d5844\n"
    },
    {
      "commit": "6899839e0712880f7c539b1035006dd2855a63e6",
      "tree": "76eebdec36c09092682165c66ec95c1a1cc5fd89",
      "parents": [
        "c4aa718dbfe3931da691196e9de023366dab2515",
        "5ae85666ac3272ea34e943ec8e2a8e9e2a86306a"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jun 06 16:09:35 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 06 16:09:35 2018 -0700"
      },
      "message": "Merge \"Fix DynamicRefTable::load security bug\" into oc-mr1-dev am: 2b6805fedc\nam: 5ae85666ac\n\nChange-Id: I64521a290482adb5ade95b641ce9c0c27031a814\n"
    },
    {
      "commit": "5ae85666ac3272ea34e943ec8e2a8e9e2a86306a",
      "tree": "bed7f75a26c8032961f75c516db5c98764d62eb4",
      "parents": [
        "c69da1474aef2ef9fd78b3908eca99b4c89427ed",
        "2b6805fedc69735ee79dcec7ac5d4a5963f202d2"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jun 06 15:50:57 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 06 15:50:57 2018 -0700"
      },
      "message": "Merge \"Fix DynamicRefTable::load security bug\" into oc-mr1-dev\nam: 2b6805fedc\n\nChange-Id: I5ef0a789b16dc8aa0936d8fcca3917ce2f884d74\n"
    },
    {
      "commit": "18a6ada4aa136da4f50f03fff91d61d448ced195",
      "tree": "6e92164af48a4e38ea2a8fbb6fee1a3ebb7f914d",
      "parents": [
        "2d6209f71de8f88526f97526d40304eef626219a"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed May 30 12:17:01 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue Jun 05 22:05:11 2018 +0000"
      },
      "message": "Fix DynamicRefTable::load security bug\n\nDynamicRefTables parsed from apks are missing bounds checks that prevent\nbuffer overflows. This changes verifies the bounds of the header before\nattempting to preform operations on the chunk.\n\nBug: 79488511\nTest: run cts -m CtsAppSecurityHostTestCases \\\n        -t android.appsecurity.cts.CorruptApkTests\n\nChange-Id: I02c8ad957da244fce777ac68a482e4e8fa70f846\nMerged-In: I02c8ad957da244fce777ac68a482e4e8fa70f846\n"
    },
    {
      "commit": "65bed52d7d630f66b32eadccf210fbbe59cb9731",
      "tree": "f3b2c499b008815f9ce09450b046c10d9f362edd",
      "parents": [
        "1fffd4bd12a636a2af6f140efe3c1113e8aa04aa",
        "9964297b44ff34602bc02b78b477b167cb55b50c"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 22 14:27:58 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 22 14:27:58 2018 -0700"
      },
      "message": "Merge \"ResStringPool: Prevenet boot loop from se fix\" into pi-dev am: 8dd9ef190b\nam: 9964297b44\n\nChange-Id: Ib041932219d47504743fe82dc4a7f77ac1d9f630\n"
    },
    {
      "commit": "9964297b44ff34602bc02b78b477b167cb55b50c",
      "tree": "06054c976dda17088b8107b8ba6fde83f992f07f",
      "parents": [
        "fab272e03707ac74f986580c706e3dd5902508b4",
        "8dd9ef190bf580fae6aa8e850f60985458b70c21"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 22 14:16:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 22 14:16:13 2018 -0700"
      },
      "message": "Merge \"ResStringPool: Prevenet boot loop from se fix\" into pi-dev\nam: 8dd9ef190b\n\nChange-Id: I0000c4a3f06e002804aa7172505e07bb57c550c6\n"
    },
    {
      "commit": "f05f47b2c1838529e682ad8f931d3da72244b1a1",
      "tree": "9f3feff045c55d3ddc20fee09f8ebe0abf750c4c",
      "parents": [
        "76cb7fe2f6eec83f8cc1f7f19ed23ae76254bdb7"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon May 21 13:59:23 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon May 21 13:59:23 2018 -0700"
      },
      "message": "ResStringPool: Prevenet boot loop from se fix\n\nChanges the logs adding in a previous security fix to warnings so\ndevices with malformed APKs currently on them will not undergo DOS when\nthey are upgraded to P.\n\nBug: 79724567\nTest: run cts -m CtsAppSecurityHostTestCases \\\n          -t android.appsecurity.cts.CorruptApkTests\n\nChange-Id: Ied54e4bb14abdaf79da562022c7ea6075187c1f8\n"
    },
    {
      "commit": "d692b8665ede79c42d89c6ab2d8ca7631b83071e",
      "tree": "c47786c713bc59f07802f1478b8ab87d0468ac6c",
      "parents": [
        "65db3f4cfbd432704bf048411974c26aeaf21e97",
        "b3da3a9673181771805a356613146d282e4730b8"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon May 21 12:06:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 21 12:06:13 2018 -0700"
      },
      "message": "Merge \"ResXMLTree: Clone DynamicRefTable on creation\" into pi-dev am: fd37ec90b8\nam: b3da3a9673\n\nChange-Id: Ic715bc6db56328c47da4a30a3e46ea92bbf10f92\n"
    },
    {
      "commit": "b3da3a9673181771805a356613146d282e4730b8",
      "tree": "f1de4494afb1e09981b3f786ab53fbcd3611bcb6",
      "parents": [
        "33ad5a99dde7418f45335c7e6c66f29de1cacf1a",
        "fd37ec90b888b6b83792dca18c5c831aabf63de1"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon May 21 11:53:56 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 21 11:53:56 2018 -0700"
      },
      "message": "Merge \"ResXMLTree: Clone DynamicRefTable on creation\" into pi-dev\nam: fd37ec90b8\n\nChange-Id: I3030d62104142b33dfb9844faa2fcb9840d8ee61\n"
    },
    {
      "commit": "f97d380ca791ed47fb55e9f6558c7313bb5e1ad7",
      "tree": "bded6dbfc162cd701f0bebd85a3a4cb073650576",
      "parents": [
        "acc0043abdef3aab17ea30af2e0a52ac060dedbb",
        "d00c851e55a487d03e11ce48e58cba5ff65fa59b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 15 15:52:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 15:52:51 2018 -0700"
      },
      "message": "Merge \"Convert to Soong\" am: acbd94d76f am: b1005a8a2a\nam: d00c851e55\n\nChange-Id: I889b5d31535d927b3aa9cf5ad6af955ca0678356\n"
    },
    {
      "commit": "a41e66af586a2fe60d450f4a9f4b8e8f06c5f6c4",
      "tree": "bc195700aa127b9c461d516d71e4db49c8c64d93",
      "parents": [
        "7692904a7b20e489b4de1511b7bc64357eb21282"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 15 15:08:58 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 15 15:08:58 2018 -0700"
      },
      "message": "ResXMLTree: Clone DynamicRefTable on creation\n\nXmlBlocks are cached in ResourcesImpl::loadXmlResourceParser(...) and\nwhen asset manager invalidates itself, the references to the dynamic\nreference tables point to garbage. Now, the reference table is cloned\nwhen the XmlBlock is created so invalidation will not affect the\nXmlTree.\n\nBug: 74240254\nTest: Tested GoogleMaps on 9.75.7 and saw crashes stop\nChange-Id: I932db7a85fddc640c4d6ec327f534b5a1ad6d0b1\n"
    },
    {
      "commit": "d00c851e55a487d03e11ce48e58cba5ff65fa59b",
      "tree": "a01d99cd4906dc6f1dac035ee2f73d7d35f6bf91",
      "parents": [
        "73e4d170c542d0d68ed857e433d04b77dd12aff3",
        "b1005a8a2affd887b1503945fa94a4bc0240a42b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 15 15:06:19 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 15:06:19 2018 -0700"
      },
      "message": "Merge \"Convert to Soong\" am: acbd94d76f\nam: b1005a8a2a\n\nChange-Id: If5cb26e0669f79240d8fee1d40aaa2162d8e611f\n"
    },
    {
      "commit": "4888b1f6f0f607de913fbd0dc5eaed6575464c06",
      "tree": "662ea285f420c21f406e8dc09b6fbf42b7b28880",
      "parents": [
        "5d58a302e3dc3e63c1d5cc87807f29863e89b2a9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 20:30:33 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 14 16:47:02 2018 -0700"
      },
      "message": "Convert to Soong\n\nSee build/soong/README.md for more information.\n\nTest: m libframeworks_coretests_jni\nTest: m FrameworkCoreTests_install\nTest: m libshim_jni\nTest: m CtsShimPrivUpgrade\nTest: m libfilterfw\nTest: m PMTest_Java_dual\nTest: m libdefcontainer_jni\nTest: m libperftestscore_jni\nTest: m libpmtest32 libpmtest64\nTest: m libprintspooler_jni\nTest: m libsmartcamera_jni\nTest: m idmap\nTest: m libdrmframework_jni\nTest: m libdvr_loader com.google.vr.platform com.google.vr.platform.xml\nTest: m libfilterpack_imageproc libfilterpack_base\nTest: m libwebviewchromium_loader\nTest: m shared_mem_test\nTest: m test-touchlag\nChange-Id: I868561dd237fa28647896d59049ab9260373ada1\n"
    },
    {
      "commit": "96930e4faad8ec28e2bbfeffeed8f02109fdcc47",
      "tree": "dfdbc4be1efb28c0b7e5b0cb004f8588d96191b9",
      "parents": [
        "dd209c8c1cc379d5617b2fa0e262ca123b7c446c",
        "d94160943d9dbae6946520fe58419c57ec0e6954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 08 11:01:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 08 11:01:37 2018 -0700"
      },
      "message": "Merge \"AAPT: Fixed split resource dumping\" into pi-dev am: fb07d82086\nam: d94160943d\n\nChange-Id: Idfef5422bbe3a3e46ceb1951e6393d2c80852930\n"
    },
    {
      "commit": "d94160943d9dbae6946520fe58419c57ec0e6954",
      "tree": "218f0e4680d4c88e1dc17561dcc6f8f0357929ba",
      "parents": [
        "f0013528bca27c6e62623d120fdcbde387ecefd5",
        "fb07d82086e7b4375467f492ba1a5f49dc68da8b"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Tue May 08 10:28:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 08 10:28:36 2018 -0700"
      },
      "message": "Merge \"AAPT: Fixed split resource dumping\" into pi-dev\nam: fb07d82086\n\nChange-Id: I66dedae28679c07e0bfa76cfafba97d563356fcb\n"
    },
    {
      "commit": "30487e0a7913aa6856d803a73811809d1a2edfdf",
      "tree": "33e7fd422381db028ad8da0b202754d33aa464cd",
      "parents": [
        "e4cf84138c465a6767286ae711d255819ae575d6"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri May 04 14:16:20 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon May 07 15:36:44 2018 -0700"
      },
      "message": "AAPT: Fixed split resource dumping\n\nAAPT would not print resource values for splits passed in with the -I\nflag. This fix prints out each split separately with the correct type\nspecs and values.\n\nBug: 79195967\nTest: aapt dump --values -I base-hdpi.apk resources base-master.apk\nChange-Id: I223186136e98180fec4a3d96f92f53407db59e2d\n"
    },
    {
      "commit": "b365836d8e8d6313b112308f01d741a2273933f2",
      "tree": "b891d66e54341e578524cb8596d80a3e3d28c4f6",
      "parents": [
        "13f9e36a6975ec93be8444d9fe668e0f76e08647",
        "0f185f8b19288217257b8982a0d8754d7469b56d"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed May 02 14:17:26 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 02 14:17:26 2018 -0700"
      },
      "message": "Merge \"frameworks/base: Update a few more references to android.jar.\" am: 85e68063a9 am: 52e98e1b7a\nam: 0f185f8b19\n\nChange-Id: I84aebb1697c0217ea9063a2c6b71e8d4a3c6b1a7\n"
    },
    {
      "commit": "0f185f8b19288217257b8982a0d8754d7469b56d",
      "tree": "13901048ecd58ba9cd1c5f1d034778c242039b1b",
      "parents": [
        "7d7a6e2d0e827415529e74ae08d73bca03e30b55",
        "52e98e1b7a4b5fc054c4b778ddc1bb9b7d3e75df"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed May 02 10:24:32 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 02 10:24:32 2018 -0700"
      },
      "message": "Merge \"frameworks/base: Update a few more references to android.jar.\" am: 85e68063a9\nam: 52e98e1b7a\n\nChange-Id: Iffb2389f8ef3dcca139a99a617c2079910f3c902\n"
    },
    {
      "commit": "0c703900408fb37b82ce53b61c9a973c4e8c868d",
      "tree": "5759f42f745c6f73504ad9a7c72eaf3ee02a3df0",
      "parents": [
        "59e139a767b5552a0c42ce236ff59f843900e842"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue May 01 18:32:50 2018 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue May 01 18:34:10 2018 +0100"
      },
      "message": "frameworks/base: Update a few more references to android.jar.\n\nThese files are moving. Update the paths so that the old files can be\ndeleted.\n\nBug: 77525052\nTest: ./build for one of these scripts\nChange-Id: Iacca1f1930d6a2614866f6503a2b4c1eba4d4018\n"
    },
    {
      "commit": "0a81745b487bb8301dc403e07a5d4fac323fffcb",
      "tree": "a865f3ec65fc56fc6167ad95ee2339becfd6f5e9",
      "parents": [
        "ffc63a35becb80220f966f1ebb249dfb3393392e",
        "c323122e9380865374b65e7431b3601b6268d97b"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 15:27:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 26 15:27:00 2018 -0700"
      },
      "message": "Merge \"Allow using reserved package IDs\" into pi-dev am: 13588dc9e4\nam: c323122e93\n\nChange-Id: I0addf146d9519a93bc2f8f73898a3454cb1cfb56\n"
    },
    {
      "commit": "325129964e5b0a9794cf5bb63a2d2d8774ea6a1b",
      "tree": "6916dd14dd937ad9650558c8afca42929acd26f2",
      "parents": [
        "a93ab56ed802f320cbf1ac9452cae75acbef47c3"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Apr 25 16:45:59 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 10:27:30 2018 -0700"
      },
      "message": "Allow using reserved package IDs\n\nPre-O, the platform treats negative resource IDs [those with\na package ID of 0x80 or higher] as invalid.  In order to work\naround this limitation, we allow the use of traditionally\nreserved resource IDs [those between 0x02 and 0x7E].\n\nBug: 78041707\nTest: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\nTest: ./out/host/linux-x86/nativetest/libandroidfw_tests/libandroidfw_tests\nTest: Manual. Create a feature split with a package ID of 0x7E and see it runs and can reference base resources.\n\nChange-Id: I3d9782cc05d3a55e1a2467bf39566788847e1160\n"
    },
    {
      "commit": "027453d6fb3581cee81f6b3c49c3ec653c0a82f7",
      "tree": "9f08a8f8e1daca18c2a31d80296f4ceadc560e63",
      "parents": [
        "ee3558584b66b001c8ca1258225bbb5dea33f7b7",
        "e9bbefa7dc44a666c0cba72fdbd7825cc1f89dac"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 19 15:20:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 19 15:20:51 2018 -0700"
      },
      "message": "Merge \"AAPT2: Support id reference chaining from AAPT\" into pi-dev am: 247ecfa498\nam: e9bbefa7dc\n\nChange-Id: Ic40b9e08352e561e21284d72592860b868f6edc1\n"
    },
    {
      "commit": "9efbbef2e060cd5e05f5b652ba5c7aaf687f64d6",
      "tree": "a906595eedebc28b14a4e86e135b225eb1d5d79b",
      "parents": [
        "34a0b18a5c730e4fa16e27c63ed0cd79a6df188e"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 11:29:09 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 18 11:46:53 2018 -0700"
      },
      "message": "AAPT2: Support id reference chaining from AAPT\n\nAAPT would allow for ids to be declared in the form:\n\n\u003citem name\u003d\"name\" type\u003d\"id\u003e@id/other\u003c/item\u003e\n\n@id/name should hold a reference to @id/other. When\ngetResources().getValue() is called on R.id.name with resolveRefs\nenabled, the resuling reference should be R.id.other.\n\nBug: 69445910\nTest: Created tests for correct parsing of id references and correct\nresolving of deep references\n\nChange-Id: Id1feb37b2565c213dc6a19b4c401906260d7fc14\n"
    },
    {
      "commit": "560468076675ae66512a6b661a33705ea53ee7ef",
      "tree": "92dd22baa673e332f2448faf429fedb85bc084fc",
      "parents": [
        "a06c7b7a5c3c5b05b45662b5a31251eda71e742f",
        "4f5e234020a70bd5fb210ee984efbc1d823b1fd8"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 14:08:07 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 14:08:07 2018 -0700"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72 am: 76d71fa910 am: 86cfcaa610\nam: 4f5e234020\n\nChange-Id: Iedf59329ed35149cec2143e8f179c7912534a41d\n"
    },
    {
      "commit": "4f5e234020a70bd5fb210ee984efbc1d823b1fd8",
      "tree": "df08c0a551e588ea9fffac98c3a52f162be6389f",
      "parents": [
        "531975da75192f0c2a1e1452999ecd5475888b3c",
        "86cfcaa610e2d3d199ddb16d5e9e98e5734dc9b0"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 13:57:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 13:57:36 2018 -0700"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72 am: 76d71fa910\nam: 86cfcaa610\n\nChange-Id: I6d37d24fd14271d24595c380ea553cb37948fa9e\n"
    },
    {
      "commit": "86cfcaa610e2d3d199ddb16d5e9e98e5734dc9b0",
      "tree": "cb1ba6d56f58e8ea1e0929781ed44eead9f605dc",
      "parents": [
        "e5776af814d73825cb7b93eb8a5a32f825ef5ff3",
        "76d71fa9102ab58e80559d2f4bed47e72c8d81e8"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:35:02 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:35:02 2018 +0000"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72 am: 76d71fa910\n\nChange-Id: I971b589190cae708a08dd568290807dff0f75349\n"
    },
    {
      "commit": "76d71fa9102ab58e80559d2f4bed47e72c8d81e8",
      "tree": "c23ce35bbcf78525ce1c577a6c6ed6d917d7c68e",
      "parents": [
        "bae1ea6478c3560d2f4cbc55234c103325c3f87f",
        "80e36faa72653ebd41b7963809f69c9a5f62d1f6"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:58 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:58 2018 +0000"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72\n\nChange-Id: Ibeb5d99f477048e8715a0d4b093052f3d88445e2\n"
    },
    {
      "commit": "80e36faa72653ebd41b7963809f69c9a5f62d1f6",
      "tree": "9ac72b213fed8f758cfb1f70d8bfdc450ef38306",
      "parents": [
        "1890afd456cd6fa182aeeb5efacf159c1115d5ef",
        "a509e771ba2480da5c79e12db1e86b6f2fb1d221"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:53 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:53 2018 +0000"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba\n\nChange-Id: I48bf9619571a30e6f5ea5bad503a3805e0821a75\n"
    },
    {
      "commit": "a509e771ba2480da5c79e12db1e86b6f2fb1d221",
      "tree": "b67d34b7ada809d92d8eebee18931d0e762b1b6e",
      "parents": [
        "5ddeef71166872ac55b32ed11bc6ed8e4222fbdc",
        "79d0fb25305134566b2561ef638ed550db9e0dfd"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:49 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:49 2018 +0000"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530\n\nChange-Id: I068f51adbb0248db232c50bd89fb25ef0d7273a9\n"
    },
    {
      "commit": "927b3357fab789f98c2227a63f28275d652ff980",
      "tree": "b9737a07314df923c22d970313174106adcf04d6",
      "parents": [
        "33c37cb37c885a18f073a3fb68eba1c3498e812d",
        "d85632ae4040086c2df5eb7423ec3e42224c40b0"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:34 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Fri Apr 13 20:34:34 2018 +0000"
      },
      "message": "[automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40\n\nChange-Id: I24a1df41eb29a6ac7e6c67368f07c6702dacf071\n"
    },
    {
      "commit": "7e54c3f261d81316b75cb734075319108d8bc1d1",
      "tree": "4c46c9bc01516759509d853c0c2eb9efb76b373e",
      "parents": [
        "de71ee469a06fac76710874a69c97f76f4f22af7"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 05 17:57:27 2018 -0700"
      },
      "committer": {
        "name": "Atanas Kirilov",
        "email": "akirilov@google.com",
        "time": "Fri Apr 13 20:34:18 2018 +0000"
      },
      "message": "ResStringPool: Fix security vulnerability\n\nAdds detection of attacker-modified size and data fields passed to\nResStringPool::setTo(). These attacks are modified apks that AAPT would\nnot normally generate. In the rare case this occurs, the installation\ncannot be allowed to continue.\n\nBug: 71361168\nBug: 71360999\nTest: run cts -m CtsAppSecurityHostTestCases \\\n          -t android.appsecurity.cts.CorruptApkTests\n\nChange-Id: If7eb93a9e723b16c8a0556fc4e20006aa0391d57\nMerged-In: If7eb93a9e723b16c8a0556fc4e20006aa0391d57\n"
    },
    {
      "commit": "780453ac0273193f0e42f54bedf5bb3b97b48175",
      "tree": "bed06f72071129f200aee593bea28936d398aec5",
      "parents": [
        "f8b86b05ff4355686610b5b6c150d28eb68b1211",
        "7b13ad69ec04bfece465c7962d1d778aebd9cfdc"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 11:59:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 11:59:02 2018 -0700"
      },
      "message": "Merge \"AAPT2: GetBag infinite recursion fix\" into pi-dev am: 3ddd801449\nam: 7b13ad69ec\n\nChange-Id: I0fa176974242707aecd6d0d593670e13c0a9012d\n"
    },
    {
      "commit": "57cd195c4303ff248c6e016d51e3b7632cf69bae",
      "tree": "301a7bf02888ac353e661792bfde9a4dd04273d6",
      "parents": [
        "65317bac02e993d1313a1958a8497ff5f2a2ecd5"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 12 14:26:23 2018 -0700"
      },
      "committer": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 13 08:50:09 2018 -0700"
      },
      "message": "AAPT2: GetBag infinite recursion fix\n\nStyle resources with circular parental dependencies caused infinite\nrecursion when calling AssetManager2::GetBag. This fix allows recursion\nto cease when a circular dependency is found.\n\nBug: 77928512\nChange-Id: Ib900c36ab1aef5da5b03234a9484c4dad3b63c02\nTest: Manual test of b/77928512 and duplicates of 74493983\n"
    },
    {
      "commit": "91706bee7bfc5e8ea81b423dcba438eecb41dfa1",
      "tree": "42957c6e7e454430d75159453134772833fb4cbc",
      "parents": [
        "0fcb601b9d53c3c623f3964045b12ea314f4fc71",
        "097ba79da7cfea1993ab3886f547e72ee032af8e"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 09 18:56:53 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 18:56:53 2018 -0700"
      },
      "message": "Merge \"ResStringPool: Fix security vulnerability\" into pi-dev am: 135d82ac45\nam: 097ba79da7\n\nChange-Id: I078117c08fdc713a40a52b1f3b07504593cc3c69\n"
    },
    {
      "commit": "e46df9d47e5b3a90f0a010026881ec22462fe502",
      "tree": "1b4176aa65927b56193c7570d0da9b534d3a7ba5",
      "parents": [
        "28faced9734d509f8829ea710fe93bf33a4be324"
      ],
      "author": {
        "name": "y",
        "email": "rtmitchell@google.com",
        "time": "Thu Apr 05 17:57:27 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Apr 06 18:12:42 2018 +0000"
      },
      "message": "ResStringPool: Fix security vulnerability\n\nAdds detection of attacker-modified size and data fields passed to\nResStringPool::setTo(). These attacks are modified apks that AAPT would\nnot normally generate. In the rare case this occurs, the installation\ncannot be allowed to continue.\n\nBug: 71361168\nBug: 71360999\nTest: run cts -m CtsAppSecurityHostTestCases \\\n          -t android.appsecurity.cts.CorruptApkTests\nChange-Id: If7eb93a9e723b16c8a0556fc4e20006aa0391d57\n"
    },
    {
      "commit": "49668cd130b57e3ba2f98c7613b215773b4246fa",
      "tree": "b306fa0b58d45ee63bd86dbd707f4179e32f67b5",
      "parents": [
        "1f76cbd73845ee2104ef0cc750f0d7c34f5b384c",
        "2ad530d76c55c86d28c893b904b4f12aca65443f"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 21:21:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 21:21:10 2018 +0000"
      },
      "message": "Merge \"Added decoding of truncated AAPT string lengths.\" into pi-dev"
    },
    {
      "commit": "2ad530d76c55c86d28c893b904b4f12aca65443f",
      "tree": "be58c23ee4854242aba55090d4cce6c07f75b8dc",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Mar 29 15:49:10 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:56:11 2018 +0000"
      },
      "message": "Added decoding of truncated AAPT string lengths.\n\nAAPT incorrectly writes a truncated string length when the string size\nexceeded the maximum possible encode length value (0x7FFF). To decode a\ntruncated length, this change iterates through length values that end\nin the encode length bits. Strings that exceed the maximum encode length\nare not placed into StringPools in AAPT2.\n\nTest: Successfully ran broken apps from the duplicates of the bugs\nprovided and created tests\nBug: 69320870\n\nChange-Id: I99dd9b63e91ac250f81d5dfc26b7c0e6276ae162\n(cherry picked from commit ea9e8b447a5d24d1b199507dac203c69d81736e2)\n"
    },
    {
      "commit": "6759955c95442571a0eb0cf88872b5010c60aad4",
      "tree": "c09b03c140c18c59e1b3a673994d8a7a75c55408",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Mar 30 16:13:53 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:55:34 2018 +0000"
      },
      "message": "Fixed resource bag retrieval infinite recursion.\n\nAn app was crashing because in an attempt to retrieve layout\nattribute/style data, the app infinitely recursed because its parent was\nset to itself. This change checks if the resource bag parent and child\nhave the same ids, and if so, attempts to find the resource in this bag\nalone rather than attempting to also look in parent bags.\n\nBug: 74493983\nTest: Manual testing of Fitbit app\nChange-Id: Iea37533a0676bd51b72c9bb235adec9bd04f2ccc\n(cherry picked from commit ac04095ba91f262c9167985a8024607763d8cacc)\n"
    },
    {
      "commit": "00d439f9dc537a36b34c2999c3edf6936ef65ce1",
      "tree": "2a7d855103bd8d9c2df911f20fff809828552b22",
      "parents": [
        "beaaa3f08252400666499c2ead8e35a79e6d730c",
        "ea9e8b447a5d24d1b199507dac203c69d81736e2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 02 20:36:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 20:36:43 2018 +0000"
      },
      "message": "Merge \"Added decoding of truncated AAPT string lengths.\""
    },
    {
      "commit": "ea9e8b447a5d24d1b199507dac203c69d81736e2",
      "tree": "5c602f75762e20d91aaed16f110b9383a8b35b6e",
      "parents": [
        "ecc58adba14232f5580720035ffb48bb4ddee1ba"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu Mar 29 15:49:10 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Mon Apr 02 12:20:14 2018 -0700"
      },
      "message": "Added decoding of truncated AAPT string lengths.\n\nAAPT incorrectly writes a truncated string length when the string size\nexceeded the maximum possible encode length value (0x7FFF). To decode a\ntruncated length, this change iterates through length values that end\nin the encode length bits. Strings that exceed the maximum encode length\nare not placed into StringPools in AAPT2.\n\nTest: Successfully ran broken apps from the duplicates of the bugs\nprovided and created tests\nBug: 69320870\n\nChange-Id: I99dd9b63e91ac250f81d5dfc26b7c0e6276ae162\n"
    },
    {
      "commit": "ac04095ba91f262c9167985a8024607763d8cacc",
      "tree": "eb9fcd6c1187a2616368128b415da96d637af87b",
      "parents": [
        "ecc58adba14232f5580720035ffb48bb4ddee1ba"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Mar 30 16:13:53 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Mar 30 16:13:53 2018 -0700"
      },
      "message": "Fixed resource bag retrieval infinite recursion.\n\nAn app was crashing because in an attempt to retrieve layout\nattribute/style data, the app infinitely recursed because its parent was\nset to itself. This change checks if the resource bag parent and child\nhave the same ids, and if so, attempts to find the resource in this bag\nalone rather than attempting to also look in parent bags.\n\nBug: 74493983\nTest: Manual testing of Fitbit app\nChange-Id: Iea37533a0676bd51b72c9bb235adec9bd04f2ccc\n"
    },
    {
      "commit": "a43e1882e06193057401f625114d17274dff51ac",
      "tree": "dee4deb80db2fdaade8245816daf03d466b75c33",
      "parents": [
        "048a8cd2d47288f5706594241b8a285953f2a6c4",
        "404231b3bf6708efa9c4c1ed96f6873632cd491d"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 23 19:22:04 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 23 19:22:04 2018 +0000"
      },
      "message": "Merge \"Fix resource by name lookup\" into pi-dev am: 909402935c\nam: 404231b3bf\n\nChange-Id: I25bb90f1b150a2bac45ea8a8ccbb3604cfdc31e9\n"
    },
    {
      "commit": "3f085422081db5d7da5dfc394a0b9c2696c2e9be",
      "tree": "31dd6bda2321ea5299f187abd36619eca19bf9f2",
      "parents": [
        "c7f6eadffc0a243618ce09ee8d6bb8235738135d"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 22 20:58:52 2018 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 22 20:59:05 2018 -0700"
      },
      "message": "Fix resource by name lookup\n\nTest: added: \u0027@\u0027 cases to ResourceUtilsTest\n      pass: ./out/host/darwin-x86/nativetest/libandroidfw_tests/libandroidfw_tests\n      pass: ./out/host/darwin-x86/nativetest/aapt2_tests/aapt2_tests\n      pass: cts-tradefed run cts-dev -m CtsAppSecurityHostTestCases\n                -t android.appsecurity.cts.PermissionsHostTest\n\nBug: 74612500\n\nChange-Id: I144e4ca1b63b9cce71052fc02089bb6092739889\n"
    },
    {
      "commit": "0315c8495db1758dc0acb1fda5cfebfc690889b9",
      "tree": "edba2afd984286c728e85aa8a316d5840e7c6e9c",
      "parents": [
        "7264b3484d997a964c64a657bb17a4c77c37cff0",
        "949b625377188c087f20c13c73efdfe78f16e446"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 05 18:58:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 18:58:43 2018 +0000"
      },
      "message": "Merge \"Don\u0027t dereference a null pointer\""
    },
    {
      "commit": "f3c951fd528ae240ef149b815d644ddef3a1c361",
      "tree": "ab7a5714e8707cf37b65a472d4fa3702995a8067",
      "parents": [
        "51aed1c8b9f395cdd2ac7b0aa8ed7a6bf183d214",
        "a95e841846c3add37cab0ca228e1e1a4eb0a1455"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 22:38:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 22:38:46 2018 +0000"
      },
      "message": "Merge \"Change ownership of AAPT2 and libandroidfw\""
    },
    {
      "commit": "949b625377188c087f20c13c73efdfe78f16e446",
      "tree": "12b90575ea5c83a3562d58233ec633e778482a33",
      "parents": [
        "11817c6bb21423cec873f5acd11cbb203bdc7729"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Mar 02 14:19:45 2018 -0800"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Mar 02 14:19:45 2018 -0800"
      },
      "message": "Don\u0027t dereference a null pointer\n\nIf we don\u0027t specifiy an output for R.java, don\u0027t try to write\ndata to the class definition\n\nChange-Id: I3ad471ec93dcb8baf13f221174065679cce311ad\nFixes: 72547268\nTest: out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\n"
    },
    {
      "commit": "a95e841846c3add37cab0ca228e1e1a4eb0a1455",
      "tree": "1f9694d068249d7dc4c1b9a0b81db0f3bb4f6f26",
      "parents": [
        "8e4419a087a6112d1a656636175fe765d0cd1916"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 12:10:25 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 02 12:11:03 2018 -0800"
      },
      "message": "Change ownership of AAPT2 and libandroidfw\n\ntoddke@ is now the new owner of these projects.\n\nTest: none\nChange-Id: Ie92b020e0ba063f48ce8a76ebaef768fe0d554f1\n"
    },
    {
      "commit": "bebfcc46a249a70af04bc18490a897888a142fb8",
      "tree": "18f0c31f70495b104ba81a8f340a2c03bbd57d75",
      "parents": [
        "0e35073ec9d02677f189e96b734d87d9dba650bd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Feb 12 14:27:46 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 28 19:06:48 2018 -0800"
      },
      "message": "Refactor AssetManager\n\nBug: 64071469\nTest: atest CtsContentTestCases\nChange-Id: Ia6856157e8813856268fba003e1e591d690cb26e\n"
    },
    {
      "commit": "df7675f1cb184f09b2a304d1aa8a25112d6b340f",
      "tree": "b0b2e7f23e976ba854c7403360da3ea0d681eacf",
      "parents": [
        "efab39ff7f06323568f6b1a401209f06521486d3",
        "0f4ca4a5c086899f4ab842ae70eb4c9474d2547a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 28 14:13:52 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 28 14:13:52 2018 +0000"
      },
      "message": "Merge \"Don\u0027t use cutils/Atomic.h\" am: 07735797a2 am: a272d540d8\nam: 0f4ca4a5c0\n\nChange-Id: I4b9798b39d890537f888415b5ac283227970e4de\n"
    },
    {
      "commit": "0f4ca4a5c086899f4ab842ae70eb4c9474d2547a",
      "tree": "d0afa4eeb3791bdc71dc4a74a0b257204fe4cc05",
      "parents": [
        "49b368b4479fa2a1191d1cbd1105e152435c1cb2",
        "a272d540d8ecf913ce71abed58fc4a84a36ce258"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 28 14:01:17 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 28 14:01:17 2018 +0000"
      },
      "message": "Merge \"Don\u0027t use cutils/Atomic.h\" am: 07735797a2\nam: a272d540d8\n\nChange-Id: Ie442c255e43f2ebe80ef5423aa4508930d72c44c\n"
    },
    {
      "commit": "fb7952f57e07c68cc66a3ec69f86694057f89def",
      "tree": "9f8aaf91b41c21ac0cffcd189e4892da573cab23",
      "parents": [
        "c65d52ff78ec8e5e4752be16c7c6d1bc31ca9593"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 14:58:50 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 15:02:42 2018 -0800"
      },
      "message": "Don\u0027t use cutils/Atomic.h\n\nTest: builds\nChange-Id: I74485a5cbecb8710714f7bf3e54da61dd787838f\n"
    },
    {
      "commit": "bde1df21adf264d3398b9f3274f353faa6399008",
      "tree": "51909e52f6741528e2b6f69923affc43410e40f2",
      "parents": [
        "2a447172a5b8c4fdb8527602144691802c492c2e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 11:12:22 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 12:43:24 2018 -0800"
      },
      "message": "Revert \"Replace AssetManager with AssetManager2 implementation\"\n\nThis reverts commit 1187590da38457809dd368d4901c9c47ac5a6958.\n\nBug: 73134570\nChange-Id: I59b4d714e447478ea124f086356f127f42251fb7\n"
    },
    {
      "commit": "2a447172a5b8c4fdb8527602144691802c492c2e",
      "tree": "abbd3839e76a0c55628c3c905a9b30f90133e56d",
      "parents": [
        "56c82be0d4075a434217a0d56be8e6544fb05a96"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 11:02:13 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 12:43:17 2018 -0800"
      },
      "message": "Revert \"libandroidfw: Make sure to set the \u0027app as lib\u0027 flag\"\n\nThis reverts commit 9ad287c828a116f844e5c03346c618d83727e4ae.\n\nBug: 73134570\nChange-Id: If930d3a7c17fc2f7ffaebd31281ad5a5d120144f\n"
    },
    {
      "commit": "c9a9c1c1c3e22d939150622e3a6c8b9b7ec58b04",
      "tree": "fbc32d06f0de09983e807d11e50a22852986a5f8",
      "parents": [
        "b8b3a2619435eb226ce13b1792a6ccb1302b3cb2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 11:01:55 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 12:43:13 2018 -0800"
      },
      "message": "Revert \"libandroidfw: Add ApplyStyle and SetConfiguration benchmark\"\n\nThis reverts commit 59f63bd801f10336c9f0499b7a0bc0bccb0fad2e.\n\nBug: 73134570\nChange-Id: I6ace34b0d6545ff001664792b0bb1bbff5b5cbbe\n"
    },
    {
      "commit": "b8b3a2619435eb226ce13b1792a6ccb1302b3cb2",
      "tree": "4ea5d9e8b9077a7b5db193709106525c8d7764f7",
      "parents": [
        "dfeb7ceb2afc1f630e7d2afdd9f37ef70386e146"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 11:01:45 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 12:43:10 2018 -0800"
      },
      "message": "Revert \"libandroidfw: Improve performance of AssetManager2\"\n\nThis reverts commit 88c9959e5b417320bbc2484fab42ab4b12379533.\n\nBug: 73134570\nChange-Id: I012643d2b4212cef5aef68feb4146add34f9ecfc\n"
    },
    {
      "commit": "dfeb7ceb2afc1f630e7d2afdd9f37ef70386e146",
      "tree": "6c5939b7974f1a55cd874fda4b76a2610a669290",
      "parents": [
        "ec7f06cc372a7298c85bf96cb4133d7dc8807419"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 11:01:36 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 12:43:07 2018 -0800"
      },
      "message": "Revert \"AssetManager2: Allow out of order type/type spec\"\n\nThis reverts commit 78695c354342bd95ba5f63937b4e789139b50072.\n\nBug: 73134570\nChange-Id: I6acc35372d9071d067d2fb7caa775ee9ba689811\n"
    },
    {
      "commit": "ec7f06cc372a7298c85bf96cb4133d7dc8807419",
      "tree": "d891b4dd7c17b0ade4017d76ec5285ed1ba00265",
      "parents": [
        "3160c8b0f792d2153f020fe810290ddf8d61b15c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 11:01:26 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 09 12:43:04 2018 -0800"
      },
      "message": "Revert \"AssetManager2: Fix list function\"\n\nThis reverts commit adc0b87ec235a71d722fb8d6aad50ceaeac8c6d5.\n\nBug:73134570\nChange-Id: I9e652245e7661eb7a34dadb5f363a08bc8c9e57e\n"
    },
    {
      "commit": "a9bf9d166a4a69f4fad0794a3e9d5e60f78ad927",
      "tree": "16fa44d86150d679d338872bd157d504136af972",
      "parents": [
        "9936ce824536355b266a1f69babc2d9256da885f",
        "adc0b87ec235a71d722fb8d6aad50ceaeac8c6d5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 09 08:18:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 09 08:18:16 2018 +0000"
      },
      "message": "Merge \"AssetManager2: Fix list function\""
    },
    {
      "commit": "adc0b87ec235a71d722fb8d6aad50ceaeac8c6d5",
      "tree": "00b9574251a5a6b6ce184f39d1b2f04a129a057b",
      "parents": [
        "1b6f515550969020f0622afb7f82b24d7150c3c1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 08 22:35:21 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 08 22:37:48 2018 -0800"
      },
      "message": "AssetManager2: Fix list function\n\nList was skipping directories. Include them, and add tests to ensure\nthe order and precedence is correct.\n\nBug: 72511641\nTest: make libandroidfw_tests\nTest: atest CtsContentTestCases:AssetManagerTest\nChange-Id: Iadf45883283d3e4aae93bd7c3343745912e34fa0\n"
    },
    {
      "commit": "78695c354342bd95ba5f63937b4e789139b50072",
      "tree": "3449df64a8cd96dd2760f13401174d401809ac9c",
      "parents": [
        "ac5438c501bca164ab2a39f32c2c660d2d4d7c90"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 08 14:50:38 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 08 15:16:32 2018 -0800"
      },
      "message": "AssetManager2: Allow out of order type/type spec\n\nAssetManager2 assumes that RES_TABLE_TYPE_SPEC_TYPEs must immediately\nprecede their associated RES_TABLE_TYPE_TYPEs. This is not correct.\nRES_TABLE_TYPE_SPEC_TYPEs must precede their associated\nRES_TABLE_TYPE_TYPEs, but they do not need to immediately precede them.\n\nFor example, this is what we currently expect:\n\n  RES_TABLE_TYPE_SPEC_TYPE id\u003d1\n  RES_TABLE_TYPE_TYPE id\u003d1\n  RES_TABLE_TYPE_SPEC_TYPE id\u003d2\n  RES_TABLE_TYPE_TYPE id\u003d2\n\nbut this is also valid:\n\n  RES_TABLE_TYPE_SPEC_TYPE id\u003d1\n  RES_TABLE_TYPE_SPEC_TYPE id\u003d2\n  RES_TABLE_TYPE_TYPE id\u003d1\n  RES_TABLE_TYPE_TYPE id\u003d2\n\nBug: 73052092\nTest: make libandroidfw_tests\nChange-Id: I1f3c43760f8108eee24c2c6ed7bc16f70e951c2b\n"
    },
    {
      "commit": "88c9959e5b417320bbc2484fab42ab4b12379533",
      "tree": "85dd7f4b48e7c233067ecd99b9b78cc9edb0459a",
      "parents": [
        "59f63bd801f10336c9f0499b7a0bc0bccb0fad2e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 08 17:38:30 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Feb 05 18:38:57 2018 -0800"
      },
      "message": "libandroidfw: Improve performance of AssetManager2\n\nAssetManager2 relied on creating a list of configurations\npresent in the resource table so as to avoid copying and\nconverting ResTable_config\u0027s from the APK on every\nresource retrieval.\n\nResTable, however, had a better optimization that pruned\nthe configurations that didn\u0027t match the currently set\nconfiguration. This vastly reduced the number of ResTable_configs\nto test.\n\nIn this CL, AssetManager2 follows suite with this optimization\nand only maintains the filtered ResTable_configs, falling back\nto the slow path when the configuration is overridden.\n\nTest: mma frameworks/base/libs/androidfw\nTest: adb sync system data\nTest: adb shell /data/benchmarktest64/libandroidfw_benchmarks/libandroidfw_benchmarks\nChange-Id: Ib57b75fbb32e1d310eec146e5a12dfc6de4385f9\n"
    },
    {
      "commit": "59f63bd801f10336c9f0499b7a0bc0bccb0fad2e",
      "tree": "fdac1d8181d36b5da4daaadd69225cfe29b54e3d",
      "parents": [
        "633085456e5047e16e53da6c95e193e2a0189633"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 28 13:01:35 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Feb 05 18:38:57 2018 -0800"
      },
      "message": "libandroidfw: Add ApplyStyle and SetConfiguration benchmark\n\nTest: mma frameworks/base/libs/androidfw\nTest: adb sync system data\nTest: adb shell /data/benchmarktest64/libandroidfw_benchmarks/libandroidfw_benchmarks\nChange-Id: Ia0e868008a3b32dc8d1c69ed1f2c39f152bb7815\n"
    },
    {
      "commit": "9ad287c828a116f844e5c03346c618d83727e4ae",
      "tree": "516b00ebd83c5fdbb79f403e32cd82d65081ce34",
      "parents": [
        "1187590da38457809dd368d4901c9c47ac5a6958"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 30 17:11:48 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Feb 05 18:38:57 2018 -0800"
      },
      "message": "libandroidfw: Make sure to set the \u0027app as lib\u0027 flag\n\nWhen an app is loaded as a shared library (eg. monochrome),\nmake sure to set the bit that it loaded as such, so that\nconversions from package ID 7f -\u003e shared library ID are done.\n\nBug: 72511998\nTest: make libandroidfw_tests\nTest: out/host/\u003chost_os\u003e/nativetest64/libandroidfw_tests/libandroidfw_tests\nChange-Id: Icd11b7a5adff351165ca16d5853fb5a0002c34b1\n"
    },
    {
      "commit": "1187590da38457809dd368d4901c9c47ac5a6958",
      "tree": "207ff9de48e4ea27560f08cf4c4d1f5269009534",
      "parents": [
        "367358ec364d9aca36b305879672f7c26db27469"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 23 12:58:11 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Feb 05 18:38:49 2018 -0800"
      },
      "message": "Replace AssetManager with AssetManager2 implementation\n\nTest: atest CtsContentTestCases:android.content.res.cts\nTest: make libandroidfw_tests\nChange-Id: I2bb6d7656d2516d371e83e541ed02f91405f6d94\n"
    },
    {
      "commit": "5b46d98a7a8eb75da9c492f987c06a2648cb87b3",
      "tree": "28154e206e483528c474269435b3bb1c62c79d18",
      "parents": [
        "842961310c22a5eb603549861652efc25a5757c7",
        "1c4ccab92b268eaed8ed4d59bcf3302ad41a2a18"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Thu Feb 01 03:35:27 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 01 03:35:27 2018 +0000"
      },
      "message": "Merge changes from topic \"am-1ab9514f-fd12-4093-b1cb-a77e9f0419c9\" into oc-dev am: 46fc48f57e am: b39e49d52c\nam: 1c4ccab92b\n\nChange-Id: I32ba85cdc40ea77772361ffb399085f7b8a67416\n"
    },
    {
      "commit": "1c4ccab92b268eaed8ed4d59bcf3302ad41a2a18",
      "tree": "5a4604905b4ca4720c0fa9c8bf7af2c3ff00d495",
      "parents": [
        "152acb51623b430dfcbd59a203ef17394fd0695e",
        "b39e49d52c8a78dd8cdb5ee94111faac55ab311f"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Thu Feb 01 03:24:13 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 01 03:24:13 2018 +0000"
      },
      "message": "Merge changes from topic \"am-1ab9514f-fd12-4093-b1cb-a77e9f0419c9\" into oc-dev am: 46fc48f57e\nam: b39e49d52c\n\nChange-Id: Iaf02c5ebdb656fc79cde201e6df97760283ea4e4\n"
    },
    {
      "commit": "b39e49d52c8a78dd8cdb5ee94111faac55ab311f",
      "tree": "a3653c0ca7ea16193562be9993e251704878495e",
      "parents": [
        "df255a4a6b3dfbde4a8fc16279faa5d998f8eb6d",
        "46fc48f57ea754372d5304a5903acf28b8d0d2c3"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Thu Feb 01 03:13:16 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 01 03:13:16 2018 +0000"
      },
      "message": "Merge changes from topic \"am-1ab9514f-fd12-4093-b1cb-a77e9f0419c9\" into oc-dev\nam: 46fc48f57e\n\nChange-Id: I85ba0993926fbd9a61525e35e411887130b3c5aa\n"
    },
    {
      "commit": "f7d01dd7e14e01420c39e7fb8eca3cfa0f5f31b6",
      "tree": "2ac2502467b144cc9a777f484e6b64aa37d30047",
      "parents": [
        "646265cb2a4af0b1b795fbb2f76ad424ce97cba3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 25 15:38:58 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 25 17:39:40 2018 -0800"
      },
      "message": "Revert \"Replace AssetManager with AssetManager2 implementation\"\n\nThis reverts commit dcb3c6559b09ec89771858ec27a787027da9af50.\n\nBug:72511998\nChange-Id: I665966ca109f66f85d8665db388c71ea2303c3b8\n"
    },
    {
      "commit": "646265cb2a4af0b1b795fbb2f76ad424ce97cba3",
      "tree": "4d0ba93e33158093c571e0852083d40b8c38aaa3",
      "parents": [
        "0dd369912a2b46c22d09ddc6ae117fe173e51cb8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 25 15:38:50 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 25 17:34:40 2018 -0800"
      },
      "message": "Revert \"libandroidfw: Add ApplyStyle and SetConfiguration benchmark\"\n\nThis reverts commit d9c809c480e22ccced6762268efaa30bb9a6e491.\n\nBug:72511998\nChange-Id: I3be2374e3662fc8397c00f1df1bce6de5f5a4549\n"
    },
    {
      "commit": "0dd369912a2b46c22d09ddc6ae117fe173e51cb8",
      "tree": "6e555320443d5e8a9459549ccc8c305599b73a1a",
      "parents": [
        "cfd4301c9d17a71bf476942a9a7125810c95738e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 25 15:38:38 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 25 17:34:39 2018 -0800"
      },
      "message": "Revert \"libandroidfw: Improve performance of AssetManager2\"\n\nThis reverts commit 64ee69d0f1f412edee2eb7a0c846deebbfa37ef9.\n\nBug:72511998\nChange-Id: Iab3ce449e60ec2451d391217543528d312089080\n"
    },
    {
      "commit": "1713d9e97aada3dc695800c18b1025238a11629d",
      "tree": "329149b24a3f6af1178327245681d75cddb8d0b4",
      "parents": [
        "1ccf72543da1c20e8c8a69b33d86f3d2cae5aaf3"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Jan 12 21:47:26 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Jan 25 12:44:45 2018 +0900"
      },
      "message": "Support /product partition\n\nThis CL will support the followings.\n- installing a RRO package for framework from /product/overlay\n- installing apps from /product/app\n- installing priv-apps from /product/priv-app\n- installing permissions from\n  /product/etc/[default-permissions|permissions|sysconfig]\n\nBug: 64195575\nTest: `mm` under frameworks/base/tests/[libs|privapp]-permissions\nadb sync \u0026\u0026 adb reboot\nadb shell cmd package list libraries\n  \u003d\u003e confirmed com.android.test.libs.product library\nadb shell cmd package dump \\\n  com.android.framework.permission.privapp.tests.product\n  \u003d\u003e confirmed that the package is a priv-app\n\nAnd I moved vendor/overlay/framework-res__auto_generated_rro.apk into\nsystem/product/overlay/ on sailfish, and I confirmed that the RRO was\ninstalled properly.\n\nChange-Id: I16175933cebd9ec665d190cc5d564b5414a91827\n"
    },
    {
      "commit": "64ee69d0f1f412edee2eb7a0c846deebbfa37ef9",
      "tree": "a75c88533a52604ac4a4b5decb4ec1c1710d1cc4",
      "parents": [
        "d9c809c480e22ccced6762268efaa30bb9a6e491"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 08 17:38:30 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 24 15:19:09 2018 -0800"
      },
      "message": "libandroidfw: Improve performance of AssetManager2\n\nAssetManager2 relied on creating a list of configurations\npresent in the resource table so as to avoid copying and\nconverting ResTable_config\u0027s from the APK on every\nresource retrieval.\n\nResTable, however, had a better optimization that pruned\nthe configurations that didn\u0027t match the currently set\nconfiguration. This vastly reduced the number of ResTable_configs\nto test.\n\nIn this CL, AssetManager2 follows suite with this optimization\nand only maintains the filtered ResTable_configs, falling back\nto the slow path when the configuration is overridden.\n\nTest: mma frameworks/base/libs/androidfw\nTest: adb sync system data\nTest: adb shell /data/benchmarktest64/libandroidfw_benchmarks/libandroidfw_benchmarks\nChange-Id: I5d46f8b005a37b72750d00bd75f090e7b5a36f60\n"
    },
    {
      "commit": "d9c809c480e22ccced6762268efaa30bb9a6e491",
      "tree": "e53a25d1f086422982926c79f347a2a850ff3a22",
      "parents": [
        "e70b57a659e4486d07f30ebe3b067715b53f1378"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 28 13:01:35 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 24 15:19:09 2018 -0800"
      },
      "message": "libandroidfw: Add ApplyStyle and SetConfiguration benchmark\n\nTest: mma frameworks/base/libs/androidfw\nTest: adb sync system data\nTest: adb shell /data/benchmarktest64/libandroidfw_benchmarks/libandroidfw_benchmarks\nChange-Id: Ia6b441f186ccb455acbee15723f0d2d5657b09b5\n"
    },
    {
      "commit": "dcb3c6559b09ec89771858ec27a787027da9af50",
      "tree": "83aeb141e483ec7d059b7089e00b761ace122662",
      "parents": [
        "262cdf0f2724aaeade73a6c9e7b7466e0adf1007"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 23 12:58:11 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 24 15:19:04 2018 -0800"
      },
      "message": "Replace AssetManager with AssetManager2 implementation\n\nTest: atest CtsContentTestCases:android.content.res.cts\nTest: make libandroidfw_tests\nChange-Id: I572eb13c6a4372c7f656f5912821cececd5bf3d4\n"
    },
    {
      "commit": "163548ed6aa4bf88f35157b7ee0818294817300f",
      "tree": "d94d9c823af3c392a7f374782db7f71ca18cc996",
      "parents": [
        "cee125012a059e906c53c830d5b2b0695417e637",
        "5786491706cc44f2c5fd7a01b80fa7df19493a2d"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 24 19:50:14 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 24 19:50:14 2018 +0000"
      },
      "message": "[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909 am: c3d7250b99 am: e2417e6682 am: 0ab4540c41 am: a3f0976937 am: 166aa6e149 am: b7f7f7e14e am: c26b8635b7 am: afac0f46d9 am: 5786491706\n\nChange-Id: I6b2b0c96e716c385045ebddaa1072b9dc1b4a67c\n"
    },
    {
      "commit": "7ec28a888c7e59af02aeb0e0a9b078037d317e2e",
      "tree": "7cfaf2cccb605c7b781d2234fc2c8b97b5afdbbd",
      "parents": [
        "9342c3d4db5e862d010169db04e6b0f63cae713f"
      ],
      "author": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Fri Nov 10 11:58:38 2017 -0800"
      },
      "committer": {
        "name": "Igor Viarheichyk",
        "email": "viarheichyk@google.com",
        "time": "Fri Jan 19 20:25:34 2018 +0000"
      },
      "message": "Use numbering system for configuration selection.\n\nTake into account numbering system when selecting a matching\nresource configuration. Add numbering system specifier into the\ngenerated BCP 47 language tag.\n\nTest: build and run libandroidfw_tests\nBug: 71873777\n\nChange-Id: I3afda181f36de4b29a7be270b6f7593c2261fd71\n"
    },
    {
      "commit": "5786491706cc44f2c5fd7a01b80fa7df19493a2d",
      "tree": "3366c73c54269c0ddedb36432ebfb6f31009a73c",
      "parents": [
        "0a1948e51509fb5407ee34b855e4ee140ac64dbe",
        "afac0f46d978df65a52773134234542dc51af583"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:55 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:55 2018 +0000"
      },
      "message": "[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909 am: c3d7250b99 am: e2417e6682 am: 0ab4540c41 am: a3f0976937 am: 166aa6e149 am: b7f7f7e14e am: c26b8635b7 am: afac0f46d9\n\nChange-Id: I929d36bb57eb15b520d67580a3372b960ecd2495\n"
    },
    {
      "commit": "afac0f46d978df65a52773134234542dc51af583",
      "tree": "03cab667764d75e77b388c77bac3e978230238e4",
      "parents": [
        "45d962274f29ccd745622e2318643140acc993e0",
        "c26b8635b70c4b36e614e10aeb8cfbe7fc1f3243"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:50 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:50 2018 +0000"
      },
      "message": "[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909 am: c3d7250b99 am: e2417e6682 am: 0ab4540c41 am: a3f0976937 am: 166aa6e149 am: b7f7f7e14e am: c26b8635b7\n\nChange-Id: If1ccdb1c778d8f3f605c1091643a6c11f0ffa00e\n"
    },
    {
      "commit": "c26b8635b70c4b36e614e10aeb8cfbe7fc1f3243",
      "tree": "392a9c083f5c3ba5358ea66cebed9398fe885aca",
      "parents": [
        "49dfdd66cc29266cf58ea834c244510aa33bce8e",
        "b7f7f7e14e6f1dfa3feb64af04fd831d7b00e3e4"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:46 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:46 2018 +0000"
      },
      "message": "[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909 am: c3d7250b99 am: e2417e6682 am: 0ab4540c41 am: a3f0976937 am: 166aa6e149 am: b7f7f7e14e\n\nChange-Id: I24714505cc04c722b7d49762ee3e965369fd4d1e\n"
    },
    {
      "commit": "166aa6e1493af4790cda7ac3518abdea7539ab0a",
      "tree": "f5bd4d7f2f3c0bc5b1e24c675ec288402c4dba3e",
      "parents": [
        "3ac5dabc21da337bb2c74f3969b49ba4b670fb60",
        "a3f097693791b4571440f685837640d26a499ff8"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:29 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:29 2018 +0000"
      },
      "message": "[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909 am: c3d7250b99 am: e2417e6682 am: 0ab4540c41 am: a3f0976937\n\nChange-Id: If96dfd76092dc107e75fbc213346eba2cbc0a0c1\n"
    },
    {
      "commit": "c3d7250b99f7b59cf3ea153d696c4c8db0b5252a",
      "tree": "6e0b0307c6f25bdd25e57448164eab49f6e5d5cd",
      "parents": [
        "4158c9fbf321ec227bb30fb426cb5cf886f09125",
        "5ec65ae909a85d13d03c030be357c8c14a50d306"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:03 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jan 17 22:20:03 2018 +0000"
      },
      "message": "[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909\n\nChange-Id: I1ea52e1ccd7bf5467438e3dc2e670cf8f325c629\n"
    },
    {
      "commit": "5ec65ae909a85d13d03c030be357c8c14a50d306",
      "tree": "b14c0fc29ad48e36f62325e8ead4536657db81a8",
      "parents": [
        "6a9c7c4814b3dacd54b27e4cde6ee09e9eba7531"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 17:12:17 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 17 22:19:39 2018 +0000"
      },
      "message": "Check for null-terminator in ResStringPool::string8At\n\nAll other stringAt methods check for null termination. Be consistent\nso that upper levels don\u0027t end up with huge corrupt strings.\n\nBug: 62537081\nTest: none\nChange-Id: I17bdfb0c1e34507b66c6cad651bbdb12c5d4c417\n(cherry picked from commit 3d35a0ea307693a97583a61973e729a5e7db2687)\n(cherry picked from commit 97f8cb01149b35b1832c7f9efe85ff19edf1083e)\n"
    },
    {
      "commit": "6593d714b6e1feb3b42d23f4af72e340f0ab0a78",
      "tree": "393ca5d238939935adbe5faef9b60ed666ce3cf5",
      "parents": [
        "ee48176ad6bb61abf4a2eb1024be2a1ee555c8a8"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 13:26:27 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 28 09:14:42 2017 -0800"
      },
      "message": "Disable sanitizer entirely in ResourceTypes.cpp\n\nThe unsigned integer overflow sanitizer catches an overflow on\nRes_GETPACKAGE usages. This is used in a number of places in\nResourceTypes.cpp in a number of large functions. For now, lets disable\nthe sanitizer in this source file.\n\nTest: Compiles and device boots without runtime errors.\nBug: 30969751\nChange-Id: Id9e0776ef819c895a3194a32da5c85459f1af431\nMerged-In: Id9e0776ef819c895a3194a32da5c85459f1af431\n(cherry picked from commit 02828740da7481a48e7872b22213047025894525)\n"
    },
    {
      "commit": "a9743826bd5959d94935c311dd5e49f0e97ec158",
      "tree": "f5c7f02df469c088c9f7eda8105f61b70004c335",
      "parents": [
        "71be70507de9cb619b644e55eda1cc181e3f7e90"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 18 17:20:41 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 18 17:25:27 2017 -0800"
      },
      "message": "IDMAP: Warn when RROs overlay non-overlayable resources\n\nFirst pass at getting overlays to respect which resources should be\noverlaid. First step is to call it out but not enforce.\n\nBug: 64980941\nTest: manual (inspect the warnings at boot)\nChange-Id: I40baee1110d4bc1e54e7f2f9d3b73ffabb067f90\n"
    },
    {
      "commit": "71be70507de9cb619b644e55eda1cc181e3f7e90",
      "tree": "1ad3c588be3dd06b39b1ba5c3229f80ca08d62bd",
      "parents": [
        "6bb6fad16d93a5859d47dcf962337c2719e585dd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 12 16:48:07 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 18 14:16:02 2017 -0800"
      },
      "message": "AAPT2: Propagate SPEC_OVERLAYABLE flag to final APK\n\nResources can be marked as overlayable, which means they can\nbe overlaid by runtime resource overlays.\n\nThis change propagates this state to the final resource table that\nis installed on device.\n\nFuture work:\n- Have the idmap tool respect the overlayable state and ignore\n  entries that overlay anything else.\n\nBug: 64980941\nTest: make aapt2_tests\nChange-Id: Id45b1e141a281be2ee32a4ac3096fcf1114d523b\n"
    },
    {
      "commit": "498f6053dad29d715dd532f5272df12dabccf8c8",
      "tree": "b22dbd7d8e182fce137291b348645c7f9195255b",
      "parents": [
        "36f46a87317be9c568649c423011b37e18698013"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 29 13:24:29 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 05 00:29:38 2017 +0000"
      },
      "message": "libandroidfw: Remove pre-verification\n\nThis added more up-front cost to loading an APK and didn\u0027t provide\na significant benefit to resource retrieval.\n\nTest: make libandroidfw_tests\nChange-Id: Idbf993abc433fa8c8950d106c66469b310b66f7f\n"
    },
    {
      "commit": "73f6f9daf6bb38e49747bd103c97617b3dccddc4",
      "tree": "72f38ddce7edf87b25022d8f0b6afcd7716d8ef4",
      "parents": [
        "bd03daf5a44818d9fb7e51ebf532c53b9e2e0697"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 14 10:18:05 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 29 22:19:13 2017 +0000"
      },
      "message": "libandroidfw: Add SparseEntry support for LoadedArsc\n\ngo/o-restable-sparse-entries\n\nTest: make libandroidfw_tests\nChange-Id: Ib1a7d1fc69008390eee53a1de04356dc50e05b45\n"
    },
    {
      "commit": "1c855a0bc88281873b047391de93d0a2b4dbd454",
      "tree": "807e95f64d46feeb41d618029c1f25c0c33d9b8f",
      "parents": [
        "d12e276f6ae35a1e889c6d4de97688903c49001b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 29 09:59:37 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 29 10:20:26 2017 -0800"
      },
      "message": "libandroidfw: Do not clear last resource id in ResolveReference\n\nIf the value passed to AssetManager::ResolveReference is not a\nreference, the caller may be expecting for the last reference to\nnot be cleared, as a more appropriate value should most likely be\nretained.\n\nThis was causing an issue when a caller was manually resolving\nreferences and expecting the last resource ID resolved to be propagated\nacross calls to ResolveReference.\n\nTest: make libandroidfw_tests\nChange-Id: I5b7f586e2cd541059023eaa9ba23e324a21a9a1e\n"
    },
    {
      "commit": "dbf16295fe3db728fe3a26d5902dc882e01dce74",
      "tree": "6d2755aa60ca99bf067934877b6b95b8c0ea107a",
      "parents": [
        "31342ca615dadfe50d6fed062afaae5769d9ffa0",
        "441500b23ffc4f15d1e2e58da55b37efe9d2ffe1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 22:26:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 27 22:26:26 2017 +0000"
      },
      "message": "Merge \"libandroidfw: Support loading ApkAssets from a file descriptor\""
    },
    {
      "commit": "1704e3cf0c445512f0a9644485dd3449e874556b",
      "tree": "4387666a4cf8c8d869735576f2bcf872e945c749",
      "parents": [
        "9352e47db471dcbe659e6396797f09cebd455728"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 31 19:55:42 2017 +0000"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 21 10:17:14 2017 -0800"
      },
      "message": "The pm command is no more.\n\nIt is now just a shell of itself. :)\n\nAlso brings in a few fixes to never try to open files from the system\nprocess.\n\nTest: manual\nChange-Id: Ia8187196af597046fd2e7092dbf19ce1dc1ea457\n"
    },
    {
      "commit": "441500b23ffc4f15d1e2e58da55b37efe9d2ffe1",
      "tree": "c493f3356b8dd8aff45b6017a3d88602260ff5b2",
      "parents": [
        "7246736167b6347ae86e311ff0ecd039a3d8b700"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 13 17:52:25 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 13 17:53:45 2017 -0800"
      },
      "message": "libandroidfw: Support loading ApkAssets from a file descriptor\n\nTest: make aapt2_tests\nChange-Id: I041f9e9e3d3f6a10684cbd8baa49f4dda7d6dc40\n"
    },
    {
      "commit": "917bdb1b8fbb7df6f60ee5ff03c94af1c0827964",
      "tree": "3f2d1dedbb607a624458996c14ce03a5ff477db6",
      "parents": [
        "b01aaa015a90f0e72e26e4a53b12223d6b25bf44",
        "3d35a0ea307693a97583a61973e729a5e7db2687"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 10 19:00:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 19:00:10 2017 +0000"
      },
      "message": "Merge \"Check for null-terminator in ResStringPool::string8At\""
    },
    {
      "commit": "3d35a0ea307693a97583a61973e729a5e7db2687",
      "tree": "69d65ac6b326a42843338700f87111a80998842a",
      "parents": [
        "2dd3953ae00068a71da9f0a0d4e2fb9d8517424c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 17:12:17 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 17:13:40 2017 -0800"
      },
      "message": "Check for null-terminator in ResStringPool::string8At\n\nAll other stringAt methods check for null termination. Be consistent\nso that upper levels don\u0027t end up with huge corrupt strings.\n\nBug: 62537081\nTest: none\nChange-Id: I17bdfb0c1e34507b66c6cad651bbdb12c5d4c417\n"
    },
    {
      "commit": "02828740da7481a48e7872b22213047025894525",
      "tree": "c5860f9ad3460b56ed451146adb626902c36d60c",
      "parents": [
        "d37f28b8ca8dd4b9290e6451fddbc9d7a254fcb8"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 13:26:27 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 14:07:17 2017 -0800"
      },
      "message": "Disable sanitizer entirely in ResourceTypes.cpp\n\nThe unsigned integer overflow sanitizer catches an overflow on\nRes_GETPACKAGE usages. This is used in a number of places in\nResourceTypes.cpp in a number of large functions. For now, lets disable\nthe sanitizer in this source file.\n\nTest: Compiles and device boots without runtime errors.\nBug: 30969751\nChange-Id: Id9e0776ef819c895a3194a32da5c85459f1af431\n"
    },
    {
      "commit": "9ba4101878c5326996d02d88697051acff8cefb9",
      "tree": "b45383793ecf902ca8dafd9777d2738a9d66e610",
      "parents": [
        "d906cc0901685d59345b207b96fc6e940bfba4f5",
        "599fed4bfc394aa5f5735a06ccd2415e1ab4706f"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Nov 03 21:28:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 21:28:55 2017 +0000"
      },
      "message": "Merge \"Fix libandroidfw in integer sanitized builds.\""
    },
    {
      "commit": "599fed4bfc394aa5f5735a06ccd2415e1ab4706f",
      "tree": "922e1dcd418f183d689a1c5785727c680b59af2e",
      "parents": [
        "1e189360cbb0bbed740f0949f904d64e4ed13fd2"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Nov 01 11:05:45 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Nov 03 10:02:54 2017 -0700"
      },
      "message": "Fix libandroidfw in integer sanitized builds.\n\nRefactors compare functions to avoid unsigned integer overflows in\nResourceTypes.cpp which were causing errors on integer sanitized builds.\n\nBug: 30969751\nTest: Compiled and booted an integer sanitized build.\n\nChange-Id: I0190aca2cee0689f7f5d142097917afbeae7dda9\n"
    },
    {
      "commit": "4c7db0543e062a5fb98c2e104379554a52fd7342",
      "tree": "e85604407cf4aed1f41410e493ab601e26cdf250",
      "parents": [
        "416a66cd6ca58c583f5e8e2c713821a6a509729f",
        "498c409dec36a197b1afea1db4c74bd427f25c01"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 03 10:32:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 03 10:32:30 2017 +0000"
      },
      "message": "Merge \"ZipUtils: Rewrite in terms of zip_archive::Inflate.\" am: f941215d56 am: 1bed4d4880\nam: 498c409dec\n\nChange-Id: I3c0f754ee0fdea0373293f06081b4a3230b87e09\n"
    }
  ],
  "next": "a07e12251d5b246d2d7188df998a6f0487b09ed1"
}
