diff options
| author | 2020-01-21 20:39:02 -0800 | |
|---|---|---|
| committer | 2020-01-21 20:39:02 -0800 | |
| commit | 418b97e5dbce4f0d7024678fde85ceabc38924f6 (patch) | |
| tree | 1b1c22bfc0700b9aebde5b95d4c33bad034340d0 | |
| parent | 8db226275a343658520aad500deb58563b615ffb (diff) | |
| parent | b8dd5bcc23d6e0c217f20be941bdb2363367d277 (diff) | |
Merge "Add new appop for Platform VPNs"
am: b8dd5bcc23
Change-Id: Ia44f9491f3951e3f7dda2c03e5d33452bb2e94d3
| -rw-r--r-- | core/java/android/app/AppOpsManager.java | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 7d3cd28c22d6..6ff48eac6ca5 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -720,7 +720,18 @@ public class AppOpsManager { /** @hide Capture the device's display contents and/or audio */ @UnsupportedAppUsage public static final int OP_PROJECT_MEDIA = 46; - /** @hide Activate a VPN connection without user intervention. */ + + /** + * Start (without additional user intervention) a VPN connection, as used by {@link + * android.net.VpnService} along with as Platform VPN connections, as used by {@link + * android.net.VpnManager} + * + * <p>This appop is granted to apps that have already been given user consent to start + * VpnService based VPN connections. As this is a superset of OP_ACTIVATE_PLATFORM_VPN, this + * appop also allows the starting of Platform VPNs. + * + * @hide + */ @UnsupportedAppUsage public static final int OP_ACTIVATE_VPN = 47; /** @hide Access the WallpaperManagerAPI to write wallpapers. */ @@ -840,10 +851,21 @@ public class AppOpsManager { public static final int OP_READ_DEVICE_IDENTIFIERS = 89; /** @hide Read location metadata from media */ public static final int OP_ACCESS_MEDIA_LOCATION = 90; + /** + * Start (without additional user intervention) a Platform VPN connection, as used by {@link + * android.net.VpnManager} + * + * <p>This appop is granted to apps that have already been given user consent to start Platform + * VPN connections. This appop is insufficient to start VpnService based VPNs (but the opposite + * is true). + * + * @hide + */ + public static final int OP_ACTIVATE_PLATFORM_VPN = 91; /** @hide */ @UnsupportedAppUsage - public static final int _NUM_OP = 91; + public static final int _NUM_OP = 92; /** Access to coarse location information. */ public static final String OPSTR_COARSE_LOCATION = "android:coarse_location"; @@ -1122,6 +1144,8 @@ public class AppOpsManager { public static final String OPSTR_ACCESS_ACCESSIBILITY = "android:access_accessibility"; /** @hide Read device identifiers */ public static final String OPSTR_READ_DEVICE_IDENTIFIERS = "android:read_device_identifiers"; + /** @hide Start Platform VPN without user intervention */ + public static final String OPSTR_ACTIVATE_PLATFORM_VPN = "android:activate_platform_vpn"; // Warning: If an permission is added here it also has to be added to // com.android.packageinstaller.permission.utils.EventLogger @@ -1285,6 +1309,7 @@ public class AppOpsManager { OP_ACCESS_ACCESSIBILITY, // ACCESS_ACCESSIBILITY OP_READ_DEVICE_IDENTIFIERS, // READ_DEVICE_IDENTIFIERS OP_ACCESS_MEDIA_LOCATION, // ACCESS_MEDIA_LOCATION + OP_ACTIVATE_PLATFORM_VPN, // ACTIVATE_PLATFORM_VPN }; /** @@ -1382,6 +1407,7 @@ public class AppOpsManager { OPSTR_ACCESS_ACCESSIBILITY, OPSTR_READ_DEVICE_IDENTIFIERS, OPSTR_ACCESS_MEDIA_LOCATION, + OPSTR_ACTIVATE_PLATFORM_VPN, }; /** @@ -1480,6 +1506,7 @@ public class AppOpsManager { "ACCESS_ACCESSIBILITY", "READ_DEVICE_IDENTIFIERS", "ACCESS_MEDIA_LOCATION", + "ACTIVATE_PLATFORM_VPN" }; /** @@ -1579,6 +1606,7 @@ public class AppOpsManager { null, // no permission for OP_ACCESS_ACCESSIBILITY null, // no direct permission for OP_READ_DEVICE_IDENTIFIERS Manifest.permission.ACCESS_MEDIA_LOCATION, + null, // no permission for OP_ACTIVATE_PLATFORM_VPN }; /** @@ -1678,6 +1706,7 @@ public class AppOpsManager { null, // ACCESS_ACCESSIBILITY null, // READ_DEVICE_IDENTIFIERS null, // ACCESS_MEDIA_LOCATION + null, // ACTIVATE_PLATFORM_VPN }; /** @@ -1776,6 +1805,7 @@ public class AppOpsManager { false, // ACCESS_ACCESSIBILITY false, // READ_DEVICE_IDENTIFIERS false, // ACCESS_MEDIA_LOCATION + false, // ACTIVATE_PLATFORM_VPN }; /** @@ -1873,6 +1903,7 @@ public class AppOpsManager { AppOpsManager.MODE_ALLOWED, // ACCESS_ACCESSIBILITY AppOpsManager.MODE_ERRORED, // READ_DEVICE_IDENTIFIERS AppOpsManager.MODE_ALLOWED, // ALLOW_MEDIA_LOCATION + AppOpsManager.MODE_IGNORED, // ACTIVATE_PLATFORM_VPN }; /** @@ -1974,6 +2005,7 @@ public class AppOpsManager { false, // ACCESS_ACCESSIBILITY false, // READ_DEVICE_IDENTIFIERS false, // ACCESS_MEDIA_LOCATION + false, // ACTIVATE_PLATFORM_VPN }; /** |