Backup Wifi supplicant data.
WifiService requests a backup when it writes wifi configuration to disk.
Backup the wifi supplicant file when settings provider runs backup.
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
index 1736a491..16be668 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
@@ -95,7 +95,7 @@
data.writeEntityHeader(KEY_SYNC, syncProviders.length);
data.writeEntityData(syncProviders, syncProviders.length);
- //TODO: Permissions problem : backupFile(FILE_WIFI_SUPPLICANT, data);
+ backupFile(FILE_WIFI_SUPPLICANT, data);
}
@Override
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index f5e2e3d..beadc5f 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -49,6 +49,7 @@
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.provider.Settings;
import android.util.Log;
import android.text.TextUtils;
@@ -64,6 +65,7 @@
import java.io.PrintWriter;
import com.android.internal.app.IBatteryStats;
+import android.backup.IBackupManager;
import com.android.server.am.BatteryStatsService;
/**
@@ -1436,6 +1438,16 @@
}
}
}
+ // Inform the backup manager about a data change
+ IBackupManager ibm = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+ if (ibm != null) {
+ try {
+ ibm.dataChanged("com.android.providers.settings");
+ } catch (Exception e) {
+ // Try again later
+ }
+ }
return result;
}