diff --git a/res/values/config.xml b/res/values/config.xml
index 33eb4c7..47756ba 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -253,4 +253,10 @@
 
     <!--  Used for custom widgets  -->
     <array name="custom_widget_providers"/>
+
+
+    <!-- Skip "Install to private" long-press shortcut packages name -->
+    <string-array name="skip_private_profile_shortcut_packages" translatable="false">
+        <item>com.android.settings</item>
+    </string-array>
 </resources>
diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java
index 8463361..d4ab4ab 100644
--- a/src/com/android/launcher3/popup/SystemShortcut.java
+++ b/src/com/android/launcher3/popup/SystemShortcut.java
@@ -5,6 +5,7 @@
 import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SYSTEM_SHORTCUT_WIDGETS_TAP;
 
 import android.app.ActivityOptions;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Rect;
@@ -34,6 +35,7 @@
 import com.android.launcher3.views.ActivityContext;
 import com.android.launcher3.widget.WidgetsBottomSheet;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -236,13 +238,21 @@
                     return null;
                 }
                 // Do not show shortcut if an app is already installed to the space
-                ComponentKey targetKey =
-                        new ComponentKey(itemInfo.getTargetComponent(), privateProfileUser);
-                if (launcher.getAppsView().getAppsStore().getApp(targetKey) != null) {
+                ComponentName targetComponent = itemInfo.getTargetComponent();
+                if (launcher.getAppsView()
+                                .getAppsStore()
+                                .getApp(new ComponentKey(targetComponent, privateProfileUser))
+                        != null) {
                     return null;
                 }
 
-                // TODO(b/302666597): do not install app if it's in deny list (e.g. settings)
+                // Do not show shortcut for settings
+                String[] packagesToSkip =
+                        launcher.getResources()
+                                .getStringArray(R.array.skip_private_profile_shortcut_packages);
+                if (Arrays.asList(packagesToSkip).contains(targetComponent.getPackageName())) {
+                    return null;
+                }
 
                 return new InstallToPrivateProfile(
                         launcher, itemInfo, originalView, privateProfileUser);
