Allow app downgrades

only system apps can do this

Change-Id: If0947f13f5c447f9396690bfda3ad40b07fbbb6b
diff --git a/api/system-current.txt b/api/system-current.txt
index 8e5b99c..cb0c60f 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -9929,6 +9929,7 @@
     method public void setAppLabel(java.lang.CharSequence);
     method public void setAppPackageName(java.lang.String);
     method public void setGrantedRuntimePermissions(java.lang.String[]);
+    method public void setInstallFlagsDowngrade();
     method public void setInstallLocation(int);
     method public void setOriginatingUid(int);
     method public void setOriginatingUri(android.net.Uri);
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index ec536e0..684a7d8 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -1052,6 +1052,12 @@
         }
 
         /** {@hide} */
+        @SystemApi
+        public void setInstallFlagsDowngrade() {
+            installFlags |= PackageManager.INSTALL_ALLOW_DOWNGRADE;
+        }
+
+        /** {@hide} */
         public void setInstallFlagsExternal() {
             installFlags |= PackageManager.INSTALL_EXTERNAL;
             installFlags &= ~PackageManager.INSTALL_INTERNAL;