summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-07-14 11:02:16 -0700
committerSvet Ganov <svetoslavganov@google.com>2015-07-15 17:33:58 -0700
commit3cddb89cda318ab4571a323e3f89d4e0bd9936fe (patch)
tree5d5439d04516c6c23be7acde06c27eab933b1ff7 /src
parentb9b20815315d35ed2d10edcbbae4913da36f4107 (diff)
downloadandroid_packages_apps_PackageInstaller-3cddb89cda318ab4571a323e3f89d4e0bd9936fe.tar.gz
android_packages_apps_PackageInstaller-3cddb89cda318ab4571a323e3f89d4e0bd9936fe.tar.bz2
android_packages_apps_PackageInstaller-3cddb89cda318ab4571a323e3f89d4e0bd9936fe.zip
Add APIs for verifier to grant at install and revoke permissions
bug:22231699 Change-Id: I679bb4a1f99eaa7d3984a4e6db6a04dca4574a18
Diffstat (limited to 'src')
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java76
1 files changed, 38 insertions, 38 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java
index e9b50315..d0d6947e 100644
--- a/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -126,53 +126,59 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
}
}
});
-
+ // If the app supports runtime permissions the new permissions will
+ // be requested at runtime, hence we do not show them at install.
+ boolean supportsRuntimePermissions = mPkgInfo.applicationInfo.targetSdkVersion
+ >= Build.VERSION_CODES.MNC;
boolean permVisible = false;
mScrollView = null;
mOkCanInstall = false;
int msg = 0;
- if (mPkgInfo != null) {
- AppSecurityPermissions perms = new AppSecurityPermissions(this, mPkgInfo);
- final int N = perms.getPermissionCount(AppSecurityPermissions.WHICH_ALL);
- if (mAppInfo != null) {
- msg = (mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0
- ? R.string.install_confirm_question_update_system
- : R.string.install_confirm_question_update;
- mScrollView = new CaffeinatedScrollView(this);
- mScrollView.setFillViewport(true);
- boolean newPermissionsFound =
+
+ AppSecurityPermissions perms = new AppSecurityPermissions(this, mPkgInfo);
+ final int N = perms.getPermissionCount(AppSecurityPermissions.WHICH_ALL);
+ if (mAppInfo != null) {
+ msg = (mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0
+ ? R.string.install_confirm_question_update_system
+ : R.string.install_confirm_question_update;
+ mScrollView = new CaffeinatedScrollView(this);
+ mScrollView.setFillViewport(true);
+ boolean newPermissionsFound = false;
+ if (!supportsRuntimePermissions) {
+ newPermissionsFound =
(perms.getPermissionCount(AppSecurityPermissions.WHICH_NEW) > 0);
mInstallFlowAnalytics.setNewPermissionsFound(newPermissionsFound);
if (newPermissionsFound) {
permVisible = true;
mScrollView.addView(perms.getPermissionsView(
AppSecurityPermissions.WHICH_NEW));
- } else {
- LayoutInflater inflater = (LayoutInflater)getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
- TextView label = (TextView)inflater.inflate(R.layout.label, null);
- label.setText(R.string.no_new_perms);
- mScrollView.addView(label);
}
- adapter.addTab(tabHost.newTabSpec(TAB_ID_NEW).setIndicator(
- getText(R.string.newPerms)), mScrollView);
- } else {
- findViewById(R.id.tabscontainer).setVisibility(View.GONE);
- findViewById(R.id.divider).setVisibility(View.VISIBLE);
}
- if (N > 0) {
- permVisible = true;
+ if (!supportsRuntimePermissions && !newPermissionsFound) {
LayoutInflater inflater = (LayoutInflater)getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
- View root = inflater.inflate(R.layout.permissions_list, null);
- if (mScrollView == null) {
- mScrollView = (CaffeinatedScrollView)root.findViewById(R.id.scrollview);
- }
- ((ViewGroup)root.findViewById(R.id.permission_list)).addView(
- perms.getPermissionsView(AppSecurityPermissions.WHICH_ALL));
- adapter.addTab(tabHost.newTabSpec(TAB_ID_ALL).setIndicator(
- getText(R.string.allPerms)), root);
+ TextView label = (TextView)inflater.inflate(R.layout.label, null);
+ label.setText(R.string.no_new_perms);
+ mScrollView.addView(label);
}
+ adapter.addTab(tabHost.newTabSpec(TAB_ID_NEW).setIndicator(
+ getText(R.string.newPerms)), mScrollView);
+ } else {
+ findViewById(R.id.tabscontainer).setVisibility(View.GONE);
+ findViewById(R.id.divider).setVisibility(View.VISIBLE);
+ }
+ if (!supportsRuntimePermissions && N > 0) {
+ permVisible = true;
+ LayoutInflater inflater = (LayoutInflater)getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+ View root = inflater.inflate(R.layout.permissions_list, null);
+ if (mScrollView == null) {
+ mScrollView = (CaffeinatedScrollView)root.findViewById(R.id.scrollview);
+ }
+ ((ViewGroup)root.findViewById(R.id.permission_list)).addView(
+ perms.getPermissionsView(AppSecurityPermissions.WHICH_ALL));
+ adapter.addTab(tabHost.newTabSpec(TAB_ID_ALL).setIndicator(
+ getText(R.string.allPerms)), root);
}
mInstallFlowAnalytics.setPermissionsDisplayed(permVisible);
if (!permVisible) {
@@ -392,12 +398,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
}
private void initiateInstall() {
- if (mPkgInfo.applicationInfo
- .targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1) {
- startInstall();
- return;
- }
-
String pkgName = mPkgInfo.packageName;
// Check if there is already a package on the device with this name
// but it has been renamed to something else.