Merge "Unbreak testStartUsingNetworkFeature_enableHipri failure" am: 0b3d643758 am: d53c48616f
Change-Id: Ifedc9c8825550bc5ec5c32c46d0cd0f48d016b5e
This commit is contained in:
@@ -63,6 +63,7 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.net.CaptivePortal;
|
import android.net.CaptivePortal;
|
||||||
@@ -5405,12 +5406,25 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkUnsupportedStartingFrom(int version, String callingPackageName) {
|
||||||
|
final PackageManager pm = mContext.getPackageManager();
|
||||||
|
final int userId = UserHandle.getCallingUserId();
|
||||||
|
try {
|
||||||
|
final int callingVersion = pm.getApplicationInfoAsUser(
|
||||||
|
callingPackageName, 0 /* flags */, userId).targetSdkVersion;
|
||||||
|
if (callingVersion < version) return false;
|
||||||
|
} catch (PackageManager.NameNotFoundException e) { }
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NetworkRequest requestNetwork(NetworkCapabilities networkCapabilities,
|
public NetworkRequest requestNetwork(NetworkCapabilities networkCapabilities,
|
||||||
Messenger messenger, int timeoutMs, IBinder binder, int legacyType,
|
Messenger messenger, int timeoutMs, IBinder binder, int legacyType,
|
||||||
@NonNull String callingPackageName) {
|
@NonNull String callingPackageName) {
|
||||||
if (legacyType != TYPE_NONE && !checkNetworkStackPermission()) {
|
if (legacyType != TYPE_NONE && !checkNetworkStackPermission()) {
|
||||||
throw new SecurityException("Insufficient permissions to specify legacy type");
|
if (checkUnsupportedStartingFrom(Build.VERSION_CODES.M, callingPackageName)) {
|
||||||
|
throw new SecurityException("Insufficient permissions to specify legacy type");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
final int callingUid = Binder.getCallingUid();
|
final int callingUid = Binder.getCallingUid();
|
||||||
final NetworkRequest.Type type = (networkCapabilities == null)
|
final NetworkRequest.Type type = (networkCapabilities == null)
|
||||||
|
|||||||
Reference in New Issue
Block a user