Retool the backup process to use a new 'BackupAgent' class
Backups will be handled by launching the application in a special
mode under which no activities or services will be started, only
the BackupAgent subclass named in the app's android:backupAgent
manifest property. This takes the place of the BackupService class
used earlier during development.
In the cases of *full* backup or restore, an application that does
not supply its own BackupAgent will be launched in a restricted
manner; in particular, it will be using the default Application
class rather than any manifest-declared one. This ensures that the
app is not running any code that may try to manipulate its data
while the backup system reads/writes its data set.
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 36f7dfb..b105aaa 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -972,6 +972,13 @@
android:description="@string/permdesc_batteryStats"
android:protectionLevel="normal" />
+ <!-- Allows an application to control the backup and restore process
+ @hide pending API council -->
+ <permission android:name="android.permission.BACKUP"
+ android:label="@string/permlab_backup"
+ android:description="@string/permdesc_backup"
+ android:protectionLevel="signature" />
+
<!-- Allows an application to tell the AppWidget service which application
can access AppWidget's data. The normal user flow is that a user
picks an AppWidget to go into a particular host, thereby giving that