diff --git a/api/system-current.txt b/api/system-current.txt index 9e2b0a267f60b..041c21324fb7b 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -697,6 +697,7 @@ package android.content { field public static final java.lang.String NETWORK_SCORE_SERVICE = "network_score"; field public static final java.lang.String OEM_LOCK_SERVICE = "oem_lock"; field public static final java.lang.String PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block"; + field public static final java.lang.String SECURE_ELEMENT_SERVICE = "secure_element"; field public static final java.lang.String VR_SERVICE = "vrmanager"; field public static final java.lang.String WIFI_RTT_SERVICE = "rttmanager"; field public static final java.lang.String WIFI_SCANNING_SERVICE = "wifiscanner"; diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 70087daf51926..2859326107b81 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -4061,6 +4061,16 @@ public abstract class Context { */ public static final String TIME_ZONE_RULES_MANAGER_SERVICE = "timezone"; + /** + * Use with {@link #getSystemService} to retrieve a + * {@link android.se.omapi.ISecureElementService} + * for accessing the SecureElementService. + * + * @hide + */ + @SystemApi + public static final String SECURE_ELEMENT_SERVICE = "secure_element"; + /** * Determine whether the given permission is allowed for a particular * process and user ID running in the system. diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 9ad5ca41b4747..5e6f5f5dad5b4 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -151,6 +151,12 @@ public class Process { */ public static final int OTA_UPDATE_UID = 1061; + /** + * Defines the UID/GID for the Secure Element service process. + * @hide + */ + public static final int SE_UID = 1068; + /** {@hide} */ public static final int NOBODY_UID = 9999; diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 2ffd6943d922f..e944326c9f7e6 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -63,6 +63,7 @@ import static android.os.Process.ROOT_UID; import static android.os.Process.SCHED_FIFO; import static android.os.Process.SCHED_OTHER; import static android.os.Process.SCHED_RESET_ON_FORK; +import static android.os.Process.SE_UID; import static android.os.Process.SHELL_UID; import static android.os.Process.SIGNAL_QUIT; import static android.os.Process.SIGNAL_USR1; @@ -19258,6 +19259,7 @@ public class ActivityManagerService extends IActivityManager.Stub case PHONE_UID: case BLUETOOTH_UID: case NFC_UID: + case SE_UID: isCallerSystem = true; break; default: diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index f182c05cb76df..6a53e483b47c6 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -426,6 +426,7 @@ public class PackageManagerService extends IPackageManager.Stub private static final int NFC_UID = Process.NFC_UID; private static final int BLUETOOTH_UID = Process.BLUETOOTH_UID; private static final int SHELL_UID = Process.SHELL_UID; + private static final int SE_UID = Process.SE_UID; // Cap the size of permission trees that 3rd party apps can define private static final int MAX_PERMISSION_TREE_FOOTPRINT = 32768; // characters of text @@ -2436,6 +2437,8 @@ public class PackageManagerService extends IPackageManager.Stub ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED); mSettings.addSharedUserLPw("android.uid.shell", SHELL_UID, ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED); + mSettings.addSharedUserLPw("android.uid.se", SE_UID, + ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED); String separateProcesses = SystemProperties.get("debug.separate_processes"); if (separateProcesses != null && separateProcesses.length() > 0) {