From 8fb015cd7fe8d21bf3d8822df023df9ba48b71bf Mon Sep 17 00:00:00 2001 From: Jay Thomas Sullivan Date: Mon, 10 Apr 2023 16:37:59 -0700 Subject: [PATCH] [Safety Labels] Filter out auto, wear and tv This feature should never be enabled on these form factors. Bug: 277601279 Test: atest CtsPermission3TestCases:SafetyLabelChangesJobServiceTest Test: atest CtsPermission3TestCases:AppDataSharingUpdatesTest Change-Id: Ifa72aac87e6de65dbc8fa26bc8c31fcdc547df13 --- .../java/com/android/server/pm/BroadcastHelper.java | 11 ++++++++--- .../com/android/server/pm/InstallPackageHelper.java | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/pm/BroadcastHelper.java b/services/core/java/com/android/server/pm/BroadcastHelper.java index c1171fabea7bc..2704f56b539de 100644 --- a/services/core/java/com/android/server/pm/BroadcastHelper.java +++ b/services/core/java/com/android/server/pm/BroadcastHelper.java @@ -38,6 +38,7 @@ import android.content.Context; import android.content.IIntentReceiver; import android.content.Intent; import android.content.pm.PackageInstaller; +import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.os.PowerExemptionManager; @@ -337,7 +338,7 @@ public final class BroadcastHelper { broadcastAllowlist, null /* filterExtrasForReceiver */, null); // Send to PermissionController for all new users, even if it may not be running for some // users - if (isPrivacySafetyLabelChangeNotificationsEnabled()) { + if (isPrivacySafetyLabelChangeNotificationsEnabled(mContext)) { sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, 0, mContext.getPackageManager().getPermissionControllerPackageName(), @@ -389,9 +390,13 @@ public final class BroadcastHelper { } /** Returns whether the Safety Label Change notification, a privacy feature, is enabled. */ - public static boolean isPrivacySafetyLabelChangeNotificationsEnabled() { + public static boolean isPrivacySafetyLabelChangeNotificationsEnabled(Context context) { + PackageManager packageManager = context.getPackageManager(); return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, - SAFETY_LABEL_CHANGE_NOTIFICATIONS_ENABLED, false); + SAFETY_LABEL_CHANGE_NOTIFICATIONS_ENABLED, false) + && !packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) + && !packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK) + && !packageManager.hasSystemFeature(PackageManager.FEATURE_WATCH); } @NonNull diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 596e9b9646434..e10af6389209f 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -2930,7 +2930,7 @@ final class InstallPackageHelper { } // Send to PermissionController for all update users, even if it may not be running // for some users - if (BroadcastHelper.isPrivacySafetyLabelChangeNotificationsEnabled()) { + if (BroadcastHelper.isPrivacySafetyLabelChangeNotificationsEnabled(mContext)) { mPm.sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, 0 /*flags*/, mPm.mRequiredPermissionControllerPackage, null /*finishedReceiver*/,