Loading core/java/android/app/admin/flags/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -55,3 +55,10 @@ flag { description: "Guards a bugfix that ends the credential input flow if the managed user has not stopped." bug: "293441361" } flag { name: "default_sms_personal_app_suspension_fix_enabled" namespace: "enterprise" description: "Exempt the default sms app of the context user for suspension when calling setPersonalAppsSuspended" bug: "309183330" } services/devicepolicy/java/com/android/server/devicepolicy/PersonalAppsSuspensionHelper.java +15 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.devicepolicy; import static android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_ALL_MASK; import static android.app.admin.flags.Flags.defaultSmsPersonalAppSuspensionFixEnabled; import android.accessibilityservice.AccessibilityServiceInfo; import android.annotation.Nullable; Loading @@ -42,6 +43,7 @@ import android.view.accessibility.IAccessibilityManager; import android.view.inputmethod.InputMethodInfo; import com.android.internal.R; import com.android.internal.telephony.SmsApplication; import com.android.server.inputmethod.InputMethodManagerInternal; import com.android.server.utils.Slogf; Loading Loading @@ -97,7 +99,7 @@ public final class PersonalAppsSuspensionHelper { result.removeAll(getSystemLauncherPackages()); result.removeAll(getAccessibilityServices()); result.removeAll(getInputMethodPackages()); result.remove(Telephony.Sms.getDefaultSmsPackage(mContext)); result.remove(getDefaultSmsPackage()); result.remove(getSettingsPackageName()); final String[] unsuspendablePackages = Loading Loading @@ -202,6 +204,17 @@ public final class PersonalAppsSuspensionHelper { return resolveInfos != null && !resolveInfos.isEmpty(); } private String getDefaultSmsPackage() { //TODO(b/319449037): Unflag the following change. if (defaultSmsPersonalAppSuspensionFixEnabled()) { return SmsApplication.getDefaultSmsApplicationAsUser( mContext, /*updateIfNeeded=*/ false, mContext.getUser()) .getPackageName(); } else { return Telephony.Sms.getDefaultSmsPackage(mContext); } } void dump(IndentingPrintWriter pw) { pw.println("PersonalAppsSuspensionHelper"); Loading @@ -212,7 +225,7 @@ public final class PersonalAppsSuspensionHelper { DevicePolicyManagerService.dumpApps(pw, "accessibility services", getAccessibilityServices()); DevicePolicyManagerService.dumpApps(pw, "input method packages", getInputMethodPackages()); pw.printf("SMS package: %s\n", Telephony.Sms.getDefaultSmsPackage(mContext)); pw.printf("SMS package: %s\n", getDefaultSmsPackage()); pw.printf("Settings package: %s\n", getSettingsPackageName()); DevicePolicyManagerService.dumpApps(pw, "Packages subject to suspension", getPersonalAppsForSuspension()); Loading Loading
core/java/android/app/admin/flags/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -55,3 +55,10 @@ flag { description: "Guards a bugfix that ends the credential input flow if the managed user has not stopped." bug: "293441361" } flag { name: "default_sms_personal_app_suspension_fix_enabled" namespace: "enterprise" description: "Exempt the default sms app of the context user for suspension when calling setPersonalAppsSuspended" bug: "309183330" }
services/devicepolicy/java/com/android/server/devicepolicy/PersonalAppsSuspensionHelper.java +15 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.devicepolicy; import static android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_ALL_MASK; import static android.app.admin.flags.Flags.defaultSmsPersonalAppSuspensionFixEnabled; import android.accessibilityservice.AccessibilityServiceInfo; import android.annotation.Nullable; Loading @@ -42,6 +43,7 @@ import android.view.accessibility.IAccessibilityManager; import android.view.inputmethod.InputMethodInfo; import com.android.internal.R; import com.android.internal.telephony.SmsApplication; import com.android.server.inputmethod.InputMethodManagerInternal; import com.android.server.utils.Slogf; Loading Loading @@ -97,7 +99,7 @@ public final class PersonalAppsSuspensionHelper { result.removeAll(getSystemLauncherPackages()); result.removeAll(getAccessibilityServices()); result.removeAll(getInputMethodPackages()); result.remove(Telephony.Sms.getDefaultSmsPackage(mContext)); result.remove(getDefaultSmsPackage()); result.remove(getSettingsPackageName()); final String[] unsuspendablePackages = Loading Loading @@ -202,6 +204,17 @@ public final class PersonalAppsSuspensionHelper { return resolveInfos != null && !resolveInfos.isEmpty(); } private String getDefaultSmsPackage() { //TODO(b/319449037): Unflag the following change. if (defaultSmsPersonalAppSuspensionFixEnabled()) { return SmsApplication.getDefaultSmsApplicationAsUser( mContext, /*updateIfNeeded=*/ false, mContext.getUser()) .getPackageName(); } else { return Telephony.Sms.getDefaultSmsPackage(mContext); } } void dump(IndentingPrintWriter pw) { pw.println("PersonalAppsSuspensionHelper"); Loading @@ -212,7 +225,7 @@ public final class PersonalAppsSuspensionHelper { DevicePolicyManagerService.dumpApps(pw, "accessibility services", getAccessibilityServices()); DevicePolicyManagerService.dumpApps(pw, "input method packages", getInputMethodPackages()); pw.printf("SMS package: %s\n", Telephony.Sms.getDefaultSmsPackage(mContext)); pw.printf("SMS package: %s\n", getDefaultSmsPackage()); pw.printf("Settings package: %s\n", getSettingsPackageName()); DevicePolicyManagerService.dumpApps(pw, "Packages subject to suspension", getPersonalAppsForSuspension()); Loading