diff --git a/core/java/android/content/pm/ContainerEncryptionParams.java b/core/java/android/content/pm/ContainerEncryptionParams.java
index 88112a7..18dcb56 100644
--- a/core/java/android/content/pm/ContainerEncryptionParams.java
+++ b/core/java/android/content/pm/ContainerEncryptionParams.java
@@ -16,6 +16,7 @@
 
 package android.content.pm;
 
+import android.annotation.PrivateApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
@@ -33,6 +34,7 @@
  *
  * @hide
  */
+@PrivateApi
 public class ContainerEncryptionParams implements Parcelable {
     protected static final String TAG = "ContainerEncryptionParams";
 
diff --git a/core/java/android/content/pm/ManifestDigest.java b/core/java/android/content/pm/ManifestDigest.java
index 409b5ae..943534f 100644
--- a/core/java/android/content/pm/ManifestDigest.java
+++ b/core/java/android/content/pm/ManifestDigest.java
@@ -16,6 +16,7 @@
 
 package android.content.pm;
 
+import android.annotation.PrivateApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.util.Slog;
@@ -36,6 +37,7 @@
  *
  * @hide
  */
+@PrivateApi
 public class ManifestDigest implements Parcelable {
     private static final String TAG = "ManifestDigest";
 
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index eb2c11f..1bc1449 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -17,6 +17,7 @@
 package android.content.pm;
 
 import android.annotation.IntDef;
+import android.annotation.PrivateApi;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
 import android.app.PackageInstallObserver;
@@ -369,6 +370,7 @@
      * {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)} on success.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_SUCCEEDED = 1;
 
     /**
@@ -377,6 +379,7 @@
      * already installed.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_ALREADY_EXISTS = -1;
 
     /**
@@ -385,6 +388,7 @@
      * file is invalid.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_INVALID_APK = -2;
 
     /**
@@ -393,6 +397,7 @@
      * is invalid.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_INVALID_URI = -3;
 
     /**
@@ -401,6 +406,7 @@
      * service found that the device didn't have enough storage space to install the app.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_INSUFFICIENT_STORAGE = -4;
 
     /**
@@ -409,6 +415,7 @@
      * package is already installed with the same name.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_DUPLICATE_PACKAGE = -5;
 
     /**
@@ -417,6 +424,7 @@
      * the requested shared user does not exist.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_NO_SHARED_USER = -6;
 
     /**
@@ -426,6 +434,7 @@
      * than the new package (and the old package's data was not removed).
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_UPDATE_INCOMPATIBLE = -7;
 
     /**
@@ -435,6 +444,7 @@
      * device and does not have matching signature.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_SHARED_USER_INCOMPATIBLE = -8;
 
     /**
@@ -443,6 +453,7 @@
      * the new package uses a shared library that is not available.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_MISSING_SHARED_LIBRARY = -9;
 
     /**
@@ -451,6 +462,7 @@
      * the new package uses a shared library that is not available.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_REPLACE_COULDNT_DELETE = -10;
 
     /**
@@ -460,6 +472,7 @@
      * either because there was not enough storage or the validation failed.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_DEXOPT = -11;
 
     /**
@@ -469,6 +482,7 @@
      * that required by the package.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_OLDER_SDK = -12;
 
     /**
@@ -478,6 +492,7 @@
      * same authority as a provider already installed in the system.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_CONFLICTING_PROVIDER = -13;
 
     /**
@@ -487,6 +502,7 @@
      * that required by the package.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_NEWER_SDK = -14;
 
     /**
@@ -497,6 +513,7 @@
      * flag.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_TEST_ONLY = -15;
 
     /**
@@ -506,6 +523,7 @@
      * compatible with the the device's CPU_ABI.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_CPU_ABI_INCOMPATIBLE = -16;
 
     /**
@@ -514,6 +532,7 @@
      * the new package uses a feature that is not available.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_MISSING_FEATURE = -17;
 
     // ------ Errors related to sdcard
@@ -523,6 +542,7 @@
      * a secure container mount point couldn't be accessed on external media.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_CONTAINER_ERROR = -18;
 
     /**
@@ -532,6 +552,7 @@
      * location.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_INVALID_INSTALL_LOCATION = -19;
 
     /**
@@ -541,6 +562,7 @@
      * location because the media is not available.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_MEDIA_UNAVAILABLE = -20;
 
     /**
@@ -549,6 +571,7 @@
      * the new package couldn't be installed because the verification timed out.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_VERIFICATION_TIMEOUT = -21;
 
     /**
@@ -557,6 +580,7 @@
      * the new package couldn't be installed because the verification did not succeed.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_VERIFICATION_FAILURE = -22;
 
     /**
@@ -565,6 +589,7 @@
      * the package changed from what the calling program expected.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_PACKAGE_CHANGED = -23;
 
     /**
@@ -590,6 +615,7 @@
      * '.apk' extension.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_NOT_APK = -100;
 
     /**
@@ -598,6 +624,7 @@
      * if the parser was unable to retrieve the AndroidManifest.xml file.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_BAD_MANIFEST = -101;
 
     /**
@@ -606,6 +633,7 @@
      * if the parser encountered an unexpected exception.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION = -102;
 
     /**
@@ -614,6 +642,7 @@
      * if the parser did not find any certificates in the .apk.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_NO_CERTIFICATES = -103;
 
     /**
@@ -622,6 +651,7 @@
      * if the parser found inconsistent certificates on the files in the .apk.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES = -104;
 
     /**
@@ -631,6 +661,7 @@
      * files in the .apk.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING = -105;
 
     /**
@@ -639,6 +670,7 @@
      * if the parser encountered a bad or missing package name in the manifest.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME = -106;
 
     /**
@@ -647,6 +679,7 @@
      * if the parser encountered a bad shared user id name in the manifest.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID = -107;
 
     /**
@@ -655,6 +688,7 @@
      * if the parser encountered some structural problem in the manifest.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_MANIFEST_MALFORMED = -108;
 
     /**
@@ -664,6 +698,7 @@
      * in the manifest.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_PARSE_FAILED_MANIFEST_EMPTY = -109;
 
     /**
@@ -672,6 +707,7 @@
      * if the system failed to install the package because of system issues.
      * @hide
      */
+    @PrivateApi
     public static final int INSTALL_FAILED_INTERNAL_ERROR = -110;
 
     /**
@@ -2863,6 +2899,7 @@
      * instead.  This method will continue to be supported but the older observer interface
      * will not get additional failure details.
      */
+    @PrivateApi
     public abstract void installPackage(
             Uri packageURI, IPackageInstallObserver observer, int flags,
             String installerPackageName);
@@ -2897,6 +2934,7 @@
      * continue to be supported but the older observer interface will not get additional failure
      * details.
      */
+    @PrivateApi
     public abstract void installPackageWithVerification(Uri packageURI,
             IPackageInstallObserver observer, int flags, String installerPackageName,
             Uri verificationURI, ManifestDigest manifestDigest,
@@ -3025,6 +3063,7 @@
      * on the system for other users, also install it for the calling user.
      * @hide
      */
+    @PrivateApi
     public abstract int installExistingPackage(String packageName)
             throws NameNotFoundException;
 
@@ -3114,6 +3153,7 @@
      *
      * @hide
      */
+    @PrivateApi
     public abstract void deletePackage(
             String packageName, IPackageDeleteObserver observer, int flags);
 
@@ -3182,6 +3222,7 @@
      *
      * @hide
      */
+    @PrivateApi
     public abstract void freeStorageAndNotify(long freeStorageSize, IPackageDataObserver observer);
 
     /**
