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) {
|
private void dispatchRequestPermissionsResult(int requestCode, Intent data) {
|
||||||
String[] permissions = data.getStringArrayExtra(
|
// If the package installer crashed we may have not data - best effort.
|
||||||
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES);
|
String[] permissions = (data != null) ? data.getStringArrayExtra(
|
||||||
final int[] grantResults = data.getIntArrayExtra(
|
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES) : new String[0];
|
||||||
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS);
|
final int[] grantResults = (data != null) ? data.getIntArrayExtra(
|
||||||
|
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS) : new int[0];
|
||||||
onRequestPermissionsResult(requestCode, permissions, grantResults);
|
onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dispatchRequestPermissionsResultToFragment(int requestCode, Intent data,
|
private void dispatchRequestPermissionsResultToFragment(int requestCode, Intent data,
|
||||||
Fragment fragement) {
|
Fragment fragment) {
|
||||||
String[] permissions = data.getStringArrayExtra(
|
// If the package installer crashed we may have not data - best effort.
|
||||||
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES);
|
String[] permissions = (data != null) ? data.getStringArrayExtra(
|
||||||
final int[] grantResults = data.getIntArrayExtra(
|
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES) : new String[0];
|
||||||
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS);
|
final int[] grantResults = (data != null) ? data.getIntArrayExtra(
|
||||||
fragement.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS) : new int[0];
|
||||||
|
fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
class HostCallbacks extends FragmentHostCallback<Activity> {
|
class HostCallbacks extends FragmentHostCallback<Activity> {
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ final class DefaultPermissionGrantPolicy {
|
|||||||
for (int i = 0; i < installerCount; i++) {
|
for (int i = 0; i < installerCount; i++) {
|
||||||
PackageParser.Package installPackage = installerPackages.get(i);
|
PackageParser.Package installPackage = installerPackages.get(i);
|
||||||
grantInstallPermissionsLPw(installPackage, INSTALLER_PERMISSIONS, userId);
|
grantInstallPermissionsLPw(installPackage, INSTALLER_PERMISSIONS, userId);
|
||||||
grantRuntimePermissionsLPw(installPackage, STORAGE_PERMISSIONS, userId);
|
grantRuntimePermissionsLPw(installPackage, STORAGE_PERMISSIONS, true, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verifiers
|
// Verifiers
|
||||||
@@ -614,6 +614,12 @@ final class DefaultPermissionGrantPolicy {
|
|||||||
|
|
||||||
private void grantRuntimePermissionsLPw(PackageParser.Package pkg, Set<String> permissions,
|
private void grantRuntimePermissionsLPw(PackageParser.Package pkg, Set<String> permissions,
|
||||||
int userId) {
|
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;
|
List<String> requestedPermissions = pkg.requestedPermissions;
|
||||||
|
|
||||||
if (pkg.isUpdatedSystemApp()) {
|
if (pkg.isUpdatedSystemApp()) {
|
||||||
@@ -638,6 +644,12 @@ final class DefaultPermissionGrantPolicy {
|
|||||||
Log.i(TAG, "Granted " + permission + " to default handler "
|
Log.i(TAG, "Granted " + permission + " to default handler "
|
||||||
+ pkg.packageName);
|
+ 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