diff options
Diffstat (limited to 'services/java/com/android/server')
5 files changed, 30 insertions, 6 deletions
diff --git a/services/java/com/android/server/BootReceiver.java b/services/java/com/android/server/BootReceiver.java index 7e1de5a..235c662 100644 --- a/services/java/com/android/server/BootReceiver.java +++ b/services/java/com/android/server/BootReceiver.java @@ -20,11 +20,14 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.IPackageManager; import android.os.Build; import android.os.DropBoxManager; import android.os.FileObserver; import android.os.FileUtils; import android.os.RecoverySystem; +import android.os.RemoteException; +import android.os.ServiceManager; import android.os.SystemProperties; import android.provider.Downloads; import android.util.Slog; @@ -69,7 +72,15 @@ public class BootReceiver extends BroadcastReceiver { Slog.e(TAG, "Can't log boot events", e); } try { - removeOldUpdatePackages(context); + boolean onlyCore = false; + try { + onlyCore = IPackageManager.Stub.asInterface(ServiceManager.getService( + "package")).isOnlyCoreApps(); + } catch (RemoteException e) { + } + if (!onlyCore) { + removeOldUpdatePackages(context); + } } catch (Exception e) { Slog.e(TAG, "Can't remove old update packages", e); } diff --git a/services/java/com/android/server/EntropyMixer.java b/services/java/com/android/server/EntropyMixer.java index b63a70e..4632374 100644 --- a/services/java/com/android/server/EntropyMixer.java +++ b/services/java/com/android/server/EntropyMixer.java @@ -17,6 +17,7 @@ package com.android.server; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -97,8 +98,10 @@ public class EntropyMixer extends Binder { private void loadInitialEntropy() { try { RandomBlock.fromFile(entropyFile).toFile(randomDevice, false); + } catch (FileNotFoundException e) { + Slog.w(TAG, "No existing entropy file -- first boot?"); } catch (IOException e) { - Slog.w(TAG, "unable to load initial entropy (first boot?)", e); + Slog.w(TAG, "Failure loading existing entropy file", e); } } @@ -106,7 +109,7 @@ public class EntropyMixer extends Binder { try { RandomBlock.fromFile(randomDevice).toFile(entropyFile, true); } catch (IOException e) { - Slog.w(TAG, "unable to write entropy", e); + Slog.w(TAG, "Unable to write entropy", e); } } diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java index 82dbf54..21a1956 100644 --- a/services/java/com/android/server/WallpaperManagerService.java +++ b/services/java/com/android/server/WallpaperManagerService.java @@ -1096,6 +1096,8 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } } while (type != XmlPullParser.END_DOCUMENT); success = true; + } catch (FileNotFoundException e) { + Slog.w(TAG, "no current wallpaper -- first boot?"); } catch (NullPointerException e) { Slog.w(TAG, "failed parsing " + file + " " + e); } catch (NumberFormatException e) { diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 78d2565..fd649a1 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -1020,7 +1020,8 @@ public class PackageManagerService extends IPackageManager.Stub { readPermissions(); - mRestoredSettings = mSettings.readLPw(sUserManager.getUsers(false)); + mRestoredSettings = mSettings.readLPw(sUserManager.getUsers(false), + mSdkVersion, mOnlyCore); long startTime = SystemClock.uptimeMillis(); EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_SYSTEM_SCAN_START, @@ -1320,6 +1321,10 @@ public class PackageManagerService extends IPackageManager.Stub { return !mRestoredSettings; } + public boolean isOnlyCoreApps() { + return mOnlyCore; + } + private String getRequiredVerifierLPr() { final Intent verification = new Intent(Intent.ACTION_PACKAGE_NEEDS_VERIFICATION); final List<ResolveInfo> receivers = queryIntentReceivers(verification, PACKAGE_MIME_TYPE, diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java index 94494ae..06f11bc 100644 --- a/services/java/com/android/server/pm/Settings.java +++ b/services/java/com/android/server/pm/Settings.java @@ -1556,7 +1556,7 @@ final class Settings { } } - boolean readLPw(List<UserInfo> users) { + boolean readLPw(List<UserInfo> users, int sdkVersion, boolean onlyCore) { FileInputStream str = null; if (mBackupSettingsFilename.exists()) { try { @@ -1586,7 +1586,10 @@ final class Settings { mReadMessages.append("No settings file found\n"); PackageManagerService.reportSettingsProblem(Log.INFO, "No settings file; creating initial state"); - readDefaultPreferredAppsLPw(0); + if (!onlyCore) { + readDefaultPreferredAppsLPw(0); + } + mInternalSdkPlatform = mExternalSdkPlatform = sdkVersion; return false; } str = new FileInputStream(mSettingsFilename); |