)]}'
{
  "log": [
    {
      "commit": "2519a78731526d2eb20ae8812acdcab6ef7a09b6",
      "tree": "967d1aed4e0249ea38ff891e672721ee83f17b7b",
      "parents": [
        "c20c1224bcc50a6cf27c95e40fcf5faf8610de46",
        "8775fc7cf6e1e472327ba9a5ef711c35f7d044c8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 27 00:41:36 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 00:41:36 2025 -0700"
      },
      "message": "Merge changes from topic \"revert-3561690-revert-3538339-SNUWWZJNJZ-BUWEOGUTIT\" into main\n\n* changes:\n  Add TargetApi annotation to ConnectivityService and QuicConnectionCloser\n  Revert \"Revert \"Remove unnecessary ifindex arg from destroyUdpSo...\"\n  Revert \"Revert \"Add hidden API to register/unregister QUIC conne...\"\n"
    },
    {
      "commit": "8775fc7cf6e1e472327ba9a5ef711c35f7d044c8",
      "tree": "4e39f1a44a4bbb21d5cd6c2cfea97caff5d9a4c2",
      "parents": [
        "4d4563d62a02f5fee4b5806c88f8c9e644d9f064"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Mar 27 12:21:31 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Mar 27 12:24:34 2025 +0900"
      },
      "message": "Add TargetApi annotation to ConnectivityService and QuicConnectionCloser\n\nTest: TH\nChange-Id: I5339b986d04462710ff9e9469050741f35ca4448\n"
    },
    {
      "commit": "c20c1224bcc50a6cf27c95e40fcf5faf8610de46",
      "tree": "2bce77fbd77bd6062edab20889e60157cb872f2c",
      "parents": [
        "dd430a186c86e131b8891f03168adf9d1adb9ac1",
        "65a26519c00bfb9b45bec30153cb2306577d2fc1"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Mar 26 19:14:29 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 19:14:29 2025 -0700"
      },
      "message": "Merge \"Fix transport override\" into main"
    },
    {
      "commit": "4d4563d62a02f5fee4b5806c88f8c9e644d9f064",
      "tree": "880fb1d284f350c868356952cafe9df1e6cfcb09",
      "parents": [
        "e8e28f62368efea9ed2208889a25d5223e8b4f0d"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 14:57:01 2025 -0700"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Mar 27 08:49:10 2025 +0900"
      },
      "message": "Revert \"Revert \"Remove unnecessary ifindex arg from destroyUdpSo...\"\n\nRevert submission 3561690-revert-3538339-SNUWWZJNJZ\n\nReason for revert: NewAPI error will be fixed by separate CL\n\nReverted changes: /q/submissionid:3561690-revert-3538339-SNUWWZJNJZ\n\nChange-Id: I2ae43c61c9ba0e0db3202a46e63756a3ea5a6512\n"
    },
    {
      "commit": "e8e28f62368efea9ed2208889a25d5223e8b4f0d",
      "tree": "ce5af41a60e89b0a67241e6d44dc0ddc49a4ed6c",
      "parents": [
        "dd430a186c86e131b8891f03168adf9d1adb9ac1"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 14:57:01 2025 -0700"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Mar 27 08:49:00 2025 +0900"
      },
      "message": "Revert \"Revert \"Add hidden API to register/unregister QUIC conne...\"\n\nRevert submission 3561690-revert-3538339-SNUWWZJNJZ\n\nReason for revert: NewAPI error will be fixed by separate CL\n\nReverted changes: /q/submissionid:3561690-revert-3538339-SNUWWZJNJZ\n\nChange-Id: Ia7367e9332f4d376bd0be4c03c095ee00de9177a\n"
    },
    {
      "commit": "65a26519c00bfb9b45bec30153cb2306577d2fc1",
      "tree": "4a6aad7578ba4428c051a3c02511d819ee03f777",
      "parents": [
        "86961c4b73d7714536b2e528402687da6b95c9ba"
      ],
      "author": {
        "name": "Chris Desir",
        "email": "cdesir@google.com",
        "time": "Wed Mar 26 15:25:11 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Wed Mar 26 15:51:04 2025 -0700"
      },
      "message": "Fix transport override\n\nThe EthernetConfigParser was adding the transportType on top of the\nTRANSPORT_ETHERNET of DEFAULT_CAPABILITIES, causing multiple transport\ntypes to be added.\n\nThis was causing an IllegalStateException when trying to set the\nNetworkSpecifier within the EthernetNetworkFactory.\n\nThis only applies for when isAtLeastB \u0026\u0026 capabilitiesString.equals(\"*\")\nis true (as the parsed capability is equal to DEFAULT_CAPABILITIES).\n\nFlag: TEST_ONLY\nBug: 405172885\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.ethernet.EthernetTrackerTest\nChange-Id: I6678a52ddc87b8ad66c602c68335f3e2073d7231\n"
    },
    {
      "commit": "dd430a186c86e131b8891f03168adf9d1adb9ac1",
      "tree": "6abaea339b03f3282c2fc8ebcd4cc202a6f33520",
      "parents": [
        "86961c4b73d7714536b2e528402687da6b95c9ba",
        "8fab64955bdf33ea15d1c349180d96045e313b4d"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Wed Mar 26 15:36:06 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 15:36:06 2025 -0700"
      },
      "message": "Merge changes Ia6685d88,I64008821,I03238c72 into main\n\n* changes:\n  Store socket cookie to sk storage in inet_create hook on 5.10+ kernel\n  Declare map with BPF_MAP_TYPE_SK_STORAGE\n  Add macro to declare a sk storage and related accessor functions\n"
    },
    {
      "commit": "86961c4b73d7714536b2e528402687da6b95c9ba",
      "tree": "9486319de822991f22efc6d7bb1dbcf09657d4db",
      "parents": [
        "ebdcd9e199970f6c1bfe5767335c34a5ecb733dc",
        "947b53b0d39fe165d5f0273b6349a1f866681c10"
      ],
      "author": {
        "name": "Chaitanya Cheemala (xWF)",
        "email": "ccheemala@google.com",
        "time": "Wed Mar 26 03:44:15 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 03:44:15 2025 -0700"
      },
      "message": "Merge changes from topic \"revert-3538339-SNUWWZJNJZ\" into main\n\n* changes:\n  Revert \"Add hidden API to register/unregister QUIC connection cl...\"\n  Revert \"Remove unnecessary ifindex arg from destroyUdpSocket\"\n"
    },
    {
      "commit": "947b53b0d39fe165d5f0273b6349a1f866681c10",
      "tree": "d6b510873ca23fa346ba50599e2de1cc64ecb81d",
      "parents": [
        "68b852a69cdd9a4783b32936ac7f68ef9679a8c0"
      ],
      "author": {
        "name": "Chaitanya Cheemala (xWF)",
        "email": "ccheemala@google.com",
        "time": "Wed Mar 26 03:07:07 2025 -0700"
      },
      "committer": {
        "name": "Chaitanya Cheemala (xWF)",
        "email": "ccheemala@google.com",
        "time": "Wed Mar 26 03:07:07 2025 -0700"
      },
      "message": "Revert \"Add hidden API to register/unregister QUIC connection cl...\"\n\nRevert submission 3538339\n\nReason for revert: Likely culprit for b/406432012 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\n\nReverted changes: /q/submissionid:3538339\n\nChange-Id: I61b02f2b1b667e9a41b677f8062e8e96aac09f6e\n"
    },
    {
      "commit": "68b852a69cdd9a4783b32936ac7f68ef9679a8c0",
      "tree": "81bd4f2d75959fa38ebac4da0a31f52ef44215f7",
      "parents": [
        "58498d1eeeccc56485ba3e5240476b2fea9025bf"
      ],
      "author": {
        "name": "Chaitanya Cheemala (xWF)",
        "email": "ccheemala@google.com",
        "time": "Wed Mar 26 03:07:07 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 03:07:07 2025 -0700"
      },
      "message": "Revert \"Remove unnecessary ifindex arg from destroyUdpSocket\"\n\nRevert submission 3538339\n\nReason for revert: Likely culprit for b/406432012 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\n\nReverted changes: /q/submissionid:3538339\n\nChange-Id: I70395af68b0f28e5c333333cb03a42f7633b0d5d\n"
    },
    {
      "commit": "ebdcd9e199970f6c1bfe5767335c34a5ecb733dc",
      "tree": "0cc6123c62d2892e4301db4322212969803dfb68",
      "parents": [
        "bd1703ff4f88b422e4a469fd68429c7361b83a53",
        "58498d1eeeccc56485ba3e5240476b2fea9025bf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 26 02:30:35 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 02:30:35 2025 -0700"
      },
      "message": "Merge changes I0eb70c12,I6cd727bd into main\n\n* changes:\n  Remove unnecessary ifindex arg from destroyUdpSocket\n  Add hidden API to register/unregister QUIC connection close payload\n"
    },
    {
      "commit": "58498d1eeeccc56485ba3e5240476b2fea9025bf",
      "tree": "ef63f6561b8714eb20ccf6720f057f677bef6f4a",
      "parents": [
        "627b8c6d343e2a38869cdbff9c1d09a15716b47a"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 12 08:55:50 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 16:48:43 2025 +0900"
      },
      "message": "Remove unnecessary ifindex arg from destroyUdpSocket\n\nBug: 311792075\nTest: m\nChange-Id: I0eb70c1248aff347e6f988789f340e117fceea33\n"
    },
    {
      "commit": "627b8c6d343e2a38869cdbff9c1d09a15716b47a",
      "tree": "81bd4f2d75959fa38ebac4da0a31f52ef44215f7",
      "parents": [
        "b45a61bc3fde8f1fcd00bda1f12335fe65373990"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Thu Feb 20 16:54:12 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 16:48:28 2025 +0900"
      },
      "message": "Add hidden API to register/unregister QUIC connection close payload\n\nQUIC stack running on the app process will call this API and register\nQUIC UDP socket and UDP payload that can close QUIC connection.\n\nWhen the app loses network access (e.g. due to freezer or firewall\nchain), ConnectivityService 1)destroys the registered UDP socket by\nsending a SOCK_DESTROY netlink message and 2)sends the registered UDP\npayload to the server. This prevents unnecessary modem wakeups caused\nby packets from the server after the apps lose network access.\n\nAdditionally, to close QUIC connection for apps that crash or are\nkilled, ConnectivityService sends the registered UDP payload when it\nreceives a socket destroy diag message for the registered socket.\n\nBug: 311792075\nTest: CSDestroySocketTest CtsNetTestCases\nChange-Id: I6cd727bd8bb0fe1d17360edfa395f73d24da6920\n"
    },
    {
      "commit": "bd1703ff4f88b422e4a469fd68429c7361b83a53",
      "tree": "9486319de822991f22efc6d7bb1dbcf09657d4db",
      "parents": [
        "b45a61bc3fde8f1fcd00bda1f12335fe65373990",
        "3f81aec099f888aaee8df6339c13bdfe92babd3e"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Mar 25 22:06:01 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 22:06:01 2025 -0700"
      },
      "message": "Merge \"Address aosp/3541181 leftover comments\" into main"
    },
    {
      "commit": "8fab64955bdf33ea15d1c349180d96045e313b4d",
      "tree": "3b6a847f4f149af4e549cd9a8f0d98479b3060e7",
      "parents": [
        "70793af736c76ce118b09b9379af28c3b4efc513"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Mar 25 10:47:42 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 09:25:37 2025 +0900"
      },
      "message": "Store socket cookie to sk storage in inet_create hook on 5.10+ kernel\n\nTest: adb logcat | grep inet_create on 4.19 and 5.10 kernel\nBug: 406080305\nChange-Id: Ia6685d8827ea1570b950aff63bcae242e28ba637\n"
    },
    {
      "commit": "70793af736c76ce118b09b9379af28c3b4efc513",
      "tree": "9e725f059d754252ddc86a9d4e74899464a7ae00",
      "parents": [
        "d370f95f10fbd04bade48062198cbb2b98b91e4b"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Mar 25 09:33:41 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 09:25:37 2025 +0900"
      },
      "message": "Declare map with BPF_MAP_TYPE_SK_STORAGE\n\nTest: adb logcat | grep sk_storage on 4.19 and 5.10 kernel\nBug: 406080305\nChange-Id: I6400882146e8fd686a4260c5bf586a8f73032c71\n"
    },
    {
      "commit": "d370f95f10fbd04bade48062198cbb2b98b91e4b",
      "tree": "92887b836840ddbe6727ea69b5fe0c6b3054a3a3",
      "parents": [
        "4231cf5957078dc9a9e8a2343147e4c85b54abcf"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Mar 25 09:31:16 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Wed Mar 26 09:25:33 2025 +0900"
      },
      "message": "Add macro to declare a sk storage and related accessor functions\n\nTest: boot\nBug: 406080305\nChange-Id: I03238c72e8024d4424c06803784988570513ff39\n"
    },
    {
      "commit": "b45a61bc3fde8f1fcd00bda1f12335fe65373990",
      "tree": "d6b510873ca23fa346ba50599e2de1cc64ecb81d",
      "parents": [
        "45173f74d3a2381de5c9a6f987153d1b79b0e8f4",
        "aa33013ba5397977b92284b15013bae182679236"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 25 15:39:25 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 15:39:25 2025 -0700"
      },
      "message": "Merge \"clatd bpf: drop multicast\" into main"
    },
    {
      "commit": "45173f74d3a2381de5c9a6f987153d1b79b0e8f4",
      "tree": "8cdf6d05a92b449ad992e9d7a635ff14280e8ff7",
      "parents": [
        "17312c082f44d6333bbeb316c21f75bf60ab7b8b",
        "074c4934cd65094dd9bb8d06ba6f05c54296fdf6"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Mar 25 15:36:12 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 15:36:12 2025 -0700"
      },
      "message": "Merge \"Delete unused function\" into main"
    },
    {
      "commit": "17312c082f44d6333bbeb316c21f75bf60ab7b8b",
      "tree": "1ac2c1e8c7fbce5b5b89d383cd2bf554190ae48a",
      "parents": [
        "43e8226877726baa42abe8e37335fff821c5ee8f",
        "3ac88f375be442accc6ac6ab244715c60c1354ad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Mar 25 14:54:59 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 14:54:59 2025 -0700"
      },
      "message": "Merge \"NetBpfLoad: allow 25Q3\" into main"
    },
    {
      "commit": "aa33013ba5397977b92284b15013bae182679236",
      "tree": "01d11633758a0e199c87e9327b98901995195f30",
      "parents": [
        "43e8226877726baa42abe8e37335fff821c5ee8f"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 25 13:56:55 2025 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 25 13:57:21 2025 -0700"
      },
      "message": "clatd bpf: drop multicast\n\nto avoid waking up clat daemon needlessly\n\n(it just drops these anyway)\n\nTest: TreeHugger\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: I8485f01635d5c6dd168d89279a3b390200f78c63\n"
    },
    {
      "commit": "43e8226877726baa42abe8e37335fff821c5ee8f",
      "tree": "27a3a708e3608864274abf773f5281b3e5885e11",
      "parents": [
        "45a95e4b99fcd5da7a77e4a40c82f48421765919",
        "503059428720e04c743e7abf5346cf9033ead969"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Mar 25 13:31:32 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 13:31:32 2025 -0700"
      },
      "message": "Merge \"Move static IpConfiguration parsing into EthernetConfigParser\" into main"
    },
    {
      "commit": "3ac88f375be442accc6ac6ab244715c60c1354ad",
      "tree": "9b1623199a8b5d86851837a37485571813ca3dcf",
      "parents": [
        "45a95e4b99fcd5da7a77e4a40c82f48421765919"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 25 12:18:11 2025 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 25 13:05:44 2025 -0700"
      },
      "message": "NetBpfLoad: allow 25Q3\n\nTest: TreeHugger\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\nChange-Id: Iced07b6438b4702334aaf85d301987efefe153c6\n"
    },
    {
      "commit": "074c4934cd65094dd9bb8d06ba6f05c54296fdf6",
      "tree": "ae9ed43d85c1d6bae40ab78a263e74253c127117",
      "parents": [
        "503059428720e04c743e7abf5346cf9033ead969"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Mar 25 11:54:24 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Mar 25 11:56:41 2025 -0700"
      },
      "message": "Delete unused function\n\nTest: TH\nChange-Id: I1f81032ea14d87736e2c8890e9259f20aace4a0b\n"
    },
    {
      "commit": "503059428720e04c743e7abf5346cf9033ead969",
      "tree": "c7c81fda145224ca897610bc0aa9f10232cbdb0f",
      "parents": [
        "9c163e4207a0cb0cb73ccbfa00b3d55bb88cd0c3"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Mar 25 10:35:12 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Mar 25 11:56:41 2025 -0700"
      },
      "message": "Move static IpConfiguration parsing into EthernetConfigParser\n\nFor consistency.\n\nTest: TH\nChange-Id: Idefd43d5b22b8f5e02561601f3bc4142ce8a783e\n"
    },
    {
      "commit": "45a95e4b99fcd5da7a77e4a40c82f48421765919",
      "tree": "afc19bff0464f2fcd895c3b8a7a2d043dffdfce1",
      "parents": [
        "4231cf5957078dc9a9e8a2343147e4c85b54abcf",
        "28c0533bf0d30c1c9c281b81be90fa8ee013a396"
      ],
      "author": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Tue Mar 25 07:40:41 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 07:40:41 2025 -0700"
      },
      "message": "Merge \"Removing interfaces from the InterfaceTracker when network is destroyed.\" into main"
    },
    {
      "commit": "3f81aec099f888aaee8df6339c13bdfe92babd3e",
      "tree": "42655d39ecbbd92d137c204636d66969b563c3a8",
      "parents": [
        "a0fa137d8524f41932bde5449a0db14254db4a7b"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Fri Mar 21 14:52:27 2025 +0000"
      },
      "committer": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Mar 25 10:02:37 2025 +0000"
      },
      "message": "Address aosp/3541181 leftover comments\n\nTest: atest TetheringTests CtsTetheringTest\nChange-Id: Iee9c1eec33403c95e29656b3dfb1bfefea81108e\n"
    },
    {
      "commit": "4231cf5957078dc9a9e8a2343147e4c85b54abcf",
      "tree": "0705c8c5e79e8de8222539c73aa5896838ade4cf",
      "parents": [
        "aba4c46b53217b9daccc0f910b2ec910588da569",
        "4364227e70429a882ac0e46d5a40ac85282179b5"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 25 02:26:00 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 02:26:00 2025 -0700"
      },
      "message": "Merge \"Set BPF_F_NO_PREALLOC for BPF_MAP_TYPE_SK_STORAGE by default\" into main"
    },
    {
      "commit": "aba4c46b53217b9daccc0f910b2ec910588da569",
      "tree": "91440817e79ded254849a208ab459ae232d88502",
      "parents": [
        "2795a1afb0a2ce2e9c0e6d583b677c388d346353",
        "f250c51a2105d6ae845dfeb2673502e142ad6ab4"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Mar 25 01:42:24 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 01:42:24 2025 -0700"
      },
      "message": "Merge \"Add Checks for mDNS Unregistration and Discovery Stop Operations\" into main"
    },
    {
      "commit": "2795a1afb0a2ce2e9c0e6d583b677c388d346353",
      "tree": "39058c1e58d7867fe818f62b82b3b3d9d9edb279",
      "parents": [
        "f0dcda3be36f1388836f7990cb4194fcb1c132cc",
        "69b176143f05dd07864b25c9bc6d867a5e1144c2"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Mar 25 01:32:35 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 01:32:35 2025 -0700"
      },
      "message": "Merge \"Add connectivity pre-check for ConnectivityManagerApi23Test\" into main"
    },
    {
      "commit": "f0dcda3be36f1388836f7990cb4194fcb1c132cc",
      "tree": "78134ce5032c9b3c5c5e9347a0c46a0037cf21d4",
      "parents": [
        "8b8029d20a3acd8830a62f42f8d58bc818285fe9",
        "a16f8b8126ae5e1d23a95aebf5f174f32606fa18"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 24 21:16:34 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 21:16:34 2025 -0700"
      },
      "message": "Merge \"Format MdnsUtilsTest\" into main"
    },
    {
      "commit": "28c0533bf0d30c1c9c281b81be90fa8ee013a396",
      "tree": "aa35c174aee0a3717cb623414c1b5a969529ca31",
      "parents": [
        "9c163e4207a0cb0cb73ccbfa00b3d55bb88cd0c3"
      ],
      "author": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Fri Mar 14 17:01:29 2025 +0000"
      },
      "committer": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Tue Mar 25 01:34:05 2025 +0000"
      },
      "message": "Removing interfaces from the InterfaceTracker when network is destroyed.\n\nBug: 400681214\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.InterfaceTrackerTest\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivityservice.CSInterfaceTrackerTest\nChange-Id: Ifb3388800dec6ed208ca28dba080c5b736f09d35\n"
    },
    {
      "commit": "4364227e70429a882ac0e46d5a40ac85282179b5",
      "tree": "c0ab6c917416dd8bc504d6f134fcd14ad3393418",
      "parents": [
        "e1564ce3c8f0901ec04451deb97b7ff8728be64b"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Mar 25 09:25:11 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Tue Mar 25 10:18:15 2025 +0900"
      },
      "message": "Set BPF_F_NO_PREALLOC for BPF_MAP_TYPE_SK_STORAGE by default\n\nBPF_F_NO_PREALLOC flag is mandatory for BPF_MAP_TYPE_SK_STORAGE\n\nTest: boot\nBug: 406080305\nChange-Id: I22f12525512ea8047ef5ad9fbf93490558c13c3d\n"
    },
    {
      "commit": "8b8029d20a3acd8830a62f42f8d58bc818285fe9",
      "tree": "73601a36d40993059d8cfbe563ab06ee4e6a56c0",
      "parents": [
        "300526436b6b9cc764db0f0836baa1dcfd6c437e",
        "bf4402fe677f7a5e3f3deadfaa1754b62ab35f69"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 24 16:18:17 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 16:18:17 2025 -0700"
      },
      "message": "Merge \"Add logging of when the public key has invalid encoding or is not on the allowlist\" into main"
    },
    {
      "commit": "300526436b6b9cc764db0f0836baa1dcfd6c437e",
      "tree": "9e8fb2ab10c4e352be0b7512e613bc3e84691240",
      "parents": [
        "1c6f6e33de43d966438f5b7c6c9fd1fc82cfd62c",
        "9d45909bedc8f3a427ff1a152f298b704c653704"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Mon Mar 24 16:04:49 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 16:04:49 2025 -0700"
      },
      "message": "Merge \"Do not remove internet capability for test interfaces\" into main"
    },
    {
      "commit": "bf4402fe677f7a5e3f3deadfaa1754b62ab35f69",
      "tree": "d77eee1a3845584854a9c38f9629c982ab5c0cdc",
      "parents": [
        "d64a649df91fd3e0f01c1550dfc4866217cfc6bf"
      ],
      "author": {
        "name": "Bessie Jiang",
        "email": "bessiej@google.com",
        "time": "Tue Mar 11 17:11:58 2025 +0000"
      },
      "committer": {
        "name": "Bessie Jiang",
        "email": "bessiej@google.com",
        "time": "Mon Mar 24 13:53:20 2025 +0000"
      },
      "message": "Add logging of when the public key has invalid encoding or is not on the\nallowlist\n\nFlag: com.android.net.ct.flags.certificate_transparency_service\nFixes: 400704086\nTest: atest NetworkSecurityUnitTests\nChange-Id: I76669d184731d873a944bf77534bb73381cb7ef0\n"
    },
    {
      "commit": "a16f8b8126ae5e1d23a95aebf5f174f32606fa18",
      "tree": "f150663ce528e48688301d7cf2d798dffaf54844",
      "parents": [
        "a0fa137d8524f41932bde5449a0db14254db4a7b"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Mon Mar 24 10:03:18 2025 +0000"
      },
      "committer": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Mon Mar 24 10:06:56 2025 +0000"
      },
      "message": "Format MdnsUtilsTest\n\nUse the ktlint.py script to correct Kotlin code formatting errors.\n\nTest: m\nChange-Id: Ic3b4ff16fcaa465836c5b6653f1ab8dcc1b718b9\n"
    },
    {
      "commit": "1c6f6e33de43d966438f5b7c6c9fd1fc82cfd62c",
      "tree": "771a2dc272d1a6bea5e4a6ca7e8274c2f2a80985",
      "parents": [
        "637e68284d6feee7c3f8c19896713d603a5274c7",
        "89682e21eee83e3613ed2824c83e7d1c72224188"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 24 01:04:49 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 01:04:49 2025 -0700"
      },
      "message": "Merge \"[Thread] fix CTS test for Android TV U\" into main"
    },
    {
      "commit": "f250c51a2105d6ae845dfeb2673502e142ad6ab4",
      "tree": "5605f2f350f2e7b3b32b0dea94024027d5915445",
      "parents": [
        "69b176143f05dd07864b25c9bc6d867a5e1144c2"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Sun Mar 23 15:49:49 2025 +0000"
      },
      "committer": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Mon Mar 24 06:37:40 2025 +0000"
      },
      "message": "Add Checks for mDNS Unregistration and Discovery Stop Operations\n\nmDNS service unregistration and discovery stop should only occur\nif the mDNS service has registered or started discovery.\nTherefore, a check is added to ignore unregistration or stop\nrequests if registration or discovery has not been executed.\n\nTest: atest CtsConnectivityMultiDevicesTestCases\nChange-Id: If7becd5a89a45da977141e8f9767a8ed85d9ba1b\n"
    },
    {
      "commit": "637e68284d6feee7c3f8c19896713d603a5274c7",
      "tree": "a6ff818f12359ab134de2c48e242ceb6fcdccda5",
      "parents": [
        "137f2d754ca6fc539541da08078583cafdf6ab46",
        "9f7b9c6b4654c273446b66668c2638740461a3bd"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Sun Mar 23 23:29:06 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 23 23:29:06 2025 -0700"
      },
      "message": "Merge \"Add .clang-format\" into main"
    },
    {
      "commit": "89682e21eee83e3613ed2824c83e7d1c72224188",
      "tree": "26b3133fe74ec8164b28d40d7ed5bd25f6b9e57d",
      "parents": [
        "137f2d754ca6fc539541da08078583cafdf6ab46"
      ],
      "author": {
        "name": "Kangping Dong",
        "email": "wgtdkp@google.com",
        "time": "Sun Mar 23 23:22:24 2025 -0700"
      },
      "committer": {
        "name": "Kangping Dong",
        "email": "wgtdkp@google.com",
        "time": "Sun Mar 23 23:22:24 2025 -0700"
      },
      "message": "[Thread] fix CTS test for Android TV U\n\nAndroid TV U should have the `ThreadNetworkManager` only when the Thread\nhardware feature is defined on the TV\n\nChange-Id: I154fc7fadfda4c9c97653b25f3efaa87bf081052\n"
    },
    {
      "commit": "9f7b9c6b4654c273446b66668c2638740461a3bd",
      "tree": "84bd1f14cf79298ee0df1a1f16e151e49f78fa81",
      "parents": [
        "95af095af95bcdf8a9045aa7e1bb4c243e30d57c"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Mon Mar 24 10:18:32 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Sun Mar 23 19:59:10 2025 -0700"
      },
      "message": "Add .clang-format\n\nThis CL makes indent width 4 and allows oneline if statements for\nc,h,cc,cpp,hpp files.\n\nTest: m\n\nChange-Id: I1c43ddbc30a6e71c4ce829f5d0b1b92905d6368c\n"
    },
    {
      "commit": "137f2d754ca6fc539541da08078583cafdf6ab46",
      "tree": "287bf23dad0bfda94b0617c30b19fa5559df1293",
      "parents": [
        "e1564ce3c8f0901ec04451deb97b7ff8728be64b",
        "b84286a35a1436aee5c2b09ffe7af2bcb15dd582"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sun Mar 23 19:33:44 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 23 19:33:44 2025 -0700"
      },
      "message": "Merge \"Avoid unavailable APIs in ShellUtil\" into main"
    },
    {
      "commit": "e1564ce3c8f0901ec04451deb97b7ff8728be64b",
      "tree": "a36594e2b030c459571fdd7361fa9ae0571eee6b",
      "parents": [
        "9c163e4207a0cb0cb73ccbfa00b3d55bb88cd0c3",
        "51ca5c6a146beb396ebc81467daca061e1b7c42b"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Sun Mar 23 18:35:59 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 23 18:35:59 2025 -0700"
      },
      "message": "Merge \"Fix SSID in notification for RTL languages\" into main"
    },
    {
      "commit": "b84286a35a1436aee5c2b09ffe7af2bcb15dd582",
      "tree": "a4ad30e22fb539c230b3a1e8eb5158563be955ea",
      "parents": [
        "d43a4fdbfdc175a070b3688f7dbbfc52a33a7a88"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 21 16:21:57 2025 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Mar 24 10:15:44 2025 +0900"
      },
      "message": "Avoid unavailable APIs in ShellUtil\n\nexecuteShellCommandRwe is U+. Use executeShellCommandRw which is S+\ninstead, and annotate methods accordingly. stderr is not used in any\ninstrumentation at the moment.\n\nBug: 405109522\nTest: atest\nChange-Id: I8212cb340cfb7e5ee5d0da314613b474e4f155fc\n"
    },
    {
      "commit": "69b176143f05dd07864b25c9bc6d867a5e1144c2",
      "tree": "a7e99435c55c23bfd897dff32f40bb13d0742cd2",
      "parents": [
        "a0fa137d8524f41932bde5449a0db14254db4a7b"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Sun Mar 23 15:06:44 2025 +0000"
      },
      "committer": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Sun Mar 23 15:06:44 2025 +0000"
      },
      "message": "Add connectivity pre-check for ConnectivityManagerApi23Test\n\nBug: 401110123\nTest: atest ConnectivityManagerApi23Test\nChange-Id: I466ae73ddb48cf13e5cf396fd5002322e3fd755a\n"
    },
    {
      "commit": "9c163e4207a0cb0cb73ccbfa00b3d55bb88cd0c3",
      "tree": "72fccefa001b5342eae02b0e1b60826fbd3131b3",
      "parents": [
        "b19b6d74b7eeab7f2e0b186cf39c1051e0987a73",
        "70d98dcef21249b52e2f3195ef4ec6f1229af826"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 17:29:50 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 17:29:50 2025 -0700"
      },
      "message": "Merge \"Address linter errors\" into main"
    },
    {
      "commit": "b19b6d74b7eeab7f2e0b186cf39c1051e0987a73",
      "tree": "1a6e4b5ed8915b7405b8c28b2ccf8c0beb6a76ae",
      "parents": [
        "ee58f011eddb502a43d3fb559dcf0e49304ba936",
        "f68316091d205568f1f01cad855d729e4e60f93f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 17:12:08 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 17:12:08 2025 -0700"
      },
      "message": "Merge \"Don\u0027t use NetworkScore in TestableNetworkAgent\" into main"
    },
    {
      "commit": "ee58f011eddb502a43d3fb559dcf0e49304ba936",
      "tree": "4e33a842a6482ef9935f3ba5a010ffeed0e3c8b4",
      "parents": [
        "d022fac1c27e2c3f5e3faefcd40550c6b052684e",
        "bcb2869df13a6db0894a0361afa0c5a6948dd902"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 16:14:26 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 16:14:26 2025 -0700"
      },
      "message": "Merge changes I1d25e5c4,I367f5377 into main\n\n* changes:\n  Use \"*\" to indicate default capabilities in config\n  Move NetworkCapabilities parsing to EthernetConfigParser entirely\n"
    },
    {
      "commit": "d022fac1c27e2c3f5e3faefcd40550c6b052684e",
      "tree": "28bb6a5f52d2f3ebfa956d72207c66d8ba044a76",
      "parents": [
        "30020a513aeeb5eeb773ae39672acc0029ada41c",
        "afa7ee8bfc9fddd2bcce8c33c6b6ac2d76aae98e"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Fri Mar 21 16:08:07 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 16:08:07 2025 -0700"
      },
      "message": "Merge changes Ie63a3583,I1354ec53,I3806750a,I48d0b0f9,I4da56735 into main\n\n* changes:\n  Move isAtLeastB to dependencies\n  Pass nullable values to parse functions\n  Rename EthernetTrackerConfig to EthernetConfigParser\n  Do not support configuring test interfaces in config.xml\n  Prevent mixing mutable and immutable lists\n"
    },
    {
      "commit": "9d45909bedc8f3a427ff1a152f298b704c653704",
      "tree": "ef65fd3d145fe19c5e5d1720b2237514b0629c77",
      "parents": [
        "70d98dcef21249b52e2f3195ef4ec6f1229af826"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 14:23:40 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 14:23:40 2025 -0700"
      },
      "message": "Do not remove internet capability for test interfaces\n\nNetworkCapabilities already does this, so there is no point in doing it\nhere as well.\n\nTest: TH\nChange-Id: I0f45c5098318dbb3b15a70d6c60d5bcc6814d008\n"
    },
    {
      "commit": "70d98dcef21249b52e2f3195ef4ec6f1229af826",
      "tree": "4afec110962de15576e76aab13cfb70074e5a830",
      "parents": [
        "bcb2869df13a6db0894a0361afa0c5a6948dd902"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 14:21:07 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 14:21:59 2025 -0700"
      },
      "message": "Address linter errors\n\nTest: TH\nChange-Id: I6d1fae596ea9757fe6e6b04e85b6cb8cae162a2b\n"
    },
    {
      "commit": "bcb2869df13a6db0894a0361afa0c5a6948dd902",
      "tree": "9acd08c5e3a3ecd20b936af23d0a676df405c811",
      "parents": [
        "00c17ed78dce2f3dc71fcb8c762a188fdf6bafbf"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 12:49:45 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 14:21:59 2025 -0700"
      },
      "message": "Use \"*\" to indicate default capabilities in config\n\nInstead of using an empty string, make the use of default capabilities\nexplicit by requiring \"*\" to be specified.\n\nThis behavior is more consistent and allows OEMs to explicitly configure\nan interface without any capabilities (apart from those which are\nhard-coded). (Technically, they could do so by specifying one of the\nhardcoded capabilities in the config).\n\nTest: TH\nChange-Id: I1d25e5c4b302b0dbde5e1bb91fc1ed5a7b08be9d\n"
    },
    {
      "commit": "00c17ed78dce2f3dc71fcb8c762a188fdf6bafbf",
      "tree": "6fdf36590c15733769936f0df2f9dbd8d7791bc4",
      "parents": [
        "afa7ee8bfc9fddd2bcce8c33c6b6ac2d76aae98e"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 12:33:11 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 14:21:59 2025 -0700"
      },
      "message": "Move NetworkCapabilities parsing to EthernetConfigParser entirely\n\nPreviously, this code path was hard to follow. EthernetConfigParser\nparsed the capabilities specified in the xml, while\ncreateDefaultNetworkCapabilities and / or createNetworkCapabilities\nadded additional capabilities to those specified in the xml.\n\nThis change moves the creation of the final NetworkCapabilities for\nconfigured interfaces inside EthernetConfigParser to make it easier to\nfollow.\n\nTest: TH\nChange-Id: I367f53774eeee5aeca0fa7071db0403a6ce8bac5\n"
    },
    {
      "commit": "afa7ee8bfc9fddd2bcce8c33c6b6ac2d76aae98e",
      "tree": "a1e93ff31fcd41714bfd66764c0199e10cf3329b",
      "parents": [
        "269bb274826160b248f50b195acd9fb0e99a525c"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 13:05:49 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 13:05:49 2025 -0700"
      },
      "message": "Move isAtLeastB to dependencies\n\nSo it is testable.\n\nTest: TH\nChange-Id: Ie63a3583c2e9d327cf47effc2c9352e2da03c7c0\n"
    },
    {
      "commit": "30020a513aeeb5eeb773ae39672acc0029ada41c",
      "tree": "e05b064b6d437a95360fcccb65e07bc9276797f0",
      "parents": [
        "b6d94ad6f34870cf045ae71da9c6cca727f1015a"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Fri Mar 21 12:36:45 2025 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Fri Mar 21 12:55:32 2025 -0700"
      },
      "message": "clatd: fix endianness of multicast drop\n\nThis is a *critical* fix for http://go/aog/3514294\n  \u0027Drop egress multicast on clat interface\u0027\n\nBug: 404457155\nTest: TreeHugger\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: If14ef730f78c7e991842a678260dd20df607b1ec\n"
    },
    {
      "commit": "b6d94ad6f34870cf045ae71da9c6cca727f1015a",
      "tree": "e9a0a859054ceb0fef97395bf2226c02d12d9473",
      "parents": [
        "92bf2d9e262da39918d6d33769550c4b067cd725",
        "25e2622121288f92839210b0dd6f5e12c7fef13c"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 12:16:53 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 12:16:53 2025 -0700"
      },
      "message": "Merge \"NetBpfLoad: 25Q2+ parse \u0026 verify config\" into main"
    },
    {
      "commit": "269bb274826160b248f50b195acd9fb0e99a525c",
      "tree": "4ce16e9c5a41c12b253aa2920cf5558eccb87dd6",
      "parents": [
        "f0e0e2819d0ee8684f47cd85ee54b3c70050790d"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 11:13:16 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 11:13:16 2025 -0700"
      },
      "message": "Pass nullable values to parse functions\n\nSo the default value does not have to be repeated as null is handled the\nsame as \"\".\n\nTest: TH\nChange-Id: I1354ec5305af2ab74109f313318576dd56d96cef\n"
    },
    {
      "commit": "f0e0e2819d0ee8684f47cd85ee54b3c70050790d",
      "tree": "b41b9d018f788d15be92323e598f8a95d14f061d",
      "parents": [
        "515af4b1b05cb6683fda7f390ae743d2dc07a8bf"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 10:43:48 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 10:43:48 2025 -0700"
      },
      "message": "Rename EthernetTrackerConfig to EthernetConfigParser\n\nBecause that\u0027s what it really is.\n\nTest: TH\nChange-Id: I3806750a87042b4ae8e816f00388d6393346d0a8\n"
    },
    {
      "commit": "f68316091d205568f1f01cad855d729e4e60f93f",
      "tree": "432add24cea760fd4877a5dfe3a722e530544e82",
      "parents": [
        "92bf2d9e262da39918d6d33769550c4b067cd725"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Sat Mar 22 02:15:57 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Sat Mar 22 02:15:57 2025 +0900"
      },
      "message": "Don\u0027t use NetworkScore in TestableNetworkAgent\n\n...because R doesn\u0027t know that class\n\nBug: 404977645\nTest: NetworkAgentTest\nChange-Id: Iac558bf02bb9372ba397013524839be2b0b4d415\n"
    },
    {
      "commit": "515af4b1b05cb6683fda7f390ae743d2dc07a8bf",
      "tree": "1d81c4be5758fa7fa2031cb5ab6b74c8f55377c0",
      "parents": [
        "7fae9fc51ef929ca1d9c13bb1af84b8f532ca89a"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 10:04:35 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 10:04:35 2025 -0700"
      },
      "message": "Do not support configuring test interfaces in config.xml\n\nTest interfaces are currently suffixed with an ever increasing number,\nso naming is not predictable. Also, given that the config.xml must be\npresent at build time makes it not particularly useful for testing.\n\nTest: TH\nChange-Id: I48d0b0f98fdd90fa5ef50cc62b6b7bf08a55af1f\n"
    },
    {
      "commit": "92bf2d9e262da39918d6d33769550c4b067cd725",
      "tree": "e819db6401f1330015b2f272f398ba99b9ac74f3",
      "parents": [
        "6150ec80cc314e851428eaf6a65d329862ee4080",
        "042ebce713b2ea761ce58173823b78dcd75104ba"
      ],
      "author": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Fri Mar 21 09:48:51 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 09:48:51 2025 -0700"
      },
      "message": "Merge \"Grant the NEARBY_WIFI_DEVICES permission to VpnHostside tests\" into main"
    },
    {
      "commit": "7fae9fc51ef929ca1d9c13bb1af84b8f532ca89a",
      "tree": "1cb6c62663eea48b513fddb811b60d27e992997a",
      "parents": [
        "e0fd64321d342ad2dac7a6db6871e6bca6e7be0b"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 09:39:38 2025 -0700"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 09:39:38 2025 -0700"
      },
      "message": "Prevent mixing mutable and immutable lists\n\nAs per errorprone feedback.\n\nTest: TH\nChange-Id: I4da5673551e4c8c4b3fea0aa65d34649126aaff8\n"
    },
    {
      "commit": "6150ec80cc314e851428eaf6a65d329862ee4080",
      "tree": "254bb4a11fda441552d8b8ae6a7d02baf34d470d",
      "parents": [
        "4e2efc94f5f19e154b0d22e050c9a54543f9860c",
        "e0fd64321d342ad2dac7a6db6871e6bca6e7be0b"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Fri Mar 21 09:37:31 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 09:37:31 2025 -0700"
      },
      "message": "Merge changes Iceacbcab,I849ab478,I145de9bf into main\n\n* changes:\n  Move capability parsing to EthernetTrackerConfig\n  Move transport parsing to EthernetTrackerConfig\n  Delete unnecessary createEthernetTrackerConfig function\n"
    },
    {
      "commit": "4e2efc94f5f19e154b0d22e050c9a54543f9860c",
      "tree": "4c86a0f2e0e6a9cf0eb274d21b684a46f3359ded",
      "parents": [
        "e0051cdeb9d51a75ddea747657221e6089981794",
        "3d0e3121d9bd16af6e7bff3214d80b7cf88f8865"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 09:27:23 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 09:27:23 2025 -0700"
      },
      "message": "Merge \"Only apply the early network agent creation on B\" into main"
    },
    {
      "commit": "e0051cdeb9d51a75ddea747657221e6089981794",
      "tree": "7da63277f7f169c96a7f521b208cd0f072d823e7",
      "parents": [
        "0b7d710ba0a52ba913ded2072b4a9d5f430e3200",
        "0b806fd93189fda946db1f2e10e92604dfc3b2b4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 08:08:56 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 08:08:56 2025 -0700"
      },
      "message": "Merge \"Disable non-thread local network matching\" into main"
    },
    {
      "commit": "0b7d710ba0a52ba913ded2072b4a9d5f430e3200",
      "tree": "c0348b5cbdfe3403fb4e93163e7e89680e131dd6",
      "parents": [
        "d2c266cbe93d35b070651f8a0d249459e3cde0df",
        "17753495557e3f96c7278df3332ff759bc78aaaa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 07:42:40 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 07:42:40 2025 -0700"
      },
      "message": "Merge changes from topic \"tetherlocalagent\" into main\n\n* changes:\n  Add integration test of tethering local network agent feature\n  Add unit test of tethering local network agent feature\n  Support LocalNetworkAgent for Tethering\n"
    },
    {
      "commit": "d2c266cbe93d35b070651f8a0d249459e3cde0df",
      "tree": "ac6b161b4ecee3c167c7d0e2ce5c96630f46ece3",
      "parents": [
        "ed52d9aee3a6ceeabff6007e56113d4933a2cffa",
        "8e3bf62c7437cbbe870655b689167bf524af153d"
      ],
      "author": {
        "name": "Jimi Chen",
        "email": "jimictw@google.com",
        "time": "Fri Mar 21 06:31:49 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 06:31:49 2025 -0700"
      },
      "message": "Merge \"Add multicast address cleanup for test failures\" into main"
    },
    {
      "commit": "ed52d9aee3a6ceeabff6007e56113d4933a2cffa",
      "tree": "dbdcb652798ec1aa2d135f098201191e3c37e10c",
      "parents": [
        "a0fa137d8524f41932bde5449a0db14254db4a7b",
        "237a2d58439270dfe0ccf913924a88b3e1b8d13b"
      ],
      "author": {
        "name": "Jimi Chen",
        "email": "jimictw@google.com",
        "time": "Fri Mar 21 06:31:30 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 06:31:30 2025 -0700"
      },
      "message": "Merge \"Use scapy to generate Ethernet packet in multi-device test\" into main"
    },
    {
      "commit": "042ebce713b2ea761ce58173823b78dcd75104ba",
      "tree": "78e6a5f2b7c445e4c04cd54c25e19477dd2b03e0",
      "parents": [
        "4703e17d9885f218f3d7b04df10179c98477d68d"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 21:05:33 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 21:07:13 2025 +0900"
      },
      "message": "Grant the NEARBY_WIFI_DEVICES permission to VpnHostside tests\n\nFix forward for b/405308292\n\nBackground: new / existing runtime permission is now used to guard\naccess to local networks. apps / tests now need to hold this permission\nto do traffic with local devices.\n\nTest: CtsHostsideNetworkTests, TH\nBug: 405308292\nChange-Id: Ib4892cc817946c74094bfc5d9c54a95bb17ad30b\n"
    },
    {
      "commit": "a0fa137d8524f41932bde5449a0db14254db4a7b",
      "tree": "9cb9e4fbcbac61df2681ea9f8f294323dd0ee435",
      "parents": [
        "52875db997b7c926377bf5566cb53b53c6c35426",
        "0cc8d81cc79a18a50ac4aa8833725c5be048cc70"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 05:02:06 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 05:02:06 2025 -0700"
      },
      "message": "Merge \"Make sure tests know to handle both early creation true and false\" into main"
    },
    {
      "commit": "0b806fd93189fda946db1f2e10e92604dfc3b2b4",
      "tree": "d18a783f658ea4c82effc517311c2b0d46b48f17",
      "parents": [
        "17753495557e3f96c7278df3332ff759bc78aaaa"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Mar 19 07:30:11 2025 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 21 19:34:49 2025 +0800"
      },
      "message": "Disable non-thread local network matching\n\nCurrently, apps targeting V can see thread local network.\n\nThis change introduces a mechanism to make existing\napps unable to see non-thread local networks to ensure minimal\nimpact on existing devices and applications while adopting this\nbehavior. Apps targeting B+ Sdk and run on V+ devices can see\nnon-thread local networks.\n\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.CSLocalAgentTests \\\n      --update-device\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server --update-device\n      (on next/trunk_staging release config)\nBug: 349487600\nChange-Id: I6aa43cebc20a9017c2d8a8a90ebb1d53040a27bb\n"
    },
    {
      "commit": "52875db997b7c926377bf5566cb53b53c6c35426",
      "tree": "3caf6eee6f64ebe599764cd10223e18cd0c18232",
      "parents": [
        "d5743b97952475a8cd8740e58f593714466754b4",
        "6303c84ef593d2f898e154667bc61b61120416eb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 03:53:47 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 03:53:47 2025 -0700"
      },
      "message": "Merge \"[Thread] add vendor \u0026 model name support for net diag\" into main"
    },
    {
      "commit": "d5743b97952475a8cd8740e58f593714466754b4",
      "tree": "bc891366c88bbef9749bb4a94105aa55ee12b54c",
      "parents": [
        "a72fc32e50c941de857cbf48837d8cf9f65478c5",
        "72d9102ab7b98e9dcd7fc5981954999c64e354b2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 03:47:22 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 03:47:22 2025 -0700"
      },
      "message": "Merge changes I7fae1964,Ic7cc9e1d into main\n\n* changes:\n  Add carrier-privileged app bypass for start/stopTethering\n  Fix CarrierConfigRule#setHoldCarrierPrivilege race\n"
    },
    {
      "commit": "3d0e3121d9bd16af6e7bff3214d80b7cf88f8865",
      "tree": "7bc208bc041c79eb526b6f6f63aa3770c445b039",
      "parents": [
        "0cc8d81cc79a18a50ac4aa8833725c5be048cc70"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 12:58:21 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 19:29:07 2025 +0900"
      },
      "message": "Only apply the early network agent creation on B\n\n...and if the feature is not killed.\n\nFor devices on V and below, this feature should be subject\nto a rollout. That rollout should be done in mainline beta\nif possible at all, meaning the flags can be defined later.\n\nIf beta isn\u0027t possible after all, a legacy rollout can happen\nstarting in M2025-06 too.\n\nTest: manual\nChange-Id: I941762bf759ce25b4bd1f908e971ceaf4f49f671\n"
    },
    {
      "commit": "0cc8d81cc79a18a50ac4aa8833725c5be048cc70",
      "tree": "a5766d42bbe88b1a62dec1095961932e4579495f",
      "parents": [
        "324365a9014280a32395363e00642d01cc67814b"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 16:58:44 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 19:29:06 2025 +0900"
      },
      "message": "Make sure tests know to handle both early creation true and false\n\nThis is necessary to pass tests whatever the values of the features are.\n\nNetworkAgentTest was updated assuming the feature was true, so\nthis patch revives the old code for when it\u0027s false.\n\nTestableNetworkAgent reads the feature directly from\nConnectivityManager when it\u0027s not mocked.\n\nTest: CtsNetTestCases\nChange-Id: Ia556fbb1d1b6a38a4995b021981e2693d778bfff\n"
    },
    {
      "commit": "a72fc32e50c941de857cbf48837d8cf9f65478c5",
      "tree": "66c24dd8ffb83b8ff147ab1dd88c86ff9b7c3d31",
      "parents": [
        "04271629ccf4baf371301b27d1da84d3d2c3f98c",
        "340c5ca5141971deb6772aca0e6d004122fe90f1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 03:26:41 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 03:26:41 2025 -0700"
      },
      "message": "Merge \"[Thread] grant the NEARBY_WIFI_DEVICES permission to Thread tests\" into main"
    },
    {
      "commit": "04271629ccf4baf371301b27d1da84d3d2c3f98c",
      "tree": "ec20be9d2e8ba4fb36645d24cc4d3a65075f1fbc",
      "parents": [
        "3575c37e47a70ee7c57ca39b8f4d8f9af75ee022",
        "8fb3d765fcb279ddba04956bb9b0c42aaa3bd0a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 03:21:36 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 03:21:36 2025 -0700"
      },
      "message": "Merge changes I1707d28e,Ibb4a2916 into main\n\n* changes:\n  Dump top distinct tag counts per uid\n  Support per uid tag throttling to NetworkStats\n"
    },
    {
      "commit": "17753495557e3f96c7278df3332ff759bc78aaaa",
      "tree": "ad71ee6367cf444e023474391d003963195d86f0",
      "parents": [
        "396dd9b1e09fbceb8180a47df0dbee2a80f4f239"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Dec 18 18:04:33 2024 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 21 17:59:00 2025 +0800"
      },
      "message": "Add integration test of tethering local network agent feature\n\nTest: atest TetheringIntegrationTests:android.net.EthernetTetheringTest#testLocalAgent_networkCallbacks \\\n      --update-device\nBug: 349487600\nChange-Id: I3a173f7441a766c33844f89c13ef3cc7930167f1\n"
    },
    {
      "commit": "396dd9b1e09fbceb8180a47df0dbee2a80f4f239",
      "tree": "97ba54346a82e492f304ae9e91c862c930fd9c0a",
      "parents": [
        "d55bd89bd6d56938565d0148f99231b343fc41a4"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Tue Dec 17 17:07:31 2024 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 21 17:59:00 2025 +0800"
      },
      "message": "Add unit test of tethering local network agent feature\n\nTest: atest TetheringTests:android.net.ip.IpServerTest \\\n      ConnectivityCoverageTests:android.net.ip.IpServerTest \\\n      ConnectivityCoverageTests:com.android.networkstack.tethering \\\n      --update-device\n      (Also on the next release config)\nBug: 349487600\nChange-Id: I56e0ec106f9398225b162fa94e3ccdb94f413049\n"
    },
    {
      "commit": "3575c37e47a70ee7c57ca39b8f4d8f9af75ee022",
      "tree": "bf55ede8df1387f20cdfff51c4fe10e5c7dfa95d",
      "parents": [
        "e25d55c63862ad72f74d5359dd25a4002ab78a02",
        "324365a9014280a32395363e00642d01cc67814b"
      ],
      "author": {
        "name": "Jean Chalard",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 02:31:53 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 02:31:53 2025 -0700"
      },
      "message": "Merge changes Ic9fee5bb,I30fa35ce,If52cc211,I87e9d710 into main\n\n* changes:\n  Reapply \"Immediately create networks unless chickened out\"\n  Reapply \"Always disconnect agents immediately.\"\n  Reapply \"Make iterating over mNetworkAgentInfos safer.\"\n  Let DSCP policy test accept early network agent creation\n"
    },
    {
      "commit": "72d9102ab7b98e9dcd7fc5981954999c64e354b2",
      "tree": "a83c16a99e40fec93c986582f845ddc1e6c3cf6a",
      "parents": [
        "d3058d5ffe6be18af8a7ec9b99c0b780cf569c58"
      ],
      "author": {
        "name": "Quang Anh Luong",
        "email": "qal@google.com",
        "time": "Thu Feb 27 16:53:36 2025 +0900"
      },
      "committer": {
        "name": "Quang Anh Luong",
        "email": "qal@google.com",
        "time": "Fri Mar 21 18:25:28 2025 +0900"
      },
      "message": "Add carrier-privileged app bypass for start/stopTethering\n\nAllow carrier-privileged apps to call startTethering and stopTethering\nfor wifi tethering with a non-null SoftApConfiguration.\n\nBug: 295979433\nTest: atest TetheringTests CtsTetheringTests\n\nChange-Id: I7fae1964c44902b1d500729794fc59e5bdd185e5\n"
    },
    {
      "commit": "6303c84ef593d2f898e154667bc61b61120416eb",
      "tree": "6c9abaaaf7f50953b2dade1e3f2078bf3ab52535",
      "parents": [
        "4b2271398c356022e8a4a4eced448194fc75231b"
      ],
      "author": {
        "name": "Kangping Dong",
        "email": "wgtdkp@google.com",
        "time": "Thu Mar 20 16:26:37 2025 +0800"
      },
      "committer": {
        "name": "Kangping Dong",
        "email": "wgtdkp@google.com",
        "time": "Fri Mar 21 17:20:15 2025 +0800"
      },
      "message": "[Thread] add vendor \u0026 model name support for net diag\n\n1. allow OEMs to default the vendor and model name to system properties.\n2. use the vendor \u0026 model name for net diag TLVs\n\nChange-Id: I30e988ba3e9cb9f9c5dc3a096f162d5dbcdfbc11\n"
    },
    {
      "commit": "d55bd89bd6d56938565d0148f99231b343fc41a4",
      "tree": "0ff84596f96fdeccd29fd013a7d7b6b993b01fea",
      "parents": [
        "f3ae766e8e36cc92e1ebf0a31ec2370f3efde2dd"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Dec 13 15:47:44 2024 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 21 17:16:46 2025 +0800"
      },
      "message": "Support LocalNetworkAgent for Tethering\n\nThe feature will be gradually enabled via flag rollout.\n\nSample ip rule output:\n0:\tfrom all lookup local\n10000:\tfrom all fwmark 0xc0000/0xd0000 lookup legacy_system\n11000:\tfrom all iif lo oif dummy0 uidrange 0-0 lookup dummy0\n11000:\tfrom all iif lo oif rmnet1 uidrange 0-0 lookup rmnet1\n11000:\tfrom all iif lo oif wlan0 uidrange 0-0 lookup wlan0\n16000:\tfrom all fwmark 0x10063/0x1ffff iif lo lookup local_network\n16000:\tfrom all fwmark 0x10064/0x1ffff iif lo lookup rmnet1\n16000:\tfrom all fwmark 0x10066/0x1ffff iif lo lookup wlan0\n16000:\tfrom all fwmark 0x10063/0x1ffff iif lo lookup wlan0\n17000:\tfrom all iif lo oif dummy0 lookup dummy0\n17000:\tfrom all iif lo oif rmnet1 lookup rmnet1\n17000:\tfrom all iif lo oif wlan0 lookup wlan0\n18000:\tfrom all fwmark 0x0/0x10000 lookup legacy_system\n19000:\tfrom all fwmark 0x0/0x10000 lookup legacy_network\n20000:\tfrom all fwmark 0x0/0x10000 lookup local_network\n20000:\tfrom all fwmark 0x0/0x10000 lookup wlan0\n21000:\tfrom all iif wlan0 lookup rmnet1\n23000:\tfrom all fwmark 0x64/0x1ffff iif lo lookup rmnet1\n23000:\tfrom all fwmark 0x66/0x1ffff iif lo lookup wlan0\n31000:\tfrom all fwmark 0x0/0xffff iif lo lookup rmnet1\n32000:\tfrom all unreachable\n\nTest: adb shell device_config put tethering tethering_local_network_agent 1\nTest: atest TetheringTests:android.net.ip.IpServerTest TetheringManagerTest\nBug: 349487600\nChange-Id: Iaa88dde645da917149fec0d44fff796c551bcc7e\n"
    },
    {
      "commit": "d3058d5ffe6be18af8a7ec9b99c0b780cf569c58",
      "tree": "60283a7369b120f92e8a6aadc5463890911dff40",
      "parents": [
        "451f2dd39d6d84e2675fce144038899c30018dab"
      ],
      "author": {
        "name": "Quang Anh Luong",
        "email": "qal@google.com",
        "time": "Fri Mar 21 18:06:27 2025 +0900"
      },
      "committer": {
        "name": "Quang Anh Luong",
        "email": "qal@google.com",
        "time": "Fri Mar 21 18:13:37 2025 +0900"
      },
      "message": "Fix CarrierConfigRule#setHoldCarrierPrivilege race\n\nCarrierConfigRule#setHoldCarrierPrivilege will try to acquire/drop the\ncarrier privilege, but does not wait for the result of the operation. If\na test immediately calls an API that requires carrier privilege before\nthe operation completes, then it will fail.\n\nFix this by waiting for the operation to succeed before returning.\n\nBug: 295979433\nTest: presubmit\nChange-Id: Ic7cc9e1dbc206fbc0c3b79058b5782d93e89f1d7\n"
    },
    {
      "commit": "340c5ca5141971deb6772aca0e6d004122fe90f1",
      "tree": "28c2050d3e1958b8926340a4e174a0eb96b79788",
      "parents": [
        "089103dff9759d427f6fd0ccc41d51a7493f64a6"
      ],
      "author": {
        "name": "Kangping Dong",
        "email": "wgtdkp@google.com",
        "time": "Fri Mar 21 17:07:26 2025 +0800"
      },
      "committer": {
        "name": "Kangping Dong",
        "email": "wgtdkp@google.com",
        "time": "Fri Mar 21 17:09:35 2025 +0800"
      },
      "message": "[Thread] grant the NEARBY_WIFI_DEVICES permission to Thread tests\n\nFix forward for b/405297285\n\nBackground: new / existing runtime permission is now used to guard\naccess to local networks. apps / tests now need to hold this permission\nto do traffic with local devices.\n\nTest: atest ThreadNetworkIntegrationTests\nBug: 405297285\nChange-Id: I31aaf147a9f9bd8fab7640b935a163405d31e2b9\n"
    },
    {
      "commit": "e25d55c63862ad72f74d5359dd25a4002ab78a02",
      "tree": "e181e36176073927fb80b19f22ea37219f97076a",
      "parents": [
        "089103dff9759d427f6fd0ccc41d51a7493f64a6",
        "861f11c9db15c0f5001110ac87fb594002f61b01"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 02:01:28 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 02:01:28 2025 -0700"
      },
      "message": "Merge changes I3da49704,I511f21a3 into main\n\n* changes:\n  Skip enabling BTF on kernel older than 5.10\n  Fix an issue caused by variable re-declaration in inner scope\n"
    },
    {
      "commit": "8fb3d765fcb279ddba04956bb9b0c42aaa3bd0a0",
      "tree": "d17399255c49efef3526dc6acb7e85c917efa4c8",
      "parents": [
        "2a451ea222fcdf959405c53cf8226657e2e6e279"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Tue Mar 11 18:34:13 2025 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 21 16:52:23 2025 +0800"
      },
      "message": "Dump top distinct tag counts per uid\n\nSample Output:\nNetworkStatsFactory logs:\n  Top distinct tag counts in UidTagSets:\n    1000\u003d3\n    10115\u003d2\n    1073\u003d2\n    1051\u003d1\n    10037\u003d1\n    10113\u003d1\n    0\u003d1\n\nTest: manual\nBug: 364353020\nChange-Id: I1707d28efc991b083d360ff479216e1480ab0e7a\n"
    },
    {
      "commit": "2a451ea222fcdf959405c53cf8226657e2e6e279",
      "tree": "7f5189684828c862cccbb9726365135dc953c8c6",
      "parents": [
        "23cfd04e9b1baf181aeea1b0e61ab7cb008a2392"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Feb 19 16:45:56 2025 +0800"
      },
      "committer": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Fri Mar 21 16:52:23 2025 +0800"
      },
      "message": "Support per uid tag throttling to NetworkStats\n\nIntroduced filtering of NetworkStats based on the number of\ndistinct tags per UID, to prevent excessive memory usage.\n\nThis feature is default enabled with a kill switch\nper_uid_tag_throttling. And a DeviceConfig that allows\ncustomization of throttling threshold.\n\nTest: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.net.NetworkStatsFactoryTest\nBug: 364353020\nChange-Id: Ibb4a2916306153d229ab996247eb6e78009f0fb0\n"
    },
    {
      "commit": "089103dff9759d427f6fd0ccc41d51a7493f64a6",
      "tree": "89264ef7dd2bda9e63a45db0926c7155d2ed79c3",
      "parents": [
        "d43a4fdbfdc175a070b3688f7dbbfc52a33a7a88"
      ],
      "author": {
        "name": "Zhanglong Xia",
        "email": "zhanglongxia@google.com",
        "time": "Fri Mar 21 07:04:59 2025 +0000"
      },
      "committer": {
        "name": "Zhanglong Xia",
        "email": "zhanglongxia@google.com",
        "time": "Fri Mar 21 07:14:12 2025 +0000"
      },
      "message": "[Thread] add config_thread_country_code_enabled to overlayable.xml\n\nThis commit adds `config_thread_country_code_enabled` to the\noverlayable.xml to allow the device to overlay this configuration.\n\nBug: b/402276117\nTest: Set the `config_thread_country_code_enabled` to `false` in\n      the real Android device, then run the command\n      `adb shell dumpsys thread_network` to check the state of\n      CountryCode module.\n\nChange-Id: I37cea57a38f5487c3a07508854adb6cfd25d50b2\n"
    },
    {
      "commit": "25e2622121288f92839210b0dd6f5e12c7fef13c",
      "tree": "40d7693cfcd9471e496ee01bdf542f2a4f65068f",
      "parents": [
        "95af095af95bcdf8a9045aa7e1bb4c243e30d57c"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Mar 20 23:25:39 2025 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Mar 20 23:47:59 2025 -0700"
      },
      "message": "NetBpfLoad: 25Q2+ parse \u0026 verify config\n\nTest: TreeHugger\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: Ibe7560998655dfe36b5cc071a3405650ad684935\n"
    },
    {
      "commit": "861f11c9db15c0f5001110ac87fb594002f61b01",
      "tree": "ab1ce8806cdecab034c4b0d9a7d6d8a9965f042a",
      "parents": [
        "62b1c8836735463e48cd5aed4d4e5f35208bf9ac"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Mar 21 15:29:00 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Mar 21 15:42:45 2025 +0900"
      },
      "message": "Skip enabling BTF on kernel older than 5.10\n\nBTF_KIND_VAR and BTF_KIND_DATASEC were introduced in 5.2.\nIt should be possible to enable BTF on 4.18 or above since libbpf can\nload BTF.\nAlso, current code should work on 5.4 but this is untested.\nFor now, this CL enables BTF on 5.10 or above.\n\nTest: boot on 4.9, 4.19, 5.10\nTest: adb logcat | grep NetBpfLoad\nChange-Id: I3da4970464afcf9a76b1f2645ed79c44750bcd6a\n"
    },
    {
      "commit": "62b1c8836735463e48cd5aed4d4e5f35208bf9ac",
      "tree": "82368234eeeba9f6e841aa9f879e7e0de72f88f4",
      "parents": [
        "95af095af95bcdf8a9045aa7e1bb4c243e30d57c"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Mar 21 15:13:00 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Mar 21 15:40:42 2025 +0900"
      },
      "message": "Fix an issue caused by variable re-declaration in inner scope\n\nSince btf is declared in inner scope, btf is null in outer scope and BTF\nwas always disabled.\n\nThis CL also makes NetBpfLoad buildable with -Wshadow flag\n\nTest: adb log | grep NetBpfLoad\nChange-Id: I511f21a3620ccfdadd797786e087d0d142c816ed\n"
    },
    {
      "commit": "d43a4fdbfdc175a070b3688f7dbbfc52a33a7a88",
      "tree": "23405e67ede4fcab7ee2d75389b0544b7df25d95",
      "parents": [
        "95af095af95bcdf8a9045aa7e1bb4c243e30d57c",
        "5f020a5ab853acf2a5a3ece263de716987c3f0d0"
      ],
      "author": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Thu Mar 20 23:13:12 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 23:13:12 2025 -0700"
      },
      "message": "Merge \"Changing the targetSdkVersion for RESTRICT_LOCAL_NETWORK\" into main"
    },
    {
      "commit": "324365a9014280a32395363e00642d01cc67814b",
      "tree": "4f328b6f74579654f2f564234e0825eef2d94c22",
      "parents": [
        "9fdc988dc860a6bb37247827457c4151b715c3b8"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 10:12:38 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 14:57:25 2025 +0900"
      },
      "message": "Reapply \"Immediately create networks unless chickened out\"\n\nNow that the faulty test is fixed,\nThis reverts commit 0141d82c2ded3a2272ccb076ef3d0c75363ba8d4.\n\nTest: ConnectivityCoverageTests CtsNetTestCases FrameworksTelephonyTests\nChange-Id: Ic9fee5bb7efb8ca4c05d7c9e600236186d094080\n"
    },
    {
      "commit": "9fdc988dc860a6bb37247827457c4151b715c3b8",
      "tree": "2d4ba1d2547c7ada78de584918574d4c1a13fda5",
      "parents": [
        "2f52a0e86d45f4607bae71e43da2de2834e9ef3d"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 10:13:47 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 14:57:25 2025 +0900"
      },
      "message": "Reapply \"Always disconnect agents immediately.\"\n\nNow that the faulty test is fixed,\nThis reverts commit 19dcc447c47b732bc2a3f0802097031accaa8ecb.\n\nTest: ConnectivityCoverageTests CtsNetTestCases FrameworksTelephonyTests\nChange-Id: I30fa35cef1729e6ecd4140c52fabfa2da1a9bb4b\n"
    },
    {
      "commit": "2f52a0e86d45f4607bae71e43da2de2834e9ef3d",
      "tree": "177366729efde0e25088cbb016e6bd82e45c47d9",
      "parents": [
        "d0ac32bfee65ecaf2852e85130fa9eeb0e8836c5"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 10:14:28 2025 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 21 14:57:25 2025 +0900"
      },
      "message": "Reapply \"Make iterating over mNetworkAgentInfos safer.\"\n\nNow that the faulty test is fixed,\nThis reverts commit 09bc78fda764d57e257df3c59857ca2414d0f6f8.\n\nTest: ConnectivityCoverageTests CtsNetTestCases FrameworksTelephonyTests\nChange-Id: If52cc211b7859c0add07c16f171a6ce342ccca97\n"
    },
    {
      "commit": "5f020a5ab853acf2a5a3ece263de716987c3f0d0",
      "tree": "4c6462a441dad510b5987c9ac8b6d44608900384",
      "parents": [
        "038fd312fe004eecf590e4a50c3beed7d575dc69"
      ],
      "author": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Thu Mar 20 21:00:34 2025 +0000"
      },
      "committer": {
        "name": "Sarup Dalwani",
        "email": "sarup@google.com",
        "time": "Fri Mar 21 04:32:25 2025 +0000"
      },
      "message": "Changing the targetSdkVersion for RESTRICT_LOCAL_NETWORK\n\nThe targetSdkVersion was set to enable after current_development version\nso the test cases targetting current do not have change enabled. It was\nobserved that user builds did not allowed changing compat flag on\ncurrent values. Changing this to enabled after baklava.\n\nBug: 405183129\nTest: atest ConnectivityCoverageTests\nChange-Id: Ifeb7cde9f1a7d2b5a254f297207d625bf9d02731\n"
    },
    {
      "commit": "95af095af95bcdf8a9045aa7e1bb4c243e30d57c",
      "tree": "a340ddbdfa843dacd52a2c55ba7cc5c07d4e03ba",
      "parents": [
        "450d933e8357126842a375b14eea88ffb3f0961f",
        "f3ae766e8e36cc92e1ebf0a31ec2370f3efde2dd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 20 21:14:39 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 21:14:39 2025 -0700"
      },
      "message": "Merge \"Add MatchNonThreadLocalNetworks flag in NetworkCapabilities\" into main"
    },
    {
      "commit": "450d933e8357126842a375b14eea88ffb3f0961f",
      "tree": "218f94500f65b4fd7d55208c7644ef4b80790157",
      "parents": [
        "88668413ea5fdbd958905fffb0671a7d1868356d",
        "a6ffae202b12c2e60d877d4e7deccc49c0d5626e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 20 20:52:21 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 20:52:21 2025 -0700"
      },
      "message": "Merge \"Fix unsigned num comparison with zero\" into main"
    }
  ],
  "next": "d0ac32bfee65ecaf2852e85130fa9eeb0e8836c5"
}
