diff --git a/services/core/java/com/android/server/slice/SlicePermissionManager.java b/services/core/java/com/android/server/slice/SlicePermissionManager.java
index 343d2e3..27578a0 100644
--- a/services/core/java/com/android/server/slice/SlicePermissionManager.java
+++ b/services/core/java/com/android/server/slice/SlicePermissionManager.java
@@ -16,11 +16,13 @@
 
 import android.content.ContentProvider;
 import android.content.Context;
+import android.content.pm.parsing.FrameworkParsingPackageUtils;
 import android.net.Uri;
 import android.os.Environment;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.text.TextUtils;
 import android.text.format.DateUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -410,6 +412,7 @@
         public PkgUser(String pkg, int userId) {
             mPkg = pkg;
             mUserId = userId;
+            enforceValidPackage();
         }
 
         public PkgUser(String pkgUserStr) throws IllegalArgumentException {
@@ -420,6 +423,17 @@
             } catch (Exception e) {
                 throw new IllegalArgumentException(e);
             }
+            enforceValidPackage();
+        }
+
+        private void enforceValidPackage() {
+            String error = FrameworkParsingPackageUtils.validateName(
+                    mPkg,
+                    false /* requireSeparator */,
+                    true /* requireFilename */);
+            if (!TextUtils.isEmpty(error)) {
+                throw new IllegalArgumentException((error));
+            }
         }
 
         public String getPkg() {
