Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)

Bug: 166295507
Merged-In: I3d92a6de21a938f6b352ec26dc23420c0fe02b27
Change-Id: Ifdb80563ef042738778ebb8a7581a97c4e3d96e2
This commit is contained in:
Xin Li
2020-08-31 21:21:38 -07:00
8 changed files with 49 additions and 10 deletions

View File

@@ -1725,7 +1725,6 @@ public class ConnectivityManager {
@UnsupportedAppUsage @UnsupportedAppUsage
public PacketKeepaliveCallback() { public PacketKeepaliveCallback() {
} }
/** The requested keepalive was successfully started. */ /** The requested keepalive was successfully started. */
@UnsupportedAppUsage @UnsupportedAppUsage
public void onStarted() {} public void onStarted() {}
@@ -3177,6 +3176,7 @@ public class ConnectivityManager {
* @hide * @hide
*/ */
@RequiresPermission(anyOf = { @RequiresPermission(anyOf = {
android.Manifest.permission.NETWORK_AIRPLANE_MODE,
android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_SETUP_WIZARD,
android.Manifest.permission.NETWORK_STACK}) android.Manifest.permission.NETWORK_STACK})
@@ -3303,7 +3303,6 @@ public class ConnectivityManager {
android.Manifest.permission.NETWORK_FACTORY}) android.Manifest.permission.NETWORK_FACTORY})
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp, public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) { NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) {
try { try {
return mService.registerNetworkAgent(messenger, ni, lp, nc, score, config, providerId); return mService.registerNetworkAgent(messenger, ni, lp, nc, score, config, providerId);
} catch (RemoteException e) { } catch (RemoteException e) {

View File

@@ -27,7 +27,7 @@ import java.lang.annotation.RetentionPolicy;
* @hide * @hide
*/ */
@SystemApi @SystemApi
public class InvalidPacketException extends Exception { public final class InvalidPacketException extends Exception {
private final int mError; private final int mError;
// Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS. // Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS.

View File

@@ -517,7 +517,7 @@ public class Network implements Parcelable {
} }
/** @hide */ /** @hide */
public void writeToProto(ProtoOutputStream proto, long fieldId) { public void dumpDebug(ProtoOutputStream proto, long fieldId) {
final long token = proto.start(fieldId); final long token = proto.start(fieldId);
proto.write(NetworkProto.NET_ID, netId); proto.write(NetworkProto.NET_ID, netId);
proto.end(token); proto.end(token);

View File

@@ -1843,7 +1843,7 @@ public final class NetworkCapabilities implements Parcelable {
} }
/** @hide */ /** @hide */
public void writeToProto(@NonNull ProtoOutputStream proto, long fieldId) { public void dumpDebug(@NonNull ProtoOutputStream proto, long fieldId) {
final long token = proto.start(fieldId); final long token = proto.start(fieldId);
for (int transport : getTransportTypes()) { for (int transport : getTransportTypes()) {
@@ -2137,7 +2137,7 @@ public final class NetworkCapabilities implements Parcelable {
*/ */
@SystemApi @SystemApi
@TestApi @TestApi
public static class Builder { public static final class Builder {
private final NetworkCapabilities mCaps; private final NetworkCapabilities mCaps;
/** /**

View File

@@ -542,13 +542,13 @@ public class NetworkRequest implements Parcelable {
} }
/** @hide */ /** @hide */
public void writeToProto(ProtoOutputStream proto, long fieldId) { public void dumpDebug(ProtoOutputStream proto, long fieldId) {
final long token = proto.start(fieldId); final long token = proto.start(fieldId);
proto.write(NetworkRequestProto.TYPE, typeToProtoEnum(type)); proto.write(NetworkRequestProto.TYPE, typeToProtoEnum(type));
proto.write(NetworkRequestProto.REQUEST_ID, requestId); proto.write(NetworkRequestProto.REQUEST_ID, requestId);
proto.write(NetworkRequestProto.LEGACY_TYPE, legacyType); proto.write(NetworkRequestProto.LEGACY_TYPE, legacyType);
networkCapabilities.writeToProto(proto, NetworkRequestProto.NETWORK_CAPABILITIES); networkCapabilities.dumpDebug(proto, NetworkRequestProto.NETWORK_CAPABILITIES);
proto.end(token); proto.end(token);
} }

View File

@@ -2160,6 +2160,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
} }
private void enforceAirplaneModePermission() {
enforceAnyPermissionOf(
android.Manifest.permission.NETWORK_AIRPLANE_MODE,
android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD,
android.Manifest.permission.NETWORK_STACK,
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
}
private boolean checkNetworkStackPermission() { private boolean checkNetworkStackPermission() {
return checkAnyPermissionOf( return checkAnyPermissionOf(
android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_STACK,
@@ -5075,7 +5084,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override @Override
public void setAirplaneMode(boolean enable) { public void setAirplaneMode(boolean enable) {
enforceNetworkStackSettingsOrSetup(); enforceAirplaneModePermission();
final long ident = Binder.clearCallingIdentity(); final long ident = Binder.clearCallingIdentity();
try { try {
final ContentResolver cr = mContext.getContentResolver(); final ContentResolver cr = mContext.getContentResolver();

View File

@@ -19,7 +19,10 @@ package android.net;
import static com.android.testutils.ParcelUtils.assertParcelSane; import static com.android.testutils.ParcelUtils.assertParcelSane;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import android.net.wifi.WifiNetworkSpecifier;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
@@ -32,6 +35,7 @@ import org.junit.Test;
@SmallTest @SmallTest
public class TelephonyNetworkSpecifierTest { public class TelephonyNetworkSpecifierTest {
private static final int TEST_SUBID = 5; private static final int TEST_SUBID = 5;
private static final String TEST_SSID = "Test123";
/** /**
* Validate that IllegalArgumentException will be thrown if build TelephonyNetworkSpecifier * Validate that IllegalArgumentException will be thrown if build TelephonyNetworkSpecifier
@@ -79,4 +83,31 @@ public class TelephonyNetworkSpecifierTest {
.build(); .build();
assertParcelSane(specifier, 1 /* fieldCount */); assertParcelSane(specifier, 1 /* fieldCount */);
} }
/**
* Validate the behavior of method canBeSatisfiedBy().
*/
@Test
public void testCanBeSatisfiedBy() {
final TelephonyNetworkSpecifier tns1 = new TelephonyNetworkSpecifier.Builder()
.setSubscriptionId(TEST_SUBID)
.build();
final TelephonyNetworkSpecifier tns2 = new TelephonyNetworkSpecifier.Builder()
.setSubscriptionId(TEST_SUBID)
.build();
final WifiNetworkSpecifier wns = new WifiNetworkSpecifier.Builder()
.setSsid(TEST_SSID)
.build();
final MatchAllNetworkSpecifier mans = new MatchAllNetworkSpecifier();
// Test equality
assertEquals(tns1, tns2);
assertTrue(tns1.canBeSatisfiedBy(tns1));
assertTrue(tns1.canBeSatisfiedBy(tns2));
// Test other edge cases.
assertFalse(tns1.canBeSatisfiedBy(null));
assertFalse(tns1.canBeSatisfiedBy(wns));
assertTrue(tns1.canBeSatisfiedBy(mans));
}
} }

View File

@@ -56,7 +56,6 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageList;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
@@ -72,6 +71,7 @@ import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.runner.AndroidJUnit4;
import com.android.server.LocalServices; import com.android.server.LocalServices;
import com.android.server.pm.PackageList;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;