From ec00eb93363ab5e0f4ee822cd698659e3b989dbe Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Wed, 20 Apr 2022 10:59:22 -0700 Subject: [PATCH] Fixes SELinux property for HSUM emulation: - Renames the property - Removes temporary try/catch Test: adb shell cmd user set-system-user-mode-emulation full # on HSUM device Fixes: 226643927 Change-Id: Iaba42fd56dce0d8d794ef129634df78f9599260f --- core/java/android/os/UserManager.java | 6 ++--- .../android/server/pm/UserManagerService.java | 23 +++++++------------ 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index bbbf879f5d9bd..343db1cb12f26 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -1577,7 +1577,7 @@ public class UserManager { * * @hide */ - public static final String DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY = + public static final String SYSTEM_USER_MODE_EMULATION_PROPERTY = "persist.debug.user_mode_emulation"; /** @hide */ @@ -2049,7 +2049,7 @@ public class UserManager { return realMode; } - final String emulatedMode = SystemProperties.get(DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY); + final String emulatedMode = SystemProperties.get(SYSTEM_USER_MODE_EMULATION_PROPERTY); switch (emulatedMode) { case SYSTEM_USER_MODE_EMULATION_FULL: Log.d(TAG, "isHeadlessSystemUserMode(): emulating as false"); @@ -2062,7 +2062,7 @@ public class UserManager { return realMode; default: Log.wtf(TAG, "isHeadlessSystemUserMode(): invalid value of property " - + DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY + " (" + emulatedMode + "); using" + + SYSTEM_USER_MODE_EMULATION_PROPERTY + " (" + emulatedMode + "); using" + " default value (headless=" + realMode + ")"); return realMode; } diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index f8de43d796028..ba7dee60d7e8f 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -2952,7 +2952,7 @@ public class UserManagerService extends IUserManager.Stub { } final String emulatedValue = SystemProperties - .get(UserManager.DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY); + .get(UserManager.SYSTEM_USER_MODE_EMULATION_PROPERTY); if (TextUtils.isEmpty(emulatedValue)) { return; } @@ -2970,7 +2970,7 @@ public class UserManagerService extends IUserManager.Stub { break; default: Slogf.wtf(LOG_TAG, "emulateSystemUserModeIfNeeded(): ignoring invalid valued of " - + "property %s: %s", UserManager.DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY, + + "property %s: %s", UserManager.SYSTEM_USER_MODE_EMULATION_PROPERTY, emulatedValue); return; } @@ -5796,20 +5796,13 @@ public class UserManagerService extends IUserManager.Stub { } Slogf.d(LOG_TAG, "Updating system property %s to %s", - UserManager.DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY, mode); + UserManager.SYSTEM_USER_MODE_EMULATION_PROPERTY, mode); - // TODO(b/203885212): temp try/catch until the selinux permission is granted - try { - SystemProperties.set(UserManager.DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY, mode); - pw.println("System user mode changed - please reboot (or restart Android runtime) " - + "to continue"); - pw.println("NOTICE: after restart, some apps might be uninstalled (and their data " - + "will be lost)"); - } catch (RuntimeException e) { - pw.printf("Failed to set property %s (%s). You might need to run " - + "'adb shell setenforce 0' and try again.\n", - UserManager.DEV_HEADLESS_SYSTEM_USER_MODE_PROPERTY, e); - } + SystemProperties.set(UserManager.SYSTEM_USER_MODE_EMULATION_PROPERTY, mode); + pw.println("System user mode changed - please reboot (or restart Android runtime) " + + "to continue"); + pw.println("NOTICE: after restart, some apps might be uninstalled (and their data " + + "will be lost)"); return 0; }