am b802cd67: Merge "APK still has privileged flag after being moved from "/system/priv-app""
* commit 'b802cd6767c43a85645279a67bb41320058fdb60': APK still has privileged flag after being moved from "/system/priv-app"
This commit is contained in:
@@ -4225,6 +4225,14 @@ public class PackageManagerService extends IPackageManager.Stub {
|
|||||||
boolean updatedPkgBetter = false;
|
boolean updatedPkgBetter = false;
|
||||||
// First check if this is a system package that may involve an update
|
// First check if this is a system package that may involve an update
|
||||||
if (updatedPkg != null && (parseFlags&PackageParser.PARSE_IS_SYSTEM) != 0) {
|
if (updatedPkg != null && (parseFlags&PackageParser.PARSE_IS_SYSTEM) != 0) {
|
||||||
|
// If new package is not located in "/system/priv-app" (e.g. due to an OTA),
|
||||||
|
// it needs to drop FLAG_PRIVILEGED.
|
||||||
|
if (locationIsPrivileged(scanFile)) {
|
||||||
|
updatedPkg.pkgFlags |= ApplicationInfo.FLAG_PRIVILEGED;
|
||||||
|
} else {
|
||||||
|
updatedPkg.pkgFlags &= ~ApplicationInfo.FLAG_PRIVILEGED;
|
||||||
|
}
|
||||||
|
|
||||||
if (ps != null && !ps.codePath.equals(scanFile)) {
|
if (ps != null && !ps.codePath.equals(scanFile)) {
|
||||||
// The path has changed from what was last scanned... check the
|
// The path has changed from what was last scanned... check the
|
||||||
// version of the new path against what we have stored to determine
|
// version of the new path against what we have stored to determine
|
||||||
@@ -4244,12 +4252,6 @@ public class PackageManagerService extends IPackageManager.Stub {
|
|||||||
updatedPkg.codePathString = scanFile.toString();
|
updatedPkg.codePathString = scanFile.toString();
|
||||||
updatedPkg.resourcePath = scanFile;
|
updatedPkg.resourcePath = scanFile;
|
||||||
updatedPkg.resourcePathString = scanFile.toString();
|
updatedPkg.resourcePathString = scanFile.toString();
|
||||||
// This is the point at which we know that the system-disk APK
|
|
||||||
// for this package has moved during a reboot (e.g. due to an OTA),
|
|
||||||
// so we need to reevaluate it for privilege policy.
|
|
||||||
if (locationIsPrivileged(scanFile)) {
|
|
||||||
updatedPkg.pkgFlags |= ApplicationInfo.FLAG_PRIVILEGED;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
updatedPkg.pkg = pkg;
|
updatedPkg.pkg = pkg;
|
||||||
throw new PackageManagerException(INSTALL_FAILED_DUPLICATE_PACKAGE, null);
|
throw new PackageManagerException(INSTALL_FAILED_DUPLICATE_PACKAGE, null);
|
||||||
@@ -7105,7 +7107,9 @@ public class PackageManagerService extends IPackageManager.Stub {
|
|||||||
// If the original was granted this permission, we take
|
// If the original was granted this permission, we take
|
||||||
// that grant decision as read and propagate it to the
|
// that grant decision as read and propagate it to the
|
||||||
// update.
|
// update.
|
||||||
allowed = true;
|
if (sysPs.isPrivileged()) {
|
||||||
|
allowed = true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// The system apk may have been updated with an older
|
// The system apk may have been updated with an older
|
||||||
// version of the one on the data partition, but which
|
// version of the one on the data partition, but which
|
||||||
|
|||||||
Reference in New Issue
Block a user