Remove legacy network factories
Nothing on the system is using registerNetworkFactory, unregisterNetworkFactory at the moment. registerNetworkFactory, unregisterNetworkFactory are protected by signature permissions, so could not be used by anything outside of the system. Remove the two methods and the underlying support for this legacy, deprecated mechanism. Bug: 179229316 Test: atest FrameworksNetTests Change-Id: I7cdc9eed67f846c8774474af038133040aeccab3
This commit is contained in:
@@ -3231,32 +3231,6 @@ public class ConnectivityManager {
|
||||
}
|
||||
}
|
||||
|
||||
/** {@hide} - returns the factory serial number */
|
||||
@UnsupportedAppUsage
|
||||
@RequiresPermission(anyOf = {
|
||||
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||
android.Manifest.permission.NETWORK_FACTORY})
|
||||
public int registerNetworkFactory(Messenger messenger, String name) {
|
||||
try {
|
||||
return mService.registerNetworkFactory(messenger, name);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/** {@hide} */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
||||
@RequiresPermission(anyOf = {
|
||||
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||
android.Manifest.permission.NETWORK_FACTORY})
|
||||
public void unregisterNetworkFactory(Messenger messenger) {
|
||||
try {
|
||||
mService.unregisterNetworkFactory(messenger);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the specified {@link NetworkProvider}.
|
||||
* Each listener must only be registered once. The listener can be unregistered with
|
||||
|
||||
@@ -156,9 +156,6 @@ interface IConnectivityManager
|
||||
|
||||
boolean requestBandwidthUpdate(in Network network);
|
||||
|
||||
int registerNetworkFactory(in Messenger messenger, in String name);
|
||||
void unregisterNetworkFactory(in Messenger messenger);
|
||||
|
||||
int registerNetworkProvider(in Messenger messenger, in String name);
|
||||
void unregisterNetworkProvider(in Messenger messenger);
|
||||
|
||||
|
||||
@@ -3334,7 +3334,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
if (VDBG) log("NetworkFactory connected");
|
||||
// Finish setting up the full connection
|
||||
NetworkProviderInfo npi = mNetworkProviderInfos.get(msg.replyTo);
|
||||
npi.completeConnection();
|
||||
sendAllRequestsToProvider(npi);
|
||||
} else {
|
||||
loge("Error connecting NetworkFactory");
|
||||
@@ -5414,27 +5413,21 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
private static class NetworkProviderInfo {
|
||||
public final String name;
|
||||
public final Messenger messenger;
|
||||
private final AsyncChannel mAsyncChannel;
|
||||
private final IBinder.DeathRecipient mDeathRecipient;
|
||||
public final int providerId;
|
||||
|
||||
NetworkProviderInfo(String name, Messenger messenger, AsyncChannel asyncChannel,
|
||||
int providerId, IBinder.DeathRecipient deathRecipient) {
|
||||
int providerId, @NonNull IBinder.DeathRecipient deathRecipient) {
|
||||
this.name = name;
|
||||
this.messenger = messenger;
|
||||
this.providerId = providerId;
|
||||
mAsyncChannel = asyncChannel;
|
||||
mDeathRecipient = deathRecipient;
|
||||
|
||||
if ((mAsyncChannel == null) == (mDeathRecipient == null)) {
|
||||
throw new AssertionError("Must pass exactly one of asyncChannel or deathRecipient");
|
||||
if (mDeathRecipient == null) {
|
||||
throw new AssertionError("Must pass a deathRecipient");
|
||||
}
|
||||
}
|
||||
|
||||
boolean isLegacyNetworkFactory() {
|
||||
return mAsyncChannel != null;
|
||||
}
|
||||
|
||||
void sendMessageToNetworkProvider(int what, int arg1, int arg2, Object obj) {
|
||||
try {
|
||||
messenger.send(Message.obtain(null /* handler */, what, arg1, arg2, obj));
|
||||
@@ -5445,27 +5438,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
|
||||
void requestNetwork(NetworkRequest request, int score, int servingProviderId) {
|
||||
if (isLegacyNetworkFactory()) {
|
||||
mAsyncChannel.sendMessage(android.net.NetworkFactory.CMD_REQUEST_NETWORK, score,
|
||||
servingProviderId, request);
|
||||
} else {
|
||||
sendMessageToNetworkProvider(NetworkProvider.CMD_REQUEST_NETWORK, score,
|
||||
servingProviderId, request);
|
||||
}
|
||||
}
|
||||
|
||||
void cancelRequest(NetworkRequest request) {
|
||||
if (isLegacyNetworkFactory()) {
|
||||
mAsyncChannel.sendMessage(android.net.NetworkFactory.CMD_CANCEL_REQUEST, request);
|
||||
} else {
|
||||
sendMessageToNetworkProvider(NetworkProvider.CMD_CANCEL_REQUEST, 0, 0, request);
|
||||
}
|
||||
}
|
||||
|
||||
void connect(Context context, Handler handler) {
|
||||
if (isLegacyNetworkFactory()) {
|
||||
mAsyncChannel.connect(context, handler, messenger);
|
||||
} else {
|
||||
try {
|
||||
messenger.getBinder().linkToDeath(mDeathRecipient, 0);
|
||||
} catch (RemoteException e) {
|
||||
@@ -5474,13 +5455,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
void completeConnection() {
|
||||
if (isLegacyNetworkFactory()) {
|
||||
mAsyncChannel.sendMessage(AsyncChannel.CMD_CHANNEL_FULL_CONNECTION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureAllNetworkRequestsHaveType(List<NetworkRequest> requests) {
|
||||
for (int i = 0; i < requests.size(); i++) {
|
||||
ensureNetworkRequestHasType(requests.get(i));
|
||||
@@ -5951,15 +5925,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
EVENT_RELEASE_NETWORK_REQUEST, getCallingUid(), 0, networkRequest));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int registerNetworkFactory(Messenger messenger, String name) {
|
||||
enforceNetworkFactoryPermission();
|
||||
NetworkProviderInfo npi = new NetworkProviderInfo(name, messenger, new AsyncChannel(),
|
||||
nextNetworkProviderId(), null /* deathRecipient */);
|
||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_NETWORK_PROVIDER, npi));
|
||||
return npi.providerId;
|
||||
}
|
||||
|
||||
private void handleRegisterNetworkProvider(NetworkProviderInfo npi) {
|
||||
if (mNetworkProviderInfos.containsKey(npi.messenger)) {
|
||||
// Avoid creating duplicates. even if an app makes a direct AIDL call.
|
||||
@@ -5973,11 +5938,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
if (DBG) log("Got NetworkProvider Messenger for " + npi.name);
|
||||
mNetworkProviderInfos.put(npi.messenger, npi);
|
||||
npi.connect(mContext, mTrackerHandler);
|
||||
if (!npi.isLegacyNetworkFactory()) {
|
||||
// Legacy NetworkFactories get their requests when their AsyncChannel connects.
|
||||
sendAllRequestsToProvider(npi);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int registerNetworkProvider(Messenger messenger, String name) {
|
||||
@@ -5995,11 +5957,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_UNREGISTER_NETWORK_PROVIDER, messenger));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterNetworkFactory(Messenger messenger) {
|
||||
unregisterNetworkProvider(messenger);
|
||||
}
|
||||
|
||||
private void handleUnregisterNetworkProvider(Messenger messenger) {
|
||||
NetworkProviderInfo npi = mNetworkProviderInfos.remove(messenger);
|
||||
if (npi == null) {
|
||||
|
||||
Reference in New Issue
Block a user