)]}'
{
  "log": [
    {
      "commit": "391ec5d99c25bd663f240705a6c6bb15fe474ef7",
      "tree": "c9536b68ae8c0078e01b4b27a8d4e9ba97b31a7f",
      "parents": [
        "6f2b294fd0b9a21459d46f3e2d6b90a8d567f7c1"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 07 10:54:52 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 18 19:23:57 2025 +0900"
      },
      "message": "Remove the queue on the NetworkAgent side\n\nNow that the system server has a queue doing this job,\nthe queue on the network agent side can be removed.\n\nTest: ConnectivityCoverageTests, CtsNetTestCases\nChange-Id: Idf0435f447cfdd28d829a867d1085771837c6f9b\n"
    },
    {
      "commit": "8a97692638ed9f2fadbc89d593ef0662a2080803",
      "tree": "bdcfb733c2e90eb190fdda1ba2efa95f96a0a6b6",
      "parents": [
        "85945625261b00447750269402e9b9fde926ca44"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 18 09:27:33 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 18 14:42:39 2025 +0900"
      },
      "message": "Reapply \"Return the registry in registerNetworkAgent.\"\n\nNow that faulty Telephony tests have been disabled temporarily\nto allow for this bugfix, this can be reverted.\nThis reverts commit 653d5f1ef42cef52203c06d40027096a70e381f6.\n\nTest: FrameworksTelephonyTests CtsNetTestCases\nChange-Id: If6b1541981803dc84de57b48adb13d40c9997fa0\n"
    },
    {
      "commit": "653d5f1ef42cef52203c06d40027096a70e381f6",
      "tree": "6fe0d8998ed445a9df0f8c2382162a582f31fa78",
      "parents": [
        "30fcf820f92470a824d2a083907e03a609ecaf35"
      ],
      "author": {
        "name": "Pechetty Sravani (xWF)",
        "email": "pechetty@google.com",
        "time": "Mon Mar 17 00:48:05 2025 -0700"
      },
      "committer": {
        "name": "Pechetty Sravani (xWF)",
        "email": "pechetty@google.com",
        "time": "Mon Mar 17 00:48:05 2025 -0700"
      },
      "message": "Revert \"Return the registry in registerNetworkAgent.\"\n\nRevert submission 3535182\n\nReason for revert: \u003cDroidmonitor created revert due to b/404070202.Will be verified through ABTD for standard investigation.\u003e\n\nReverted changes: /q/submissionid:3535182\n\nChange-Id: I2febd2ee7227d487d9cd69dcabd9c04f888fd2de\n"
    },
    {
      "commit": "80d4326d76e848b5ec4027f63c61cd6a4a3b877c",
      "tree": "2d708fe0b92432a6ed295bf4cdcded36db94dd22",
      "parents": [
        "8fd6347d356b2e4109a88daec8f746a9ad1b832b"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Mar 03 11:59:31 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 14 13:23:50 2025 +0900"
      },
      "message": "Return the registry in registerNetworkAgent.\n\nThis is a resubmit of\nI0fd90716b9f5501bdcdc7ee5165321737a0076ae\nwhich did not account for testing of this private method\nin Telephony tests.\n\nAlso make the network agent registry two way to eliminate\nreordering possibilities.\n\nTest: ConnectivityCoverageTest, CtsNetTests\nChange-Id: I9ca025b1369dcb1202f906d5cff79e3d935b40da\n"
    },
    {
      "commit": "8fd6347d356b2e4109a88daec8f746a9ad1b832b",
      "tree": "6fe0d8998ed445a9df0f8c2382162a582f31fa78",
      "parents": [
        "ca91ebdcab512e0649a8f2f17153b84f4c647c18"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Mar 13 17:13:34 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 14 13:23:37 2025 +0900"
      },
      "message": "Add a method to help mocking registerNetworkAgent\n\nThis is a trick to help mocking registerNetworkAgent without\nhaving to import its return type. In the near future the\nreturn type will be changed to a non-public class, which\ncan\u0027t be seen in CTS.\n\nReally this shouldn\u0027t be necessary because only Connectivity\ntests should mock ConnectivityManager, but the practice is\ndifferent and other mockers need this support.\n\nSee also aosp/3538922\n\nTest: NetworkAgentTest\nChange-Id: I3ac63d95d3830a3b413f9ad12b84ac426b63dd08\n"
    },
    {
      "commit": "846fb39e8a45a3cf535816a95dab1ced87b399cc",
      "tree": "a88b8d6037b4227f4ce601d059994c990bc1a57c",
      "parents": [
        "70ede3260cf58b02015a71e60823b004ff4e3d83"
      ],
      "author": {
        "name": "Chaitanya Cheemala (xWF)",
        "email": "ccheemala@google.com",
        "time": "Tue Mar 11 06:05:49 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 11 06:05:49 2025 -0700"
      },
      "message": "Revert \"Return the registry in registerNetworkAgent.\"\n\nThis reverts commit 70ede3260cf58b02015a71e60823b004ff4e3d83.\n\nReason for revert: Likely culprit for b/402365566 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\n\nChange-Id: If72cc264c5e505348309c6c11dbbfd11adeaf31b\n"
    },
    {
      "commit": "70ede3260cf58b02015a71e60823b004ff4e3d83",
      "tree": "970c12b04ba5d6e343c0d986b8756690d3ecdef3",
      "parents": [
        "520093b2514b58d97a837b7a126fc6bafde2dcbf"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Mar 03 11:59:31 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 11 16:26:17 2025 +0900"
      },
      "message": "Return the registry in registerNetworkAgent.\n\nAlso make the network agent registry two way to eliminate\nreordering possibilities.\n\nTest: ConnectivityCoverageTest, CtsNetTests\nChange-Id: I0fd90716b9f5501bdcdc7ee5165321737a0076ae\n"
    },
    {
      "commit": "597a64fc23cf20a5d6fd6d3e8441261fa6650397",
      "tree": "8a1f454c97314ae0e2457203d21479bef44555db",
      "parents": [
        "a812717d2dd3c8067aefc60f2c8caa60188f6fa4"
      ],
      "author": {
        "name": "Sandeep Bandaru",
        "email": "sandeepbandaru@google.com",
        "time": "Wed Mar 05 02:38:22 2025 -0800"
      },
      "committer": {
        "name": "Sandeep Bandaru",
        "email": "sandeepbandaru@google.com",
        "time": "Wed Mar 05 02:38:22 2025 -0800"
      },
      "message": "Change NETWORK_BLOCKED_WITHOUT_INTERNET_PERMISSION ChangeId to target 37+\n\nThis was causing issues with jobs execution using JobScheduler, in apps that don\u0027t request INTERNET permission.\n\nBug: 397348342 \nFlag: EXEMPT changes a compat flag\nChange-Id: I1c421cbaff815ed761ec4c0da3ead942ddc55d5c\n"
    },
    {
      "commit": "c088b301a849c6f8f9847335b53804fbab31b8af",
      "tree": "f3b45d6ddfb968bf00d990d1f23b082de9c309c7",
      "parents": [
        "53dd6ead10114cd52ab3b27c0a4c240470249d62",
        "b9b8828bf550f2325d151b9ea35f2cf5947e7ef2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 03 20:55:49 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 03 20:55:49 2025 -0800"
      },
      "message": "Merge \"Add method to get socket cookie from socket FileDescriptor\" into main"
    },
    {
      "commit": "b9b8828bf550f2325d151b9ea35f2cf5947e7ef2",
      "tree": "f6077ce9f05d8818d08a8fe1aeb34bdb625e2bee",
      "parents": [
        "1cfc7f69efa427ebc052f0960f1e748cf37d4311"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Feb 20 11:57:39 2025 +0900"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Mon Mar 03 17:23:04 2025 -0800"
      },
      "message": "Add method to get socket cookie from socket FileDescriptor\n\naosp/3502915 use this method from ConnectivityService to get socket\ncookie that is required for closing QUIC connection.\n\nBug: 311792075\nTest: m, boot\nChange-Id: I17d8a4dd24cfb84e9b008b8eb87eedec67b29020\n"
    },
    {
      "commit": "df5441508e3927f8628ae7f17018c55781c94645",
      "tree": "183a849983544f0b7413a3deda8343624986d1d4",
      "parents": [
        "a7278d3d0059887966fce8b91c76f1974aa46ee1"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Feb 28 10:22:54 2025 +0900"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Feb 28 10:47:40 2025 +0000"
      },
      "message": "Remove -stubs-including-flagged\n\nThese were added to allow tests to build against flagged off APIs, in\nlegacy downstream branches that did not support the flagging\ninfrastructure and stripped out flagged off APIs from the stubs.\n\nFlagged off APIs are part of the regular stubs in branches used today,\nso this is not needed anymore.\n\nBug: 399365344\nTest: atest\nChange-Id: Ica7df0c5c9be39d9dca49e0114711a7c43125c3d\n"
    },
    {
      "commit": "689297411a30a0346090e3de70fd903e88b3781c",
      "tree": "146a768af517813a586fa92a6077f40453830374",
      "parents": [
        "52fdeb421bf273a56a05f54cc047e1efe9ec3cd1",
        "b04a8048a1bc25e145d5f3cbb002c12ba679343a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Feb 26 03:02:34 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 26 03:02:34 2025 -0800"
      },
      "message": "Merge \"Revert \"Add SkipNativeNetworkCreation flag in NetworkAgentConfig\"\" into main"
    },
    {
      "commit": "b04a8048a1bc25e145d5f3cbb002c12ba679343a",
      "tree": "c0ed6993dac78346f417f33dffb46818b44bbfd1",
      "parents": [
        "fef111ce477e549555f2d624f877122ee20b38e9"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Feb 26 01:30:20 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 26 01:30:20 2025 -0800"
      },
      "message": "Revert \"Add SkipNativeNetworkCreation flag in NetworkAgentConfig\"\n\nThis reverts commit fef111ce477e549555f2d624f877122ee20b38e9.\n\nReason for revert: Replaced by early native network creation\n\nChange-Id: I692f716d8651badf6d0037e55a2385d0fb0049d1\n"
    },
    {
      "commit": "3687f0e65e3a76644f0c5c8c787ba40a49939eea",
      "tree": "beec176ced3ec4bc15170b5aab68421b3686d73e",
      "parents": [
        "47669ff8e41c4057c8ea5986f0e1d727363fc1e7",
        "0508c94e14f9826d2506f18196ba7a8d5fdcb989"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Feb 25 14:20:23 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 14:20:23 2025 -0800"
      },
      "message": "Merge \"Move server reservation validation to L2capNetworkSpecifier\" into main"
    },
    {
      "commit": "47669ff8e41c4057c8ea5986f0e1d727363fc1e7",
      "tree": "346061a80621ee2ea5ed5c1a5d1b0564af8a4551",
      "parents": [
        "695779c24da1cfe1615fd3dfcac987a8f95a85b2",
        "bf65974835a99b0f8b913a131790600154b54a11"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Feb 25 14:18:19 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 14:18:19 2025 -0800"
      },
      "message": "Merge \"Move client request validation to L2capNetworkSpecifier\" into main"
    },
    {
      "commit": "0508c94e14f9826d2506f18196ba7a8d5fdcb989",
      "tree": "be2854cbc43586ecac14be3abaa7a7e7eab836ee",
      "parents": [
        "bf65974835a99b0f8b913a131790600154b54a11"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Feb 25 09:26:08 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Feb 25 09:26:08 2025 -0800"
      },
      "message": "Move server reservation validation to L2capNetworkSpecifier\n\nTest: TH\nChange-Id: If0abf62bf008750d67d3687e5f59734421cce7cf\n"
    },
    {
      "commit": "bf65974835a99b0f8b913a131790600154b54a11",
      "tree": "3abf0fd075acd3c1f87208a4dca05f1819322652",
      "parents": [
        "df26cda358cdbbfc1214d9374c9641769151f1eb"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Feb 25 09:20:40 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Feb 25 09:20:40 2025 -0800"
      },
      "message": "Move client request validation to L2capNetworkSpecifier\n\nTest: TH\nChange-Id: Ied1af7edc60a0df01d820c2e81e16de980eb526f\n"
    },
    {
      "commit": "95d7f5b56b03aa23b057e9e0a751848425c074c5",
      "tree": "b86c4eea10c1da08cd73b0ec28c807087838d886",
      "parents": [
        "d14f094e12653f715bc5da730b05f08bc2c41e3c"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 09:10:28 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 09:19:44 2025 -0800"
      },
      "message": "Delete unused createTapInterface method\n\nTest: TH\nChange-Id: Ia273344ffa26feec78e400e2df3e890081a15a23\n"
    },
    {
      "commit": "d14f094e12653f715bc5da730b05f08bc2c41e3c",
      "tree": "f39e76942e3d3684f7af393334b4fb51336678e7",
      "parents": [
        "2bef486f76c781911ed5f4c4165eb6b237439471"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 08:55:39 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 09:19:44 2025 -0800"
      },
      "message": "Delete unused createTapInterface method\n\nTest: TH\nChange-Id: Iab107c5804204295e714775b3b026a8e64795378\n"
    },
    {
      "commit": "2bef486f76c781911ed5f4c4165eb6b237439471",
      "tree": "f954b5c1fd29e7f02fa31bbf6f33155523b3a676",
      "parents": [
        "f8471445dc17487e85189e27285acef9729f064e"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 08:54:40 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 09:19:44 2025 -0800"
      },
      "message": "Replace createTapInterface() with new Builder API\n\nTest: TH\nChange-Id: I5d5bcafb2b91dd31b7d2aa71f62279ab79d971bf\n"
    },
    {
      "commit": "f8471445dc17487e85189e27285acef9729f064e",
      "tree": "7f66b88d405e1aafcbdd0dff839327b8482d822a",
      "parents": [
        "f2bb2c85fa35523b26d6f7745a10c1ed8704122b"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 08:50:47 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Feb 24 09:19:44 2025 -0800"
      },
      "message": "Replace createTapInterface() call with new Builder API\n\nTest: TH\nChange-Id: I0d96bfa39a378a8dcc03c2366c332ae5eb8e69d6\n"
    },
    {
      "commit": "fe058c60b4e5eea048d94da920f576b22fd282d1",
      "tree": "9958c3996c7d98c56b2bc4a0b98d0e200b4fbeb0",
      "parents": [
        "14ba95c48e07662b374a229b069bbd8c2e3953c6"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Feb 21 11:19:01 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Feb 21 13:56:02 2025 -0800"
      },
      "message": "Add configuration object and builder for creating tun/tap interfaces\n\nThis change is finally (!) adding a builder class for creating tun/tap\ninterfaces for testing.\n\nThe various create*Interface() methods which are not marked as\n@SystemApi can be removed after moving existing tests over to the new\nAPI.\n\nBug: 237694424\nTest: TH\nChange-Id: I10eff755ebda4e2ef2550a50a3bfd1543a21e5b0\n"
    },
    {
      "commit": "8331a7929259ca6a0392b6572ba30b0a681d70db",
      "tree": "b6cd460e19747ef7fa177f37f2fd0c1384d75fc6",
      "parents": [
        "44f39a5cf32e35f9c0cda78fa1fe67a266c4bf28"
      ],
      "author": {
        "name": "Jacque Li",
        "email": "jacqueli@google.com",
        "time": "Wed Feb 19 10:11:00 2025 -0500"
      },
      "committer": {
        "name": "Jacque Li",
        "email": "jacqueli@google.com",
        "time": "Wed Feb 19 08:40:49 2025 -0800"
      },
      "message": "Update lnp app compat to be enabled after cur development version\n\nBug: 376030323\nTest: atest CtsNetTestCases\n\nChange-Id: I7345ac2a08d21d1226ff8607ce1edf44f0946859\n"
    },
    {
      "commit": "e0b119773cffe9cd76035c0039becec8b7b60b6d",
      "tree": "26fd7ffdd2a40ba6a6792af317e8f4ae9455d53e",
      "parents": [
        "5817d88cf555092fa859dde2b82698e7e9efd671"
      ],
      "author": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Tue Feb 18 18:32:23 2025 +0000"
      },
      "committer": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Tue Feb 18 18:32:23 2025 +0000"
      },
      "message": "Revert https://r.android.com/3477936\n\nThe CL has caused a memory regression in the Zygote, See: b/396156852\n\nTest: Compile\nBug: 396156852\nChange-Id: I0ca4cd430a6537d689a1b04739656afc84c43ce1\n"
    },
    {
      "commit": "02574fa4dcfb7a630f7ea795d3d79d2a9a7800bc",
      "tree": "5cb99054793a7e43b08b90298f89fde45d376217",
      "parents": [
        "6fc914642cc82f85d6b93776d4a9ff0fff7b4ed5",
        "b09cd9e50c4fa151165b64b5e128a26998dfc8ab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Feb 11 15:13:22 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 11 15:13:22 2025 -0800"
      },
      "message": "Merge \"Add metric to HttpEngine preload\" into main"
    },
    {
      "commit": "448eb43f28825b1a6f2de88af0928ea114e9ecf1",
      "tree": "be4ae44003c4672615f1cb9f122c0fe8a08978ec",
      "parents": [
        "ddf74d8f90b693e2f67f5ea5b092105079c317c1"
      ],
      "author": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Thu Jan 23 20:02:48 2025 +0000"
      },
      "committer": {
        "name": "Jacque Li",
        "email": "jacqueli@google.com",
        "time": "Fri Feb 07 15:10:49 2025 -0500"
      },
      "message": "Adding access methods for local_net_access_map and\nlocal_net_blocked_uid_map\n\nTest: Manually tested this using dumpsys commands\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.BpfNetMapsTest\nBug: 392855578\n\nChange-Id: I61522f3282aa502f20641d3c2692a66638edf706\n"
    },
    {
      "commit": "b09cd9e50c4fa151165b64b5e128a26998dfc8ab",
      "tree": "80390b368091aa32051807d254431ac0f51fd917",
      "parents": [
        "07918a3b95fba058f30847aa53236442b5b91c2b"
      ],
      "author": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Thu Feb 06 15:26:07 2025 +0000"
      },
      "committer": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Thu Feb 06 15:27:57 2025 +0000"
      },
      "message": "Add metric to HttpEngine preload\n\nSee the other CLs in the same topic for the details.\n\nTest: See other CL\nBug: 380349437\nChange-Id: I4b936e3d834462bba5a368d6dd1a1e262c17f0c9\n"
    },
    {
      "commit": "074b213907f6aa34088d18f89706f3074fcbcd0b",
      "tree": "7d59892721e335b56aba79022509488e8f0e0423",
      "parents": [
        "b406e18b04f43572b434bfdba7dcad8050753597",
        "080c91309f8eb37bee22cc60ae7b83c9734b35fb"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Wed Jan 15 17:46:18 2025 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 15 17:46:18 2025 -0800"
      },
      "message": "Merge \"Add toString to L2capNetworkSpecifier\" into main"
    },
    {
      "commit": "30d8a25db3de9f56e88861174d7fb2bf31765bfe",
      "tree": "54d16ac3adb3dcce04f031e48ff67f492ddcda3e",
      "parents": [
        "62928ee6e1a15cab0d47543191c7ee387e9c2703"
      ],
      "author": {
        "name": "Quang Anh Luong",
        "email": "qal@google.com",
        "time": "Fri Dec 06 16:44:36 2024 +0900"
      },
      "committer": {
        "name": "Quang Anh Luong",
        "email": "qal@google.com",
        "time": "Wed Jan 15 08:59:42 2025 +0900"
      },
      "message": "Disallow legacy tether() API starting in B\n\nAs part of the major tethering refactor to associate every IpServer with\na TetheringRequest, tether()/untether() APIs should be completely\nremoved in B and all tethering should go through startTethering() (with\nthe exception of Wifi LOHS and Wifi P2P, which will move to\nstartTethering() in a future CL).\n\nBug: 216524590\nTest: atest CtsTetheringTests TetheringTests\n\nChange-Id: If7981f1ee7d80ff0a1cc0069ba7a4ebf79144160\n"
    },
    {
      "commit": "080c91309f8eb37bee22cc60ae7b83c9734b35fb",
      "tree": "7f29c2dc8165c3ef14887874c60e1337c9d3cc11",
      "parents": [
        "f1ae5ab86c3f0210d8937f40bab2e7a57b2a943b"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Jan 13 12:42:00 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Jan 13 13:57:20 2025 -0800"
      },
      "message": "Add toString to L2capNetworkSpecifier\n\nTest: TH\nChange-Id: Ie874fe7e54990e9dc94fe8e4a28034b5ec2a1bd4\n"
    },
    {
      "commit": "74a8f475b2d9cf98e226c482f7fff5488d8b312e",
      "tree": "118d1343c101bd9853fcbc2084598a4c94af29f6",
      "parents": [
        "5e61925e5170d860b2e3182b19b5779a0e55eb3f"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Jan 10 10:32:30 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Jan 10 14:46:54 2025 -0800"
      },
      "message": "Implement matching semantics for L2capNetworkSpecifier\n\nA server network is created by using ConnectivityManger#reserveNetwork,\nin which the app passes a specifier that sets:\n\nreservationRequest \u003d {\n    role \u003d server\n    headerCompression \u003d 6lowpan\n    remoteAddr \u003d any (null)\n    psm \u003d any\n}\n\nThis specifier must subsequently match the blanket reservation offer,\nand the reserved offer that is generated as a response:\n\nblanketOffer \u003d {\n    role \u003d server\n    headerCompression \u003d any\n    remoteAddr \u003d any (null)\n    psm \u003d any\n}\n\nreservedOffer \u003d {\n    role \u003d server\n    headerCompression \u003d 6lowpan\n    remoteAddr \u003d any (null)\n    psm \u003d 0x81\n}\n\nAnd not the client network offer or a client network:\n\nclientOffer \u003d {\n    role \u003d client\n    headerCompression \u003d any\n    remoteAddr \u003d any (null)\n    psm \u003d any\n}\n\nclientNetwork \u003d {\n    role \u003d client\n    headerCompression \u003d 6lowpan\n    remoteAddr \u003d 01:02:03:04:05:06\n    psm \u003d 0x81\n}\n\nSimilarly the client request must match both the clientOffer and\nclientNetweork, but not the reservedOffer (and technically\nblanketOffer):\n\nclientRequest \u003d {\n    role \u003d client\n    headerCompression \u003d 6lowpan\n    remoteAddr \u003d 01:02:03:04:05:06\n    psm \u003d 0x81\n}\n\nNote, a request for TRANSPORT_BLUETOOTH with no specifier matches *any*\nspecifier per specifier matching semantics in NetworkCapabilities.\n\nTest: L2capNetworkSpecifierTest\nChange-Id: Ia16926b463a54530ae6e88278466e92ed82bf852\n"
    },
    {
      "commit": "5e61925e5170d860b2e3182b19b5779a0e55eb3f",
      "tree": "72ad3f5bc6b18906cfd7cb9b0f1bf33d6d4552b0",
      "parents": [
        "7faa0b486cebc48aae36daa0e02c748eb6a87492"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Jan 07 21:09:50 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Jan 10 08:57:03 2025 -0800"
      },
      "message": "Do not allow L2CAP specifier with ROLE_SERVER and remote address set\n\nThis is an invalid combination that never seems useful. Note that this\nstill allows ROLE_ANY in combination with a remote address. This still\ndoesn\u0027t seem particularly useful, but there is no good reason to\ndisallow it.\n\nTest: TH\nChange-Id: Ib0b7284cb99ee92f14113f8184af978eeb2318e7\n"
    },
    {
      "commit": "7faa0b486cebc48aae36daa0e02c748eb6a87492",
      "tree": "5510df9d30fb7c11dc7ca18c10424b29540f1d50",
      "parents": [
        "5b6e6b2a5a983fd524b29cbfe12f94f16b5abe4a"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Jan 07 21:08:37 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jan 08 15:57:47 2025 -0800"
      },
      "message": "Do not redact PSM from L2capNetworkSpecifier\n\nPer discussion on aosp/3429160.\n\n\"It doesn\u0027t look like knowing the PSM of an L2CAP network would give\nother apps any sort of useful information. They don\u0027t have the MAC, and\nthere are only 128 ephemeral PSM values anyway.\"\n\nTest: TH\nChange-Id: Ia81c97dd2e31611fd2d13d5899390fc0c67b6c0f\n"
    },
    {
      "commit": "5b6e6b2a5a983fd524b29cbfe12f94f16b5abe4a",
      "tree": "21c95fe4648c02159eef1307c73815e99c6b94b8",
      "parents": [
        "d10fa68a5c781592a3185ff973bb1b911ba96b20"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jan 08 12:24:17 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jan 08 15:48:16 2025 -0800"
      },
      "message": "Use IntRange for setPsm\n\nConfigures an IntRange [0, 255] for the L2CAP BLE PSM. Note that L2CAP\nover Bluetooth Classic uses PSM values that exceed this range though is\nexplicitly not supported.\n\nThis CL also changes the value for PSM_ANY from -1 to 0 to make the\nIntRange continuous as 0 is not a valid PSM (in both BLE and Classic).\n\nBug: 388438641\nTest: TH\nChange-Id: I15a69cfb80545c4f3723d089afd3cf026eec0696\n"
    },
    {
      "commit": "d10fa68a5c781592a3185ff973bb1b911ba96b20",
      "tree": "747db24daad23e7de2cb618d30261975160f8d6c",
      "parents": [
        "c7e388423af99d0cc0a9d4e924dd65c1be0657d0"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Jan 07 21:07:42 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jan 08 15:48:16 2025 -0800"
      },
      "message": "Improve documentation of L2capNetworkSpecifier\n\nAddresses comments in aosp/3429160.\n\nTest: TH\nChange-Id: I05588b7f0a3d22beae4ddb2237b9a6eebdd00d03\n"
    },
    {
      "commit": "c7e388423af99d0cc0a9d4e924dd65c1be0657d0",
      "tree": "b9c4ebcab39eb791c9cbc32869299ef07d0024d6",
      "parents": [
        "ab1cb2a80d18c7ae17fb8d7ec17eead480476767"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jan 08 06:48:21 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jan 08 15:48:16 2025 -0800"
      },
      "message": "Have setRemoteAddress accept a Nullable remoteAddress\n\nPer API council feedback.\n\nBug: 388438641\nTest: TH\nChange-Id: Iba71c4944ebbd91df5fdbb3605fc9edcc2139af5\n"
    },
    {
      "commit": "961528d1cca2dfacbec8f13a0b312ffa92522555",
      "tree": "bda571e612a88ba77ac4adcdae333ae1bb13beba",
      "parents": [
        "121ab15fdf48ac35634bad05136f16426f3cdeae"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Dec 20 15:44:29 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Jan 07 13:38:41 2025 -0800"
      },
      "message": "Add L2capNetworkSpecifier\n\nAdds the API surface of the L2capSpecifier. Matching will be implemented\nin a follow up change.\n\nTest is *very* basic and will be expanded in follow up (once API is\napproved).\n\nTest: atest L2capNetworkSpecifierTest\nAPI-Coverage-Bug: 372936361\nBug: 372936361\nChange-Id: I6d36b77c3ae05fb8d251da9e197e82af187ead0c\n"
    },
    {
      "commit": "121ab15fdf48ac35634bad05136f16426f3cdeae",
      "tree": "38c949aac0a2b81b5c03abbf7951c21e6c51a4ac",
      "parents": [
        "8ce8574207c2f3057279b3789b895c51e6bb3a35"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Jan 07 12:54:33 2025 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Jan 07 12:59:21 2025 -0800"
      },
      "message": "Fix exception when unparcelling NetworkRequest with reservationId\n\nThis change adds a new private constructor that is called directly from\ncreateFromParcel instead of using the public constructor used by CS.\n\nThe public constructor throws an exception when the passed\nNetworkCapabilities specify a reservationId (to prevent apps from\npassing in reservationIds). This means that it cannot be called from\ncreateFromParcel.\n\nTest: atest NetworkReservationTest\nChange-Id: I1fe2411401623b0b01cbdbe040049b810fcbb48a\n"
    },
    {
      "commit": "73eee542a11cda372ea948d9be3c6d37891742d2",
      "tree": "3970a0b52fed726566a8eb02dccf9b7a14e970fa",
      "parents": [
        "4cef67c00802506276dca338f7e643252f4c00d1"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Dec 06 12:29:29 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Sun Dec 22 22:01:22 2024 -0800"
      },
      "message": "Add reserveNetwork API\n\nreserveNetwork allows a requestor to initiate the creation of a network\nthat requires the system to preallocate resources which can then be\nadvertised by the requestor on or off device in order to help create the\nnetwork.\n\nFor example, this API will be used to reserve a IP over L2cap server\nnetwork, which requires the system to first create a\nBluetoothServerSocket and reserve a PSM (i.e. port). This information is\npassed back to the requestor via onReserved() callback and subsequently\nadvertised via a BLE advertisement. The network is established as soon\nas the client connects to the advertised PSM, which will trigger a call\nto onAvailable(), just like a regular NetworkRequest.\n\nonReserved() callbacks are exclusive to the reserveNetwork API and are\nsent when an NetworkOffer is registered that matches the reservation ID\nof an existing request. A reserved offer always follows the reservation\nrequest as it is created in direct response. onReserved() can only be\ncalled once. If for some reason the reservation gets cancelled by the\nsystem (i.e. the NetworkOffer is retracted) or cannot be fulfilled,\nonUnavailable() is called. It is up to the app to file a new\nNetworkRequest when this happens.\n\nAn onReserved() callback is not queued, because\na) it cannot be called more than once for the same reservation,\nb) it must always be the first callback, and\nc) it only gets cancelled by onUnavailable().\n\nThis change does not handle NetworkOffer migrations, such as updating\nthe score, properly. This must be addressed before the feature can ship\nas the yieldToBadWifi logic can update the score on all NetworkOffers.\n\nAPI-Coverage-Bug: 372936361\nTest: Very basic CSNetworkReservationTest; more to follow.\nChange-Id: I9b349d469830bf28e006cf403c605574371db267\n"
    },
    {
      "commit": "4cef67c00802506276dca338f7e643252f4c00d1",
      "tree": "1471a861daead8f38404450975171552a413ffa5",
      "parents": [
        "da8ae0edfe2074e5c6885560c9b2ff70e3d6b548"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Dec 20 10:29:28 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Sun Dec 22 22:01:22 2024 -0800"
      },
      "message": "Do not allow any request to pass in reservationId\n\nThis change enforces that the reservationId can *only* be set by the\nsystem. The reservationId is set by the system and the app must never be\nable to change it.\n\nTest: TH\nChange-Id: I9f6a0dc6df1ec09ed2d87de09ce52cdda7611600\n"
    },
    {
      "commit": "93136f13c6c14cd5c21e750ba27888f419ebe807",
      "tree": "fe98c3323df766832b1effe885eac04d6c2184c7",
      "parents": [
        "9fca40c06c03d8ff8918fc9186b51214c1fdf3a7"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Dec 02 15:46:48 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Dec 20 15:15:28 2024 -0800"
      },
      "message": "Add NetworkCallback#onReserved\n\nonReserved() is called in response to a successful Network reservation\nwith the NetworkCapabilities of the reserved network. onReserved is\ncalled at most once. If the reservation is released, onUnavailable is\ncalled.\n\nTest: TH\nAPI-Coverage-Bug: 372936361\nChange-Id: Idcef572ab9d07981799efc349206aadb620e0e69\n"
    },
    {
      "commit": "55726f17b9172ade75519f80dedd99d9639a43aa",
      "tree": "44331e74fabbdeb1c40beb1564319aaf505d8d59",
      "parents": [
        "bb15d823063f082abf9d86f3f5844d155191c37a"
      ],
      "author": {
        "name": "Jacque Li",
        "email": "jacqueli@google.com",
        "time": "Thu Oct 24 14:16:15 2024 +0000"
      },
      "committer": {
        "name": "Jacque Li",
        "email": "jacqueli@google.com",
        "time": "Fri Dec 13 13:43:26 2024 +0000"
      },
      "message": "Add app compat change ID for LNP\n\nBug: 369631245\nTest: manual build and checking logcat\nChange-Id: I34112b2d59b682426a45f7fbcdc5ce68996dde73\n"
    },
    {
      "commit": "3a5b37a87c0ac54048d7304bfba18a27fb89eef1",
      "tree": "83a89a1b71f50e63a4859c9802e1f62eef730e29",
      "parents": [
        "00f03cd5509bdf2588743af4964e0791d90d5953",
        "06fa57b2065fc82ce9094a17d25fd978a0b72ca9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Dec 12 16:08:35 2024 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 12 16:08:35 2024 -0800"
      },
      "message": "Merge changes Icecb889a,Id06116ad into main\n\n* changes:\n  Set the reservationId when a new NetworkRequest is created\n  Add reservationId to NetworkCapabilities\n"
    },
    {
      "commit": "06fa57b2065fc82ce9094a17d25fd978a0b72ca9",
      "tree": "6b038164caad8f470b7dec49b90946967e3edaea",
      "parents": [
        "cb91a25bb76cb73b519058d4d00762e4ee4c62f2"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Dec 02 15:33:11 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Thu Dec 12 14:23:47 2024 -0800"
      },
      "message": "Set the reservationId when a new NetworkRequest is created\n\nThis populates the reservationId with the value of the requestId when a\nnew NetworkRequest is created. Conceptually, the reservationId is not\nrelated to the requestId; however, the requestId fulfills the same\nuniqueness requirements that are needed for the reservationId, so it can\njust be reused for this purpose.\n\nTest: atest NetworkRequestTest\nChange-Id: Icecb889a5269554add5791587f1ce7319271fd9e\n"
    },
    {
      "commit": "cb91a25bb76cb73b519058d4d00762e4ee4c62f2",
      "tree": "ec840ee3b2ebc083332fcf23b43216f89cc450bf",
      "parents": [
        "e4c602e9f56a036803d66215bb7aa56bddab3db8"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Nov 26 14:31:32 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Thu Dec 12 14:18:54 2024 -0800"
      },
      "message": "Add reservationId to NetworkCapabilities\n\nThe reservationId is an internal field used for RESERVATION requests and\nacts much like an internal, unique NetworkSpecifier value. A\nNetworkRequest with a reservationId set can be satisfied by a Network /\nOffer with the same reservationId or an Offer with the wildcard {@code\nRES_ID_MATCH_ALL_RESERVATIONS}.\n\nRegular requests do not set the reservationId and match any Network /\nOffer (except the blanket offer) independent of their reservationId.\n\nTest: NetworkCapabilitiesTest\nChange-Id: Id06116adf776dbf09cb9f8ccb7f25ff51734e02e\n"
    },
    {
      "commit": "b960664fa87446d1aad3309914e0852b01c961cd",
      "tree": "85292298021ed93b2a08d191d3059b626299476b",
      "parents": [
        "79f907d1952023670227505156328310cf4d7c19",
        "e4c602e9f56a036803d66215bb7aa56bddab3db8"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Thu Dec 12 13:51:32 2024 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 12 13:51:32 2024 -0800"
      },
      "message": "Merge changes Id723dc9e,I3665d843 into main\n\n* changes:\n  Treat RESERVATION requests the same as REQUEST types\n  Adds a new RESERVATION request type\n"
    },
    {
      "commit": "69aa3c54690ef9f2522fdc52ef6a5f0af9f26aed",
      "tree": "0e0227fdca9b4fbe19d9ffb39839268626966040",
      "parents": [
        "23ffbcd2ee1db1f9c1f7953d3f9a54d05287c905",
        "7d6dfd52b270dd26cbc26f4e6f93365af1aabd68"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Wed Dec 11 22:43:58 2024 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 22:43:58 2024 -0800"
      },
      "message": "Merge \"CaptivePortal: implement setDelegateUid API.\" into main"
    },
    {
      "commit": "1f277bbab785ad18de082127e993f360172149fd",
      "tree": "23442609a87cda8c43a69345e9cf5174c2f6930d",
      "parents": [
        "0cee68d863aa8fbceeb8ea15e0af8f68fbf56bc6",
        "b4ccc6aff76176252af5a7da202539101b7b539d"
      ],
      "author": {
        "name": "Yan Yan",
        "email": "evitayan@google.com",
        "time": "Wed Dec 11 10:41:55 2024 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 10:41:55 2024 -0800"
      },
      "message": "Merge \"Conditionally include VCN in Tethering module\" into main"
    },
    {
      "commit": "d7f747dd4aa434b104e07f353ba974db439b1ae1",
      "tree": "108ecd7b4c07eaa3bee48fff7436ecf4db284733",
      "parents": [
        "6d41b0b77b7885b37a508cbf9fb1193bd50edc31",
        "25f22a92493e4e5826ce28d76da8370f2686574c"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Wed Dec 11 07:21:28 2024 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 07:21:28 2024 -0800"
      },
      "message": "Merge \"Clean up getAttributionTag\" into main"
    },
    {
      "commit": "7d6dfd52b270dd26cbc26f4e6f93365af1aabd68",
      "tree": "3590a8b60b154cabad46c1e2332cea787c702b11",
      "parents": [
        "729914733a2948e84e14fa8b73fda824add14102"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Thu Dec 05 04:06:53 2024 +0000"
      },
      "committer": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Wed Dec 11 20:27:10 2024 +0900"
      },
      "message": "CaptivePortal: implement setDelegateUid API.\n\nThis API is designed to set the UID of the app that is allowed to\nperform network traffic for captive protal login, communication will\nbypass network access restrictions such as VPNs and private DNS settings\nwhen a portal page is launched by Android Custom Tabs and bind the\nupcoming traffic to that portal network.\n\nBug: 373773542\nTest: atest ConnectivityCoverageTests\nChange-Id: I9992671634b8e88f5a647455811a6157fb15a44b\n"
    },
    {
      "commit": "fef111ce477e549555f2d624f877122ee20b38e9",
      "tree": "fef22b22acaaf84aaf888b52221950451e987493",
      "parents": [
        "04783040d52d05b8ee8484ee56ec4f660762efa6"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Dec 04 13:52:35 2024 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Dec 11 15:22:36 2024 +0800"
      },
      "message": "Add SkipNativeNetworkCreation flag in NetworkAgentConfig\n\nThis flag allows ConnectivityService to skip native network creation,\ndeferring this responsibility to Tethering. This is necessary because:\n\n- ConnectivityService requires the NetworkAgent to be in the CONNECTED\n  state to configure routing and invokes NetworkCallback#onAvailable\n  once ready.\n- Tethering requires lower-layer interactions to be completed before\n  notifying applications.\n\nThis approach ensures proper synchronization between ConnectivityService\nand Tethering during network setup.\n\nLong-term, all netd operations should be handled by ConnectivityService\nwhen it supports early native network creation in the CONNECTING state.\n\nAs a mid-term solution, this flag enables Tethering to manage native\nnetwork creation within the IpServer.\n\nTest: atest ConnectivityCoverageTests:android.net.connectivity.android.net.NetworkAgentConfigTest\nBug: 349487600\nChange-Id: I84da9c74dc4d40c7cd36c6657f17a158affed689\n"
    },
    {
      "commit": "25f22a92493e4e5826ce28d76da8370f2686574c",
      "tree": "42b332c6251709fcc9b069c714e680858e162d8a",
      "parents": [
        "512302275566b33ade4fc863ed78e4c1439c4f97"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Dec 09 11:05:42 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Dec 10 13:28:08 2024 -0800"
      },
      "message": "Clean up getAttributionTag\n\nThis method is not needed anymore.\n\nTest: TH\nChange-Id: If7b1e58b7c07fa9d6a7323ea951eed73be4d56aa\n"
    },
    {
      "commit": "517c2e319de557f72abc113e3c7e18ca615d585c",
      "tree": "85b01fe27936a7e4da66871780d7a33b235f1481",
      "parents": [
        "4025239568e601925dbb60450ad4d43ebce44827"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Nov 26 10:35:39 2024 -0800"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Dec 10 13:28:08 2024 -0800"
      },
      "message": "Adds a new RESERVATION request type\n\nRESERVATION requests allow supporting networks which require a two step\nconfiguration mechanism, such as IP over L2cap networks. In the case of\nIP over L2cap, the NetworkProvider must first create a\nBluetoothServerSocket to generate a PSM. That PSM must then be\ncommunicated back to the app to be included in a BluetoothAdvertisement\nbefore the network can be established.\nUsing a RESERVATION request eliminates the need for the side-channel\nAPIs that have historically been used to solve this problem. RESERVATION\nrequests are handled by \"blanket\" NetworkOffers which generate a\nNetworkOffer specific to the rservation in response. The requests\nincludes a reservationId (copied from the requestId) in its\nNetworkCapabilities which is considered in matching.\n\nTest: TH\nChange-Id: I3665d843fc3fa6dd6a7223eb84d7cf2fdeeea0a1\n"
    },
    {
      "commit": "b4ccc6aff76176252af5a7da202539101b7b539d",
      "tree": "df09aae910b4b70425f58858dbf99c3ff9cfe48d",
      "parents": [
        "6eee50614d57617f1b4868126bbe06abfb803d88"
      ],
      "author": {
        "name": "Yan Yan",
        "email": "evitayan@google.com",
        "time": "Sat Nov 02 01:37:17 2024 +0000"
      },
      "committer": {
        "name": "Yan Yan",
        "email": "evitayan@google.com",
        "time": "Mon Dec 09 12:04:12 2024 -0800"
      },
      "message": "Conditionally include VCN in Tethering module\n\nWhen the build system flag RELEASE_MOVE_VCN_TO_MAINLINE is true,\nVCN framework lib will be included in the tethering boot classpath\nfragment and the VCN service lib will be included in the\nservice-connectivity.jar\n\nBug: 375213246\nTest: flag enabled: VCN libs are in the tethering module\n      flag disabled: VCN libs are in the platform\nFlag: RELEASE_MOVE_VCN_TO_MAINLINE\nChange-Id: If0239eb1684b861b63794762915dab0d62379885\n"
    },
    {
      "commit": "c3a2764012603f8124713d1562436afa83d7bd05",
      "tree": "b3a9ea28c9b2b2fe5e30fd81a8033f47adfa8028",
      "parents": [
        "323c15448a9bb64cee65f3c95c0138112fe629db",
        "5023143dcfa8478ea1eb33457613beca3ca78164"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Nov 29 05:10:06 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 29 05:10:06 2024 +0000"
      },
      "message": "Merge \"Add a new module-only API to preload HttpEngine\" into main"
    },
    {
      "commit": "e0e0636fa9abbf44ea619a0eba60bc52119e5779",
      "tree": "deaede0f6333138f177211181af3487a665132ce",
      "parents": [
        "2c15bee348d10a09b3b230c5f66f4466d1db2dfb",
        "587f996eb463c8b4980226232bbe611d58347669"
      ],
      "author": {
        "name": "Yan Yan",
        "email": "evitayan@google.com",
        "time": "Wed Nov 27 00:34:33 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 27 00:34:33 2024 +0000"
      },
      "message": "Merge \"Expose Connectivity libraries to VCN and tests\" into main"
    },
    {
      "commit": "ee0a07cfd925b1aaef976aa979b00c6dc72c7035",
      "tree": "3ac2bc1c1a7fd5ad7a1afbc5387f27cd48ffadee",
      "parents": [
        "908ca9e9d8fed120f6a58e9f66a58d42ca1f73df"
      ],
      "author": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Mon Nov 25 12:31:48 2024 +0900"
      },
      "committer": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Mon Nov 25 12:31:48 2024 +0900"
      },
      "message": "Sort framework-connectivity-defaults libs alphabetically\n\nTest: TH\nChange-Id: I1ed2c8a023b79d044c82e5a0b52a96d0a535b996\n"
    },
    {
      "commit": "587f996eb463c8b4980226232bbe611d58347669",
      "tree": "bb7aca7a0c647d852e78e5466b88f59671dd27ec",
      "parents": [
        "908ca9e9d8fed120f6a58e9f66a58d42ca1f73df"
      ],
      "author": {
        "name": "Yan Yan",
        "email": "evitayan@google.com",
        "time": "Wed Oct 02 22:38:10 2024 +0000"
      },
      "committer": {
        "name": "Yan Yan",
        "email": "evitayan@google.com",
        "time": "Sat Nov 23 23:07:44 2024 -0800"
      },
      "message": "Expose Connectivity libraries to VCN and tests\n\nThis patch exposes Connectivity libraries to allow migrating VCN to\nits own non-updatable framework and service libraries. It also\ncreates a utility library for VCN.\n\nBug: 369703242\nTest: atest FrameworksVcnTests \u0026\u0026 atest CtsVcnTestCases\nFlag: EXEMPT no functional change\nChange-Id: I1981f1cc824dcf426a76a0af8e4e3460fccb754e\n"
    },
    {
      "commit": "5023143dcfa8478ea1eb33457613beca3ca78164",
      "tree": "9a90bc53ad48233a763db3e50f319aaf6f58604b",
      "parents": [
        "eb85ea5f2a7bc1e65c08966a58d1fdce3c80fe07"
      ],
      "author": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Fri Nov 22 07:50:30 2024 +0000"
      },
      "committer": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Fri Nov 22 10:50:11 2024 +0000"
      },
      "message": "Add a new module-only API to preload HttpEngine\n\nThis is supposed to be used only from the Zygote during the\ninitialization phase to preload HttpEngine. Currently, the\nimplementation only preloads a single class which is used to initialize\nthe backend for HttpEngine.\n\nBug: 380349437\nChange-Id: If3ebcb37e51104a69473491e9f230d1b043c7bd0\n"
    },
    {
      "commit": "0b1a7b8c98d30241925b4ce4475fa01ad4f763ed",
      "tree": "a5b9b5cc4506af55f3be28afc92b26229db8aa63",
      "parents": [
        "1cc7769bbe1ee8d54e16612b18a76c3e38de7a49"
      ],
      "author": {
        "name": "Arjun Dhaliwal",
        "email": "arjundhaliwal@google.com",
        "time": "Sat Nov 09 19:24:33 2024 -0800"
      },
      "committer": {
        "name": "Arjun Dhaliwal",
        "email": "arjundhaliwal@google.com",
        "time": "Thu Nov 21 05:41:16 2024 -0800"
      },
      "message": "NetworkAgent: Log a metric if a message is queued before registration\n\nIt should not be valid to queue messages before\nregistering a NetworkAgent, but the current design\nmakes it possible in practice. Log a metric so\nthat we have a handle on whether or not anybody\nis doing this in the field.\n\nBug: 296355968\nTest: manual\nChange-Id: I83ea92e39a860cebe58d1d82cb024313e244b9aa\n"
    },
    {
      "commit": "1cc7769bbe1ee8d54e16612b18a76c3e38de7a49",
      "tree": "1e7a6844312d17bb9fa84410124af40f2df29868",
      "parents": [
        "5c66824a445b429d4afaeb0b96aebea69d2724ae"
      ],
      "author": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Fri Nov 08 11:51:07 2024 +0900"
      },
      "committer": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Thu Nov 21 11:51:58 2024 +0000"
      },
      "message": "Add FrameworkConnectivityStatsLog for logging metrics\n\nIntroduced FrameworkConnectivityStatsLog within the\nframework-connectivity module. This enables logging of metrics, such as\nterrible error events, from components residing in the bootclasspath.\n\nTest: manual\nChange-Id: I478d957b06721b35135a45dbbcda72a2c3e9f9ce\n"
    },
    {
      "commit": "fcfe907cb4c43a2efb288cbc6dd87de325c21ad0",
      "tree": "a9f3e69ed96d57356a3950601ccaa9747faf9d1c",
      "parents": [
        "ba780ae2a30e42f6ddaa5a98addaacddff05c6c8",
        "e7c1b6289cf44763c193739ba48f3167eafd7c76"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Sep 12 15:51:40 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 12 15:51:40 2024 +0000"
      },
      "message": "Merge \"Fix comment\" into main"
    },
    {
      "commit": "430a8ad33c40ffa7b2ad44301108527fd9be96c1",
      "tree": "327dbb6c51ee8ef5e4e8a6781a970d763962a362",
      "parents": [
        "6a5165a2115d07c16e33b0e15b729582dbd3080b",
        "8401b6a9f09257b7fd9cc800115dd6d9807ae5e0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Sep 10 19:12:45 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 19:12:45 2024 +0000"
      },
      "message": "Merge \"Make java_sdk_library dependencies explicit\" into main"
    },
    {
      "commit": "8401b6a9f09257b7fd9cc800115dd6d9807ae5e0",
      "tree": "b50f9395bca6647d8066b16cd1450815d08e0da7",
      "parents": [
        "5f0ddbdf4e56ebd3bef9d981884c02cc16473228"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Fri Aug 30 00:29:58 2024 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Tue Sep 10 00:01:31 2024 +0000"
      },
      "message": "Make java_sdk_library dependencies explicit\n\nmodules should specify the submodule of java_sdk_library that the module\nactually depends on\n\nTest: CI\nBug: 358613520\nChange-Id: I0367068c901df98483f6cf95160d3e7801881b0a\n"
    },
    {
      "commit": "e7cae17b3a40e55a3855e5612bbc6f344666db62",
      "tree": "83fbb92a85b45b9fc5d8ee00059f955a7d325b8f",
      "parents": [
        "5f0ddbdf4e56ebd3bef9d981884c02cc16473228"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Sep 09 22:52:00 2024 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Sep 09 22:55:01 2024 +0000"
      },
      "message": "Add NetworkStack to framework-connetivity and framework-tethering impl lib visibility\n\nAs NetworkStackApi*Shims modules defined in\npackages/modules/NetworkStack depends on the impl libs of\nframework-connectivity and framework-tethering\n\nTest: m nothing\nBug: 358613520\nChange-Id: I5c90d4ae6eeb51f42f1ae1c88dd726bfdcd093e8\n"
    },
    {
      "commit": "9d5d7d07793549a9c8a19d6277c498683cb7da3f",
      "tree": "72a402102607ff50f26246883f79f918aac9d7d8",
      "parents": [
        "727dd5dea492377c4a2e15e6371265326e0ac09a"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Aug 27 20:00:24 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Mon Sep 02 15:21:30 2024 +0900"
      },
      "message": "Skip TestDropPacketToVpnAddress if the feature is disabled\n\nINGRESS_TO_VPN_ADDRESS_FILTERING is disabled due to b/352424251 and\ntestDropPacketToVpnAddress fails if the feature is disabled.\nSo skip testDropPacketToVpnAddress if the feature is disabled.\n\nBug: 362434644\nTest: adb shell device_config put tethering\n      ingress_to_vpn_address_filtering -1\nTest: atest CtsHostsideNetworkTests\n\nChange-Id: Ib16a7550dcf93dd9ecf29047b1c4f101ff6d610d\n"
    },
    {
      "commit": "2fc115491a9c108707398aa56c1c3c26817f7178",
      "tree": "36b78c2f9a84b519011581e902afecaec929549f",
      "parents": [
        "d7f925faccf3706b699e53faa73be23177ad964a"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Aug 15 12:34:15 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Aug 16 16:57:29 2024 +0900"
      },
      "message": "Use java_aconfig_library for android_core_networking flags\n\nConnectivity repo now can use java_aconfig_library since this target is\navailable on all downstream branches.\n\nThis CL removes framework-connectivity-t-mdns-standalone-build-sources.\nFiles in this target use flags which won\u0027t be available in the\nout-of-tree build but the next out-of-tree library import will not use\nthe classes in that filegroup anymore.\nSo the standalone build rule will still match the out-of-tree build.\n\nBug: 345121279\nTest: TH\nChange-Id: I2a9aa02bd0c9aa00d460f98cd51d5dec4098fb89\n"
    },
    {
      "commit": "9ffc0685d74c40397e81ec94f80b81de3acb7fd5",
      "tree": "941cb25d7fc69766901a3713561e5cf60eea4eb6",
      "parents": [
        "34b57700cdbe60422e58de0be9bb2b9ebbba2907"
      ],
      "author": {
        "name": "Sandro Montanari",
        "email": "sandrom@google.com",
        "time": "Wed Jul 24 15:50:37 2024 +0000"
      },
      "committer": {
        "name": "Sandro Montanari",
        "email": "sandrom@google.com",
        "time": "Mon Aug 12 08:50:29 2024 +0000"
      },
      "message": "Add boilerplate code for CertificateTransparencyService\n\nFlag: com.android.ct.flags.certificate_transparency_service\nBug: 319829948\nTest: m\nChange-Id: I69dd1b7346a013e9a990c9ae8cec1beb51be074d\n"
    },
    {
      "commit": "a7511c231839678874e5691f0dc4188ff3393036",
      "tree": "c458cec0cbfb5d4b08bcfe23c81e8045527fc4a8",
      "parents": [
        "2fc3231b5c443af97878ed2671affc96e2e16d0b",
        "d0e049455cdfcbf30455d21dd337e0cd306deb80"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Aug 09 10:06:03 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 09 10:06:03 2024 +0000"
      },
      "message": "Merge \"Support NetworkStats#addEntries API\" into main"
    },
    {
      "commit": "d0e049455cdfcbf30455d21dd337e0cd306deb80",
      "tree": "323f1c4e68d04e984228888ee2463d2555f859f8",
      "parents": [
        "6f6b1a4684ad14d90462963a8a727384ab170456"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Jul 10 18:10:05 2024 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Aug 09 14:19:38 2024 +0800"
      },
      "message": "Support NetworkStats#addEntries API\n\nCurrently, NetworkStats#addEntry creates a new instance\ncontaining the requested result instead of mutating the\noriginal object. This creates a heavy memory footprint\nwhen the caller invokes it in a loop because a new NetworkStats\ninstance is created whenever an addEntry is called.\n\nThis change introduces a new API that allows callers to\nadd a set of entries to a NetworkStats instance. This new\nAPI will clone the instance only once, return the newly\ncreated (and modified) instance, and ensure that the original\ninstance remains immutable.\n\nAdditionally, the change adopts config libraries for flagging\nthe API and corresponding CTS tests, since Android U-based\nbranches are no longer downstream of current development branches.\n\nTest: atest FrameworksNetTests:android.net.connectivity.android.net.netstats.NetworkStatsApiTest\nTest: atest CtsNetTestCases:NetworkStatsApiTest\nBug: 335680025\nFix: 357772271\nAPI-Coverage-Bug: 357772271\nChange-Id: I58513844e681c0621a6107ec4b198cd3957f289d\n"
    },
    {
      "commit": "057369c8401d45c90e4a068e8a30969469fc5ea1",
      "tree": "71add6c73f540ea28b1cfeb39b1255bc3f6a4db9",
      "parents": [
        "c4b4feed1913dfd28d57c70fff7334790ef5df3e",
        "dfb159289b8131129ff749201fc843c88647ca6b"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Aug 05 00:15:39 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 05 00:15:39 2024 +0000"
      },
      "message": "Merge changes If787d3f3,I6de357ac into main\n\n* changes:\n  Rename getShrinkedBackingArray to getMinimized*\n  Suspend callbacks for frozen apps\n"
    },
    {
      "commit": "2d78124348f4864d054ea7a7b52683d225bd7c1f",
      "tree": "608e058a0fd555a8a45df9e171055c3cd996e648",
      "parents": [
        "6ade6e20420ce935582ad658e678a727e799d5d2"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jun 05 18:57:40 2024 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Aug 02 19:24:17 2024 +0900"
      },
      "message": "Suspend callbacks for frozen apps\n\nTo avoid filling the binder buffers, and sending unnecessary callbacks\nwhen apps are unfrozen (for example successive LinkProperties changes or\nonAvailable+onLost are not useful), queue and aggregate callbacks for\napps that are suspended.\n\nTest: atest\nBug: 327038794\nBug: 279392981\nChange-Id: I6de357ac2834f1f7e960dfbaa63adfc3825f2a82\n"
    },
    {
      "commit": "29c0d2aea79cc1b67c333a463eeb466d19a1e93a",
      "tree": "3ba2c0fa949ae5e8de569c9e0b52fa299c282368",
      "parents": [
        "63178543ed80cc5700d820e6fe960446ff4b6b05"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Jul 30 15:34:46 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Jul 30 16:56:52 2024 +0900"
      },
      "message": "Fix to return BLOCKED_REASON_NONE for system uids\n\nBug: 289439578\nTest: BpfNetMapsTest\nChange-Id: Ib50c2755bc8642cc0dc4e95384d35e38be400a2c\n"
    },
    {
      "commit": "4d25564865f9a6e8bd12b1c1c766946b13512872",
      "tree": "da903ef18e9244192f69e2b18d0cbee243ebb730",
      "parents": [
        "8811e1d06a22a6c39a50d0d1f95831c4591a03c6"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Jul 23 16:41:25 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Jul 24 17:01:51 2024 +0900"
      },
      "message": "Add framework-connectivity-pre-jarjar-without-cronet\n\nThis is required to build cronet against ConnectivityManager hidden APIs\nSince framework-connectivity contains cronet, cronet target can not\ndepend on framework-connectivity.\nSo this CL splits framework-connectivity-pre-jarjar.\nCronet target can depend on\nframework-connectivity-pre-jarjar-without-cronet and use\nConnectivityManager hidden APIs.\n\nTest: TH\nBug: 311792075\nChange-Id: Ib7724e8e6bd0226b437ed6f0010658d45aaa1150\n"
    },
    {
      "commit": "c3621e6012aee4b3a838a4148a5f6ddf2ab0b511",
      "tree": "45431fe46e5f6415925557947fe07e942e78cec4",
      "parents": [
        "b287f49c15289cb82aa195bb7388101f30340546"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jul 03 17:48:50 2024 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Jul 16 13:36:49 2024 +0900"
      },
      "message": "Add a CallbackQueue class\n\nThe class will be used to build memory-efficient objects (int arrays)\nused to queue ConnectivityService callbacks while an app is frozen.\n\nThis is very similar to an ArrayList\u003cPair\u003cShort, Short\u003e\u003e, but avoids\nobject boxing which would use a lot more memory.\n\nThis is intended to be used by ConnectivityService both as a builder,\nand as a utility to read lists of callbacks that it stores. Long-lived\nreferences to the CallbackQueue would not be kept to minimize memory\nusage; only the array returned by toArray needs to be stored.\n\nTest: atest\nBug: 327038794\nBug: 279392981\nChange-Id: I187ea15d14dfd160e577e9e9e87b1aded27b1938\n"
    },
    {
      "commit": "e7c1b6289cf44763c193739ba48f3167eafd7c76",
      "tree": "5f53accd278eb1bf319d9ce3dde33d912c9244c1",
      "parents": [
        "9365e728e56c8ddf4dd7ee4c792a867a802a1093"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jul 10 17:16:56 2024 +0000"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Jul 10 17:16:56 2024 +0000"
      },
      "message": "Fix comment\n\nframework-connectivity is in the bootclasspath on S+, while framework-connectivity-tiramisu is in the bootclasspath on T+.\n\nThis is consistent with the RequiresApi annotations in this class.\n\nChange-Id: I619759aa1c714738f988f77fd8fcb9de4b1ffdbf\nTest: comment only change\n"
    },
    {
      "commit": "8f2c30664d2791000b09912e0a4a340ca33b597f",
      "tree": "3ba1b14fdec922af4477abc959e6577e5e6b8eca",
      "parents": [
        "9b0df36ea45268d8c9ef5464f150864e518da5d7"
      ],
      "author": {
        "name": "Handa Wang",
        "email": "handaw@google.com",
        "time": "Tue Jul 02 13:18:04 2024 +0000"
      },
      "committer": {
        "name": "Handa Wang",
        "email": "handaw@google.com",
        "time": "Fri Jul 05 05:26:54 2024 +0000"
      },
      "message": "Refactor RoutingCoordinator\n\n- This CL puts RoutingCoordinator into staticlibs to make it usable by\nboth Tethering and ConnectivityService on R.\n- This CL also changes the return type of\n  ConnectivityInternalApi#getRoutingCoordinatorManager() to IBinder so\n  it has fewer dependencies.\n\nBug: 350699020\nTest: CI\n\nChange-Id: Iba096e940795cd33e61c5141721394ad39e5ce6d\n"
    },
    {
      "commit": "9b0df36ea45268d8c9ef5464f150864e518da5d7",
      "tree": "66cfee6192b107dfe49f0ffdce7367682977bdad",
      "parents": [
        "5289382f04ff17f94317a23cec663161599facec"
      ],
      "author": {
        "name": "Handa Wang",
        "email": "handaw@google.com",
        "time": "Tue Jul 02 13:17:43 2024 +0000"
      },
      "committer": {
        "name": "Handa Wang",
        "email": "handaw@google.com",
        "time": "Fri Jul 05 05:26:46 2024 +0000"
      },
      "message": "Refactor staticlibs\n\nThis CL introduces net-utils-framework-connectivity, net-utils-tethering\nand net-utils-service-connectivity as staticlibs.\n\n- net-utils-framework-connectivity will be used by\n  framework-connectivity-pre-jarjar.\n- net-utils-service-connectivity and net-utils-tethering are the\n  static liraries used by service-connectivity-pre-jarjar and Tethering\n  respectively.\n\nBug: 350699020\nTest: CI\n\nChange-Id: I4dbb2b0de905a576cfcf24d2d5d1f1a261d2bd68\n"
    },
    {
      "commit": "e1c10b08a266398505b7aa57987c3b86b7613029",
      "tree": "f98c0e1325bb133ce055c4b101a21947eb3508d4",
      "parents": [
        "51741a1633e5f1142a8ade0ba2fc675d069946e2",
        "2fd3823cbc8db6cc9c9f5bc728133d5cd402ed0d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jun 26 07:35:45 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 26 07:35:45 2024 +0000"
      },
      "message": "Merge \"Only send callbacks when overridden\" into main"
    },
    {
      "commit": "2fd3823cbc8db6cc9c9f5bc728133d5cd402ed0d",
      "tree": "1a656fe70a7b54ffbb7d13462ff2ee47dd3c3a50",
      "parents": [
        "aa355ac875567db1c987d2387e8108fef2623344"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue May 28 15:25:43 2024 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jun 26 12:39:47 2024 +0900"
      },
      "message": "Only send callbacks when overridden\n\nMost users of NetworkCallback do not override all methods, so callbacks\nfrom ConnectivityService end up being unused by the app.\n\nTo save resources, check which callback methods are overridden in\nConnectivityManager, and inform ConnectivityService so it can skip\npreparing and sending the corresponding binder calls when the callback\nis not used by the app.\n\nThis is flagged off by default.\n\nTest: flag enabled: atest CtsNetTestCases ConnectivityCoverageTests\nBug: 327038794\nBug: 279392981\n\nChange-Id: Iaf490f416fb6e1437d40497fba1a40a899a9f523\n"
    },
    {
      "commit": "3d00262fe74b546fbd82df6b246fb6c07224cf89",
      "tree": "198758afe4e27e67512961b6fe2370b882236e57",
      "parents": [
        "2d68bc21352f26482a8c2f875977bb812a8a61eb"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Thu Jun 20 17:07:13 2024 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Tue Jun 25 00:21:27 2024 -0700"
      },
      "message": "Make firewall bpf code multi-user aware\n\nThe check is_system_uid should mirror the definition of core_uids in\nUserHandle.isCore until it is available to be read from mainline code.\nisUidNetworkingBlocked should also do the same.\n\nTest: All existing tests should pass.\nTest: atest CtsHostsideNetworkPolicyTests\nTest: atest FrameworksNetTests\n\nBug: 348316140\nChange-Id: Id5e01289b301a725b162ef249062e0f2806876dc\n"
    },
    {
      "commit": "4ece737f4fd2320f25a9b79536e0a4fe0872d1b6",
      "tree": "5c2857c0fd73247d852e8e51b028f324725cd8fe",
      "parents": [
        "0ca920b40b818716be5371f4ac88d79a551d8695"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "amhk@google.com",
        "time": "Thu Jun 20 09:05:51 2024 +0200"
      },
      "committer": {
        "name": "Mårten Kongstad",
        "email": "amhk@google.com",
        "time": "Thu Jun 20 09:05:51 2024 +0200"
      },
      "message": "Baseline Lint FlaggedApi violations\n\nThe Lint FlaggedApi checks are currently configured as warnings. Add\nexisting violations to baselines files to prepare for turning the\nFlaggedApi checks into errors.\n\nBug: 303434307\nTest: treehugger\nFlag: EXEMPT not possible to flag baseline changes\nMerged-In: I990ce57cd5cdac44ee8b93565b45aa15790ad697\nChange-Id: I990ce57cd5cdac44ee8b93565b45aa15790ad697\n"
    },
    {
      "commit": "bfe49e0844c94f3a7eed6654ee53352c528fae5c",
      "tree": "8e94a7c57abd5ee9560caa56d33228a6d5bc9a72",
      "parents": [
        "568034b1c6e7be865a3f86f87fd9ec9fe7fbb14e"
      ],
      "author": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Tue Jun 11 16:28:33 2024 +0900"
      },
      "committer": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Thu Jun 13 20:44:46 2024 +0900"
      },
      "message": "Update document for ApfCapabilities.hashCode()\n\nBug: 346468860\nTest: TH\nChange-Id: I608effa4b84fbd34461cbfd22afb5eef33bed139\n"
    },
    {
      "commit": "3e07102814f42d367b272b01fec9f191f0c461ca",
      "tree": "e284b3953191c9e54f6470374b4cec9f9a5c0306",
      "parents": [
        "d6f447215f47169d54b4047fe3659ea5379f5f89",
        "1cf04c96dadff7a74ff50cca36ec46b16831148e"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Jun 07 09:29:06 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 07 09:29:06 2024 +0000"
      },
      "message": "Merge changes I62c990d0,I413bdb76,I020ba48e into main\n\n* changes:\n  Update NetworkRequestTest#testDefaultCapabilities\n  Allow default messaging app to use constrained satellite network\n  Introduce NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED\n"
    },
    {
      "commit": "154ce6381ae989d48d81389c4a8fef52d6e3e7e9",
      "tree": "9ac93fbbfed183ec29b44ac54ca7b5a67f22198e",
      "parents": [
        "b1d3a85f19ec1c8a0b05dd0ed7293364c44d006c"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri May 31 13:01:06 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Jun 06 15:49:21 2024 +0900"
      },
      "message": "Introduce NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED\n\nOn V+, this capability is set by default.\nConstrained satellite networks never become the system default network.\n\nTest: CSSatelliteNetworkTest\nBug: 343823469\nChange-Id: I020ba48e74f1f180e1807cbe1c066209bedb0454\n"
    },
    {
      "commit": "9d88333273660d51da2173d3daf1d7e79018e5a4",
      "tree": "5bb08b538737f4bad88d2873472aabb7d4133abe",
      "parents": [
        "b1d3a85f19ec1c8a0b05dd0ed7293364c44d006c",
        "aa355ac875567db1c987d2387e8108fef2623344"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Jun 06 02:42:54 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 06 02:42:54 2024 +0000"
      },
      "message": "Merge \"Add config flag for useDeclaredMethodsForCallbacks\" into main"
    },
    {
      "commit": "aa355ac875567db1c987d2387e8108fef2623344",
      "tree": "99af9d2b3d9f6fd56cb72d0589b5683242a9bc0b",
      "parents": [
        "08137f6e40ce80cd34a4c26b954343a700d52de0"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed May 29 17:56:17 2024 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Jun 05 15:54:49 2024 +0900"
      },
      "message": "Add config flag for useDeclaredMethodsForCallbacks\n\nAdd a DeviceConfig flag that will be used to control whether callbacks\nshould be sent selectively based on whether the receiving method has\nbeen overridden (will be implemented in a future change).\n\nThis adds utilities to allow ConnectivityManager to check whether a\nConnectivityService flag is enabled, as that feature will work across\nConnectivityManager and ConnectivityService. ConnectivityManager runs in\napp process and does not necessarily have permissions to use\nDeviceConfig. Also if it checked DeviceConfig separately from\nConnectivityService, values may be out-of-sync.\n\nTest: atest, and see change using this\nChange-Id: I204fa719cc627e84edc5c1e043d947f5ef3f8dee\n"
    },
    {
      "commit": "ab1a0671c78c6e829bc102ff726ba0afd438a986",
      "tree": "e05ee2e5bfd855407ea147156a522b239ce6721d",
      "parents": [
        "08137f6e40ce80cd34a4c26b954343a700d52de0"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri May 31 12:55:31 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Jun 05 11:57:18 2024 +0900"
      },
      "message": "Stop throwing when the invalid capability is passed\n\nWhen new capability is introduced and added to capaility or\nforbiddenCapability by default, module rollback could cause system\nserver crash since JobScheduler persists network request that contains\nnew capability that is invalid for old code.\nThis CL updates capability validation not to throw exception to avoid\nsystem crash in this case.\n\nBug: 343823469\nBug: 313030307\nTest: NetworkCapabilitiesTest\nChange-Id: I5708c475f3b4974284531212b77f9788ca9f497e\n"
    },
    {
      "commit": "67b67908a10ead7162073d41cf491b55c508a181",
      "tree": "768d04c50bac8fe51ce90eac9f3b56596ace25d5",
      "parents": [
        "9c87172ad2b7ea75643b8888c9c94555cbc57a95",
        "11681f916265787d40a30baa92b0172033209d2f"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Tue Jun 04 07:07:21 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 04 07:07:21 2024 +0000"
      },
      "message": "Merge changes If3dbe234,Ia1299759 into main\n\n* changes:\n  Dump current max entries and cache duration even if the flags change\n  Check compat change flag for rate-limit cache\n"
    },
    {
      "commit": "288aca0a232a94dfad7bf6a7a8d71eab21a4d7da",
      "tree": "8b17c138a29f70c2028d01419f9e7f0a58d5db62",
      "parents": [
        "b94ab30c1e3dc6649ac6f0be1da08c32ebddc5ac"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu May 30 14:14:00 2024 +0000"
      },
      "committer": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Fri May 31 01:14:44 2024 +0000"
      },
      "message": "Treat APFv3 as APFv4 with not fully working counters.\n\nTest: TreeHugger\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: I8908e131955c028ac3aabb9436daf60ca5efcfb3\n"
    },
    {
      "commit": "cfd5a517dab9a71c328256b470ac98d6fe464f4d",
      "tree": "ee0d048e9917bdb0aeb8b1c3db950dc15835efba",
      "parents": [
        "cb74c08979530b898a7a30137d25b3253d600a69"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Mon May 27 02:12:43 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 27 02:12:43 2024 +0000"
      },
      "message": "Revert^2 \"Add blocked reason for internet permission\"\n\nThis reverts commit cb74c08979530b898a7a30137d25b3253d600a69.\n\nReason for revert: This change is not a cause of b/342557183\n\nChange-Id: Iee8d9b05bbe130a46b627b12da525177b4ee89b2\n"
    },
    {
      "commit": "cb74c08979530b898a7a30137d25b3253d600a69",
      "tree": "407e2a4471f1bee3b6b30b79dddae90301415805",
      "parents": [
        "ee96ba0e607bc34e8e7be3623ea8efcb4a70eff4"
      ],
      "author": {
        "name": "Priyanka Advani",
        "email": "padvani@google.com",
        "time": "Fri May 24 18:11:45 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 24 18:11:45 2024 +0000"
      },
      "message": "Revert \"Add blocked reason for internet permission\"\n\nThis reverts commit ee96ba0e607bc34e8e7be3623ea8efcb4a70eff4.\n\nReason for revert: Droidmonitor triggered revert due to b/342557183. Will be verifying through ABTD before submission.\n\nChange-Id: I7e185c3ac11da27c7bb9d95e4221f7dfc22cf48c\n"
    },
    {
      "commit": "ee96ba0e607bc34e8e7be3623ea8efcb4a70eff4",
      "tree": "ee0d048e9917bdb0aeb8b1c3db950dc15835efba",
      "parents": [
        "d20727f3cc2f76626616f86080694e68f57db8b1"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu May 09 16:22:11 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri May 24 13:45:51 2024 +0900"
      },
      "message": "Add blocked reason for internet permission\n\nCurrently, even if apps don\u0027t have INTERNET permission and can not use\nnetwork, network access is considered not blocked and\nConnectivityService send onBlockedStatusChanged callback with\nblocked\u003dfalse.\nThis CL introduced BLOCKED_REASON_NETWORK_RESTRICTED and consider\nnetwork access from apps targetting W+ on V+ releases is blocked if apps\ndon\u0027t have INTERNET permission.\nPermission is set when the user is added or package is installed and\npermission is removed when the user is removed or packages is\nuninstalled.\nSo ConnectivityService does not need to monitor permission change to\nsend onBlockedStatusChanged callback by permission change.\n\nTest: CSBlockedReasonsTest\nBug: 339559837\n\nChange-Id: I58d2a4eddc714e205f5b96219f95b637f2826c58\n"
    },
    {
      "commit": "216f8adca0f25805a40c79e2143c3d7b21df77e2",
      "tree": "3e9f4e4351b5944583db2762910292fb983cd595",
      "parents": [
        "19fd149d8ed81881cc11ee0457a97e3da1eead73",
        "175ca03ed015432c30d8ef1bd8d05eeeb9d889d9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 21 07:19:35 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 21 07:19:35 2024 +0000"
      },
      "message": "Merge \"Update compat flag to use VERSION_CODES.VANILLA_ICE_CREAM instead of 35\" into main"
    },
    {
      "commit": "175ca03ed015432c30d8ef1bd8d05eeeb9d889d9",
      "tree": "a3f46c5f39f94d91548e21acda6d895164400156",
      "parents": [
        "b15be228d26e819569296ff0bf7905499fcc78ef"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue May 21 14:42:31 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue May 21 14:42:31 2024 +0900"
      },
      "message": "Update compat flag to use VERSION_CODES.VANILLA_ICE_CREAM instead of 35\n\nBug: 340415875\nTest: TH\nChange-Id: Idedbb6ca0faeae152da4867d08cea2d2fe6b2632\n"
    },
    {
      "commit": "6ff9b589fec4f579837c9eeae078c6f2b9cce4e9",
      "tree": "f96fdd90881759c0b07b972c026d62db493bf903",
      "parents": [
        "fe3dd9a23f7d23184af79b89acddf53c60ddee5f"
      ],
      "author": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Mon May 20 17:08:55 2024 +0900"
      },
      "committer": {
        "name": "Yuyang Huang",
        "email": "yuyanghuang@google.com",
        "time": "Mon May 20 17:08:55 2024 +0900"
      },
      "message": "Implement missing hashCode() method in ApfCapabilities\n\nBug: 340878976\nTest: TH\nChange-Id: I3e7721ff328d3086d9fbfb80fd75b3533f75c7c0\n"
    },
    {
      "commit": "f53e9cf3a1e32733980678736a0c536f9c975a43",
      "tree": "57bc19aa8e7c27b31299e681f0dcb387f31b31ad",
      "parents": [
        "e26e6db0be5565b951d1547776b840f6dd897da6"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 29 15:20:54 2024 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Mon May 20 14:37:09 2024 +0800"
      },
      "message": "Check compat change flag for rate-limit cache\n\nThis allows apps built against V but run on older platform\ncan adopt this feature. This keep compatibility for older\napps which does not built against newest platform.\n\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.net.NetworkStatsServiceTest\nFix: 339154075\nChange-Id: Ia12997595579190ae0d65ad36ce39d011dde37ce\n"
    },
    {
      "commit": "b15be228d26e819569296ff0bf7905499fcc78ef",
      "tree": "8a2db3154333b1a3e5cc00b20e85768848c74b46",
      "parents": [
        "7e3a2afd40aada08dbb1e406ff2855c305a3d0d2"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed May 15 18:50:08 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu May 16 16:54:17 2024 +0900"
      },
      "message": "Update APIs that depends on isUidNetworkingBlocked to follow compat flag\n\nNETWORKINFO_WITHOUT_INTERNET_BLOCKED compat flag only changed the\nbehavior of getActiveNetworkInfo that depends on\nbpfNetMaps#isUidNetworkingBlocked.\nBut isUidNetworkingBlocked is used from other APIs(e.g. getActiveNetwork)\nThis CL update all APIs that depends on isUidNetworkingBlocked to follow\nthe compat flag to make behavior consistent between APIs.\n\naosp/3079290 will update onBlockedStatusChanged callback to follow this\ncompat flag.\n\nBug: 340773991\nBug: 339780435\nTest: TH\nChange-Id: If64ec800f21c2adc613884838202e2dece4a8d95\n"
    },
    {
      "commit": "90c9703bca0088563d6bddcfd6dc0cbb791cc443",
      "tree": "4fe0398f3560b9fd9e1d81610c4de36bad71ea97",
      "parents": [
        "5f91f28d97d22857d80b0f9619ae216f6a127ccf"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue May 14 14:12:22 2024 +0000"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 15 11:10:11 2024 +0000"
      },
      "message": "Disable the NETWORKINFO_WITHOUT_INTERNET_BLOCKED flag in V\n\nTest: manual using AIcore\nChange-Id: I08bec890d2fc4980840f1d8deeb62f5de6e5d745\n"
    },
    {
      "commit": "0b4be79e525a99a73e11cc034dac7a9ee85b77b7",
      "tree": "2c33ef1a0c03534b858ee157f72254d1b2c678ee",
      "parents": [
        "a08692f7c772bc76cb73f626eba738705766a386"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue May 07 15:51:52 2024 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed May 08 21:08:35 2024 +0900"
      },
      "message": "Add compat flag for ActiveNetworkInfo blocked state\n\nBefore aosp/3001087, getNetworkActiveInfo did not return network info\nwith blocked state for apps without PERMISSION_INTERNET even if the\nnetwork is actually blocked.\naosp/3001087 updated getNetworkActiveInfo to return correct blocked\nstate on V+.\nHowever, this broke some apps that use getNetworkActiveInfo in wrong way\nand depends on the previous behavior.\nSo this CL introduces the compat flag to keep previous behavior for apps\ntargeting U or older releases.\n\nTest: TH\nBug: 333340911\nChange-Id: I0e0950f2148de0ffdb45495903a5a87e0d4c1c0b\n"
    }
  ],
  "next": "eb92054f9174732833ed896cc0715f2fd543b788"
}
