Don't adjust ABI if PackageSetting#pkg is null.

If means the package hasn't been scanned yet, and we
will adjust the ABI during the scan of the last package
in the shared user group.

NOTE: This needs some more cleaning up, which will be
done along with the remaining TODO in this function.

Change-Id: Ie332806b64e22ab4a4856e1ccd064ff6a01616bf
This commit is contained in:
Narayan Kamath
2014-04-30 13:33:38 +01:00
parent 36c492cf1a
commit ab45d1d6d2

View File

@@ -5633,12 +5633,13 @@ public class PackageManagerService extends IPackageManager.Stub {
for (PackageSetting ps : packagesForUser) {
if (ps.requiredCpuAbiString == null) {
ps.requiredCpuAbiString = requirer.requiredCpuAbiString;
ps.pkg.applicationInfo.requiredCpuAbi = requirer.requiredCpuAbiString;
Slog.i(TAG, "Adjusting ABI for : " + ps.pkg.packageName + " to " + ps.requiredCpuAbiString);
if (doDexOpt) {
performDexOptLI(ps.pkg, forceDexOpt, deferDexOpt, true);
mInstaller.rmdex(ps.codePathString, getPreferredInstructionSet());
if (ps.pkg != null) {
ps.pkg.applicationInfo.requiredCpuAbi = requirer.requiredCpuAbiString;
Slog.i(TAG, "Adjusting ABI for : " + ps.name + " to " + ps.requiredCpuAbiString);
if (doDexOpt) {
performDexOptLI(ps.pkg, forceDexOpt, deferDexOpt, true);
mInstaller.rmdex(ps.codePathString, getPreferredInstructionSet());
}
}
}
}