)]}'
{
  "log": [
    {
      "commit": "af3fb3efe4869174b71d957c19435af4937f2be1",
      "tree": "7a60dc6e2fcbff23bdac3696f9af086fa2accea7",
      "parents": [
        "a8452ed2a675d3f69ff8e6b281a176b69155dcd7",
        "c43e89f9731b39ef4c7f6bc1f2eb0ae724386c45"
      ],
      "author": {
        "name": "nharold",
        "email": "nharold@google.com",
        "time": "Thu Jan 25 05:50:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 25 05:50:33 2018 +0000"
      },
      "message": "Merge \"Move Keepalive out of IpSecTransform.Builder\""
    },
    {
      "commit": "cf8c3fe19c7d7dfebb03f853eab1af91a00d5888",
      "tree": "9fe52b1f41d8461f6592b98cc6c11232f2411dc2",
      "parents": [
        "f4dc715575eeef0274f8c66a113decc6d50efccc"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jan 25 09:41:51 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jan 25 04:51:44 2018 +0000"
      },
      "message": "Fix a bug where a NetworkAgent gets repeatedly torn down\n\nmUids is not marshalled correctly when null so if the\nNetworkAgent runs in another process and is not a VPN then\nthe system will see its allowed Uids as being the empty\nlist (\u003d nobody can use this network) instead of a null\nlist (\u003d everybody can use this network). This breaks\nemulator networking.\n\nBug: 72436966\nTest: runtests frameworks-net\nTest: also manual testing, this does fix emulator networking\n      and seems not to break phone networking\nChange-Id: Id2bbf3808e80b19cd055c832c11cf72372710942\n"
    },
    {
      "commit": "c43e89f9731b39ef4c7f6bc1f2eb0ae724386c45",
      "tree": "a12ba54be55907554ae5451cdb56c411146fa0d7",
      "parents": [
        "2a8c24be18dfc3d7cb3f405bee898613b23a212e"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Dec 06 19:12:28 2017 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Jan 24 19:32:04 2018 -0800"
      },
      "message": "Move Keepalive out of IpSecTransform.Builder\n\nThe lifecycle of Keepalive offloading is, unfortunately\ndifferent from that of an IpSecTransform. Because starting\na keepalive is fundamentally asynchronous, and isn\u0027t valid\nuntil after a transform exists, it will now be a separate\noptional procedure that may succeed or fail. It remains\nlinked with a Transform by the need for a Transform to exist\nin order to initiate a Keepalive.\n\nBug: 38350389\nTest: compilation\nChange-Id: Ia76fccee41f86d694dff436043293d0c0762c041\n"
    },
    {
      "commit": "50cfaa40ca0a711de57f7cf934cd87502424bf34",
      "tree": "92a7adaa73987897f0ee9f9acc09d4ebc997981a",
      "parents": [
        "d3dac85e46dc438304df752f48498e03e58f7b17",
        "071bcaa906eabd3e01afa06e72720bdb92897bc3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 23:09:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 23:09:28 2018 +0000"
      },
      "message": "Merge \"Set Zygote.DISABLE_HIDDEN_API_CHECKS for system apps\""
    },
    {
      "commit": "d3dac85e46dc438304df752f48498e03e58f7b17",
      "tree": "8f676a8e2ebb70d006bafe3f86437dccc7462a9c",
      "parents": [
        "ec44a402d2c90a6d7e57f51a99d9e1f5e136a839",
        "45a9b5dbbc071d777b8d22c085ba33298afcac49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 21:49:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 21:49:00 2018 +0000"
      },
      "message": "Merge \"Add scan interval and window lengths to Settings.Global.\""
    },
    {
      "commit": "071bcaa906eabd3e01afa06e72720bdb92897bc3",
      "tree": "05e4ebe4ee06cd9007548ddef346c710f3d61bdc",
      "parents": [
        "ec44a402d2c90a6d7e57f51a99d9e1f5e136a839"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 17 18:06:47 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 24 21:42:28 2018 +0000"
      },
      "message": "Set Zygote.DISABLE_HIDDEN_API_CHECKS for system apps\n\nWhen forking a process for a system app, pass a flag to ART that\nwill disable enforcement of hidden API access checks.\n\nTest: manual\nBug: 64382372\nChange-Id: I5ba81d84a44c9467613f060428b11e1d9d725bd3\n"
    },
    {
      "commit": "7c48e0e074c62eccf0fb6fdad8fd03b4b6107c23",
      "tree": "97a54d9ed040041cbe982e8a69d76f09c834504c",
      "parents": [
        "1f568c14acdff2270b981885966032c73b24399a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 18 15:25:18 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 24 14:12:33 2018 +0000"
      },
      "message": "Set DEXOPT_DISABLE_HIDDEN_API_CHECKS for system apps\n\nFor now, system apps will be exempt from hidden API access checks.\nPass the appropriate flag to dexopt.\n\nTest: manual\nBug: 64382372\nBug: 72305689\nMerged-In: I5676ffa3a5ba680bf5f6bab0b62f0acf4a933097\nChange-Id: Idc3067d2c6040f15fe0f051090ba45efe591ebae\n"
    },
    {
      "commit": "8149f6eb6c0280078dc41d72027d1241e875ea02",
      "tree": "edaf414a9ea4cf098e1d91c0d941f7f5b9f2dbd8",
      "parents": [
        "73f79ceae991d4e8b8d28c464fcf11a296877a68"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Jan 18 18:31:45 2018 -0800"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Jan 24 07:24:27 2018 +0000"
      },
      "message": "Add TunnelInterface API and KernelResourceRecords\n\nThis change adds one KernelResourceRecord type (TunnelInterfaceRecord),\nand adds methods for the creation of TunnelInterfaces, as well as the\napplication of Transforms to the given TunnelInterfaces\n\nAs part of the generation of ikeys/okeys, a ReserveKeyTracker manages a\njava bitset to avoid collisions and reserve/release keys.\n\nBug: 63588681\nTest: Compiles, CTS, unit tests all pass on AOSP_marlin\nChange-Id: I9e9b6455e27073acd4491eae666aa966b3b10e0f\n"
    },
    {
      "commit": "73f79ceae991d4e8b8d28c464fcf11a296877a68",
      "tree": "9c85e407faf22cc6bbe39282bae98c53e84e7167",
      "parents": [
        "8fd5b7e1c3efc51b10911be3a1f1cc98e8402556",
        "0b611f496e9dd6be62419d8cd7f2d164efefad1c"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Jan 24 05:53:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 05:53:29 2018 +0000"
      },
      "message": "Merge \"Add xfrm mark in IpSecConfig\""
    },
    {
      "commit": "6568170b32100986a65a042facd78b3dcaf1c5e7",
      "tree": "ea9394e8b6a1dd79aa0e5f29fd4678a43f60c11e",
      "parents": [
        "6e032246975e08c4264bd711a0ced6e1bbf74c47",
        "dda156ab0c5d66ad82bdcf76cda07cbc0a9c8a2e"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jan 24 04:09:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 04:09:44 2018 +0000"
      },
      "message": "Merge changes I3b16caad,Iaf5ea7ab,I09a94042,I69a39039,I35300309, ...\n\n* changes:\n  Let network requests see VPNs.\n  Move constants into a new file.\n  Make sure listen requests from VPN apps see their own networks\n  Add a test for new UID checking code.\n  Remove UID_RANGES_ADDED and REMOVED.\n  Move VPN allowed UIDs into NetworkCapabilities.\n  Pre-import to remove a conflict.\n"
    },
    {
      "commit": "6e032246975e08c4264bd711a0ced6e1bbf74c47",
      "tree": "949a8be17087ca6c3206d6bda88f97c14b4be948",
      "parents": [
        "a85291bfcfc0e4028328b492b0c8917853f27cb0",
        "93afbf258f554e980b58c3c67d55ebbb3e4eb915"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 04:08:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 04:08:29 2018 +0000"
      },
      "message": "Merge changes from topic \"bpfStats\"\n\n* changes:\n  Use /proc/net/dev to get stats summary\n  Add bpf support for NetworkStatsFactory\n  Add BPF support for NetworkStatsService\n"
    },
    {
      "commit": "45a9b5dbbc071d777b8d22c085ba33298afcac49",
      "tree": "9b6de47376bb98c6f8d55cfdde3e1d6fe1d12077",
      "parents": [
        "c3a209382cc05d532a4872670730023526e2c537"
      ],
      "author": {
        "name": "Jeremy Klein",
        "email": "jlklein@google.com",
        "time": "Wed Jan 10 18:01:46 2018 -0800"
      },
      "committer": {
        "name": "Jeremy Klein",
        "email": "jlklein@google.com",
        "time": "Tue Jan 23 16:17:22 2018 -0800"
      },
      "message": "Add scan interval and window lengths to Settings.Global.\n\nThis will enable running experiments to determine the\neffects on battery life of changing these values.\n\nBug: 71765044\nTest: Just adding a key value here. This is basically a no-op.\nChange-Id: I33a0b2da6e793ef508d020a3c2d321d5553c3fb1\n"
    },
    {
      "commit": "e0d448f31eb9f7e63d13ef45b04853d95c00670a",
      "tree": "ec1fd6b73015a1f91f17b45d81b140b25668b027",
      "parents": [
        "fb24180fe09de48259c8c093065516af6a6c7d52"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Tue Jan 23 11:01:28 2018 -0800"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Tue Jan 23 23:25:54 2018 +0000"
      },
      "message": "Expose applyTunnelModeTransform as a system API\n\nSimple change to expose systemAPI for applyTunnelModeTransform\n\nBug: 36033193\nTest: All CTS, unit tests passing\nChange-Id: I2d857c048bc0dc80c3949387f946b1f5adf0527e\n"
    },
    {
      "commit": "572f65fb5821a9e7459a5d90344f05f5cf3f4227",
      "tree": "312560ba6d96405cb2b3fe13323d2b003022e556",
      "parents": [
        "0a1dd194aaa0369bb87731df708e86229a7d8e40",
        "bceb382572317df111d94f31edab70d4064ce033"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 18:14:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 18:14:00 2018 +0000"
      },
      "message": "Merge \"Use the correct value for Process.WEBVIEW_ZYGOTE_UID.\""
    },
    {
      "commit": "cdc0a084d18baded7067a3af8723026e8a00bc1b",
      "tree": "4cba091feb340d931d84d4ef084c33bb160196ee",
      "parents": [
        "df984fae2656104d84fec8fa876f2236d290da39",
        "c0a2e5f05d97fe527de4694fa3fe5ea43eca939d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 18:00:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 18:00:00 2018 +0000"
      },
      "message": "Merge \"Added new slot status related broadcast.\""
    },
    {
      "commit": "dda156ab0c5d66ad82bdcf76cda07cbc0a9c8a2e",
      "tree": "337139f4421aaf2427905a0d6189463a87c1dde4",
      "parents": [
        "918a68b3ca3d375335691230cc8fd7c974403717"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jan 10 21:19:32 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:38:00 2018 +0900"
      },
      "message": "Let network requests see VPNs.\n\nTest: runtest frameworks-net\nTest: also tested with VPN app\nTest: also cts passing\nChange-Id: I3b16caad7787c3c1f2921ca1583815c89efbadc5\n"
    },
    {
      "commit": "f474fc3ac1bf45e658431c665418ae508458e1d9",
      "tree": "b05b692709fe02c286274882c519e561bc92d1ae",
      "parents": [
        "0b214afb58263f79209d9b633bbfd324525d951e"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jan 17 15:10:05 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:38:00 2018 +0900"
      },
      "message": "Make sure listen requests from VPN apps see their own networks\n\nTest: runtest frameworks-net\nTest: CTS pass, including with the next patch which is what this\n      actually matters for\n\nChange-Id: I09a94042acbefa24ab884f95326e30d6ab280b82\n"
    },
    {
      "commit": "f213ca1345211b6e550e638230bd66e628acb6be",
      "tree": "1485e18c51f3c76f974b4b199dd60d4b9b1bbbbc",
      "parents": [
        "ecacd5e00bccb7896d0f7cf81115a503584bce43"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 16 18:43:05 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:38:00 2018 +0900"
      },
      "message": "Remove UID_RANGES_ADDED and REMOVED.\n\nTest: runtest frameworks-net\nTest: also tested with VPN app\nTest: also cts passing\nChange-Id: I3530030996daeba05a8f2fffc5c6e21ed62e3f40\n"
    },
    {
      "commit": "ecacd5e00bccb7896d0f7cf81115a503584bce43",
      "tree": "95726cfaf2165e8db615e5954bd9dbd6cb26d9db",
      "parents": [
        "ce1a9d8fd74ef102898a2723cd167697e271f710"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Dec 27 14:23:31 2017 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:38:00 2018 +0900"
      },
      "message": "Move VPN allowed UIDs into NetworkCapabilities.\n\nTest: runtest frameworks-net\nTest: also new specific tests for this new code\nTest: also tested with VPN app\nTest: also cts passing\nChange-Id: If0311bae2bf99dedac959febadecf4f92f3064b8\n"
    },
    {
      "commit": "ce1a9d8fd74ef102898a2723cd167697e271f710",
      "tree": "db4876f550bb73aecca16ad7c54c2d23d380f0a5",
      "parents": [
        "bf996dd479d933b1e6be8fae50d1517229047674"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:25:37 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:38:00 2018 +0900"
      },
      "message": "Pre-import to remove a conflict.\n\nTest: compiles and passes checkstyle\nChange-Id: I1ffdd88e6268fee0cf88992420ab21eb42928957\n"
    },
    {
      "commit": "d15c937f972b08e62516f361cf6bbe95b64132ce",
      "tree": "196e5130866bccbebf1131ccd6b7fbafca6dec15",
      "parents": [
        "0f9bce6883f2bbf1de1620d4014f037063d6d7b1"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jan 22 21:00:49 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 23 18:38:48 2018 +0900"
      },
      "message": "Support passing a template to NetworkStatsManager queries.\n\nCurrently, NetworkStatsManager queries and callbacks only allow\nselecting network traffic based on network identifiers:\nnetworkType, subscriptionId and networkId.  The code ends up\nconverting these into a template under the hood.\n\nNow that templates can express more fine-grained queries (e.g.,\nselect only roaming traffic, or select only traffic that\u0027s not\non the default network) add a hidden method to pass in a\ntemplate. This should have no security implications, as all the\naccess controls are performed in NetworkStatsService.\n\nBug: 35142602\nTest: android.app.usage.cts.NetworkUsageStatsTest passes\nChange-Id: Iab4afa26b34544299d2a9c501c1b0feb470e90a9\nMerged-In: Iab4afa26b34544299d2a9c501c1b0feb470e90a9\n"
    },
    {
      "commit": "0f9bce6883f2bbf1de1620d4014f037063d6d7b1",
      "tree": "8933d382ff7233a78142d08cc4de78679898adaf",
      "parents": [
        "f7fab104f92be481ec1723b08eef6b25e17af11e"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jan 22 11:54:46 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 23 18:38:48 2018 +0900"
      },
      "message": "Add metered, roaming, and defaultNetwork info to NetworkTemplate.\n\nThis will allow data usage clients to query for and receive\ncallbacks on data usage matching these conditions.\n\nBug: 35142602\nTest: atest FrameworksNetTests\nChange-Id: I4d985a2734eeab7ee454c09cc2098b6b3c671c23\nMerged-In: I4d985a2734eeab7ee454c09cc2098b6b3c671c23\n"
    },
    {
      "commit": "9781f785bc4d791047649d89b5fd386e722117c0",
      "tree": "5d9e47da6817121bcd7a5e5af770821be0c61801",
      "parents": [
        "d5876bc438c26ae13ebcef295ed3eba18f14c74a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jan 20 02:02:56 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 23 18:38:48 2018 +0900"
      },
      "message": "Add the defaultNetwork element to the netstats.proto.\n\nThis is in its own commit because AOSP has diverged from internal\nmaster.\n\nBug: 35142602\nTest: builds, boots\nChange-Id: I75fc85b961bc919e3d6c2adce6d6861c6f2c8379\nMerged-In: I75fc85b961bc919e3d6c2adce6d6861c6f2c8379\n"
    },
    {
      "commit": "d5876bc438c26ae13ebcef295ed3eba18f14c74a",
      "tree": "753b32ac98ebb9a643d06345d3d95b107ec82b63",
      "parents": [
        "bf996dd479d933b1e6be8fae50d1517229047674"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 01:12:58 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 23 18:28:07 2018 +0900"
      },
      "message": "Add getDefaultNetwork to the NetworkStats public API.\n\nThis allows an app using the public API to know whether the\ntraffic in a particular bucket was on the default network\n(i.e., the network was selected by the system), or not (i.e.,\nthe network was selected by the app).\n\nBug: 35142602\nTest: builds, boots\nTest: added coverage to NetworkUsageStatsTest CTS test, still passes\nChange-Id: I9f6669908fa119743b9c0aa0c31a03e5ebafa7db\nMerged-In: I9f6669908fa119743b9c0aa0c31a03e5ebafa7db\n"
    },
    {
      "commit": "93afbf258f554e980b58c3c67d55ebbb3e4eb915",
      "tree": "4cd78252d3a7d85ddee6e706badb6cbf2cf0c2ec",
      "parents": [
        "828f1b45fb302f68b5eb8934bf474177fa249c7c"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Thu Jan 18 19:48:52 2018 -0800"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Tue Jan 23 00:35:02 2018 -0800"
      },
      "message": "Use /proc/net/dev to get stats summary\n\nIf the qtaguid proc file is no longer exist, the device is running new\neBPF module to do traffic accounting. So the NetworkStatsFactory need to\nuse the proc/net/dev interface to get the per interface traffic stats\nsummary. Also, adding a test to verify the helper function work properly\n\nBug: 30950746\nTest: run NetworkStatsFactoryTest\nChange-Id: Ia36808bf02f1637dd41a3e7c50917b91b1a77524\n"
    },
    {
      "commit": "828f1b45fb302f68b5eb8934bf474177fa249c7c",
      "tree": "2a9daf59be1015dbb918617e0663a439c708cecc",
      "parents": [
        "aedd6a3bdcb0b63c0bd6c6f01b720cddfedd51b8"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Mon Nov 20 17:03:59 2017 -0800"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Tue Jan 23 00:34:53 2018 -0800"
      },
      "message": "Add bpf support for NetworkStatsFactory\n\nAdd the native method used to read the detail information of network\nstats from bpf maps. The native method of NetworkStatsFactory should\nchoose the correct implementation to get the stats detail depending on\nthe kernel version. Currently the bpf result is printed as a reference\nand the actual behavior of NetworkStatsFactory should not change.\n\nTest: NetworkStatsFactory related cts test should not fail.\nBug: 30950746\nChange-Id: I4715a23559b5b2306bd556cea0431f0ed172a993\n"
    },
    {
      "commit": "c0a2e5f05d97fe527de4694fa3fe5ea43eca939d",
      "tree": "31f5560487ebe865aea846b034ae0c99b069f677",
      "parents": [
        "7e3b1832c461b751e5170434bbb5545a8d6b6e58"
      ],
      "author": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Thu Jan 18 17:51:53 2018 -0800"
      },
      "committer": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Mon Jan 22 18:31:01 2018 -0800"
      },
      "message": "Added new slot status related broadcast.\n\nTest: none\nBug: 64131518\nMerged-in: I0a5825a1d121dc22f042fd71598f58e064e9e2a2\nChange-Id: I0a5825a1d121dc22f042fd71598f58e064e9e2a2\n"
    },
    {
      "commit": "174df238ac2ce4e952c88d0aa83505aa123629e5",
      "tree": "5b12bfd955fdc3160147e0e62f85c38f3ba0f3e5",
      "parents": [
        "1683b6968d40f4fdccdd62b5b98c103024db1f5e",
        "0c961165c25082936a8852f5ec97a1a820936fc2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 00:52:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 00:52:00 2018 +0000"
      },
      "message": "Merge \"Camera: remove NOT_PRESENT cameras\""
    },
    {
      "commit": "1683b6968d40f4fdccdd62b5b98c103024db1f5e",
      "tree": "70bacc5c62833e0167300d5c7db88eb3e0b1cd59",
      "parents": [
        "b60e42becd517fe88640a9c9682f9e1fa5039e2a",
        "1e507e6178fcc45f184d9164061d2ecfd695a055"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 23 00:15:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 00:15:15 2018 +0000"
      },
      "message": "Merge \"Remove obsolete NetworkStats.Entry constructor.\""
    },
    {
      "commit": "940c0341f00872e5e19ea28cc8389b9bfd1c3abc",
      "tree": "3186fcab906aba8d44874ad8356bcef339331941",
      "parents": [
        "7ee26e72cf3cecf782ad822a6795a6e018ac2dba",
        "571b700fb6bdb90eed59d16705ef4ae2fb69a9d3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 22 18:22:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 22 18:22:07 2018 +0000"
      },
      "message": "Merge \"Debug: Add attachJvmtiAgent with classloader\""
    },
    {
      "commit": "7ee26e72cf3cecf782ad822a6795a6e018ac2dba",
      "tree": "d2296f80408efc90a69b2653320c3e61c91794c8",
      "parents": [
        "7e3b1832c461b751e5170434bbb5545a8d6b6e58",
        "f33f03134442538a637627decaf57c859acbc824"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Mon Jan 22 17:57:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 22 17:57:15 2018 +0000"
      },
      "message": "Merge \"Rename create/delete transform methods\""
    },
    {
      "commit": "bceb382572317df111d94f31edab70d4064ce033",
      "tree": "c87260dfd74623d445fa7e05db7c186e76342c41",
      "parents": [
        "7e3b1832c461b751e5170434bbb5545a8d6b6e58"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Mon Jan 22 12:26:39 2018 -0500"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Mon Jan 22 12:29:21 2018 -0500"
      },
      "message": "Use the correct value for Process.WEBVIEW_ZYGOTE_UID.\n\nWhen the libcutils constant was added there a merge conflict, which\ncaused the AID_WEBVIEW_ZYGOTE value to land with a different value than\nthe Java-side Process value. Nothing yet uses the Process constant, so\nthere were no ill effects.\n\nTest: m\nChange-Id: I8cc87bce1ddbdcdaf79d85c828d86837e96cce21\n"
    },
    {
      "commit": "1e507e6178fcc45f184d9164061d2ecfd695a055",
      "tree": "b6918a9794457ca321c78072cec923109179a4de",
      "parents": [
        "7e3b1832c461b751e5170434bbb5545a8d6b6e58"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun Jan 21 23:00:55 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun Jan 21 23:01:35 2018 +0900"
      },
      "message": "Remove obsolete NetworkStats.Entry constructor.\n\nThe only caller is telephony code, and it\u0027s being fixed in this\ntopic.\n\nBug: 35142602\nTest: builds, boots\nChange-Id: Ia77a1c2c297037f311c2355610c206cd8e3192c4\n"
    },
    {
      "commit": "0c961165c25082936a8852f5ec97a1a820936fc2",
      "tree": "32769af4fd6bcf8223022f2e131004eaac6ca1f2",
      "parents": [
        "8fb3bdc36f7712511a5ab4a1c25a481e1d4982a8"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 02 11:17:58 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Sat Jan 20 00:55:45 2018 +0000"
      },
      "message": "Camera: remove NOT_PRESENT cameras\n\nSo hot plug cameras won\u0027t stay forever in\ndevice status map.\n\nChange-Id: I0290ff2eccb3d48a0f72c48f32a97909d20623ad\n"
    },
    {
      "commit": "8fb3bdc36f7712511a5ab4a1c25a481e1d4982a8",
      "tree": "e4c5ad09462ae8ab61ad82d71cf5ac92763720a8",
      "parents": [
        "08d07aec5072f2fc4b461232a24c7c4e1a61723c",
        "dad385ae29e13a04500fd698e585f933cd352e53"
      ],
      "author": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Fri Jan 19 20:39:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 19 20:39:43 2018 +0000"
      },
      "message": "Merge \"Make LTE signal bar thresholds customizable with carrier configuration\""
    },
    {
      "commit": "08d07aec5072f2fc4b461232a24c7c4e1a61723c",
      "tree": "621d5990671a930ac603e6a1779c97d4a8ca461d",
      "parents": [
        "c48f4cb7f1384842f615ff527fbaab70449c4d81",
        "c47eaccf7c09541c6dd3d3ebedcb2e224346d903"
      ],
      "author": {
        "name": "nharold",
        "email": "nharold@google.com",
        "time": "Fri Jan 19 19:43:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 19 19:43:17 2018 +0000"
      },
      "message": "Merge \"Add Tunnel Interface APIs to IpSecManager\""
    },
    {
      "commit": "dad385ae29e13a04500fd698e585f933cd352e53",
      "tree": "13eba25a81f71b33fed16f0925099deb6e473aef",
      "parents": [
        "1d5e2c3c37e39787625dc4acd3d43806f0688f73"
      ],
      "author": {
        "name": "Kitta Koutarou",
        "email": "koutarou.x.kitta@sonymobile.com",
        "time": "Fri Dec 01 19:19:49 2017 +0900"
      },
      "committer": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Fri Jan 19 10:55:24 2018 -0800"
      },
      "message": "Make LTE signal bar thresholds customizable with carrier configuration\n\nMove config_lteDbmThresholds to KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY\nto control the LTE signal bar thresholds by carrier configuration.\n\nTest: manual - Checked that the LTE signal bar thresholds can be\ncontrolled by carrier config.\nTest: auto - Confirmed that run\nServiceStateTrackerTest#testSignalStrength and it has no problem.\nBug: 70698348\nChange-Id: Ia613663956ff00fbf299dcf69113733eae5a3458\nMerged-In: Ia613663956ff00fbf299dcf69113733eae5a3458\n"
    },
    {
      "commit": "f33f03134442538a637627decaf57c859acbc824",
      "tree": "bd79788c53a182d5aee71d339795c87a2968549b",
      "parents": [
        "e1992384e0067081f89767f5be5ddcd4ab7be316"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Jan 18 14:38:16 2018 -0800"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Fri Jan 19 10:43:01 2018 -0800"
      },
      "message": "Rename create/delete transform methods\n\nCreateTransportModeTransform and DeleteTransportModeTransform are both\nagnostic as far as which mode of transform it creates/deletes. As such,\nto facilitate the implementation of tunnel mode, this patch renames them\nto CreateTransform and DeleteTransform, along with all test names.\n\nBug: 63588681\nTest: frameworks/base unit tests and CTS tests run, passed\nChange-Id: I1f015eb7ad0e85fca966658a9402485ca2b44091\n"
    },
    {
      "commit": "c48f4cb7f1384842f615ff527fbaab70449c4d81",
      "tree": "b59bde4e2e9884877effc1e035df1966f3ab9011",
      "parents": [
        "0fc9900802e695b3ff64d17438efa88257a29d1e",
        "d3e4a1e250194bbf59b1e04b60711f97001f61f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 14:48:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 19 14:48:52 2018 +0000"
      },
      "message": "Merge changes Id8776d14,Ifa291c62,I5ea9d200\n\n* changes:\n  Track and persist in stats whether traffic is on the default network.\n  Add the default network to NetworkStats and NetworkStatsCollection.\n  Pass all default networks to NetworkStatsService\n"
    },
    {
      "commit": "d3e4a1e250194bbf59b1e04b60711f97001f61f8",
      "tree": "195e04139c9f7092f465a2a4a78a93a5f9648de1",
      "parents": [
        "ada23ed56addb7c06a489c7464ae228a46588b95"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 01:12:04 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 19:49:16 2018 +0900"
      },
      "message": "Track and persist in stats whether traffic is on the default network.\n\nThis change adds the defaultNetwork to the ident based on current\nsystem networking state, and persists that value to flash.\n\nBug: 35142602\nTest: runtest frameworks-net\nTest: downloaded files using default/non-default networks while watching dumpsys netstats\nChange-Id: Id8776d149b2977548a9eb455ad4926af55e25aba\n"
    },
    {
      "commit": "ada23ed56addb7c06a489c7464ae228a46588b95",
      "tree": "6a4a2026428495baf51ba38ae5d09b2eee4c314a",
      "parents": [
        "c78da2937cf79e11d439df7730fa29c82b177ab3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 01:05:20 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 19:49:16 2018 +0900"
      },
      "message": "Add the default network to NetworkStats and NetworkStatsCollection.\n\nThis allows us to maintain NetworkStats entries that track\nwhether the traffic was on the default network.\n\nAt the moment, the stats collection code always passes in\nDEFAULT_NETWORK_NO. However, this value is a no-op, since it is\nnot persisted to disk. Only the ident, the uid/set/tag, and the\npacket/byte/operation counters are persisted.\n\nA future change will add defaultNetwork to the ident and start\npersisting it.\n\nBug: 35142602\nTest: runtest frameworks-net\nChange-Id: Ifa291c62c0fa389b88e5561086a29dcd7cee2253\n"
    },
    {
      "commit": "c78da2937cf79e11d439df7730fa29c82b177ab3",
      "tree": "5c67271e8396bf18783cf7c5a1b5c6d515aa583c",
      "parents": [
        "a3bf36f05009a5b809eb4dc04185c0fba4dddaca"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 00:50:48 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Jan 19 16:40:10 2018 +0900"
      },
      "message": "Pass all default networks to NetworkStatsService\n\nThis will allow NetworkStatsService to treat traffic on these\nnetworks differently from traffic where the app selects a network\nthat is not the default.\n\nBug: 35142602\nTest: runtest frameworks-net\nChange-Id: I5ea9d200d9fb153490c6108bb9390bf152f297da\n"
    },
    {
      "commit": "571b700fb6bdb90eed59d16705ef4ae2fb69a9d3",
      "tree": "ece227d7f2c2ef69ca797187dde6c8876aa00b82",
      "parents": [
        "8353a39ecc8e44bb9c084bcaf5ede8469d64d260"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 16 15:11:29 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 18 22:02:53 2018 -0800"
      },
      "message": "Debug: Add attachJvmtiAgent with classloader\n\nAdd classloader support to android.os.Debug.attachJvmtiAgent. For\nthe original version without a given classloader, look up the\napplication\u0027s main classloader.\n\nBug: 65016018\nBug: 70901841\nTest: m\nTest: cts-tradefed run commandAndExit cts-dev\nChange-Id: I649b6883e05dc2f75073fe1f978423f6a7b880df\n"
    },
    {
      "commit": "0fc9900802e695b3ff64d17438efa88257a29d1e",
      "tree": "5a8ffd64641bd0ca2d501086ef77c2c899bc4728",
      "parents": [
        "8353a39ecc8e44bb9c084bcaf5ede8469d64d260",
        "5d70fc9ae34138f34d2dd69b93a8ca718f0b14fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 04:25:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 19 04:25:12 2018 +0000"
      },
      "message": "Merge \"Added new SIM state related broadcasts.\""
    },
    {
      "commit": "898137f81744ca26e980de56c69ff6f780b8caff",
      "tree": "85efcf69ea426555748c3e4f864373b5c40a43a5",
      "parents": [
        "d6cd4b241a7c51cf2611e4b1cf30358c77bf9804",
        "2ef0cbd8bb070a3268ba5e832c4994415fcfbabf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 01:41:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 19 01:41:08 2018 +0000"
      },
      "message": "Merge \"HIDL: Check error value.\""
    },
    {
      "commit": "0b611f496e9dd6be62419d8cd7f2d164efefad1c",
      "tree": "68560acf16096b3d242b7893e09d54a7a88ac363",
      "parents": [
        "3965e3bbc615c0476202baff35a6006eef140b94"
      ],
      "author": {
        "name": "Di Lu",
        "email": "ludi@google.com",
        "time": "Thu Jan 11 11:35:25 2018 -0800"
      },
      "committer": {
        "name": "Di Lu",
        "email": "ludi@google.com",
        "time": "Thu Jan 18 15:23:56 2018 -0800"
      },
      "message": "Add xfrm mark in IpSecConfig\n\nBug: 63589600\nTest: runtest frameworks-net\nChange-Id: I2d38d781b8b31d8bf39fd4e9a7e31509f15a9e16\n"
    },
    {
      "commit": "5d70fc9ae34138f34d2dd69b93a8ca718f0b14fd",
      "tree": "cc37bd3afe15f0d4414f7536f99daea235ab65bd",
      "parents": [
        "277c7d248c23e43082143657d982304ca6e28312"
      ],
      "author": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Fri Jan 12 17:40:29 2018 -0800"
      },
      "committer": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Thu Jan 18 14:44:07 2018 -0800"
      },
      "message": "Added new SIM state related broadcasts.\n\nTest: Basic telephony sanity and unit tests\nBug: 64131518\nMerged-in: Ie3d157e79a7040c161b9038c875a4a4f49d535ff\nChange-Id: Ie3d157e79a7040c161b9038c875a4a4f49d535ff\n"
    },
    {
      "commit": "75d3189444ac05f6fcb5570932aa8585f008e59c",
      "tree": "2c8c6b594dca8098556106ba11e1030cb88e320a",
      "parents": [
        "524fe66549d0e3c1d52875d7d91a67050263858c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 18 22:01:59 2018 +0900"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 18 14:46:13 2018 -0700"
      },
      "message": "Add ability to override subscriber capabilities.\n\nIn a future set of CLs, NPMS will offer to override a handful of\ncapabilities on a per-subId basis.  Define a no-op version of the\ninterface to make it easier to add new methods in the future.\n\nTest: bit FrameworksNetTests:android.net.,com.android.server.net.\nTest: bit FrameworksTelephonyTests:com.android.internal.telephony.dataconnection.DataConnectionTest\nBug: 64133169\nChange-Id: I03dfd98463861f0338c4174e8d8a88c300ea5b55\n"
    },
    {
      "commit": "2433baf25153c55ad5adfd2645636c2260098950",
      "tree": "97f4b131bed2ea6ae01dbad6c50d2d083f43aebb",
      "parents": [
        "e1992384e0067081f89767f5be5ddcd4ab7be316"
      ],
      "author": {
        "name": "Arthur Hsu",
        "email": "arthurhsu@google.com",
        "time": "Thu Jan 11 11:05:11 2018 -0800"
      },
      "committer": {
        "name": "Arthur Hsu",
        "email": "arthurhsu@google.com",
        "time": "Thu Jan 18 19:36:00 2018 +0000"
      },
      "message": "Add config_supportBluetoothPersistedState.\n\nAdd a config to indicate whether a device supports Bluetooth persisted\nstate and defaulted to true. In ARC++, Bluetooth adapter state can be\nout-of-sync from its container if the user changes it before the\ncontainer being available.\n\nWhen set to false, this config prevents Android to auto start the\nBluetooth. ARC++ will set this to false and sync Bluetooth state later\nwith Android.\n\nRelated CL is ag/931281\n\nBug: 62413625, 69965109\nTest: On sailfish, Bluetooth on/off correctly and state persisted across reboot\nChange-Id: Ie298929eb6b882108a12e8b95f61e3c9f8eb63ea\n"
    },
    {
      "commit": "e1992384e0067081f89767f5be5ddcd4ab7be316",
      "tree": "83eeaa6b20f20667c70b5cd1c7cedc554ee8e99e",
      "parents": [
        "b3c2efc6156cb86ae1f8958ee89a8ac404b190df",
        "e48468d8be0c74fec135bb12d84b23cc0168cd53"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 18 16:42:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 16:42:33 2018 +0000"
      },
      "message": "Merge \"Added APIs for Connection-oriented channels\""
    },
    {
      "commit": "b3c2efc6156cb86ae1f8958ee89a8ac404b190df",
      "tree": "012a4ff837a2201d1e49d3658b9a58a5cab50478",
      "parents": [
        "a5bc474e2c092a76b48be4a20a191a272f99f5ac",
        "3d3d7f1a8d711210ec48ccbc15306d43130e0dba"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jan 18 09:18:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 09:18:27 2018 +0000"
      },
      "message": "Merge \"Javadoc fixes to Time\""
    },
    {
      "commit": "ffaddf73debe46dc49ced980423cc443d4f1a76f",
      "tree": "e5057724ca3187c82924fb28527622e907b3c436",
      "parents": [
        "a3bf36f05009a5b809eb4dc04185c0fba4dddaca",
        "9b2a10f55d1659895e20ec0b88dd023ae18770eb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 18 03:28:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 03:28:34 2018 +0000"
      },
      "message": "Merge \"Add \"not congested\" network capability.\""
    },
    {
      "commit": "aacb56a7c0626f72e3badecf6d38c9740b22207f",
      "tree": "ffaef796ce097fb509a7f0e72c34317ad5fbf9dd",
      "parents": [
        "877cbe1dc2a870017f22418750f73b4c8c23884f",
        "d920134258e385250f37d73205139b477beb7afc"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 18 01:17:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 01:17:17 2018 +0000"
      },
      "message": "Merge \"Add public API methods for private DNS.\""
    },
    {
      "commit": "877cbe1dc2a870017f22418750f73b4c8c23884f",
      "tree": "6691b2cf6b546256d9ddee5be0717529748fdb1d",
      "parents": [
        "7839672e2297e6287d11c072fb0bc2ceafb975b2",
        "a513792e9ea0d104d7274c8ae50d0bcab40e0bb9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 18 00:46:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 00:46:57 2018 +0000"
      },
      "message": "Merge \"Added internal API getMaxConnectedAudioDevices()\""
    },
    {
      "commit": "c47eaccf7c09541c6dd3d3ebedcb2e224346d903",
      "tree": "e25d7353a6fb3de6e07a47f45dc5f95c45c17603",
      "parents": [
        "1f00565433b779b8e98087767d905d1fb9f6e902"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 16:09:24 2018 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 16:14:17 2018 -0800"
      },
      "message": "Add Tunnel Interface APIs to IpSecManager\n\nAdd a new interface and a new management object,\nIpSecTunnelInterface to the IpSecManager surface.\nThis object will be used to control IPsec tunnels.\n\n-Add IpSecTunnelInterface object\n-Add methods to create and use an IpSecTunnelInterface\n-Update the IpSecTransform builder to create Tunnel\n mode IpSecTransform objects (usable with an IpSecTunnel)\n\nBug: 36033193\nTest: compilation\nChange-Id: Ib6948b12c15c93674234dc36288058ae44435b90\n"
    },
    {
      "commit": "7839672e2297e6287d11c072fb0bc2ceafb975b2",
      "tree": "540abb9c3f6c67b4ed529ada8fc8a56120df2cb1",
      "parents": [
        "dbfaf313571a322c97fed9f4635daafdbdcb2152",
        "c8176efe2e2dc3aadc69c32b6aa9180751778e8f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 17 23:58:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 23:58:10 2018 +0000"
      },
      "message": "Merge \"Reland: Move zygote\u0027s seccomp setup to post-fork\""
    },
    {
      "commit": "dbfaf313571a322c97fed9f4635daafdbdcb2152",
      "tree": "378a8db233f9bdabfd714e75608b929088c6b87f",
      "parents": [
        "6cb33a1b5479e7903d0a90da91344c1005effe46",
        "843d380cf10a929ecc312e51133aef51dd6942d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 17 23:48:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 23:48:40 2018 +0000"
      },
      "message": "Merge \"Bluetooth in band ring\""
    },
    {
      "commit": "2ef0cbd8bb070a3268ba5e832c4994415fcfbabf",
      "tree": "18540b9f68e5945bb52ec4d7b351e655554f936f",
      "parents": [
        "05284b6c6a1f19ff98991f77689e3feefc888a6a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jan 17 13:26:35 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jan 17 13:26:35 2018 -0800"
      },
      "message": "HIDL: Check error value.\n\nHwParcel\u0027s verifySuccess method doesn\u0027t actually check\nto see if the call succeeded.\n\nChange-Id: Iaa99cbfd6f5f211facaa20c09c5e1dae8e2b8a7f\nFixes: 71813867\nTest: boot walleye, hidl_test_java\n"
    },
    {
      "commit": "3d3d7f1a8d711210ec48ccbc15306d43130e0dba",
      "tree": "450de5901714c71213d758cc2e293847bb90584c",
      "parents": [
        "3cff120fcb256969292b5d8a2f2071aa6f834e2b"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jan 17 21:13:21 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jan 17 21:13:21 2018 +0000"
      },
      "message": "Javadoc fixes to Time\n\nFixing errors noticed while inspecting the code.\n\nTest: None - docs only\nChange-Id: Ib6d427c4339f0b8e56eb72b12e89c1095245d6b4\n"
    },
    {
      "commit": "d920134258e385250f37d73205139b477beb7afc",
      "tree": "a2cde96f44ba4ac02f2009c787b28ab8c5dcf492",
      "parents": [
        "90b4e47d9408e80564d3ea730281643855c40ae6"
      ],
      "author": {
        "name": "dalyk",
        "email": "dalyk@google.com",
        "time": "Wed Jan 17 14:20:55 2018 -0500"
      },
      "committer": {
        "name": "dalyk",
        "email": "dalyk@google.com",
        "time": "Wed Jan 17 15:46:21 2018 -0500"
      },
      "message": "Add public API methods for private DNS.\n\nTest: Small modifications to LinkProperties test.\nBug: 71828272\nChange-Id: Id2f5acb5469132ec4a917837739f42085c71498e\n"
    },
    {
      "commit": "6725ff729b782a79ef8f9db3355507b0a7ee5158",
      "tree": "19c221d988a66ae023f5d6509bd0a87a606e7171",
      "parents": [
        "fc3b50e9b693b5eec385070afa6b7fd079a162c7",
        "f73d252c8f51936eec49313f4cc26f1da7727b6c"
      ],
      "author": {
        "name": "nharold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 19:07:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 19:07:10 2018 +0000"
      },
      "message": "Merge \"IpSec - API Tweak for removeTransportModeTransform\""
    },
    {
      "commit": "c8176efe2e2dc3aadc69c32b6aa9180751778e8f",
      "tree": "d770a17ed5570a4d04ff0a1acb8de45f3b2b2991",
      "parents": [
        "106a915256abeebf6ce91165323caf50a16b4782"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Jan 08 12:43:00 2018 -0800"
      },
      "committer": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jan 17 09:30:44 2018 -0800"
      },
      "message": "Reland: Move zygote\u0027s seccomp setup to post-fork\n\nBefore this change, seccomp filter setup is as early as in zygote\u0027s main\nfunction.  To make it possible to split app and system server\u0027s filter,\nthis postpone the setup to after fork.  It also starts to call app\nspecific and system server specific setup function.\n\nThe filter setup is done in Zygote\u0027s ForkAndSpecializeCommon.  This is\nbecause adding a seccomp filter must be done when either the caller has\nCAP_SYS_ADMIN or after the PR_SET_NO_NEW_PRIVS bit is set.  Given that\nsetting PR_SET_NO_NEW_PRIVS breaks SELinux domain transition\n(b/71859146), this must be done after Zygote forks but before\nCAP_SYS_ADMIN is droppped.\n\nTest: (cts) -m CtsSecurityTestCases -t android.security.cts.SeccompTest\nTest: no selinux denial flood in dmesg with selinux enforced\nTest: debuggerd -b `pidof com.android.phone`  # logcat shows tombstoned\n      received crash request\nBug: 63944145\nBug: 71859146\n\nChange-Id: I8215c8530d3d0de504a270488f8e29635805e8b0\n"
    },
    {
      "commit": "106a915256abeebf6ce91165323caf50a16b4782",
      "tree": "823526485d111e157382798d51fbb71cb12d5745",
      "parents": [
        "3cff120fcb256969292b5d8a2f2071aa6f834e2b",
        "3d44ed0dfe33da3b9f08d102723d7fc842e18f74"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 17 13:42:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 13:42:29 2018 +0000"
      },
      "message": "Merge \"Pass targetSdkVersion to installd\""
    },
    {
      "commit": "a513792e9ea0d104d7274c8ae50d0bcab40e0bb9",
      "tree": "5e704cad60e0fbdeda2591f5c1c2e1e801cd9ca2",
      "parents": [
        "3cff120fcb256969292b5d8a2f2071aa6f834e2b"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Jan 17 02:09:53 2018 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Jan 17 02:09:53 2018 -0800"
      },
      "message": "Added internal API getMaxConnectedAudioDevices()\n\nThe API can be used to obtain the maximum number of connected\ndevices for A2DP or HFP.\n\nTest: Manual\nBug: 64767509\nChange-Id: I80b8a1c85e33ae0b23fdc4812f8991a4202d9abc\n"
    },
    {
      "commit": "9b2a10f55d1659895e20ec0b88dd023ae18770eb",
      "tree": "3026f12f4a4dee1f5386c13315cb5e228513c936",
      "parents": [
        "73200d9ac9438d95f28f0b9df3a7eddbfbf18eae"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 17 13:27:03 2018 +0900"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 17 02:27:04 2018 -0700"
      },
      "message": "Add \"not congested\" network capability.\n\nCan be used by a network to indicate when it\u0027s congested, meaning that\napps should defer network traffic that could be done at a later time.\n\nTest: bit FrameworksNetTests:android.net.,com.android.server.net.,com.android.server.connectivity.VpnTest,com.android.server.ConnectivityServiceTest\nBug: 64133169\nChange-Id: I8a60b6f02dd0f42268b59690556c16335d34e220\n"
    },
    {
      "commit": "f73d252c8f51936eec49313f4cc26f1da7727b6c",
      "tree": "dae7f99982d9533160b4a2d01953ceccaa50e9b4",
      "parents": [
        "b548d251b7995a5b76e495978b61ad6c3c4183d1"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 01:00:20 2018 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 01:11:46 2018 -0800"
      },
      "message": "IpSec - API Tweak for removeTransportModeTransform\n\nBecause IpSecTransforms are now unidirectional,\nand because the only mechanism for removing Transforms\nremoves it from both directions, the API can no longer\nuse the Transform parameter to meaningfully validate\nthat the caller had applied a transform. Since that\nfunctionality was as-yet unimplemented and is now\ninfeasible, the transform parameter is removed.\n\nBug: 72079356\nTest: cts - IpSecManagerTest; runtest frameworks-net\nChange-Id: If19b0d34bdc6daf31a40d6d62bff326dcbca08c0\n"
    },
    {
      "commit": "3cff120fcb256969292b5d8a2f2071aa6f834e2b",
      "tree": "3e25471a7c1cac022d5fe60bdf72cf57826bbf74",
      "parents": [
        "809bcfc45eee0076d9ea8ab18688b49426d4a40d",
        "b548d251b7995a5b76e495978b61ad6c3c4183d1"
      ],
      "author": {
        "name": "nharold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 08:45:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 08:45:29 2018 +0000"
      },
      "message": "Merge \"Prevent Closure of Underlying Socket FDs\""
    },
    {
      "commit": "809bcfc45eee0076d9ea8ab18688b49426d4a40d",
      "tree": "f30f04d8f172093ad4a2583a75d0e6e17417a4d8",
      "parents": [
        "fa6187510a272413cb22b4590ba62d1977539847",
        "5676f5fdae9a3aee8cf2cecef7502bfcc3bf49cb"
      ],
      "author": {
        "name": "nharold",
        "email": "nharold@google.com",
        "time": "Wed Jan 17 08:40:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 08:40:37 2018 +0000"
      },
      "message": "Merge changes from topic \"ipsec-oneway-transform\"\n\n* changes:\n  Update IpSecService UnitTests\n  Make Transforms Unidirectional\n"
    },
    {
      "commit": "b548d251b7995a5b76e495978b61ad6c3c4183d1",
      "tree": "42d9ce03555cb955193ab442881247260ded89a6",
      "parents": [
        "5676f5fdae9a3aee8cf2cecef7502bfcc3bf49cb"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Jan 16 12:08:43 2018 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Jan 16 21:30:20 2018 -0800"
      },
      "message": "Prevent Closure of Underlying Socket FDs\n\nThe version of applyTransportModeTransform() and\nremoveTransportModeTransform() that accepted\nSocket and DatagramSocket were closing the underlying\nFDs upon return. It\u0027s unclear whether this is due to\na behavior change elsewhere in ParcelFileDescriptor,\nbut either way, converting to using getFileDescriptor$\nand then calling dup() explicitly rather than relying\non ParcelFileDescriptor seems like a better idea anyway.\n\nBug: 72047396\nTest: CTS - IpSecManagerTest.testCreateTransform()\nChange-Id: Ia2f02564e1289f25bf113dbb861fcfd2240537a7\n"
    },
    {
      "commit": "3d44ed0dfe33da3b9f08d102723d7fc842e18f74",
      "tree": "d412d053ded858a5cf3ac1050bb5462ad81d9a5b",
      "parents": [
        "f779d7e3bec6c80c833ce804757b5591e2c55230"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 16 20:01:47 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 16 22:36:41 2018 +0000"
      },
      "message": "Pass targetSdkVersion to installd\n\nDex2oat now accepts targetSdkVersion as a parameter to determine\nwhether ART should treat the app as \"legacy\" and allow or restrict\naccess to private APIs.\n\nWe also bump arguments of otapreopt to v4 to accommodate the new value.\n\nBug: 64382372\nTest: manual\nChange-Id: Iae3867325dfaf8deaba51626ab04b97ad797d3b6\n"
    },
    {
      "commit": "a25233123b2d29fde83dd686f6313f0a232c5b2a",
      "tree": "71eeaa238dffb8f13772ee22e6da239ac997aa5a",
      "parents": [
        "e1bdd513d0014ae969188c20a8fd1c2e3acb74a7"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Fri Jan 05 19:25:13 2018 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Jan 16 11:08:31 2018 -0800"
      },
      "message": "Make Transforms Unidirectional\n\nConvert the IpSecTransform from being a bi-directional\npair of SAs to a unidirectional single SA. This CL\nalso removes the concept of \"direction from SAs meaning\nthat a IpSecTransform may now be applied to a socket\nin either direction.\n\n-Make transforms unidirectional\n-Add Convert allocateSpi() to use destination rather\n than direction and remote address\n-Remove directionality from builders for IpSecTransform\n-Change applyTransportModeTransform() to take a\n direction in which to apply the transform object.\n-Additional minor naming updates\n-Restrict IpSecConfig to only print keys on eng builds\n-Move DIRECTION constants to IpSecManager\n-Add sourceAddress parameter to IpSecTransform to provide\n additional guarantees about the source address of data;\n (explicit failure rather than implicit failure).\n-Move SPI to the build() method of IpSecTransform\n\nBug: 71717213\nTest: runtest frameworks-net, CTS - IpSecManagerTest\nChange-Id: I0824b37f443f4b8c62536d9801238c63ed8f2a1c\n"
    },
    {
      "commit": "f779d7e3bec6c80c833ce804757b5591e2c55230",
      "tree": "7516973085496fc285a8c12b4e9845528dfca22e",
      "parents": [
        "c3a209382cc05d532a4872670730023526e2c537",
        "ab8a63be6afc428a752828f9ea6423047cd27e42"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 16 18:25:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 16 18:25:32 2018 +0000"
      },
      "message": "Merge \"ActivityThread: Attempt to attach agent with app\u0027s classloader\""
    },
    {
      "commit": "e65a016d76238358efc282363ab093ae25a61cf0",
      "tree": "5485af884954f0bed3064244fc5bca441ae0b07b",
      "parents": [
        "9456c020d8e3e4081821e4cdd4060ed345454abd",
        "48872c6342f7c64cfb92204991bc0bd3d1a67f13"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 16 07:10:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 16 07:10:50 2018 +0000"
      },
      "message": "Merge \"MacAddress: add @NonNull annotations\""
    },
    {
      "commit": "48872c6342f7c64cfb92204991bc0bd3d1a67f13",
      "tree": "238413dd38ecec045b7df62a2ebcbac4aea2615e",
      "parents": [
        "e61ee4198e3e568ad0836e33e27bb4bdcb64b9f1"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Jan 12 09:46:29 2018 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jan 16 13:32:59 2018 +0900"
      },
      "message": "MacAddress: add @NonNull annotations\n\nThis patch adds to the MacAddress class:\n  - getAddressType() method which replaces addressType(), for naming\n  consistency\n  - @NonNull annotations on all input and output reference values for\n  all public methods (@hide and public).\n\nTYPE_UNKNOWN, which currently cannot be observed with a non @hide\nmethod, is also removed from the public api.\n\nBug: 71866627\nTest: $ runtest frameworks-net\nChange-Id: I2af70408d46f431b7b32183e6b48ddae9a261a2c\n"
    },
    {
      "commit": "9456c020d8e3e4081821e4cdd4060ed345454abd",
      "tree": "9a522f2106d11daa59fffec346f2be2d5db5ea41",
      "parents": [
        "46e9e35835785d51cc1c29ce5009807bf4a8d426",
        "e4fc6322a4f89c97843ad82950fb6757050b0072"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 16 02:58:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 16 02:58:56 2018 +0000"
      },
      "message": "Merge \"Change the netId to nethandle mapping.\""
    },
    {
      "commit": "ab8a63be6afc428a752828f9ea6423047cd27e42",
      "tree": "294e16224f85e4471fb9d1b74992b085bd662c48",
      "parents": [
        "9cb0b520114c1a166f4972b53cb2bfac7d1a1b78"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 05 13:55:15 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 15 13:04:25 2018 -0800"
      },
      "message": "ActivityThread: Attempt to attach agent with app\u0027s classloader\n\nTry to use the app\u0027s (main) classloader when an attach-agent request\nis handled. If that fails, retry without a classloader.\n\nAdd bind-application-time flag to ProfilerInfo. Use the flag to have\na second attach-agent point on app startup. Add --attach-agent-bind\nto cmd activity start to expose the difference between pre-bind and\nbind-time attaching.\n\nBug: 70901841\nTest: m\nTest: cts-tradefed run commandAndExit cts-dev -m CtsJvmtiAttachingHostTestCases\nChange-Id: I21698ec3be43a6d095d577100b2adfb22daca7d5\n"
    },
    {
      "commit": "e4fc6322a4f89c97843ad82950fb6757050b0072",
      "tree": "1be2abf240d4a9e8e5dc8a7d066999dcf8175b88",
      "parents": [
        "639fe64ce0d6daac8698d8ed2db5d526f3a3b015"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 05 11:15:37 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 16 02:08:09 2018 +0900"
      },
      "message": "Change the netId to nethandle mapping.\n\nBeing able to update this handle is necessary to ensure that\nsystem-only OTAs do not break vendor code that relies on\nnethandles.\n\nBug: 63052780\nTest: walleye builds, boots, networking works\nTest: MultinetworkApiTest CTS tests passes\nChange-Id: I049a4ad2610ca68b8f56377b63be7e5e8ce76039\n"
    },
    {
      "commit": "eac8c121fe588b6a21f59a6cfe75b3cc132d2921",
      "tree": "6b0686077660c33a90e1d8662e06f3a863e99d8b",
      "parents": [
        "c9082cecb35ec88cc096d2fd8ace5a57ca99085b",
        "8da8798ca3cf8e45c6105b9c86be2c262be6f817"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 12 22:12:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 12 22:12:39 2018 +0000"
      },
      "message": "Merge \"android.os.VintfObject: update for VNDK version format change.\""
    },
    {
      "commit": "caf728ea2688e039442be4e20fa6751d825c3752",
      "tree": "6bec29841513da0ede6dca72a9445bb68701bf80",
      "parents": [
        "90b4e47d9408e80564d3ea730281643855c40ae6"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@google.com",
        "time": "Tue Oct 24 15:20:43 2017 -0400"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 12 11:05:50 2018 -0800"
      },
      "message": "Minor LoadedApk refactoring.\n\n- Rename varaibles holding LoadedApk to make the code easier to read.\n- Move resource creation into LoadedApk, consolidating the logic.\n\n(cherry picked from commit 7541ca4d1aa48e3110187a83a8dccbfa72084148)\n\nTest: manual\nMerged-In: I6bdc70482fbbb346ff694ada528ded18d3a63ef7\nChange-Id: I6bdc70482fbbb346ff694ada528ded18d3a63ef7\n"
    },
    {
      "commit": "22f4a681f94f0b1159249ba9120af9b439758ee9",
      "tree": "d6167e517805f448fef372507aaaad307ef0759f",
      "parents": [
        "f0561142f3b7ddd85947d7ee268d5b98a39489b9",
        "7ca5d3a334ce1bd16360cef14889f44829bf8208"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Fri Jan 12 15:36:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 12 15:36:08 2018 +0000"
      },
      "message": "Merge \"DO NOT MERGE: Add setScreenUnlockedFunctions method to UsbManager\""
    },
    {
      "commit": "7ca5d3a334ce1bd16360cef14889f44829bf8208",
      "tree": "75ef88dc558c8997e7651c6c56b19c7ec0035596",
      "parents": [
        "65a6237243a794125b6596f9187dbaa84032f522"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Nov 30 19:10:55 2017 -0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Fri Jan 12 15:35:43 2018 +0000"
      },
      "message": "DO NOT MERGE: Add setScreenUnlockedFunctions method to UsbManager\n\nCherry-pick from 30b9adfad1c5055044f0b585782b10f764e0ddf9\n\nThe screen unlocked functions save effort on setting\nthe usb config during each connection. These\nfunctions persist between connections and between\nboots. When the screen is unlocked and these\nfunctions are set, the current functions will\nbe automatically set to the screen unlocked functions.\n\nAlso added svc command for this so it can be\nused and tested while the UI is worked on.\n\nBug: 62876645\nTest: svc usb setScreenUnlockedFunctions mtp\nTest: Test functions with locking, unlocking, and\ndisconnecting, with no lockscreen, swipe, and pattern\n\nChange-Id: Ia05e095917166d25398c4d310b02971e3a1bb12a\n"
    },
    {
      "commit": "e48468d8be0c74fec135bb12d84b23cc0168cd53",
      "tree": "394817cb21a64da5dae6c570eaba9c2091ddeec7",
      "parents": [
        "ee48176ad6bb61abf4a2eb1024be2a1ee555c8a8"
      ],
      "author": {
        "name": "Stanley Tng",
        "email": "stng@google.com",
        "time": "Wed Nov 22 16:04:40 2017 -0800"
      },
      "committer": {
        "name": "Stanley Tng",
        "email": "stng@google.com",
        "time": "Fri Jan 12 07:26:14 2018 -0800"
      },
      "message": "Added APIs for Connection-oriented channels\n\nExperimental and hidden APIs are defined for the Connection-oriented Channel\n(CoC) features. The APIs using PSM are implemented.\n\nTest: Can compile\nBug: 70683224\nChange-Id: Icdb5fa190b0e21881a60437fa48cd575371ee1e4\n"
    },
    {
      "commit": "f0561142f3b7ddd85947d7ee268d5b98a39489b9",
      "tree": "b626560976c5e34a41e328214c206227db6851a2",
      "parents": [
        "2fef505e1e41571954f608516745dc1874b5c657",
        "2bfba3afbfb5be7cd29043ebb649b4936d904572"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 12 12:39:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 12 12:39:35 2018 +0000"
      },
      "message": "Merge \"base: Convert libs/services/Android.mk into a blueprint\""
    },
    {
      "commit": "2bfba3afbfb5be7cd29043ebb649b4936d904572",
      "tree": "5c2f3e15ec32a2feb59e6bf9434e1d25d729781c",
      "parents": [
        "5e093d997adcd0cd5d83720eaaf0f282f92a9630"
      ],
      "author": {
        "name": "Sami Kyostila",
        "email": "skyostil@google.com",
        "time": "Thu Jan 11 00:12:14 2018 +0000"
      },
      "committer": {
        "name": "Sami Kyostila",
        "email": "skyostil@google.com",
        "time": "Fri Jan 12 11:13:22 2018 +0000"
      },
      "message": "base: Convert libs/services/Android.mk into a blueprint\n\nConvert libs/services/Android.mk into a blueprint module so it can be\nlinked by other blueprint modules.\n\nTest: mmm frameworks/base\nChange-Id: I7acf9aa084d262a5aba5a58e45d9647e15c6dffb\nMerged-In: I7acf9aa084d262a5aba5a58e45d9647e15c6dffb\n"
    },
    {
      "commit": "5edae415b08bd62eb50c7857a897173c4050983d",
      "tree": "5065c1ba0c754c860d319385e7517ed5c917dca2",
      "parents": [
        "68ad3d119c47509780ad9676bf19b29a89136ff2",
        "1aa0d01cc859ba0a99e373759fab634f0ae9b17a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 11 23:52:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 23:52:46 2018 +0000"
      },
      "message": "Merge \"Frameworks: Move SharedPreferencesImpl to tristate\""
    },
    {
      "commit": "68ad3d119c47509780ad9676bf19b29a89136ff2",
      "tree": "aab2c7aa080670af242b8f2aa9298611d96ede33",
      "parents": [
        "61fa3138101a1867848afd434e25870cdd3c825c",
        "1b4b3c4e9b62ba3647d708c8365c21b073dd594f"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jan 11 23:50:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 23:50:34 2018 +0000"
      },
      "message": "Merge \"DO NOT MERGE: Add ScreenObserver\""
    },
    {
      "commit": "8da8798ca3cf8e45c6105b9c86be2c262be6f817",
      "tree": "45e05511b3fb55d46103beb05b7f6d4aaf149f3a",
      "parents": [
        "f448371208a53a93657b8120105e5f5fbb9feee8"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jan 10 16:04:18 2018 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Jan 11 15:05:19 2018 -0800"
      },
      "message": "android.os.VintfObject: update for VNDK version format change.\n\nTest: CTS device info collect\nBug: 36400653\n\nChange-Id: I7b22f82ddd9ddc3b0930b5c1564435c42be2a6fa\n"
    },
    {
      "commit": "61fa3138101a1867848afd434e25870cdd3c825c",
      "tree": "84ee1d2aebb407aab047ba36aa0644237917354b",
      "parents": [
        "ec25ea1520d25aeea4e099a58e10fcfbce2791b1",
        "4c65254a0fa3ca45ffbf4d403f23ec2269404028"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 11 22:43:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 22:43:10 2018 +0000"
      },
      "message": "Merge \"Add new config for number of physical SIM slots on the device.\""
    },
    {
      "commit": "843d380cf10a929ecc312e51133aef51dd6942d8",
      "tree": "577968b8d0af3d6ccedb59e88d7dc2eaecd3ecb5",
      "parents": [
        "d2a9fc7abedf142836ccf0ca9faf32fd6fc50c6c"
      ],
      "author": {
        "name": "Joseph Pirozzo",
        "email": "pirozzoj@google.com",
        "time": "Wed Jan 03 08:59:57 2018 -0800"
      },
      "committer": {
        "name": "Joseph Pirozzo",
        "email": "pirozzoj@google.com",
        "time": "Thu Jan 11 14:09:25 2018 -0800"
      },
      "message": "Bluetooth in band ring\n\nAdd a flag to the BluetoothHeadsetClientCall indicating the current\nstatus of in band ring on the connected phone.\n\nBug: 65673832\nTest: runtest bluetooth -c\ncom.android.bluetooth.hfpclient.HeadsetClientStateMachineTest\n\nChange-Id: I7e839f2790b1a27d336528e93bc8a4c8d8ff3036\n(cherry picked from commit f780364a9a1f6171860cbdf4e1b41a01ee7d88c6)\n"
    },
    {
      "commit": "ec25ea1520d25aeea4e099a58e10fcfbce2791b1",
      "tree": "8fb9bbc82878a8747a10acf0bb25c3acd6ff0d72",
      "parents": [
        "ff9bc3a88c32da96cc490b1f059538d78012c47b",
        "3d6b53c075cf6d8dc5934baac45768b253d93bd1"
      ],
      "author": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Thu Jan 11 20:44:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 20:44:33 2018 +0000"
      },
      "message": "Merge \"Add EuiccCardManager and EuiccCardController.\""
    },
    {
      "commit": "ff9bc3a88c32da96cc490b1f059538d78012c47b",
      "tree": "1f1b6df175fca202cfcfa35680ad2c82df4ac72e",
      "parents": [
        "5e093d997adcd0cd5d83720eaaf0f282f92a9630",
        "17a26c715f26378cd9487a721f7d4a2c24088dde"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 11 20:22:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 20:22:05 2018 +0000"
      },
      "message": "Merge \"Make Bluetooth constants used by gmscore a system api\""
    },
    {
      "commit": "1b4b3c4e9b62ba3647d708c8365c21b073dd594f",
      "tree": "4cbc7f904f32d522e6c1ee49dd8566d45669a7ba",
      "parents": [
        "5e093d997adcd0cd5d83720eaaf0f282f92a9630"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jan 11 10:46:13 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jan 11 19:38:27 2018 +0000"
      },
      "message": "DO NOT MERGE: Add ScreenObserver\n\nScreenObserver allows system components to\nmonitor the screen lock state.\n\nBug: 68054513\nTest: manual\nChange-Id: I50f4690f68443f676d17e93efb1b7cb0857abd9e\n"
    },
    {
      "commit": "3d6b53c075cf6d8dc5934baac45768b253d93bd1",
      "tree": "e4f1e81d28028f849f3d40d25d845ab233c61c07",
      "parents": [
        "5e093d997adcd0cd5d83720eaaf0f282f92a9630"
      ],
      "author": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Thu Dec 21 18:44:59 2017 -0800"
      },
      "committer": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Thu Jan 11 10:30:43 2018 -0800"
      },
      "message": "Add EuiccCardManager and EuiccCardController.\n\nEuiccCardManager is in the same path with EuiccManager.\nEuiccCardController is in the same path with EuiccController.\nUse getAllProfiles() as an example interface.\nThe implementation of EuiccCard and its content will be added in a\nfollow up CL.\nThe new API is marked as @hide and TODO for @SystemApi.\n\nBug: 38206971\nTest: test on phone\nChange-Id: I153937c0f79bdd1a00b06b234a6e254a3f43072c\nMerged-In: I153937c0f79bdd1a00b06b234a6e254a3f43072c\n"
    },
    {
      "commit": "1742fe1309b9b1d73a15b40829a9ce2e651d21fd",
      "tree": "1677d3a142c68a8329114359a2dbf44930af1884",
      "parents": [
        "e89953b30f371055c3d3611af34fd03eabf066c9"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Dec 13 19:40:49 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jan 11 18:16:50 2018 +0900"
      },
      "message": "Extract DNS setting logic into DnsManager class\n\nIn future, managing DNS-over-TLS hostname lookup and netd programming\ncan be encapsulated here.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 64133961\nChange-Id: I47ccfa99c30c780524c45c4af605e720ccba34a0\n"
    },
    {
      "commit": "d6c3813c08a1025df42b06fb08b175eafd7e4714",
      "tree": "fc5b26be5c8bf606681f08edbc823e2a808e0dec",
      "parents": [
        "6a91687bcd1bc10483dd9c3ed9dd189f192bd1c5",
        "6fbb21a8dc557bcac07e00c7916bb363a720ed9e"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 11 03:09:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 03:09:40 2018 +0000"
      },
      "message": "Merge \"Move more core networking tests to framework/base/tests/net.\""
    },
    {
      "commit": "4c65254a0fa3ca45ffbf4d403f23ec2269404028",
      "tree": "2514e4b0fb1c2b4713e59ed028646c3b78fbc88f",
      "parents": [
        "f2ebbd135625b5c67c69fe9b4c3fd232bb397616"
      ],
      "author": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Fri Jan 05 16:20:36 2018 -0800"
      },
      "committer": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Wed Jan 10 15:54:10 2018 -0800"
      },
      "message": "Add new config for number of physical SIM slots on the device.\n\nTest: Basic telephony sanity\nBug: 64131518\nMerged-in: If393b144fd7280b11242caeb8bb4dc6a202f80ad\nChange-Id: If393b144fd7280b11242caeb8bb4dc6a202f80ad\n"
    },
    {
      "commit": "999d998fb0ab695f35b3f035f599b4a2c29a09ab",
      "tree": "0bc39c4c7a590fd304d1af82ed177a9330321eeb",
      "parents": [
        "54da93b9811832c1d08faccd7d5c207890684339",
        "8314fa72f27d0358ab29681fee5dfa4a4276946c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 21:29:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 10 21:29:02 2018 +0000"
      },
      "message": "Merge \"Add API EuiccController#startOtaUpdatingIfNecessary\""
    },
    {
      "commit": "8314fa72f27d0358ab29681fee5dfa4a4276946c",
      "tree": "7f9f63f79d277d8fb3734596f8ba29621cfbd5bf",
      "parents": [
        "8098078edf5c74b1a1513c45012aa036ce6d36ec"
      ],
      "author": {
        "name": "Qingxi Li",
        "email": "qingxi@google.com",
        "time": "Thu Dec 14 15:36:06 2017 -0800"
      },
      "committer": {
        "name": "Qingxi Li",
        "email": "qingxi@google.com",
        "time": "Wed Jan 10 12:01:13 2018 -0800"
      },
      "message": "Add API EuiccController#startOtaUpdatingIfNecessary\n\nThis function requests calling app has WRITE_EMBEDDED_SUBSCRIPTIONS\npermission. It will check whether the OTA update needed to be done\nfirst. If current eUICC OS isn\u0027t latest one and OTA needed to be\nperformed, it will update eUICC OS. When the OS update is started or\nfinished, a broadcast will be sent.\n\nBug: 37279356\nTest: E2E\nMerged-In: Iea86add4bdc01c79a8714af4b3a89735ba78ee74\nChange-Id: Iea86add4bdc01c79a8714af4b3a89735ba78ee74\n"
    },
    {
      "commit": "54da93b9811832c1d08faccd7d5c207890684339",
      "tree": "32b5eecf5f3ef8e33e91d588e16eb69e3358a9ba",
      "parents": [
        "5e90553bcf167bcdbf074ea533cf9762592a64be",
        "fe6a51fcb5591dc39636ce5c29536d05810dd3f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 18:46:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 10 18:46:36 2018 +0000"
      },
      "message": "Merge \"Revert \"Move zygote\u0027s seccomp setup to post-fork\"\""
    },
    {
      "commit": "fe6a51fcb5591dc39636ce5c29536d05810dd3f5",
      "tree": "abddd22319d25e181a2ed2759df336e926c815cf",
      "parents": [
        "6a4a3398325787f6cb1b93db17a7bf50d353e2a5"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jan 10 17:22:25 2018 +0000"
      },
      "committer": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jan 10 17:22:55 2018 +0000"
      },
      "message": "Revert \"Move zygote\u0027s seccomp setup to post-fork\"\n\nThis reverts commit 6a4a3398325787f6cb1b93db17a7bf50d353e2a5.\n\nReason for revert: caused some SELinux error\n\nBug: 71768585\nChange-Id: I0ef270ec6fed1d5d96b4257ec1a2dd6a55a816ed\nMerged-In: Ic1b81e146b52b68445ba634de39657f199107da3\n"
    }
  ],
  "next": "6fbb21a8dc557bcac07e00c7916bb363a720ed9e"
}
