summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Doug Zongker <dougz@android.com> 2010-04-05 15:16:12 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2010-04-05 15:16:12 -0700
commit4c59ca8bdb02bf0ca0bb090ecb39d94e260ab2f0 (patch)
tree3297fb2eb638c3ae9ba760b172cf079ae4c278af
parent21390f08138801f9e008917c0c0149839a80d002 (diff)
parent944ff0b788bf1702bad38d21cc2b83a9985dd112 (diff)
Merge "remove OTA packages from the old (pre-froyo) updater" into froyo
-rw-r--r--services/java/com/android/server/BootReceiver.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/services/java/com/android/server/BootReceiver.java b/services/java/com/android/server/BootReceiver.java
index 15aad0e510dc..f40975185fe8 100644
--- a/services/java/com/android/server/BootReceiver.java
+++ b/services/java/com/android/server/BootReceiver.java
@@ -21,6 +21,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.net.Downloads;
import android.os.Build;
import android.os.DropBoxManager;
import android.os.FileObserver;
@@ -45,6 +46,14 @@ public class BootReceiver extends BroadcastReceiver {
private static final File TOMBSTONE_DIR = new File("/data/tombstones");
+ // The pre-froyo package and class of the system updater, which
+ // ran in the system process. We need to remove its packages here
+ // in order to clean up after a pre-froyo-to-froyo update.
+ private static final String OLD_UPDATER_PACKAGE =
+ "com.google.android.systemupdater";
+ private static final String OLD_UPDATER_CLASS =
+ "com.google.android.systemupdater.SystemUpdateReceiver";
+
// Keep a reference to the observer so the finalizer doesn't disable it.
private static FileObserver sTombstoneObserver = null;
@@ -70,10 +79,21 @@ public class BootReceiver extends BroadcastReceiver {
} catch (Exception e) {
Slog.e(TAG, "Can't log boot events", e);
}
+ try {
+ removeOldUpdatePackages(context);
+ } catch (Exception e) {
+ Slog.e(TAG, "Can't remove old update packages", e);
+ }
+
}
}.start();
}
+ private void removeOldUpdatePackages(Context ctx) {
+ Downloads.ByUri.removeAllDownloadsByPackage(
+ ctx, OLD_UPDATER_PACKAGE, OLD_UPDATER_CLASS);
+ }
+
private void logBootEvents(Context ctx) throws IOException {
final DropBoxManager db = (DropBoxManager) ctx.getSystemService(Context.DROPBOX_SERVICE);
final SharedPreferences prefs = ctx.getSharedPreferences("log_files", Context.MODE_PRIVATE);