原因:编译固件版本,ro.build.fingerprint未随机变更,OTA升级之后,PackageManagerService未能正常判断mIsUpgrade状态,也就不能清理OTA之前的data/system/package_cache缓存,apk版本信息未能正常更新。
一、PackageManagerService.java中清理上一次缓存的逻辑:
if (mIsUpgrade && !mOnlyCore) {
Slog.i(TAG, "Build fingerprint changed; clearing code caches");
for (int i = 0; i < packageSettings.size(); i++) {
final PackageSetting ps = packageSettings.valueAt(i);
if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.volumeUuid)) {
// No apps are running this early, so no need to freeze

645

被折叠的 条评论
为什么被折叠?



