From dcf4c6dc2629bef9e05fbc27f034304abd653d10 Mon Sep 17 00:00:00 2001 From: Ruchi Kandoi Date: Wed, 3 Jan 2018 16:14:57 -0800 Subject: [PATCH] Add UID and Service for Secure Element Application Bug: 64994044 Test: Boot; Check Service loaded. Merged-In: I2f48ff204acd29b1a9f6819910aba5f8f3762977 Change-Id: I2f48ff204acd29b1a9f6819910aba5f8f3762977 (cherry picked from commit dfaf4bdd1e7e12caf9bb69c8facc38e879861baf) --- api/system-current.txt | 1 + core/java/android/content/Context.java | 10 ++++++++++ core/java/android/os/Process.java | 6 ++++++ .../java/com/android/server/am/ActivityManagerService.java | 2 ++ .../core/java/com/android/server/pm/PackageManagerService.java | 3 +++ 5 files changed, 22 insertions(+) diff --git a/api/system-current.txt b/api/system-current.txt index 9e2b0a267f60..041c21324fb7 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 70087daf5192..2859326107b8 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -4062,6 +4062,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 9ad5ca41b474..5e6f5f5dad5b 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 2ffd6943d922..e944326c9f7e 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 f182c05cb76d..6a53e483b47c 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) { -- 2.11.0