From 8cb7e21c692d6682023004cf6e8e06c97f1f74ba Mon Sep 17 00:00:00 2001 From: Bagus Maulana Date: Thu, 6 Apr 2023 16:16:35 +0100 Subject: [PATCH] Disable SoftAP config backup and restore on Wear SoftAP config restore has caused various bugs during Wear OOBE (e.g. b/276411509, b/269598544). SoftAP is used for WiFi hotspot, which no Wear OEM supports AFAIK. Bug: 276411509 Test: manually flashed to watch, 'Restored soft ap backup data' not logged Change-Id: I884e71d0353d6f7eb3bb66c2aec4734aa40f5def (cherry picked from commit a5a9fd330d65035c3ad4ee706ae8abaeabbd7533) --- .../providers/settings/SettingsBackupAgent.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index 11154d165109f..e42769855f0a1 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -246,9 +246,13 @@ public class SettingsBackupAgent extends BackupAgentHelper { stateChecksums[STATE_LOCK_SETTINGS] = writeIfChanged(stateChecksums[STATE_LOCK_SETTINGS], KEY_LOCK_SETTINGS, lockSettingsData, data); - stateChecksums[STATE_SOFTAP_CONFIG] = + if (getBaseContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) { + stateChecksums[STATE_SOFTAP_CONFIG] = 0; + } else { + stateChecksums[STATE_SOFTAP_CONFIG] = writeIfChanged(stateChecksums[STATE_SOFTAP_CONFIG], KEY_SOFTAP_CONFIG, - softApConfigData, data); + softApConfigData, data); + } stateChecksums[STATE_NETWORK_POLICIES] = writeIfChanged(stateChecksums[STATE_NETWORK_POLICIES], KEY_NETWORK_POLICIES, netPoliciesData, data); @@ -364,6 +368,10 @@ public class SettingsBackupAgent extends BackupAgentHelper { break; case KEY_SOFTAP_CONFIG : + if (getBaseContext().getPackageManager() + .hasSystemFeature(PackageManager.FEATURE_WATCH)) { + break; + } byte[] softapData = new byte[size]; data.readEntityData(softapData, 0, size); restoreSoftApConfiguration(softapData); @@ -504,7 +512,9 @@ public class SettingsBackupAgent extends BackupAgentHelper { } } // softap config - if (version >= FULL_BACKUP_ADDED_SOFTAP_CONF) { + if (version >= FULL_BACKUP_ADDED_SOFTAP_CONF + && !getBaseContext().getPackageManager() + .hasSystemFeature(PackageManager.FEATURE_WATCH)) { nBytes = in.readInt(); if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of softap config data"); if (nBytes > buffer.length) buffer = new byte[nBytes];