Merge "Introduce new App Ops permission for 3rd-party InCallService" am: 9666e05985

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1484359

Change-Id: I51f66b5bbe5c7af178541d6a86dfaec02a0c5973
This commit is contained in:
Shuo Qian
2020-11-10 04:08:46 +00:00
committed by Automerger Merge Worker
8 changed files with 32 additions and 1 deletions

View File

@@ -96,6 +96,7 @@ package android {
field public static final String LOCATION_HARDWARE = "android.permission.LOCATION_HARDWARE";
field public static final String MANAGE_DOCUMENTS = "android.permission.MANAGE_DOCUMENTS";
field public static final String MANAGE_EXTERNAL_STORAGE = "android.permission.MANAGE_EXTERNAL_STORAGE";
field public static final String MANAGE_ONGOING_CALLS = "android.permission.MANAGE_ONGOING_CALLS";
field public static final String MANAGE_OWN_CALLS = "android.permission.MANAGE_OWN_CALLS";
field public static final String MASTER_CLEAR = "android.permission.MASTER_CLEAR";
field public static final String MEDIA_CONTENT_CONTROL = "android.permission.MEDIA_CONTENT_CONTROL";

View File

@@ -393,6 +393,7 @@ package android.app {
field public static final String OPSTR_LOADER_USAGE_STATS = "android:loader_usage_stats";
field public static final String OPSTR_MANAGE_EXTERNAL_STORAGE = "android:manage_external_storage";
field public static final String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
field public static final String OPSTR_MANAGE_ONGOING_CALLS = "android:manage_ongoing_calls";
field public static final String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
field public static final String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
field public static final String OPSTR_PLAY_AUDIO = "android:play_audio";

View File

@@ -96,6 +96,7 @@ package android {
field public static final String LOCATION_HARDWARE = "android.permission.LOCATION_HARDWARE";
field public static final String MANAGE_DOCUMENTS = "android.permission.MANAGE_DOCUMENTS";
field public static final String MANAGE_EXTERNAL_STORAGE = "android.permission.MANAGE_EXTERNAL_STORAGE";
field public static final String MANAGE_ONGOING_CALLS = "android.permission.MANAGE_ONGOING_CALLS";
field public static final String MANAGE_OWN_CALLS = "android.permission.MANAGE_OWN_CALLS";
field public static final String MASTER_CLEAR = "android.permission.MASTER_CLEAR";
field public static final String MEDIA_CONTENT_CONTROL = "android.permission.MEDIA_CONTENT_CONTROL";

View File

@@ -393,6 +393,7 @@ package android.app {
field public static final String OPSTR_LOADER_USAGE_STATS = "android:loader_usage_stats";
field public static final String OPSTR_MANAGE_EXTERNAL_STORAGE = "android:manage_external_storage";
field public static final String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
field public static final String OPSTR_MANAGE_ONGOING_CALLS = "android:manage_ongoing_calls";
field public static final String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
field public static final String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
field public static final String OPSTR_PLAY_AUDIO = "android:play_audio";

View File

@@ -192,6 +192,7 @@ package android.app {
field public static final String KEY_BG_STATE_SETTLE_TIME = "bg_state_settle_time";
field public static final String KEY_FG_SERVICE_STATE_SETTLE_TIME = "fg_service_state_settle_time";
field public static final String KEY_TOP_STATE_SETTLE_TIME = "top_state_settle_time";
field public static final String OPSTR_MANAGE_ONGOING_CALLS = "android:manage_ongoing_calls";
field public static final int OP_COARSE_LOCATION = 0; // 0x0
field public static final int OP_RECORD_AUDIO = 27; // 0x1b
field public static final int OP_START_FOREGROUND = 76; // 0x4c

View File

@@ -846,6 +846,8 @@ public class AppOpsManager {
@UnsupportedAppUsage
public static final int OP_SEND_SMS = AppProtoEnums.APP_OP_SEND_SMS;
/** @hide */
public static final int OP_MANAGE_ONGOING_CALLS = AppProtoEnums.APP_OP_MANAGE_ONGOING_CALLS;
/** @hide */
@UnsupportedAppUsage
public static final int OP_READ_ICC_SMS = AppProtoEnums.APP_OP_READ_ICC_SMS;
/** @hide */
@@ -1134,7 +1136,7 @@ public class AppOpsManager {
/** @hide */
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
public static final int _NUM_OP = 103;
public static final int _NUM_OP = 104;
/** Access to coarse location information. */
public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
@@ -1445,6 +1447,15 @@ public class AppOpsManager {
@SystemApi
public static final String OPSTR_LOADER_USAGE_STATS = "android:loader_usage_stats";
/**
* Grants an app access to the {@link android.telecom.InCallService} API to see
* information about ongoing calls and to enable control of calls.
* @hide
*/
@SystemApi
@TestApi
public static final String OPSTR_MANAGE_ONGOING_CALLS = "android:manage_ongoing_calls";
/**
* AppOp granted to apps that we are started via {@code am instrument -e --no-isolated-storage}
*
@@ -1551,6 +1562,7 @@ public class AppOpsManager {
OP_MANAGE_EXTERNAL_STORAGE,
OP_INTERACT_ACROSS_PROFILES,
OP_LOADER_USAGE_STATS,
OP_MANAGE_ONGOING_CALLS,
};
/**
@@ -1665,6 +1677,7 @@ public class AppOpsManager {
OP_RESERVED_100, // OP_RESERVED_100
OP_RESERVED_101, // OP_RESERVED_101
OP_RESERVED_102, // OP_RESERVED_102
OP_MANAGE_ONGOING_CALLS, // MANAGE_ONGOING_CALLS
};
/**
@@ -1774,6 +1787,7 @@ public class AppOpsManager {
OPSTR_RESERVED_100,
OPSTR_RESERVED_101,
OPSTR_RESERVED_102,
OPSTR_MANAGE_ONGOING_CALLS,
};
/**
@@ -1884,6 +1898,7 @@ public class AppOpsManager {
"RESERVED_100",
"RESERVED_101",
"RESERVED_102",
"MANAGE_ONGOING_CALLS",
};
/**
@@ -1995,6 +2010,7 @@ public class AppOpsManager {
null, // OP_RESERVED_100
null, // OP_RESERVED_101
null, // OP_RESERVED_102
Manifest.permission.MANAGE_ONGOING_CALLS,
};
/**
@@ -2106,6 +2122,7 @@ public class AppOpsManager {
null, // OP_RESERVED_100
null, // OP_RESERVED_101
null, // OP_RESERVED_102
null, // MANAGE_ONGOING_CALLS
};
/**
@@ -2216,6 +2233,7 @@ public class AppOpsManager {
null, // OP_RESERVED_100
null, // OP_RESERVED_101
null, // OP_RESERVED_102
null, // MANAGE_ONGOING_CALLS
};
/**
@@ -2325,6 +2343,7 @@ public class AppOpsManager {
AppOpsManager.MODE_ERRORED, // OP_RESERVED_100
AppOpsManager.MODE_ERRORED, // OP_RESERVED_101
AppOpsManager.MODE_ERRORED, // OP_RESERVED_102
AppOpsManager.MODE_DEFAULT, // MANAGE_ONGOING_CALLS
};
/**
@@ -2438,6 +2457,7 @@ public class AppOpsManager {
false, // OP_RESERVED_100
false, // OP_RESERVED_101
false, // OP_RESERVED_102
true, // MANAGE_ONGOING_CALLS
};
/**

View File

@@ -210,4 +210,5 @@ enum AppOpEnum {
APP_OP_RESERVED_100 = 100;
APP_OP_RESERVED_101 = 101;
APP_OP_RESERVED_102 = 102;
APP_OP_MANAGE_ONGOING_CALLS = 103;
}

View File

@@ -2193,6 +2193,11 @@
<permission android:name="android.permission.BIND_INCALL_SERVICE"
android:protectionLevel="signature|privileged" />
<!-- Allows to query ongoing call details and manage ongoing calls
<p>Protection level: signature|appop -->
<permission android:name="android.permission.MANAGE_ONGOING_CALLS"
android:protectionLevel="signature|appop" />
<!-- Allows the app to request network scans from telephony.
<p>Not for use by third-party applications.
@SystemApi @hide-->