diff --git a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java index 6cd0ac3bcb..cd59e4e94a 100644 --- a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java +++ b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java @@ -333,6 +333,7 @@ final class ThreadNetworkControllerService extends IThreadNetworkController.Stub mLinkProperties.setMtu(TunInterfaceController.MTU); mConnectivityManager.registerNetworkProvider(mNetworkProvider); requestUpstreamNetwork(); + requestThreadNetwork(); initializeOtDaemon(); }); @@ -413,9 +414,10 @@ final class ThreadNetworkControllerService extends IThreadNetworkController.Stub private void requestThreadNetwork() { mConnectivityManager.registerNetworkCallback( new NetworkRequest.Builder() + // clearCapabilities() is needed to remove forbidden capabilities and UID + // requirement. .clearCapabilities() .addTransportType(NetworkCapabilities.TRANSPORT_THREAD) - .removeForbiddenCapability(NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK) .build(), new ThreadNetworkCallback(), mHandler); @@ -459,8 +461,6 @@ final class ThreadNetworkControllerService extends IThreadNetworkController.Stub return; } - requestThreadNetwork(); - mNetworkAgent = newNetworkAgent(); mNetworkAgent.register(); mNetworkAgent.markConnected();