am 4a23ac45: Merge "Installer is a part of the system with unrevocable permissions" into mnc-dev

* commit '4a23ac45895ec65e2357b2e52726229dbead9bb1':
  Installer is a part of the system with unrevocable permissions
This commit is contained in:
Svet Ganov
2015-06-30 19:32:49 +00:00
committed by Android Git Automerger
2 changed files with 25 additions and 11 deletions

View File

@@ -6473,20 +6473,22 @@ public class Activity extends ContextThemeWrapper
}
private void dispatchRequestPermissionsResult(int requestCode, Intent data) {
String[] permissions = data.getStringArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES);
final int[] grantResults = data.getIntArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS);
// If the package installer crashed we may have not data - best effort.
String[] permissions = (data != null) ? data.getStringArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES) : new String[0];
final int[] grantResults = (data != null) ? data.getIntArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS) : new int[0];
onRequestPermissionsResult(requestCode, permissions, grantResults);
}
private void dispatchRequestPermissionsResultToFragment(int requestCode, Intent data,
Fragment fragement) {
String[] permissions = data.getStringArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES);
final int[] grantResults = data.getIntArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS);
fragement.onRequestPermissionsResult(requestCode, permissions, grantResults);
Fragment fragment) {
// If the package installer crashed we may have not data - best effort.
String[] permissions = (data != null) ? data.getStringArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES) : new String[0];
final int[] grantResults = (data != null) ? data.getIntArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS) : new int[0];
fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
class HostCallbacks extends FragmentHostCallback<Activity> {

View File

@@ -247,7 +247,7 @@ final class DefaultPermissionGrantPolicy {
for (int i = 0; i < installerCount; i++) {
PackageParser.Package installPackage = installerPackages.get(i);
grantInstallPermissionsLPw(installPackage, INSTALLER_PERMISSIONS, userId);
grantRuntimePermissionsLPw(installPackage, STORAGE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(installPackage, STORAGE_PERMISSIONS, true, userId);
}
// Verifiers
@@ -614,6 +614,12 @@ final class DefaultPermissionGrantPolicy {
private void grantRuntimePermissionsLPw(PackageParser.Package pkg, Set<String> permissions,
int userId) {
grantRuntimePermissionsLPw(pkg, permissions, false, userId);
}
private void grantRuntimePermissionsLPw(PackageParser.Package pkg, Set<String> permissions,
boolean systemFixed, int userId) {
List<String> requestedPermissions = pkg.requestedPermissions;
if (pkg.isUpdatedSystemApp()) {
@@ -638,6 +644,12 @@ final class DefaultPermissionGrantPolicy {
Log.i(TAG, "Granted " + permission + " to default handler "
+ pkg.packageName);
}
if (systemFixed) {
mService.updatePermissionFlags(permission, pkg.packageName,
PackageManager.FLAG_PERMISSION_SYSTEM_FIXED,
PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, userId);
}
}
}
}