)]}'
{
  "log": [
    {
      "commit": "ae79013ec21c91c9aaaf2cda2a850229125c5bcb",
      "tree": "fd4242511e7a2c29ea1f053abf703ce62bfd71f6",
      "parents": [
        "3fb5ba9e61314b9e3d547110ebe1297b07a4170c",
        "05ab6811d067987958b95b6361ba6e080b5294f9"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Mar 13 02:07:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 02:07:29 2019 +0000"
      },
      "message": "Merge \"Tell the factory it is already serving a request.\""
    },
    {
      "commit": "3fb5ba9e61314b9e3d547110ebe1297b07a4170c",
      "tree": "5d07e90711882be1ab9017bd1a53e19283800f10",
      "parents": [
        "88b57a2c4d95303385c26fa98176c88c17e69a4a",
        "5ae2caf8db5e77585267302790ac2fc0963f3b7b"
      ],
      "author": {
        "name": "Ian Kasprzak",
        "email": "iankaz@google.com",
        "time": "Wed Mar 13 01:52:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 01:52:21 2019 +0000"
      },
      "message": "Merge \"Temporarily disable flaky test.\""
    },
    {
      "commit": "f1e012ae9ba6d381a3f557eb7daf3cee49aef58c",
      "tree": "53ec955725c6d642920705cdf08fe7c18a19aa08",
      "parents": [
        "56c9d229700ad83fa673de8a1f66a7dd3a2c7785",
        "a46371173a8504cf64a6ab4b3438e3e683ed1a0d"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Wed Mar 13 01:13:08 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 01:13:08 2019 +0000"
      },
      "message": "Merge \"[KA13]: add unit test for exposed TCP socket keepalive API.\""
    },
    {
      "commit": "5ae2caf8db5e77585267302790ac2fc0963f3b7b",
      "tree": "b58a5c79c25b7f8cef48796760b6142278b3366c",
      "parents": [
        "d2cb5a060850ca1b79c9c8c3b2948a12d1de3c4b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 13 09:23:50 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 13 09:23:54 2019 +0900"
      },
      "message": "Temporarily disable flaky test.\n\nTest: None\nBug: 128426024\nChange-Id: Id88bf452f41f512703d5831e357d9ba72dc5b911\n"
    },
    {
      "commit": "05ab6811d067987958b95b6361ba6e080b5294f9",
      "tree": "6836b9695cb5dbae13c8595d9739e4a8d6527209",
      "parents": [
        "eb3e7b3f64d2587fa22d2954ff6ab80d11f1de98"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed May 02 21:14:54 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 12 21:47:21 2019 +0900"
      },
      "message": "Tell the factory it is already serving a request.\n\nThis is a cherry-pick of ag/607226 that has been rebased on\ntop of four years of changes and with comments addressed.\n\nGives each factory a serial number and propagates it to every\nNetworkAgent so when a score comes back indicating a request is\nbeing handled the factory can account for it properly.\n\nWithout this, a new request that\u0027s already handled by a network\noffered by a factory will not cause an increment of the factorys\nref count. Concretely this results in issues like the RAT icon\nnot being displayed in spite of the network actually being up\nand usable.\n\nThis will be ported to AOSP as soon as possible, but immediately\nsome master-only WiFi tests need to be adjusted with this change\nwhich would not let me submit to AOSP.\n\nBug: 18637384\nBug: 29030667\nTest: manual\nTest: atest frameworks/opt/telephony/tests/telephonytests\nTest: atest frameworks-net\nTest: atest CtsNetTestCases CtsHostsideNetworkTests\nChange-Id: I597ac588f76dd507512ff02868fd1310b7e63f7e\nMerged-In: I597ac588f76dd507512ff02868fd1310b7e63f7e\n"
    },
    {
      "commit": "eb3e7b3f64d2587fa22d2954ff6ab80d11f1de98",
      "tree": "633ea90e6ef5988cef1bbf50950d783b5bb9c83e",
      "parents": [
        "307df45b5fdfb990aeb0bf7aca5ddacefebdc93e",
        "ddb720a85ed39b855984aff1d14a54dde0b6a011"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 12 12:04:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 12:04:46 2019 +0000"
      },
      "message": "Merge \"[CS] Support \"instant failure\" from factories\""
    },
    {
      "commit": "a46371173a8504cf64a6ab4b3438e3e683ed1a0d",
      "tree": "d491bfbcbcf83083292404e010d885f4c7f6ff04",
      "parents": [
        "8e8ed1dfc2314f77d9a356da491b936012f4425c"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Thu Feb 07 15:03:57 2019 +0900"
      },
      "committer": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Tue Mar 12 17:30:47 2019 +0900"
      },
      "message": "[KA13]: add unit test for exposed TCP socket keepalive API.\n\nBug: 123987272\nTest: atest FrameworksNetTests\nChange-Id: I543d8f00ae539b706592a149981e3e8992999284\n"
    },
    {
      "commit": "e252a740ca6323c5497cab2b1ed277572304c9fc",
      "tree": "5da78d6e3f1f4d6d85f66bc63a4630fe11754f76",
      "parents": [
        "f96cc080668db4442b38e8e48d70db2e010ed354"
      ],
      "author": {
        "name": "lucaslin",
        "email": "lucaslin@google.com",
        "time": "Tue Mar 12 13:08:03 2019 +0800"
      },
      "committer": {
        "name": "Lucas Lin",
        "email": "lucaslin@google.com",
        "time": "Tue Mar 12 07:37:33 2019 +0000"
      },
      "message": "Check if network has partial connectivity\n\nIn some networks, network validation may only get success\nresult for http probe but fail result for https probe.\nFor this kind of network, it may still work at some websites\nor apps, but user didn\u0027t know about that. In order to fix this\nissue, we will check if network has partial connectivity and\nnotify user to make a choice if they want to use this partial\nconnectivity or not.\n\nBug: 113450764\nTest: 1. Build pass.\n      2. Fake partial connectivity case for testing.\n      3. atest FrameworksNetTests\n      4. atest NetworkStackTests\n\nChange-Id: I69ed00ac4850904ff708c9fef22e148879a10e92\n"
    },
    {
      "commit": "ddb720a85ed39b855984aff1d14a54dde0b6a011",
      "tree": "307626c04148f02bb4b265adad708a492137fcc0",
      "parents": [
        "e17575c03e1c1fb92f01fb7ff5d56e76692ddaa4"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Tue Jan 08 12:09:18 2019 -0800"
      },
      "committer": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Mon Mar 11 16:15:43 2019 -0700"
      },
      "message": "[CS] Support \"instant failure\" from factories\n\nAdd a mechanism by which a factory can declare \"instant failure\" for\na request - which would result in it getting an OnUnavailable()\n(even without a timeout).\n\nFactories may only do this iff:\n1. They know they are the only factory which may fulfill this\n   request (common for transport-specific requests).\n2. The know that the request can definitely not be\n   fulfilled at any point in the future.\n\nBug: 31382922\nTest: atest ConnectivityServiceTest\nMerged-In: I9bce0f4d85fa8cad7f8a9998819f945b778c5ac5\nChange-Id: I9bce0f4d85fa8cad7f8a9998819f945b778c5ac5\n"
    },
    {
      "commit": "bc18cc9b194f69e1d93b04637451f45d743bebb7",
      "tree": "1b4dbfc0dd86192474b5170e57d5b7ca954dfc1b",
      "parents": [
        "118354f77c8db8ebbcad421b25976795c53882bf",
        "df6b2f6989f2ce7ede7fca00b1e0cfcbcdc1f0a3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 11 22:57:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 11 22:57:58 2019 +0000"
      },
      "message": "Merge \"Remove android-support-test lib from testutils.\""
    },
    {
      "commit": "df6b2f6989f2ce7ede7fca00b1e0cfcbcdc1f0a3",
      "tree": "5e712e5b7619dc10b121ad704d9b565638ecec4c",
      "parents": [
        "bee0cbe5df04d56d0e66ae2deb28b650fb0b26fe"
      ],
      "author": {
        "name": "Ian Kasprzak",
        "email": "iankaz@google.com",
        "time": "Fri Mar 08 18:49:31 2019 -0800"
      },
      "committer": {
        "name": "Ian Kasprzak",
        "email": "iankaz@google.com",
        "time": "Mon Mar 11 20:09:29 2019 +0000"
      },
      "message": "Remove android-support-test lib from testutils.\n\nFixed dependencies as needed.\n\nFixes apct/net/networking_framework_unit_test broken\nin aosp/919393.\n\nTest: m tests, checkbuild and Forrest (via gerritt) testing\nBug: 127910239\n\nChange-Id: Ida0ca8012ede9227d204935b11002ddfa2f134ff\nMerged-In: Ia825e0926b46855f9056739441cb21a065692076\n(Manual partial cherry-pick of ec6bcbceee8fed0f99d1d5d1760b74eead98668a)\n"
    },
    {
      "commit": "5227285ad764998aa5d7a8d5efc8273f038765d9",
      "tree": "e21d09c62b1eb67272aa957b9769bacb3a2f008c",
      "parents": [
        "bee0cbe5df04d56d0e66ae2deb28b650fb0b26fe",
        "26299ed5fd11282c37d5524abacd1901a8f9dfc3"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Mar 11 17:04:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 11 17:04:57 2019 +0000"
      },
      "message": "Merge \"Add tethering event callback API\""
    },
    {
      "commit": "40ff4f7d83a3c61b1abbdbe804bb65ca50e02ab7",
      "tree": "18257dec54d4ab87148a443f3282d6a0e74570c7",
      "parents": [
        "9e6f5d15217f0ab0deea033d213057f51507d53a",
        "b6aca11e8078b4a93da1c09c94b4d0d7ba0befef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 08 22:54:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 22:54:11 2019 +0000"
      },
      "message": "Merge \"Convert tests/**/Android.mk files to Android.bp\""
    },
    {
      "commit": "26299ed5fd11282c37d5524abacd1901a8f9dfc3",
      "tree": "fc6ba952f5cf911ccdc3f725ee7ccc6019ba6a24",
      "parents": [
        "c8dfb728917c68d9cf4638fb05e4ddbe5ae8f80c"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Feb 27 14:56:11 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Sat Mar 09 00:35:55 2019 +0800"
      },
      "message": "Add tethering event callback API\n\nProvide OnTetheringEventCallback for system app to know\ntethering\u0027s upstream.\n\nBug: 125583822\nTest: -build, flash, boot\n      -atest FrameworksNetTests\n\nChange-Id: I7ca81b27c9b805cc01884509f5b20d9d0a24cd36\nMerged-in: I7ca81b27c9b805cc01884509f5b20d9d0a24cd36\n"
    },
    {
      "commit": "e5e3ac639b08f1d88e7daaf4d7bcece26876ffc2",
      "tree": "dbde0f37c605fa6c33ad62f6374e9619c671cfed",
      "parents": [
        "f635f126661cd5190ba852c96cdf14c9d30105eb",
        "ea89cf2c6e300dd66c34cab43a9fadf94cedf8dd"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 08 15:21:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 15:21:01 2019 +0000"
      },
      "message": "Merge \"Add junyulai@ as owner of the core networking dirs\""
    },
    {
      "commit": "ea89cf2c6e300dd66c34cab43a9fadf94cedf8dd",
      "tree": "070eaa1bb801eda55dd0a166b2f33845033188a5",
      "parents": [
        "1b9adbfdd1f18cb16e82f9a6f158d3ac242fffa1"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 08 20:28:35 2019 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 08 13:04:05 2019 +0000"
      },
      "message": "Add junyulai@ as owner of the core networking dirs\n\nAlso removed emeritus accounts ek@ and silberst@ from various places.\nA cleanup using \u0027include\u0027 would probably be in order...\n\nTest: N/A\nChange-Id: I575e60dd5e600e42d9571ce8e8d7661d30e99bfe\n"
    },
    {
      "commit": "c8dfb728917c68d9cf4638fb05e4ddbe5ae8f80c",
      "tree": "e08263ef9d5758abfa4a9e91d91708bee6793075",
      "parents": [
        "3f2d69dc6262764aea599e5311d266f83a758438",
        "33bfef3b54008c6715acf8326885e20443acf6f1"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Mar 08 03:19:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 03:19:55 2019 +0000"
      },
      "message": "Merge \"Minor changes to the async DNS query JAVA API\""
    },
    {
      "commit": "b6aca11e8078b4a93da1c09c94b4d0d7ba0befef",
      "tree": "5e9ad0c8f23a127ff116cbd4adf1b72d1fe1bbe5",
      "parents": [
        "10c573ff852309894b383ae9aa13dca0d64f8d3e"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Wed Feb 20 16:52:48 2019 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Thu Mar 07 16:14:00 2019 -0800"
      },
      "message": "Convert tests/**/Android.mk files to Android.bp\n\nSee build/soong/README.md for more information.\n\nNote: tests/ImfTest/Android.mk causes conflict as it hasn\u0027t been yet\nported to internal master. Do it later.\nNote: the conversion in the following directories has to be done in the\ninternal master first because of the conflicts:\n* tests/ActivityManagerPerfTests\n* tests/AppLaunch\n* tests/AppLaunchWear\n* tests/BackgroundDexOptServiceIntegrationTests\n* tests/Camera2Tests/CameraToo\n* tests/Camera2Tests/SmartCamera/SimpleCamera\n* tests/Compatibility\n* tests/Internal\n* tests/RcsTests\n* tests/ServiceCrashTest\n* tests/UsbTests\n\nBug: 122332340\nTest: treehugger\nChange-Id: Ie17590c6a96aee5caa80d38092a3de5c1b6efe8d\n"
    },
    {
      "commit": "fbcc63d51f775f1b45330d33bdd354d7a6997410",
      "tree": "e117bf7e72ccfa1fe2ca673f2fe28e665b56efbc",
      "parents": [
        "722dff1f3582d520f26159b744c2e2d0a0a1e926",
        "9554abf9ed2556a92dee0ccce7972691a44d5ec7"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Thu Mar 07 13:21:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 07 13:21:53 2019 +0000"
      },
      "message": "Merge \"Fix TetheringEntitlementValueListener related API\""
    },
    {
      "commit": "33bfef3b54008c6715acf8326885e20443acf6f1",
      "tree": "4fa3e7ae58172301153a8b7d909091df47d6993d",
      "parents": [
        "58038da960ef93976a76b5e4348033fcd0843294"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Jan 23 21:53:13 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Thu Mar 07 16:40:49 2019 +0800"
      },
      "message": "Minor changes to the async DNS query JAVA API\n\n1. refine the naming in DnsPacket and add more comment\n2. add comment in DnsResolver\n\nTest: built, flashed, booted\n      atest DnsResolverTest DnsPacketTest\n\nChange-Id: Ib482d079d6823fd1d9bff163427b7aad38374199\n"
    },
    {
      "commit": "58038da960ef93976a76b5e4348033fcd0843294",
      "tree": "224be1591db627832e4114400f531a2a76982db8",
      "parents": [
        "3da7809ae47b4d37d57e0da5932d48beb4bb6530",
        "1ae2aa66eb6a59ff87af1b0e64e9416c514d5728"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 07 05:42:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 07 05:42:07 2019 +0000"
      },
      "message": "Merge \"Migrate frameworks/base/tests/net/ to androidx.test\""
    },
    {
      "commit": "9554abf9ed2556a92dee0ccce7972691a44d5ec7",
      "tree": "f37a22d18a091c61b71438f09b3cbd2de7d6846a",
      "parents": [
        "06e2f822b9e49665b32952608e96723737c713b1"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Mar 06 16:25:00 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Mar 07 13:33:21 2019 +0800"
      },
      "message": "Fix TetheringEntitlementValueListener related API\n\nTest: -build, flash, boot\n      -atest FrameworksNetTests\nbug: 126701557\nbug: 126392011\n\nChange-Id: I6dda10fbfe8ffaef71269617750a22563396f5ea\n"
    },
    {
      "commit": "1ae2aa66eb6a59ff87af1b0e64e9416c514d5728",
      "tree": "753c116a0355950efdcd30bd65825d10d06d15e2",
      "parents": [
        "5461b1d23f0f3e2af54dc371200a2d6c4d4b524d"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Mon Mar 04 14:14:56 2019 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Tue Mar 05 09:05:47 2019 -0800"
      },
      "message": "Migrate frameworks/base/tests/net/ to androidx.test\n\nTest: atest FrameworksNetTests\nChange-Id: Iaa59d606f5e1678cc5aaca9ed37e184fad894e5d\n"
    },
    {
      "commit": "92c55f03c6629079df5653b1a661e33b01ac69c7",
      "tree": "ad41c0f6e119ae1c1035242bbc50824257c869cf",
      "parents": [
        "d14d29ca8fa5f823cee1c5eabe139e2733374f71",
        "c51b06d276ffde3527a4800213a85aff87c2e29c"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Tue Mar 05 01:37:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 05 01:37:30 2019 +0000"
      },
      "message": "Merge \"Fix isActiveNetworkMetered for VPNs.\""
    },
    {
      "commit": "a56c2e4e5554e306b016f71e0ac53ef5b719f4b8",
      "tree": "81eb1fa2f1574af356eb19f428fdfad8e5a6e14e",
      "parents": [
        "077a04828d4ca663e9c04ecb5bf0d010a3891f40",
        "db3a236d7fe4a5229555b6fd23b2cb4316ffcf8b"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Sun Mar 03 06:53:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 03 06:53:47 2019 +0000"
      },
      "message": "Merge \"Check if DUN APN exists to decide isDunRequired\""
    },
    {
      "commit": "8091d9e6d9591af206bd2674b402d02a8ce52761",
      "tree": "8e6c24b8df033206523054fbef78325dfeeecae4",
      "parents": [
        "3275a6b2450745486cacf2fc7ed8d4075556e606"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Tue Feb 26 14:52:33 2019 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Fri Mar 01 17:23:42 2019 +0000"
      },
      "message": "Migrate frameworks/base/tests/testables and its users to androidx.test\n\nSee go/jetpack-test-android-migration\n\nTest: atest TestablesTests NetworkStackTests FrameworksServicesTests SystemUITests FrameworksUiServicesTests ExtServicesUnitTests\nExempt-From-Owner-Approval: already reviewed\nChange-Id: I083fcdaa71b503535aa2b3c257740f3ecf055373\nMerged-In: Ib04d80954bd8536914d88c66b28e6632e60a6245\n"
    },
    {
      "commit": "d33cbc6f5ffe1d1e83afbf6cc977e9f31994fb9d",
      "tree": "b57c45244a22b9f19f203d7586d570d5484717ed",
      "parents": [
        "222d1d04bfb1b4eda3962a917779ffc0efa987af"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Feb 07 14:13:13 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Fri Mar 01 00:10:52 2019 +0000"
      },
      "message": "Remove ConnectivityManager and its usages from NetworkStatsService.\n\nNSS needed it for getting VpnInfo[], NetworkState[] and\nactiveLinkProperties which it used to query via ConnectivityManager.\n\nFor VpnInfo[], this was racy as NSS may ignore intermediate changes to a\nVPN\u0027s underlying networks. See http://b/123961098 for more context.\n\nIt may also lead to deadlocks b/w ConnectivityService and\nNetworkStatsService. See http://b/126245192 for more info.\n\nThis change will ensure that NSS is never contending on any of\nConnectivityService locks.\n\nBug: 123961098\nBug: 126245192\nBug: 120145746\nTest: atest FrameworksNetTests\nChange-Id: Id1da446b54d95ee68ed14079107b1a10318bcf8b\nMerged-In: I57e117bb4e9efe491b19d6b5a479f2d58d1c58e6\n"
    },
    {
      "commit": "c51b06d276ffde3527a4800213a85aff87c2e29c",
      "tree": "fcc5a7792ecb5ee0f0ce62093886c30eab0df63c",
      "parents": [
        "222d1d04bfb1b4eda3962a917779ffc0efa987af"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Mon Feb 25 17:22:02 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Feb 28 13:18:11 2019 -0800"
      },
      "message": "Fix isActiveNetworkMetered for VPNs.\n\nThis change is basically a revert of http://ag/3580901.\nIt was made because previously VPN capabilities did not use to update\nbased on its underlying networks. That is no longer the case anymore.\n\nThis was previously returning meteredness on the basis of VPN\u0027s first\nunderlying network which is incorrect in cases such as VPN using\nmultiple underlying networks, or VPN that has explicitly marked itself\nas metered via VpnService.Builder#setMetered API.\n\nBug: 123936838\nTest: atest FrameworksNetTests\nChange-Id: Ia54b8570fbad4a638a6d43a95e0271c6baf66685\n"
    },
    {
      "commit": "a02847ec0dd7dfe231305a0e70e68e40ec4af553",
      "tree": "feba388b734525c2c389463e76ef6ff6f1bc70a6",
      "parents": [
        "0d99ab3f18f3f94280de3f689261a7fdfc58b817",
        "b313e0c83455b00783e1669f7428e923e3554448"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 23:37:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 27 23:37:42 2019 +0000"
      },
      "message": "Merge changes from topic \"nat64\"\n\n* changes:\n  Catch ServiceSpecificException instead of IllegalStateException.\n  Manage NAT64 prefix discovery lifecycle in the framework.\n  Track NAT64 in the framework and start clatd iff NAT64 detected\n  Change Nat464Xlat lifecycle.\n  Minor improvements to verifyTcpBufferSizeChange.\n"
    },
    {
      "commit": "aef4b828813f6e42abf46397861c411636fcf74b",
      "tree": "2ec5ba1028dc03db6c915183fb86327cfe4379d9",
      "parents": [
        "c5ea003bbbf9ffe35c1249b0c3feee04a1eda956"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Sun Feb 24 14:47:36 2019 -0800"
      },
      "committer": {
        "name": "Alexander Smundak",
        "email": "asmundak@google.com",
        "time": "Tue Feb 26 17:43:22 2019 +0000"
      },
      "message": "Remove unused tests/utils/SleepUtils\n\nThe presense of these files hinders the conversion of the makefiles\nto the blueprints (causes failure in the internal builds due to lacking\nfiles).\n\nBug: 122332340\nTest: treehugger\nChange-Id: I2a3c38cbba7c14ae1b2880c73c7f6514816f0e68\n"
    },
    {
      "commit": "d593e298c66d1138240f8e97e92b8a5b8f9eb130",
      "tree": "0e9e4094184f75c450d6a81fd527c338a74a3b62",
      "parents": [
        "6998fa8a17756b36d925446bb5e1f3ec4993200f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 19 13:21:56 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 00:18:13 2019 +0900"
      },
      "message": "Manage NAT64 prefix discovery lifecycle in the framework.\n\nCurrently NAT64 prefix discovery, which runs in netd, is started\nby netd itself when a network is programmed with all-IPv6 DNS\nservers. Unfortunately this is not correct because in many cases\nwe program DNS servers before the network is connected and it\u0027s\nactually possible to send packets to them.\n\nIn general netd does not have enough visibility into network\nlifecycle management to decide when to start and stop prefix\ndiscovery. So move it into the framework with the rest of the\n464xlat control plane.\n\nBug: 65674744\nTest: atest FrameworksNetTests\nChange-Id: I8fa051a9c216d9c05082bf7d0bbb0cbd56000162\n"
    },
    {
      "commit": "db3a236d7fe4a5229555b6fd23b2cb4316ffcf8b",
      "tree": "c4502dd8256c6db7a3e540778a2d09121a062323",
      "parents": [
        "03c14760a593b8bbea502fc8cbcc0ffe1e2ac058"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Fri Oct 05 12:36:08 2018 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Tue Feb 26 16:30:48 2019 +0800"
      },
      "message": "Check if DUN APN exists to decide isDunRequired\n\nChange isDunRequired variable from integer to boolean.\nBefore this change tethering would reference\nconfig_tether_upstream_types reource configuraton to decide\nisDunRequired for DUN_UNSPECIFIED case.\nAfter the change, if isDunRequired is true, tethering would\nrequest DUN. If it is false, tethering skip DUN type. In order\nto backwards compatibility, tethering would not add mobile/hipri\ntype to upstream configuration if one of them already exist in\nupstream configuration.\n\nTest: - build, flash, booted\n      - runtest frameworks-net\n      - manully test with TMO, VZW SIM.\nbug: 63150712\n\nChange-Id: Ia998ea502674ff186d52af37e3fd8f07de495245\n"
    },
    {
      "commit": "6998fa8a17756b36d925446bb5e1f3ec4993200f",
      "tree": "e8c180a879d94016f0af4756b676c5b4dbf62070",
      "parents": [
        "df59563de231e19d56e04c5691ad9b67031a576e"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 08 10:04:25 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 25 11:42:00 2019 +0900"
      },
      "message": "Track NAT64 in the framework and start clatd iff NAT64 detected\n\nCurrently, both netd and clatd do NAT64 prefix detection, and we\nstart clatd on all IPv6-only networks regardless of whether netd\nhas detected a NAT64 prefix or not.\n\nInstead, track the NAT64 prefix in the framework, and only start\nclatd if the prefix is detected. This will allow us to remove\nDNS64 detection in clatd, and pass the NAT64 prefix and the IPv6\naddress to clatd on the command line instead of clatd finding it\nitself. That way, netd and the framework will always know how\n464xlat is configured, and we\u0027ll be able to use that information\nin netd.\n\nTest: builds, boots\nTest: atest FrameworksNetTests\nChange-Id: Ida32d5760c5aecf7aeebef08fdb596291b2ce14a\n"
    },
    {
      "commit": "df59563de231e19d56e04c5691ad9b67031a576e",
      "tree": "b6d7571a93196045aaee35f35cdfa3c7ee6882a3",
      "parents": [
        "f56ff048c23014325cb75a116169d2d4d193f540"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 08 14:43:37 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 25 11:42:00 2019 +0900"
      },
      "message": "Change Nat464Xlat lifecycle.\n\nCurrently, NetworkAgentInfo keeps a Nat464Xlat object only on\nnetworks where we\u0027re starting clatd (i.e., IPv6-only networks).\nSimplify this code by making the Nat464Xlat object final and\nalways non-null. This allows us to use Nat464Xlat to store\ninformation, such as the NAT64 prefix, even if the clat daemon\nhas not been started yet.\n\nAlso, remove the STOPPING state which waits for the interface to\nbe removed. Instead, when stop() is called, immediately enter the\nIDLE state.\n- This is necessary in order to be able to call start() again\n  before the interface removal notification has arrived.\n- It\u0027s also arguably more correct than the current code,\n  because when stop() returns clatd has already terminated\n  (ClatdController::stopClatd calls waitpid), and thus the tun\n  fd is already closed and the tun interface is gone.\n\nAlso, now that Nat464Xlat objects are reused after stop(), add\ntest coverage for calling start() after stop, in both cases:\n- The notification that the previous interface was removed\n  arrives before the second start().\n- The notification that the previous interface was removed\n  arrives after the second start() but before the notification\n  that the second interface was added.\n\nAlso fix a couple of lint warnings.\n\nTest: builds, boots\nTest: atest FrameworksNetTests\nTest: clatd stops when IPv4 address added\nTest: clatd restarts after \"adb shell killall clatd\"\nChange-Id: I3dc66d155aa27606681f3473daf2170434d8c6d0\n"
    },
    {
      "commit": "f56ff048c23014325cb75a116169d2d4d193f540",
      "tree": "84580c0619e9e1b0ce4e1bba62a8749713ecc9c6",
      "parents": [
        "f2cf09c94510857f99fd94381d609784dd46b334"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 25 10:56:06 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 25 11:41:50 2019 +0900"
      },
      "message": "Minor improvements to verifyTcpBufferSizeChange.\n\n1. Remove \"throws Exception\" from the signature so it can be used\n   in tests that do not already throw Exception.\n2. Update comment to reflect the fact that TCP buffer sizes are\n   set on default network switch, not on connect.\n3. Move into the method a class-level static constant that is\n   only used in that method.\n\nTest: atest ConnectivityServiceTest\nChange-Id: Ic2e4fbedc23065efc20e45ea84996b577a8e94b6\n"
    },
    {
      "commit": "d937fa569703424c099be4d3aee4caf2f00b9a13",
      "tree": "112e8bde749f7d99ee0cb3122022bc3d379059b6",
      "parents": [
        "703e8c68ec5cca7b9b03fd88116bc1ffdc6a0929"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Tue Feb 12 09:38:16 2019 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Thu Feb 21 16:15:52 2019 -0800"
      },
      "message": "Convert Android.mk file to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122332340\nTest: treehugger\nChange-Id: I23d8d5a019155a0f3296f7ab75e9b44b7621f3c8\nMerged-In: I23d8d5a019155a0f3296f7ab75e9b44b7621f3c8\n"
    },
    {
      "commit": "609ea873b76caa7625491f361d913b9cddab6da5",
      "tree": "cd617725ac434889f31b8a113d1a4b5ed0be6f8e",
      "parents": [
        "a6dda25ac90b7ce6a9afa7da6cc86fade59f9ebf",
        "c39f23c1a67379d990ff6cd6183063a75dd94f06"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 20 20:01:14 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 20:01:14 2019 +0000"
      },
      "message": "Merge \"Split RCS events into API and internal classes\""
    },
    {
      "commit": "4ba3b12efb713c21904214ee33e44a711bdca3ff",
      "tree": "dcf0648697834cd9f53cbdd489d3766c66b9c703",
      "parents": [
        "619ed85e812ff1de47de56cce24cc046cc9caa72",
        "31a61f6348b69c4dfc68e95c9a44e428234dd5f6"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Feb 20 16:25:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 16:25:58 2019 +0000"
      },
      "message": "Merge changes from topic \"PPRL.190205.001\"\n\n* changes:\n  Fix merge problems with cherry-picking \"Add notification settings to backup\u0026restore\" change into pi-dev\n  DO NOT MERGE - Merge PPRL.190205.001 into master\n"
    },
    {
      "commit": "21078b1edd38a46287451a86a7b8b905f6b06b50",
      "tree": "a9d2b3491b4acedbad8509ee71b5a93324e9e7f9",
      "parents": [
        "1d18e60e76bed90e6b00d17df79f63d0bb7b0443",
        "c63e48dd6520d9700293e841705544e80841b440"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 20 12:00:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 12:00:15 2019 +0000"
      },
      "message": "Merge \"Skip unreachable route when estimating VPN destinations\""
    },
    {
      "commit": "c39f23c1a67379d990ff6cd6183063a75dd94f06",
      "tree": "1c286972a0c0b662b38ca69d88bbcd1313e7c588",
      "parents": [
        "a81d64e9407a849ff66419cfe4c28854a6c7c656"
      ],
      "author": {
        "name": "Leland Miller",
        "email": "lelandmiller@google.com",
        "time": "Wed Feb 06 10:07:38 2019 -0800"
      },
      "committer": {
        "name": "Leland Miller",
        "email": "lelandmiller@google.com",
        "time": "Tue Feb 19 11:39:49 2019 -0800"
      },
      "message": "Split RCS events into API and internal classes\n\nThis will allow us to inject dependencies into the API classes that are\nnot parcelable or do not come from ircs.\n\nBug: 123699565\nTest: Unit tests pass\nChange-Id: Iab4e6ea3fd983eef7fb0cba7311175ea82a444ff\n"
    },
    {
      "commit": "c63e48dd6520d9700293e841705544e80841b440",
      "tree": "fb01ce7ce913aaaabb36fd6d7978f17934e4c687",
      "parents": [
        "539c545dc7ba749eada12ef4c0bf55535d3500d4"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Feb 19 16:56:47 2019 +0000"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Feb 19 17:18:34 2019 +0000"
      },
      "message": "Skip unreachable route when estimating VPN destinations\n\nBug: 122652441\nTest: atest com.android.server.connectivity.VpnTest\nTest: Establish a IPv4 VPN with minimal routes and check\n(dumpsys connectivity) the VPN network does not have INTERNET\ncapability.\n\nChange-Id: Ic7f19ebb7b7f78a6ffb2a8ec3fc3eca5e5421f57\n"
    },
    {
      "commit": "d6d593572e4515f2652ea0ac3c9d8ca721e9cc38",
      "tree": "988eb380527d68ddedf3c332890f0b947bb13cff",
      "parents": [
        "51490ad0fa180623526c562a48122790a60f0483",
        "e3ae238f4a7f0acb52b2e6fe05e7b06c513e98a1"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Fri Feb 15 03:45:03 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 15 03:45:03 2019 -0800"
      },
      "message": "Merge \"Update VPN capabilities when its underlying network set is null.\"\nam: e3ae238f4a\n\nChange-Id: Id4560d201a40f5e1b1617819991da99d86379dbe\n"
    },
    {
      "commit": "e3ae238f4a7f0acb52b2e6fe05e7b06c513e98a1",
      "tree": "320860f017191ab291a7795cf8f47b6e98f53f54",
      "parents": [
        "762f9f0c2449ce8f12c87de0eb6bcd32b6548029",
        "4fa80e8a2f03557221e0371a987e780df7788faa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 15 11:33:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 15 11:33:27 2019 +0000"
      },
      "message": "Merge \"Update VPN capabilities when its underlying network set is null.\""
    },
    {
      "commit": "51490ad0fa180623526c562a48122790a60f0483",
      "tree": "574a70d8bdd7287b7a291003a945bfb9e3362096",
      "parents": [
        "8878aec7b7eeadd2db02e6d9b1469267c3f8ccf3",
        "762f9f0c2449ce8f12c87de0eb6bcd32b6548029"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Feb 15 03:01:11 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 15 03:01:11 2019 -0800"
      },
      "message": "Merge \"Move NetworkStack to services.net\"\nam: 762f9f0c24\n\nChange-Id: Iab45985aedb8069ad50fd2913ef6e828989cdd0d\n"
    },
    {
      "commit": "762f9f0c2449ce8f12c87de0eb6bcd32b6548029",
      "tree": "a7801032d81e9e30fbe6ab77311afa085a582e24",
      "parents": [
        "d989ed753d3a46c017f3729aa466939b2945ddcc",
        "5db454c28d3ddf724be3f6a697267f7f58d94e2d"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Feb 15 10:52:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 15 10:52:03 2019 +0000"
      },
      "message": "Merge \"Move NetworkStack to services.net\""
    },
    {
      "commit": "5db454c28d3ddf724be3f6a697267f7f58d94e2d",
      "tree": "d1ca0b863c669aa3db022ad222aab607bc0801de",
      "parents": [
        "cfff01e2dbece7fd6a45f0352c4ab292cf59b89e"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 14 18:04:20 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Feb 15 12:20:17 2019 +0900"
      },
      "message": "Move NetworkStack to services.net\n\nNetworkStack is only used in services.net or clients of services.net. It\ncannot stay in framework.jar because it needs to depend on AIDL\ninterfaces, which would conflict with app implementations if they were\nin framework.jar.\n\nTest: atest FrameworksNetTests NetworkStackTests\nBug: 124033493\nChange-Id: Ib1d08a3669983640119d008db7e2990fa798724f\nMerged-In: I501b125a388c1100c2182bde4670944c2f0d7a02\n"
    },
    {
      "commit": "4fa80e8a2f03557221e0371a987e780df7788faa",
      "tree": "c684603dfe30c0d8114bd76b3c4dd3ea995170a9",
      "parents": [
        "bbbeba3c02822e5cd43fd169e7105063a7331af5"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Wed Feb 06 10:13:38 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Feb 14 18:50:56 2019 -0800"
      },
      "message": "Update VPN capabilities when its underlying network set is null.\n\nPreviously, they were only updated when underlying network set was\nnon-null.\n\nThis change also ensures that all the calls b/w ConnectivityService and\nVpn that leads to updating capabilities are on ConnectivityService\nhandler thread.\n\nAdditionally, it also ensures that capabilities are propagated after VPN\nenters connected state. This was previously done from establish which\ncould potentially lead to race between VPN getting connected and\ncapabilities getting updated.\n\nThis change also updates VPN capabilities inline from\nConnectivityService handler thread. Previously, there was an additional\nloop where Vpn would update capabilities via NetworkAgent thru\nAsyncChannel which posts back to CS handler thread, which could\npotentially lead to delays in updating VPN capabilities.\n\nBug: 119129310\nBug: 118856062\nBug: 124268198\nTest: atest FrameworksNetTests\nTest: manual - verified VPNs capabilities are getting updated and\nDownloadManager is working correctly.\n\nChange-Id: Id0abc4d304bb096e92479a118168690ccce634ed\n"
    },
    {
      "commit": "07ec9dbec5945e5e97c1b2842acdba6f74e6ebbc",
      "tree": "4da966be25185356ad2186dca8fde9debfeccf8f",
      "parents": [
        "98e94aee7ca7653b06301de157d0af6ca1df9531",
        "0e71b4f19ba602c8c646744e690ab01c69808b42"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Feb 14 22:11:32 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 22:11:32 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge pi-platform-release (PPRL.190205.001) into stage-aosp-master\" into stage-aosp-master"
    },
    {
      "commit": "0e71b4f19ba602c8c646744e690ab01c69808b42",
      "tree": "efc2d543fbec688c9a03de674fc2ee2d10da3474",
      "parents": [
        "5854e9312c43a7e47f4a44bcc344984242452c73",
        "04898ff564fbda6d58693631ea633611585f8921"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Feb 13 22:36:25 2019 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Feb 14 09:48:06 2019 -0800"
      },
      "message": "DO NOT MERGE - Merge pi-platform-release (PPRL.190205.001) into\nstage-aosp-master\n\nBug: 124234733\nChange-Id: Ic4f67fde0835da0b1c363906cccef0d244e38393\n"
    },
    {
      "commit": "16758070d06ce097cb39ad751a10953b7159561d",
      "tree": "6c189c261781c42403b93550191a9542c08bb590",
      "parents": [
        "6cc4c0c02926c0adadbe04af22076d737e3bfab8",
        "ac02bc8141b12212ef0a4ad56cf4a67e63ad8a49"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 14 03:29:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 03:29:00 2019 +0000"
      },
      "message": "Merge \"Fix flaky testNattSocketKeepalives\""
    },
    {
      "commit": "ac02bc8141b12212ef0a4ad56cf4a67e63ad8a49",
      "tree": "9147b694acfa6c4fb22be1c6fe601bbc5c40f45e",
      "parents": [
        "f46b14b6aff8293a8881d97f6fee089ae86c0955"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Feb 08 17:10:50 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 14 03:28:48 2019 +0000"
      },
      "message": "Fix flaky testNattSocketKeepalives\n\nThe test did not wait for the WifiNetworkAgent to disconnect, and there\nare reports of flakes where it is still connected in\nconnectKeepaliveNetwork.\n\nTest: atest FrameworksNetTests\nBug: 124319553\nChange-Id: I85968806885c8853ec4f4dbea356366c1af0ea1c\n"
    },
    {
      "commit": "8fee3dee71a3dbc193936691606b9635ddb270ed",
      "tree": "bb7c9993d08eeeaca9143c44683015d6469fc864",
      "parents": [
        "661bb0414e635122117b1d554f59b9464ad90a6d",
        "0b5950781d33ac12212d0043f97e6ac5f27881dd"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Wed Feb 13 02:29:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 02:29:01 2019 +0000"
      },
      "message": "Merge \"Support multi-SIM entitlement check\""
    },
    {
      "commit": "0b5950781d33ac12212d0043f97e6ac5f27881dd",
      "tree": "64eea1e10b08e1b33f845110f02bc642143f8e95",
      "parents": [
        "0beb397fa5e1887ef354c3b0bc22a8deadae944b"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Tue Jan 08 23:52:21 2019 +0800"
      },
      "committer": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Tue Feb 12 08:20:27 2019 +0000"
      },
      "message": "Support multi-SIM entitlement check\n\n1. Trigger entitlement recheck when perferred SIM switch.\n2. Get resources from preferred SIM\u0027s subId to build\n   TetheringConfiguration.\n\nBug: 120069528\nBug: 122108346\nTest: -atest FrameworksNetTests\n      -build, flash, booted\n      -manual hotspot hotspot with DSDS switch\n\nChange-Id: Icbfa8e84d675c95c0c5563087490ca8e36d91b73\nMerged-in: Icbfa8e84d675c95c0c5563087490ca8e36d91b73\n"
    },
    {
      "commit": "e765e8b7aaa5350645330e90e34118d9a4749289",
      "tree": "842a23d93cf2fa767134285ac490fdd544034b5a",
      "parents": [
        "f5a0e41e1838220b7aa0cc31128491ce0b8d1480",
        "9c5d96490279dbc5cea09cf8a2da29318b397729"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Feb 12 03:58:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 03:58:09 2019 +0000"
      },
      "message": "Merge \"Remove hard-coded NetworkStack package name\""
    },
    {
      "commit": "9c5d96490279dbc5cea09cf8a2da29318b397729",
      "tree": "3328cc578885afd9ca52bdb05241c83b7e260712",
      "parents": [
        "f46b14b6aff8293a8881d97f6fee089ae86c0955"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 07 21:29:57 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Feb 08 12:12:57 2019 +0900"
      },
      "message": "Remove hard-coded NetworkStack package name\n\nHave the network stack pass its package name in\nshowProvisioningNotification instead.\n\nBug: 124033493\nTest: flashed, WiFi and captive portal works\nTest: atest FrameworksNetTests NetworkStackTests\nChange-Id: I1f3312768ba1fb34e99a827e1fcdaf7510e318a8\n"
    },
    {
      "commit": "2f932d72baf5cb831c973c838505c34ecb84b64c",
      "tree": "731e6d99f8e99419788241bd928e8e85c6ac4377",
      "parents": [
        "21b38267fa281b27a8ecac799a4f941f5b9519b8"
      ],
      "author": {
        "name": "Sahin Caliskan",
        "email": "sahinc@google.com",
        "time": "Wed Feb 06 10:11:39 2019 -0800"
      },
      "committer": {
        "name": "Sahin Caliskan",
        "email": "sahinc@google.com",
        "time": "Thu Feb 07 19:20:45 2019 +0000"
      },
      "message": "Make RCS Message Store APIs ready to unhide\n\nThis change makes necessary changes to unhide the APIs in a future\ncommit. All the classes that end with Parameters needed to be converted\nto Params, which resulted in a rather large change. I also had to reintroduce\nRcsOutgoingMessageCreationParameters as it was required to make\nParcelables final, which means I had to make this new class parcelable\nand RcsMessageCreationParameters non-parcelable and non-final\n\nTest: Existing tests pass\n\nBug:109759350\nChange-Id: I2fe9382d28a9abf02ad22ec7ccdeaedc55ae4337\n"
    },
    {
      "commit": "f00a87689352cf2226b28bbcbe84c66c2bb3ee12",
      "tree": "91387cc20a0feb796d3cf4f9b4ed62bd291078f0",
      "parents": [
        "e5f71e4ed0877bc1bafcd65c17bcc2971919cdaf"
      ],
      "author": {
        "name": "Sahin Caliskan",
        "email": "sahinc@google.com",
        "time": "Thu Jan 24 14:32:12 2019 -0800"
      },
      "committer": {
        "name": "Sahin Caliskan",
        "email": "sahinc@google.com",
        "time": "Wed Feb 06 15:49:16 2019 +0000"
      },
      "message": "Implementation of RcsMessageStore APIs [base]\n\nThis change adds the implementation of RcsMessageStore. Please see the\nbug for the design and one-pager\n\nTest: Added unit tests\n\nBug: 109759350\nChange-Id: I6049dcf74ef9e19a38ce58148a89497992bc1c98\n"
    },
    {
      "commit": "2ed5d4cf9200f9b2a3a14fa7ba359b788eeb14d7",
      "tree": "53232e526d5ffc41b5e220f1d2cded59790e8a14",
      "parents": [
        "150e191bca7db76430ec92969132f77d199f378c"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Wed Jan 30 19:11:45 2019 +0800"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Feb 06 14:07:39 2019 +0900"
      },
      "message": "[KA03.5] Add stable AIDL parcelable for TcpKeepalivePacketData\n\nBug: 114151147\nTest: atest FrameworksNetTests\nChange-Id: I057dde79013b9eda5037b9a44f8eee06cc07352e\n"
    },
    {
      "commit": "150e191bca7db76430ec92969132f77d199f378c",
      "tree": "2c9ac3e3818ff811aab84221310a9d8e3e74ec16",
      "parents": [
        "d6471064e90bdbbd65321f3158255844ed8c4353"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Dec 27 22:49:51 2018 +0800"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Feb 06 12:22:22 2019 +0900"
      },
      "message": "[KA03] Support tcp keepalive offload\n\nWhen offload is starting, socket will be switched to repair\nmode. Read and write on the socket will not be allowed until\nrepair mode is turned off. If remote packet arrives, repair\nmode will be turned off automatically and a callback will\nbe raised to indicate that socket is ready to read from.\n\nBug: 114151147\nTest: -atest FrameworksNetTests\n      -manual\n\nChange-Id: I0c335865912e183e7ad32a8ea12188f02ccde5fd\n"
    },
    {
      "commit": "06835112ab5b0714956468a6ae1bae4631a8adc9",
      "tree": "edf3b7fba80565db9a2cbeb0e9d5ceff85040cfc",
      "parents": [
        "996f047394a86bb7e73a8b3ff29175cc4b9e571f"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Thu Jan 03 18:50:15 2019 +0800"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Feb 05 20:13:47 2019 +0900"
      },
      "message": "[KA02] internal cleanup and refactor for SocketKeepalive\n\nIn previous change, the new SocketKeepalive API was exported.\nBut internally, old PacketKeepalive names and structures are\nstill used.\n\nThis change rename them properly for code consistency and also\nrefactor KeepalivePacketData to support different types of\nKeepalivePacketData.\n\nBug: 114151147\nTest: 1. atest FrameworksNetTests\n      2. atest FrameworksWifiTests\n      3. atest FrameworksTelephonyTests\n\nChange-Id: Ia9917d12987e91e87e34ffb3f126e7bc7c9c187e\nMerged-In: Ia9917d12987e91e87e34ffb3f126e7bc7c9c187e\n"
    },
    {
      "commit": "4163ff7928dd5d4df8de766570a010451448a26d",
      "tree": "463846f8653ac299457e0e43833314683d77aa60",
      "parents": [
        "b334bbefd489b4e91845844f27c588d5641ef52f",
        "f27312788000e5974090527b57e98d098f59dfde"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Thu Jan 31 07:23:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 31 07:23:31 2019 +0000"
      },
      "message": "Merge \"Add get last entitlement value callback API\""
    },
    {
      "commit": "f27312788000e5974090527b57e98d098f59dfde",
      "tree": "1fc775f7bb0a778e542f30eb5dab448c510b634f",
      "parents": [
        "33a09948e5a413eb2f78976e742566d3efa152d2"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Jan 16 17:44:13 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Jan 31 12:31:55 2019 +0800"
      },
      "message": "Add get last entitlement value callback API\n\nThe callback would be used to notify entitlement value. If the\ncache value indicates entitlement succeeded, it just fire\ncallback with cache value instead of run entitlement check.\n\nBug: 120887283\nTest: atest FrameworksNetTests\nChange-Id: I8afe928423bd75c54c61533a50a5c0814922ceb1\n"
    },
    {
      "commit": "62a9b66a3878ec8f94be196eeac3327cd5ae0c6e",
      "tree": "92fd0b560a5a3a6b97e066c1ac7ab5d1c3ee8778",
      "parents": [
        "8c43f731cf33e69dc137d6852db448c48680f229",
        "1215f09b07c46f305b9227639b8cf66da03d0ddd"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Jan 31 02:43:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 31 02:43:25 2019 +0000"
      },
      "message": "Merge \"Add an API that allows VPNs to declare themselves as metered.\""
    },
    {
      "commit": "1215f09b07c46f305b9227639b8cf66da03d0ddd",
      "tree": "4013a6c95c3e596069490b357be0f34c9451af85",
      "parents": [
        "d8148b6c8c259d3088a6d1aa9703ff208c76c36e"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Mon Jan 14 11:45:33 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Wed Jan 30 14:09:03 2019 -0800"
      },
      "message": "Add an API that allows VPNs to declare themselves as metered.\n\nFor VPN apps targeting Q and above, they will by default be treated as\nmetered unless they override this setting before establishing VPN.\n\nBug: 120145746\nTest: atest FrameworksNetTests\nTest: On device tests verifying meteredness setup correctly for apps\ntargeting Q and apps targeting P.\nChange-Id: Ia6d1f7ef244bc04ae2e28faa59625302b5994875\n"
    },
    {
      "commit": "231b52bc03750eb49b615fb110d91f6529c922b1",
      "tree": "f493100f461e573e00b2548afd62941d247220ec",
      "parents": [
        "9fdc6d296378bd17432ba1de507c83f4c3b8ed3a"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Jan 29 15:38:52 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jan 30 10:23:24 2019 +0900"
      },
      "message": "Remove last NetworkStack usage of hidden APIs\n\nIncludes various small changes to stop using hidden APIs\n\nTest: make NetworkStack\nTest: flashed, booted, WiFi and tethering working\nBug: 112869080\nChange-Id: Id2830795a444f484b377ed6437435a1cd833697a\n"
    },
    {
      "commit": "774c3ce1527526d3ea55d59ee0a70f379aeff12b",
      "tree": "6008835a1f55b57ef05a1fabae82083e2344004f",
      "parents": [
        "b3f282daa1c2163ce495673944e46be6d7e76c8d",
        "a462bcb9c477a2c33611560c2e8182917c5bf5b9"
      ],
      "author": {
        "name": "Pavel Grafov",
        "email": "pgrafov@google.com",
        "time": "Mon Jan 28 20:15:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 20:15:49 2019 +0000"
      },
      "message": "Merge \"Whitelist packages from VPN lockdown.\""
    },
    {
      "commit": "b8bbc48dee9db0d98a4e0fae6e9e6792ef10e387",
      "tree": "64c437b4a8d27928e989b33f0c856f065bdc6359",
      "parents": [
        "375b3c075daf2d13bacd4dd74e645b5bdd5ec9fc",
        "e88516f13b2cf4cf51e133eb0580f6ca4f4904e8"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Jan 28 09:06:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 09:06:20 2019 +0000"
      },
      "message": "Merge \"Move NetworkUtils used by NetworkStack\""
    },
    {
      "commit": "9188b4925936d45f314e77eb5edf0c598a848177",
      "tree": "3d4dd930e9fdfdcbaaca1854fd379c9f065fd6a9",
      "parents": [
        "223d6815035b8f4a8cba7bae2c8a5a6fa7ccd63e",
        "a4bcc86dbe2b271547ce027a76b1a003aaf9918c"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Jan 28 08:12:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 08:12:55 2019 +0000"
      },
      "message": "Merge \"Add NetworkStack networking deps to SystemApi\""
    },
    {
      "commit": "e88516f13b2cf4cf51e133eb0580f6ca4f4904e8",
      "tree": "ce33aba620e23fa7f114aac988b4fdd4ecb60ff3",
      "parents": [
        "9d3ce3e55ea4c1e0e3006c535f3ce9bccd5b8134"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Sun Jan 20 09:35:10 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Jan 28 13:45:17 2019 +0900"
      },
      "message": "Move NetworkUtils used by NetworkStack\n\nDepending on usage move into NetworkStackUtils or shared\nInet4AddressUtils.\n\nTest: atest FrameworksNetTests NetworkStackTests\nBug: 112869080\nMerged-In: Ie20dcee375b377236004a7689890729493aca857\nChange-Id: Ib8d000529872796022706a35050fdc2c7141f2ab\n"
    },
    {
      "commit": "a4bcc86dbe2b271547ce027a76b1a003aaf9918c",
      "tree": "87f7d589be36365c536a9e278860a5098de0ffa4",
      "parents": [
        "166c3aa03049a1b3716b4e0de2c8b5a37e387e5f"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Jan 28 13:28:35 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Jan 28 13:28:35 2019 +0900"
      },
      "message": "Add NetworkStack networking deps to SystemApi\n\nCherry-pick with conflicts fixed in CaptivePortalLoginActivity imports.\nTest: atest FrameworksNetTests\nBug: 112869080\nMerged-In: Id59dc06fb85e4ac88098f56b621ec880610759ce\nChange-Id: I3c05e8fdd70497426d4fa433295c4fbdad07d9c9\n"
    },
    {
      "commit": "a462bcb9c477a2c33611560c2e8182917c5bf5b9",
      "tree": "ff9f4bfcb8b5e78803adba0901178aecfcd6d067",
      "parents": [
        "5e823ab263f779b566960a66c2eb9e4d511c598f"
      ],
      "author": {
        "name": "Pavel Grafov",
        "email": "pgrafov@google.com",
        "time": "Fri Jan 25 08:50:06 2019 +0000"
      },
      "committer": {
        "name": "Pavel Grafov",
        "email": "pgrafov@google.com",
        "time": "Fri Jan 25 19:59:03 2019 +0000"
      },
      "message": "Whitelist packages from VPN lockdown.\n\nBug: 77468593\nTest: atest com.android.server.connectivity.VpnTest\nChange-Id: I9119c139ab07a761ce5dfd1365b70eb905fd32dc\n"
    },
    {
      "commit": "9c4b6532b2822acf0910b677ab04d4dd2818c0ff",
      "tree": "3fc4e8187994e2fe2598e22a33f596753bc1e9d9",
      "parents": [
        "8a52fda1fa7478231d8b1b1c1d7b7f38b96c92d3",
        "72ff937a6b45201c49ead754cbd1c3cf1b6ba310"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jan 25 17:14:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 25 17:14:44 2019 +0000"
      },
      "message": "Merge \"JankBench: Add Bitmap Upload to list of runnable tests\""
    },
    {
      "commit": "8a52fda1fa7478231d8b1b1c1d7b7f38b96c92d3",
      "tree": "af10bcd550b621c679e9fc4473666cad7873807c",
      "parents": [
        "113fbed9000a3e371fbdbd9eeb92ade00204adb4",
        "5c1d15003efc53f8202026b42120e81cbef8ae00"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jan 25 17:14:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 25 17:14:15 2019 +0000"
      },
      "message": "Merge \"JankBench: Fix execution of incorrect benchmark\""
    },
    {
      "commit": "1f9d80f6eebc26615e14fdbab5ee8461f70aa589",
      "tree": "31c31631990a1faa0a24121c30a2d00b141ee206",
      "parents": [
        "23a6598fe44fd73f0236fdfc09504e552a153cd1",
        "f735efc83331c8f7ab76a0114c94ffb6d25377c9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 25 00:15:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 25 00:15:50 2019 +0000"
      },
      "message": "Merge \"Fix IPMS tests timeout.\""
    },
    {
      "commit": "9f73671651379fb63355a39e2ace302272ba63c0",
      "tree": "f77bf568f2411960ffcfeca217db5413eeb4689d",
      "parents": [
        "961a43eae2aeee9b6fcfc152554ede34b2c115a1",
        "ee8e6a0fae7cf79862e05ea3f62d552bac3e1401"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 24 21:08:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 21:08:46 2019 +0000"
      },
      "message": "Merge \"Revert \"Whitelist packages from VPN lockdown.\"\""
    },
    {
      "commit": "ee8e6a0fae7cf79862e05ea3f62d552bac3e1401",
      "tree": "e612fa7dab5f1164c6c4ffb58e8a9c880197c61f",
      "parents": [
        "bb9cef04c5b6699412d43d82bdd31c7a4f692cbc"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 24 21:05:39 2019 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 24 21:05:39 2019 +0000"
      },
      "message": "Revert \"Whitelist packages from VPN lockdown.\"\n\nThis reverts commit bb9cef04c5b6699412d43d82bdd31c7a4f692cbc.\n\nReason for revert: broke pi-dev-plus-aosp\n\nChange-Id: Iaf5c8aa4a8720eb2852da8cd91c81a77ccb92b68\n"
    },
    {
      "commit": "8b5917965d4ca7fd4a614263a01312e930bb1646",
      "tree": "ad42664877a02c4bd56dbd79e0a732aa7c59cbf3",
      "parents": [
        "efc773525cc5da909ba8dd2bf6ff4d517c7a3992",
        "044a436ac99d5cdb74fe933b7129f213ca3578c3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 17:52:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 17:52:22 2019 +0000"
      },
      "message": "Merge \"Add API for proxy configuration over VPN.\""
    },
    {
      "commit": "efc773525cc5da909ba8dd2bf6ff4d517c7a3992",
      "tree": "bde153bd4069f09f3d13e834f1e37da576c9af55",
      "parents": [
        "1146f76c55e78dffcda031cdc4a007262cf83e44",
        "bb9cef04c5b6699412d43d82bdd31c7a4f692cbc"
      ],
      "author": {
        "name": "Pavel Grafov",
        "email": "pgrafov@google.com",
        "time": "Thu Jan 24 17:34:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 17:34:55 2019 +0000"
      },
      "message": "Merge \"Whitelist packages from VPN lockdown.\""
    },
    {
      "commit": "bb9cef04c5b6699412d43d82bdd31c7a4f692cbc",
      "tree": "60ab233d03c88ab95be89004766b785b21a193e2",
      "parents": [
        "479c0769f1a08526b3d846a77e54f78e76faf9ff"
      ],
      "author": {
        "name": "Pavel Grafov",
        "email": "pgrafov@google.com",
        "time": "Wed Dec 05 10:40:23 2018 +0000"
      },
      "committer": {
        "name": "Pavel Grafov",
        "email": "pgrafov@google.com",
        "time": "Thu Jan 24 16:17:11 2019 +0000"
      },
      "message": "Whitelist packages from VPN lockdown.\n\nBug: 77468593\nTest: atest com.android.server.connectivity.VpnTest\nTest: atest MixedDeviceOwnerTest#testAlwaysOnVpn\nTest: MixedDeviceOwnerTest#testAlwaysOnVpnAcrossReboot\nChange-Id: I7f6c5b9172063b588feacd6b9930a6cb88f764ab\nMerged-In: I7f6c5b9172063b588feacd6b9930a6cb88f764ab\n"
    },
    {
      "commit": "044a436ac99d5cdb74fe933b7129f213ca3578c3",
      "tree": "2548520f494605718e95615e16061627c56f36de",
      "parents": [
        "e62097f71d7719df24430e1e1405ba4ecaaf4b01"
      ],
      "author": {
        "name": "Irina Dumitrescu",
        "email": "irinaid@google.com",
        "time": "Wed Dec 05 16:19:47 2018 +0000"
      },
      "committer": {
        "name": "Irina Dumitrescu",
        "email": "irinaid@google.com",
        "time": "Thu Jan 24 16:07:20 2019 +0000"
      },
      "message": "Add API for proxy configuration over VPN.\n\nTest: runtest -x\nframeworks/base/tests/net/java/com/android/server/ConnectivityServiceTest.java\n\u0026\u0026 atest HostsideVpnTests\nBug: 76001058\nChange-Id: Id4dde4a4103fd93bfbbacc52d0e5ade56ae67a6a\nMerged-In: Id4dde4a4103fd93bfbbacc52d0e5ade56ae67a6a\n"
    },
    {
      "commit": "6fa3d391b8109d761f3cece9c43bb46c23f58da6",
      "tree": "c11cf6a214c38b4446a7623e8a7b87be5b865f59",
      "parents": [
        "54d74bbf06f8d58972070a8c5f69daefa7dd8d3d",
        "d2e045e040e543f5eda2821a0108a81667546eac"
      ],
      "author": {
        "name": "Lucas Lin",
        "email": "lucaslin@google.com",
        "time": "Thu Jan 24 11:06:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 11:06:12 2019 +0000"
      },
      "message": "Merge \"Popup a notification after logging in the captive portal network\""
    },
    {
      "commit": "f735efc83331c8f7ab76a0114c94ffb6d25377c9",
      "tree": "f70fddcdd6362907c1b588cb7d202f915a0a60f3",
      "parents": [
        "0d4002db35fc6dd5976176b468597e8a65d8d895"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jan 24 19:34:39 2019 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jan 24 19:34:39 2019 +0900"
      },
      "message": "Fix IPMS tests timeout.\n\nThe tests used to correctly detect failures but would mostly wait\nfor timeout instead of succeeding immediately. If timeout were to\nhappen, that would not have been detected.\n\nTest: atest IpMemoryStoreServiceTest\nChange-Id: Ic1e7fcac3020739af7dc3e2c294d0838d8ffc711\n"
    },
    {
      "commit": "d2e045e040e543f5eda2821a0108a81667546eac",
      "tree": "55f03b320fdeebb9240d32a8bfdf7e66bd1fc29a",
      "parents": [
        "56e1062ce30489ea83ce187fb78ec763d951f1b1"
      ],
      "author": {
        "name": "lucaslin",
        "email": "lucaslin@google.com",
        "time": "Thu Jan 24 15:55:30 2019 +0800"
      },
      "committer": {
        "name": "lucaslin",
        "email": "lucaslin@google.com",
        "time": "Thu Jan 24 15:55:30 2019 +0800"
      },
      "message": "Popup a notification after logging in the captive portal network\n\nCaptive portal app will be auto dismissed after user login the\ncaptive portal network. In order to improve the user experience,\npopup a notification to notify user that the captive portal\nnetwork is connected.\n\nBug: 113629026\nTest: 1.atest FrameworksNetTests:NetworkNotificationManagerTest\n      2.Connect to a captive portal network and login, check if\n      there is a notification popup.\n\nChange-Id: Id54d12268e107af2f213c2bb348c5f7908e880f4\n"
    },
    {
      "commit": "b3656c7b1b11e10cab70e90dcb6117f70607c891",
      "tree": "3fff5a7293562b928340f82c16347a1eaa22fa3a",
      "parents": [
        "9f7bc7d616543d26da1b5878c361898182adacc2",
        "215b877f11c82b1cc11e5c92c5330d4855e9dda7"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Thu Jan 24 05:06:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 05:06:39 2019 +0000"
      },
      "message": "Merge changes from topic \"ka05\"\n\n* changes:\n  [KA05] Export keepalive offload api for IpSec Nat-T file descriptor\n  [KA01] export SocketKeepalive API for NAT-T keepalive\n"
    },
    {
      "commit": "4864bfa722382c24d5389ec18a08c82521ce836f",
      "tree": "8de650ab7e2b80de884d79a9ce5125a9a82a7a91",
      "parents": [
        "d49a6c86f4878c238fe981b24c6a5e01ef6e6218",
        "0f224efb5eb0b68e5fa4b923dbf72f3db9ac165b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 04:36:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 04:36:44 2019 +0000"
      },
      "message": "Merge \"Add generic SelectTest JUnit filter and CoreTestsFilter\""
    },
    {
      "commit": "215b877f11c82b1cc11e5c92c5330d4855e9dda7",
      "tree": "9743b3174b635f221563968ef557d229b40cc573",
      "parents": [
        "48eac1d4c8507c794aa162bd93a4c7319c52bff4"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Tue Jan 15 11:32:44 2019 +0800"
      },
      "committer": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Thu Jan 24 00:40:25 2019 +0800"
      },
      "message": "[KA05] Export keepalive offload api for IpSec Nat-T file descriptor\n\nAdds system api of createSocketKeepalive to take file descriptor,\nso privileged apps could use it without the need of IpSecService.\n\nBug: 114151147\nTest: atest FrameworksNetTests\nChange-Id: If926c21704b6ed73a0adfcadad732b97b42bacae\n"
    },
    {
      "commit": "48eac1d4c8507c794aa162bd93a4c7319c52bff4",
      "tree": "00baf657553ad454eb24984372475d7c5c324698",
      "parents": [
        "e62097f71d7719df24430e1e1405ba4ecaaf4b01"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Thu Dec 27 17:25:29 2018 +0800"
      },
      "committer": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Wed Jan 23 23:17:17 2019 +0800"
      },
      "message": "[KA01] export SocketKeepalive API for NAT-T keepalive\n\nThe new set of API replace the PacketKeepalive system API\nwhich is only specific for IPsec NAT-T keepalive packet. Allows\napplications to request different types of keepalives through\nthe same set of API.\n\nBy using keepalives, applications could request system to\nperiodically send specific packets on their behalf, using\nhardware offload to save battery power.\n\nThis change would only address interface change and test part of\noriginal functionality. After all reference of PacketKeepalive\nare removed, another change would be submitted to remove old\nAPI.\n\nBug: 114151147\nTest: atest FrameworksNetTests\nChange-Id: I3367666810acc44d5ad20e19acd4bf936e8b5d9c\n"
    },
    {
      "commit": "e693d49c0a46611d18afb69701277318958a0e9c",
      "tree": "cef829ed144da7a674de0f541ccaa14db7aee7f1",
      "parents": [
        "78cccf728dea2952185c83c5f03bd54418cb98a8",
        "c6304b87416882a9ed71069de0572fb3181c734c"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jan 23 15:05:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 15:05:00 2019 +0000"
      },
      "message": "Merge changes I1250730c,I7d00848c\n\n* changes:\n  Create a wrapper for IpClient\n  Move IpClient to NetworkStack\n"
    },
    {
      "commit": "0f224efb5eb0b68e5fa4b923dbf72f3db9ac165b",
      "tree": "08e60028cbde94a6bf2fe48d31a33292c902b4e6",
      "parents": [
        "e62097f71d7719df24430e1e1405ba4ecaaf4b01"
      ],
      "author": {
        "name": "Tadashi G. Takaoka",
        "email": "takaoka@google.com",
        "time": "Wed Jan 23 22:09:52 2019 +0900"
      },
      "committer": {
        "name": "Tadashi G. Takaoka",
        "email": "takaoka@google.com",
        "time": "Wed Jan 23 23:04:03 2019 +0900"
      },
      "message": "Add generic SelectTest JUnit filter and CoreTestsFilter\n\nThe JUnit filter com.android.test.filters.SelectTest is a generic test\nfilter that can supersede |-e package| and |-e class| options of\nAndroidJUnitRunner.\n\nThe com.android.server.wm.test.filters.CoreTestsFilter extends SelectTest\nfilter to filter out Window Manager Service releated tests in\nFrameworksCoreTests.\n\nBug: 122451194\nTest: Can select some tests from WmTests.\n  $ adb shell am instrument -w \\\n      -e filter com.android.test.filters.SelectTest \\\n      -e selectTest com.android.test.filters.,com.android.server.wm.DummyTests \\\n      com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner\nTest: CoreTestsFilter works for FrameworksCoreTests.\n  $ adb shell am instrument -w \\\n      -e filter com.android.server.wm.test.filters.CoreTestsFilter \\\n      -e selectTest_verbose true \\\n      com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Ic72637997bf17debef914e2596049f6cf3e753de\nMerged-In: Ic72637997bf17debef914e2596049f6cf3e753de\n"
    },
    {
      "commit": "e62097f71d7719df24430e1e1405ba4ecaaf4b01",
      "tree": "c45828c41067694b9f90af6e4d65ce8ef0a68015",
      "parents": [
        "98f0c3091178ed19c66d33213882a27460873422",
        "ed3168e9e35eb0f779dd6b86c842d4fbf5ac2932"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jan 23 12:29:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 12:29:40 2019 +0000"
      },
      "message": "Merge \"Stop depending on the ConnectivityService default request.\""
    },
    {
      "commit": "773f3f5bf38c7520ec2a7e60679937c26d2da571",
      "tree": "4db43dd8ac7e5dff4391d367e844d1f80141c19e",
      "parents": [
        "31ff0616d1a940f35d25f9c0fb24c9d3a1b9d6d6",
        "8d1a890c5ccca5d7e5186db592fa6a2e0aa5709e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 23 11:01:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 11:01:43 2019 +0000"
      },
      "message": "Merge \"[MS11] Implement findL2Key\""
    },
    {
      "commit": "ed3168e9e35eb0f779dd6b86c842d4fbf5ac2932",
      "tree": "d22d628ccc95c750d45c4ebc4aaa2075ae9937f1",
      "parents": [
        "06adb08d273023a71d480a0362fc06f6569ddee3"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jan 23 17:54:08 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jan 23 18:10:06 2019 +0900"
      },
      "message": "Stop depending on the ConnectivityService default request.\n\nThis avoids the need to expose ConnectivityService implementation\ndetails as @SystemApi and the complexities that would be required\nto make NetworkCapabilities parcelable in stable AIDL.\n\nBug: 112869080\nTest: atest FrameworksNetTests NetworkStackTests\nChange-Id: Icd5d25b9b8e9b7a7d1899b000c92dc4976c3b3d7\n"
    },
    {
      "commit": "31ff0616d1a940f35d25f9c0fb24c9d3a1b9d6d6",
      "tree": "c9de3fcfa885c43d9f5f7a8800cd42534a359d43",
      "parents": [
        "625a1f4461870548686801996a791cf6cd9a8bbb",
        "00b15f33abdae776cd0eec4eeee9e5b8b28a40ea"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Jan 23 08:48:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 08:48:23 2019 +0000"
      },
      "message": "Merge changes from topic \"Java async dns\"\n\n* changes:\n  Add asynchronous DNS query API in Java\n  Add jni method for DnsResolver\n"
    },
    {
      "commit": "8d1a890c5ccca5d7e5186db592fa6a2e0aa5709e",
      "tree": "2d1a7603477d0dd84dff63c014d39aae39962b0b",
      "parents": [
        "0a9054639d8fdc62af6fe6035c7ac503cb2f4922"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Jan 18 20:21:26 2019 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jan 23 16:54:37 2019 +0900"
      },
      "message": "[MS11] Implement findL2Key\n\nBug: 113554482\nTest: old tests pass, new tests added\nChange-Id: I2e93c88c30eae614a6db04abe698e8edf7fa6a43\n"
    },
    {
      "commit": "3c600a15a1ab35272405c8902a6ab92e46f18ce4",
      "tree": "63b8da5a5d0a58c0ae89d585ad13de4b6e1e16ab",
      "parents": [
        "625a1f4461870548686801996a791cf6cd9a8bbb"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Jan 10 19:12:46 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jan 23 16:44:21 2019 +0900"
      },
      "message": "Move IpClient to NetworkStack\n\nTest: atest FrameworksNetTests NetworkStackTests\nBug: b/112869080\nChange-Id: I7d00848c052382cd1b6ce458868bed6a1e9e8ec5\n"
    },
    {
      "commit": "58582a36fcfebddbc54be82933c9f4b39391686d",
      "tree": "8f1fb71f4de389126c811711fe9b60e507f00678",
      "parents": [
        "bfd44b60ef7d7dbb1fb5dcd6d4cc109f929aaaa9",
        "97f69c2f8d55e9da4ce26c0bf7180c01dce1cb54"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jan 23 01:13:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 01:13:01 2019 +0000"
      },
      "message": "Merge \"Add getAvoidBadWifi system API\""
    },
    {
      "commit": "022daeb874fde960baac0e964728bb7c72d0434e",
      "tree": "f25facca4236b3cf94107a7d2dc4aa3df65e285d",
      "parents": [
        "eb7c53718ae675d65ff726edb748ac27a74c4fd2",
        "b67e4936533e91e999673f5c46585a95ee211ac2"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 22 22:50:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 22 22:50:21 2019 +0000"
      },
      "message": "Merge changes If71fadd2,I42047185\n\n* changes:\n  [MS10] Address leftover comments on MS03 and MS07\n  [MS09] Implement isSameNetwork.\n"
    },
    {
      "commit": "ced57bb7fc8de19387b9974f2bdfdf5abe8d316c",
      "tree": "e8ca9e98e6b9748d41f4a959c0057d3a67564a0c",
      "parents": [
        "09a29e161f6a240da19d550b267e0ed0f02d37a0"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Thu Jan 17 09:47:51 2019 -0800"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Tue Jan 22 18:16:33 2019 +0000"
      },
      "message": "Add libprocessgroup dependency\n\nBecause set_sched_policy is moved into libprocessgroup an additional\ndependency is required for its users. libframeworksnettestsjni requires\nlibprocessgroup otherwise com.android.frameworks.tests.net fails with\nerror:\ndlopen failed: library \"libprocessgroup.so\" not found\n\nExempt-From-Owner-Approval: janitorial\n\nBug: 111307099\nTest: builds, boots\n\nMerged-In: Ia8bc5b447efa568fd1c822746919fa1496cc42a6\nChange-Id: Ia8bc5b447efa568fd1c822746919fa1496cc42a6\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "00b15f33abdae776cd0eec4eeee9e5b8b28a40ea",
      "tree": "2153136d27627f689c50beaea97c7e6ca6eb9813",
      "parents": [
        "92ae35ec9f1b771b2607df7196bb1dead4337771"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Jan 04 19:56:29 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Jan 23 00:07:43 2019 +0800"
      },
      "message": "Add asynchronous DNS query API in Java\n\nDnsResolver for asynchronous DNS querying\nDnsPacket for parsing answer\n\nTest: built, flashed, booted\n      atest DnsResolverTest\n      atest DnsPacketTest\n\nChange-Id: Id014bc7387dd940cfaa270f68e7d4d85fab320a0\n"
    },
    {
      "commit": "97f69c2f8d55e9da4ce26c0bf7180c01dce1cb54",
      "tree": "7bec6cb08e0ee2b1d952da0f2571e2b226594cc7",
      "parents": [
        "89e53d81ce97b098a4cfaa6e9acbfb336fa4b83a"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Sun Jan 20 20:35:06 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Jan 22 15:57:34 2019 +0000"
      },
      "message": "Add getAvoidBadWifi system API\n\nThis helps remove the dependency on MultinetworkPolicyTracker from\nIpClient.\n\nTest: atest FrameworksNetTests NetworkStackTests\nBug: 112869080\nChange-Id: If56791dbed564772f25a859f301b8b52d84e38a3\n"
    }
  ],
  "next": "479c0769f1a08526b3d846a77e54f78e76faf9ff"
}
