summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2017-01-30 16:44:19 -0800
committerSvetoslav Ganov <svetoslavganov@google.com>2017-01-30 16:44:22 -0800
commitd69460e6dd4b4dcbd8fe3e8b71bac916f0106faf (patch)
tree7f21da7b7b4e9d25b59f4a066959b2ec713ee757
parent443380ff35b047d5cb873ce49a82e52eff32f769 (diff)
downloadandroid_packages_apps_PackageInstaller-d69460e6dd4b4dcbd8fe3e8b71bac916f0106faf.tar.gz
android_packages_apps_PackageInstaller-d69460e6dd4b4dcbd8fe3e8b71bac916f0106faf.tar.bz2
android_packages_apps_PackageInstaller-d69460e6dd4b4dcbd8fe3e8b71bac916f0106faf.zip
Add instant cookie APIs - PackageInstaller
This change adds APIs for instant apps to store cookie data that is presisted across instant installs and acorss the upgrade from an instant to a standard app. Standard apps can use the cookie APIs but when they are uninstalled the cookie is also deleted. The cookies are kept longer than the instant apps as they are much smaller - 16KB by default. We can change the cookie size via a system setting i.e. after we ship we can increase size if needed. We also add internal APIs to surface information about installed and uninstalled instant apps which should be used for showing them in the UI. For this puporse we store the icon, permissions, and label of unisntalled apps. If the app is re-installed we drop this meta-data but keep the cookie around. Test: CTS tests pass; hiddent APIs tested manually Change-Id: I6e6c1784035fb52556b96dc0228eb9df35cb5dad
-rw-r--r--AndroidManifest.xml2
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java2
-rw-r--r--src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java2
-rw-r--r--src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java2
-rw-r--r--src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java2
5 files changed, 6 insertions, 4 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 014928dc..2206177c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -24,6 +24,8 @@
<uses-permission android:name="com.google.android.permission.INSTALL_WEARABLE_PACKAGES" />
+ <uses-permission android:name="android.permission.ACCESS_INSTANT_APPS" />
+
<application android:label="@string/app_name"
android:allowBackup="false"
android:theme="@style/DialogWhenLarge"
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
index f7124653..ebe198fb 100644
--- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
@@ -195,7 +195,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
mPackageInfo = packageInfo;
mAppSupportsRuntimePermissions = packageInfo.applicationInfo
.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1;
- mIsEphemeralApp = packageInfo.applicationInfo.isEphemeralApp();
+ mIsEphemeralApp = packageInfo.applicationInfo.isInstantApp();
mAppOps = context.getSystemService(AppOpsManager.class);
mActivityManager = context.getSystemService(ActivityManager.class);
mDeclaringPackage = declaringPackage;
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
index 179d441a..ee6884d8 100644
--- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
@@ -382,7 +382,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity
return PERMISSION_DENIED;
}
if ((pInfo.protectionLevel & PermissionInfo.PROTECTION_FLAG_EPHEMERAL) == 0
- && callingPackageInfo.applicationInfo.isEphemeralApp()) {
+ && callingPackageInfo.applicationInfo.isInstantApp()) {
return PERMISSION_DENIED;
}
} catch (NameNotFoundException e) {
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java
index 745c83a3..ba9e47a2 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java
@@ -149,7 +149,7 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader {
continue;
}
- if (appInfo.isEphemeralApp()
+ if (appInfo.isInstantApp()
&& (perm.protectionLevel & PermissionInfo.PROTECTION_FLAG_EPHEMERAL)
== 0) {
continue;
diff --git a/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java
index 5e7b68f2..f6df40f0 100644
--- a/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java
@@ -155,7 +155,7 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader {
|| (perm.flags & PermissionInfo.FLAG_REMOVED) != 0) {
continue;
}
- if (appInfo.isEphemeralApp()
+ if (appInfo.isInstantApp()
&& (perm.protectionLevel & PermissionInfo.PROTECTION_FLAG_EPHEMERAL) == 0) {
continue;
}