Add new getAppMetadata and setAppMetadata APIs

To support Android Safety Labels, PM will store App metadata that can
be optionally provided by installers.

The PackageInstaller.Session.setAppMetadata API can be used to add app
metadata as a PersistableBundle. Due to the size of this data, it will
be written directly to file on the server via a fd.

The PackageInstaller.Session.getAppMetadata API can be used to fetch
any app metadata that may have been set.

The PackageManager.getAppMetadata system API can be used to fetch this
data as a PersistableBundle for installed apps.

Bug: 252811917
Test: atest CtsPackageInstallTestCases:android.packageinstaller.install.cts.InstallAppMetadataTest
CTS-Coverage-Bug: 262054444
Change-Id: I883e40dc4bc018875be3af096a395abe7d5ba445
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 47794b8..dc30ea0 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -786,6 +786,9 @@
     <!-- Permission required for CTS test - ApplicationExemptionsTests -->
     <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS" />
 
+    <!-- Permission required for CTS test - CtsPackageInstallTestCases-->
+    <uses-permission android:name="android.permission.GET_APP_METADATA" />
+
     <application android:label="@string/app_label"
                 android:theme="@android:style/Theme.DeviceDefault.DayNight"
                 android:defaultToDeviceProtectedStorage="true"