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:
@@ -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> {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user