diff --git a/framework-t/src/android/net/EthernetManager.java b/framework-t/src/android/net/EthernetManager.java index 886d19499c..b8070f0bba 100644 --- a/framework-t/src/android/net/EthernetManager.java +++ b/framework-t/src/android/net/EthernetManager.java @@ -22,13 +22,11 @@ import android.annotation.CallbackExecutor; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; -import android.annotation.RequiresFeature; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; -import android.content.pm.PackageManager; import android.os.Build; import android.os.OutcomeReceiver; import android.os.RemoteException; @@ -573,7 +571,6 @@ public class EthernetManager { NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.MANAGE_ETHERNET_NETWORKS}) - @RequiresFeature(PackageManager.FEATURE_AUTOMOTIVE) public void enableInterface( @NonNull String iface, @Nullable @CallbackExecutor Executor executor, @@ -582,7 +579,7 @@ public class EthernetManager { final NetworkInterfaceOutcomeReceiver proxy = makeNetworkInterfaceOutcomeReceiver( executor, callback); try { - mService.connectNetwork(iface, proxy); + mService.enableInterface(iface, proxy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -610,7 +607,6 @@ public class EthernetManager { NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.MANAGE_ETHERNET_NETWORKS}) - @RequiresFeature(PackageManager.FEATURE_AUTOMOTIVE) public void disableInterface( @NonNull String iface, @Nullable @CallbackExecutor Executor executor, @@ -619,7 +615,7 @@ public class EthernetManager { final NetworkInterfaceOutcomeReceiver proxy = makeNetworkInterfaceOutcomeReceiver( executor, callback); try { - mService.disconnectNetwork(iface, proxy); + mService.disableInterface(iface, proxy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/framework-t/src/android/net/IEthernetManager.aidl b/framework-t/src/android/net/IEthernetManager.aidl index 42e4c1ac55..c1efc29d25 100644 --- a/framework-t/src/android/net/IEthernetManager.aidl +++ b/framework-t/src/android/net/IEthernetManager.aidl @@ -43,8 +43,8 @@ interface IEthernetManager void releaseTetheredInterface(in ITetheredInterfaceCallback callback); void updateConfiguration(String iface, in EthernetNetworkUpdateRequest request, in INetworkInterfaceOutcomeReceiver listener); - void connectNetwork(String iface, in INetworkInterfaceOutcomeReceiver listener); - void disconnectNetwork(String iface, in INetworkInterfaceOutcomeReceiver listener); + void enableInterface(String iface, in INetworkInterfaceOutcomeReceiver listener); + void disableInterface(String iface, in INetworkInterfaceOutcomeReceiver listener); void setEthernetEnabled(boolean enabled); List getInterfaceList(); } diff --git a/service-t/src/com/android/server/ethernet/EthernetServiceImpl.java b/service-t/src/com/android/server/ethernet/EthernetServiceImpl.java index 5e830ad83a..71d3e4f43e 100644 --- a/service-t/src/com/android/server/ethernet/EthernetServiceImpl.java +++ b/service-t/src/com/android/server/ethernet/EthernetServiceImpl.java @@ -22,11 +22,11 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.pm.PackageManager; +import android.net.EthernetNetworkUpdateRequest; import android.net.IEthernetManager; import android.net.IEthernetServiceListener; import android.net.INetworkInterfaceOutcomeReceiver; import android.net.ITetheredInterfaceCallback; -import android.net.EthernetNetworkUpdateRequest; import android.net.IpConfiguration; import android.net.NetworkCapabilities; import android.os.Binder; @@ -260,27 +260,27 @@ public class EthernetServiceImpl extends IEthernetManager.Stub { } @Override - public void connectNetwork(@NonNull final String iface, + public void enableInterface(@NonNull final String iface, @Nullable final INetworkInterfaceOutcomeReceiver listener) { - Log.i(TAG, "connectNetwork called with: iface=" + iface + ", listener=" + listener); + Log.i(TAG, "enableInterface called with: iface=" + iface + ", listener=" + listener); Objects.requireNonNull(iface); throwIfEthernetNotStarted(); - enforceAdminPermission(iface, true, "connectNetwork()"); + enforceAdminPermission(iface, false, "enableInterface()"); - mTracker.connectNetwork(iface, listener); + mTracker.enableInterface(iface, listener); } @Override - public void disconnectNetwork(@NonNull final String iface, + public void disableInterface(@NonNull final String iface, @Nullable final INetworkInterfaceOutcomeReceiver listener) { - Log.i(TAG, "disconnectNetwork called with: iface=" + iface + ", listener=" + listener); + Log.i(TAG, "disableInterface called with: iface=" + iface + ", listener=" + listener); Objects.requireNonNull(iface); throwIfEthernetNotStarted(); - enforceAdminPermission(iface, true, "connectNetwork()"); + enforceAdminPermission(iface, false, "disableInterface()"); - mTracker.disconnectNetwork(iface, listener); + mTracker.disableInterface(iface, listener); } @Override diff --git a/service-t/src/com/android/server/ethernet/EthernetTracker.java b/service-t/src/com/android/server/ethernet/EthernetTracker.java index 709b774e4f..f701ed2968 100644 --- a/service-t/src/com/android/server/ethernet/EthernetTracker.java +++ b/service-t/src/com/android/server/ethernet/EthernetTracker.java @@ -286,13 +286,13 @@ public class EthernetTracker { } @VisibleForTesting(visibility = PACKAGE) - protected void connectNetwork(@NonNull final String iface, + protected void enableInterface(@NonNull final String iface, @Nullable final INetworkInterfaceOutcomeReceiver listener) { mHandler.post(() -> updateInterfaceState(iface, true, listener)); } @VisibleForTesting(visibility = PACKAGE) - protected void disconnectNetwork(@NonNull final String iface, + protected void disableInterface(@NonNull final String iface, @Nullable final INetworkInterfaceOutcomeReceiver listener) { mHandler.post(() -> updateInterfaceState(iface, false, listener)); } diff --git a/tests/unit/java/com/android/server/ethernet/EthernetServiceImplTest.java b/tests/unit/java/com/android/server/ethernet/EthernetServiceImplTest.java index dd1f1edba7..aff824c665 100644 --- a/tests/unit/java/com/android/server/ethernet/EthernetServiceImplTest.java +++ b/tests/unit/java/com/android/server/ethernet/EthernetServiceImplTest.java @@ -20,7 +20,6 @@ import static android.net.NetworkCapabilities.TRANSPORT_TEST; import static org.junit.Assert.assertThrows; import static org.junit.Assert.fail; - import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; @@ -35,8 +34,8 @@ import android.Manifest; import android.annotation.NonNull; import android.content.Context; import android.content.pm.PackageManager; -import android.net.INetworkInterfaceOutcomeReceiver; import android.net.EthernetNetworkUpdateRequest; +import android.net.INetworkInterfaceOutcomeReceiver; import android.net.IpConfiguration; import android.net.NetworkCapabilities; import android.os.Handler; @@ -111,18 +110,18 @@ public class EthernetServiceImplTest { } @Test - public void testConnectNetworkRejectsWhenEthNotStarted() { + public void testEnableInterfaceRejectsWhenEthNotStarted() { mEthernetServiceImpl.mStarted.set(false); assertThrows(IllegalStateException.class, () -> { - mEthernetServiceImpl.connectNetwork("" /* iface */, null /* listener */); + mEthernetServiceImpl.enableInterface("" /* iface */, null /* listener */); }); } @Test - public void testDisconnectNetworkRejectsWhenEthNotStarted() { + public void testDisableInterfaceRejectsWhenEthNotStarted() { mEthernetServiceImpl.mStarted.set(false); assertThrows(IllegalStateException.class, () -> { - mEthernetServiceImpl.disconnectNetwork("" /* iface */, null /* listener */); + mEthernetServiceImpl.disableInterface("" /* iface */, null /* listener */); }); } @@ -134,16 +133,16 @@ public class EthernetServiceImplTest { } @Test - public void testConnectNetworkRejectsNullIface() { + public void testEnableInterfaceRejectsNullIface() { assertThrows(NullPointerException.class, () -> { - mEthernetServiceImpl.connectNetwork(null /* iface */, NULL_LISTENER); + mEthernetServiceImpl.enableInterface(null /* iface */, NULL_LISTENER); }); } @Test - public void testDisconnectNetworkRejectsNullIface() { + public void testDisableInterfaceRejectsNullIface() { assertThrows(NullPointerException.class, () -> { - mEthernetServiceImpl.disconnectNetwork(null /* iface */, NULL_LISTENER); + mEthernetServiceImpl.disableInterface(null /* iface */, NULL_LISTENER); }); } @@ -165,22 +164,6 @@ public class EthernetServiceImplTest { eq(UPDATE_REQUEST_WITHOUT_CAPABILITIES.getNetworkCapabilities()), isNull()); } - @Test - public void testConnectNetworkRejectsWithoutAutomotiveFeature() { - toggleAutomotiveFeature(false); - assertThrows(UnsupportedOperationException.class, () -> { - mEthernetServiceImpl.connectNetwork("" /* iface */, NULL_LISTENER); - }); - } - - @Test - public void testDisconnectNetworkRejectsWithoutAutomotiveFeature() { - toggleAutomotiveFeature(false); - assertThrows(UnsupportedOperationException.class, () -> { - mEthernetServiceImpl.disconnectNetwork("" /* iface */, NULL_LISTENER); - }); - } - private void denyManageEthPermission() { doThrow(new SecurityException("")).when(mContext) .enforceCallingOrSelfPermission( @@ -202,18 +185,18 @@ public class EthernetServiceImplTest { } @Test - public void testConnectNetworkRejectsWithoutManageEthPermission() { + public void testEnableInterfaceRejectsWithoutManageEthPermission() { denyManageEthPermission(); assertThrows(SecurityException.class, () -> { - mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER); + mEthernetServiceImpl.enableInterface(TEST_IFACE, NULL_LISTENER); }); } @Test - public void testDisconnectNetworkRejectsWithoutManageEthPermission() { + public void testDisableInterfaceRejectsWithoutManageEthPermission() { denyManageEthPermission(); assertThrows(SecurityException.class, () -> { - mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER); + mEthernetServiceImpl.disableInterface(TEST_IFACE, NULL_LISTENER); }); } @@ -231,20 +214,20 @@ public class EthernetServiceImplTest { } @Test - public void testConnectNetworkRejectsTestRequestWithoutTestPermission() { + public void testEnableInterfaceRejectsTestRequestWithoutTestPermission() { enableTestInterface(); denyManageTestNetworksPermission(); assertThrows(SecurityException.class, () -> { - mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER); + mEthernetServiceImpl.enableInterface(TEST_IFACE, NULL_LISTENER); }); } @Test - public void testDisconnectNetworkRejectsTestRequestWithoutTestPermission() { + public void testDisableInterfaceRejectsTestRequestWithoutTestPermission() { enableTestInterface(); denyManageTestNetworksPermission(); assertThrows(SecurityException.class, () -> { - mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER); + mEthernetServiceImpl.disableInterface(TEST_IFACE, NULL_LISTENER); }); } @@ -258,15 +241,15 @@ public class EthernetServiceImplTest { } @Test - public void testConnectNetwork() { - mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER); - verify(mEthernetTracker).connectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER)); + public void testEnableInterface() { + mEthernetServiceImpl.enableInterface(TEST_IFACE, NULL_LISTENER); + verify(mEthernetTracker).enableInterface(eq(TEST_IFACE), eq(NULL_LISTENER)); } @Test - public void testDisconnectNetwork() { - mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER); - verify(mEthernetTracker).disconnectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER)); + public void testDisableInterface() { + mEthernetServiceImpl.disableInterface(TEST_IFACE, NULL_LISTENER); + verify(mEthernetTracker).disableInterface(eq(TEST_IFACE), eq(NULL_LISTENER)); } @Test @@ -324,23 +307,23 @@ public class EthernetServiceImplTest { } @Test - public void testConnectNetworkForTestRequestDoesNotRequireAutoOrNetPermission() { + public void testEnableInterfaceForTestRequestDoesNotRequireNetPermission() { enableTestInterface(); toggleAutomotiveFeature(false); denyManageEthPermission(); - mEthernetServiceImpl.connectNetwork(TEST_IFACE, NULL_LISTENER); - verify(mEthernetTracker).connectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER)); + mEthernetServiceImpl.enableInterface(TEST_IFACE, NULL_LISTENER); + verify(mEthernetTracker).enableInterface(eq(TEST_IFACE), eq(NULL_LISTENER)); } @Test - public void testDisconnectNetworkForTestRequestDoesNotRequireAutoOrNetPermission() { + public void testDisableInterfaceForTestRequestDoesNotRequireAutoOrNetPermission() { enableTestInterface(); toggleAutomotiveFeature(false); denyManageEthPermission(); - mEthernetServiceImpl.disconnectNetwork(TEST_IFACE, NULL_LISTENER); - verify(mEthernetTracker).disconnectNetwork(eq(TEST_IFACE), eq(NULL_LISTENER)); + mEthernetServiceImpl.disableInterface(TEST_IFACE, NULL_LISTENER); + verify(mEthernetTracker).disableInterface(eq(TEST_IFACE), eq(NULL_LISTENER)); } private void denyPermissions(String... permissions) { diff --git a/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java b/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java index 33b36fdeee..ca988b675d 100644 --- a/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java +++ b/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java @@ -352,8 +352,8 @@ public class EthernetTrackerTest { } @Test - public void testConnectNetworkCorrectlyCallsFactory() { - tracker.connectNetwork(TEST_IFACE, NULL_LISTENER); + public void testEnableInterfaceCorrectlyCallsFactory() { + tracker.enableInterface(TEST_IFACE, NULL_LISTENER); waitForIdle(); verify(mFactory).updateInterfaceLinkState(eq(TEST_IFACE), eq(true /* up */), @@ -361,8 +361,8 @@ public class EthernetTrackerTest { } @Test - public void testDisconnectNetworkCorrectlyCallsFactory() { - tracker.disconnectNetwork(TEST_IFACE, NULL_LISTENER); + public void testDisableInterfaceCorrectlyCallsFactory() { + tracker.disableInterface(TEST_IFACE, NULL_LISTENER); waitForIdle(); verify(mFactory).updateInterfaceLinkState(eq(TEST_IFACE), eq(false /* up */),