diff --git a/cmds/keystore/keystore.c b/cmds/keystore/keystore.c index afa64f8c9d12d..e34053be2c512 100644 --- a/cmds/keystore/keystore.c +++ b/cmds/keystore/keystore.c @@ -493,6 +493,7 @@ static struct user { {AID_VPN, AID_SYSTEM, GET}, {AID_WIFI, AID_SYSTEM, GET}, {AID_ROOT, AID_SYSTEM, GET}, + {AID_KEYCHAIN, AID_SYSTEM, TEST | GET | SAW}, {~0, ~0, TEST | GET | INSERT | DELETE | EXIST | SAW}, }; diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index c8cb1dee20f1b..7151ac262d642 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -91,6 +91,12 @@ public class Process { */ public static final int SDCARD_RW_GID = 1015; + /** + * Defines the UID for the KeyChain service. + * @hide + */ + public static final int KEYCHAIN_UID = 1020; + /** * Defines the UID/GID for the NFC service process. * @hide diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 669e060a1540b..a9d49b45c47ee 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -153,6 +153,7 @@ public class PackageManagerService extends IPackageManager.Stub { private static final int RADIO_UID = Process.PHONE_UID; private static final int LOG_UID = Process.LOG_UID; private static final int NFC_UID = Process.NFC_UID; + private static final int KEYCHAIN_UID = Process.KEYCHAIN_UID; static final int FIRST_APPLICATION_UID = Process.FIRST_APPLICATION_UID; static final int MAX_APPLICATION_UIDS = 1000; @@ -751,6 +752,10 @@ public class PackageManagerService extends IPackageManager.Stub { MULTIPLE_APPLICATION_UIDS ? NFC_UID : FIRST_APPLICATION_UID, ApplicationInfo.FLAG_SYSTEM); + mSettings.addSharedUserLPw("android.uid.keychain", + MULTIPLE_APPLICATION_UIDS + ? KEYCHAIN_UID : FIRST_APPLICATION_UID, + ApplicationInfo.FLAG_SYSTEM); String separateProcesses = SystemProperties.get("debug.separate_processes"); if (separateProcesses != null && separateProcesses.length() > 0) {