diff --git a/framework/src/android/net/ConnectivityManager.java b/framework/src/android/net/ConnectivityManager.java
index f741c2b..4ab2d0f 100644
--- a/framework/src/android/net/ConnectivityManager.java
+++ b/framework/src/android/net/ConnectivityManager.java
@@ -1408,6 +1408,36 @@
     }
 
     /**
+     * Update ConnectivityService's map of UIDs to the transports they are allowed to use.
+     * If a network has a transport type that is not an allowed type for the UID, the UID will
+     * not be allowed to access that network.
+     *
+     * @param uids UIDs to update.
+     * @param allowedTransportsPacked Corresponding bit-packed allowed transports to update.
+     *
+     * @hide
+     */
+    @RequiresPermission(anyOf = {
+            NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
+            android.Manifest.permission.NETWORK_STACK,
+            android.Manifest.permission.NETWORK_SETTINGS})
+    @SystemApi(client = MODULE_LIBRARIES)
+    public void setUidsAllowedTransports(@NonNull final int[] uids,
+            @NonNull final long[] allowedTransportsPacked) {
+        Objects.requireNonNull(uids);
+        Objects.requireNonNull(allowedTransportsPacked);
+        if (uids.length != allowedTransportsPacked.length) {
+            throw new IllegalArgumentException(
+                    "uids and allowedTransportsPacked must be equal length");
+        }
+        try {
+            mService.setUidsAllowedTransports(uids, allowedTransportsPacked);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Informs ConnectivityService of whether the legacy lockdown VPN, as implemented by
      * LockdownVpnTracker, is in use. This is deprecated for new devices starting from Android 12
      * but is still supported for backwards compatibility.
diff --git a/framework/src/android/net/IConnectivityManager.aidl b/framework/src/android/net/IConnectivityManager.aidl
index bc73769..bb36bb8 100644
--- a/framework/src/android/net/IConnectivityManager.aidl
+++ b/framework/src/android/net/IConnectivityManager.aidl
@@ -245,4 +245,6 @@
     void setFirewallChainEnabled(int chain, boolean enable);
 
     void replaceFirewallChain(int chain, in int[] uids);
+
+    void setUidsAllowedTransports(in int[] uids, in long[] allowedTransportsPacked);
 }
