I haven't found this posted anywhere so figured it might be useful to others as well.
When you reinstall Android it is set up as a new device with a new unique Android ID. This ID is often used by apps to identify the device - for example all my internet banking apps use it to register the device with the service. To avoid having to re-register after reinstall the ID can be changed to what it was previously.
The Android ID backup/restore function is included in Titanium Backup. However, the Settings Storage (com.android.providers.settings) doesn't seem to be backed by a traditional SQLite database in Android 6.0 Marshmallow - /data/data/com.android.providers.settings/databases/settings.db is empty (0 bytes) on my device. Therefore the Android ID cannot be restored/changed by the usual tools (including Titanium Backup).
I have found a way to query/update the settings database via adb though as follows:
Get current Android ID:
Normally, you would update the value as follows:
However, this wasn't working for me - I kept getting the same ID when querying after update. So, I tried removing the current record and re-inserting it with the new ID:
Which worked just fine 
When you reinstall Android it is set up as a new device with a new unique Android ID. This ID is often used by apps to identify the device - for example all my internet banking apps use it to register the device with the service. To avoid having to re-register after reinstall the ID can be changed to what it was previously.
The Android ID backup/restore function is included in Titanium Backup. However, the Settings Storage (com.android.providers.settings) doesn't seem to be backed by a traditional SQLite database in Android 6.0 Marshmallow - /data/data/com.android.providers.settings/databases/settings.db is empty (0 bytes) on my device. Therefore the Android ID cannot be restored/changed by the usual tools (including Titanium Backup).
I have found a way to query/update the settings database via adb though as follows:
Get current Android ID:
Code:
adb shell content query --uri content://settings/secure --where "name=\'android_id\'"
Code:
adb shell content update --uri content://settings/secure --bind value:s:<new_android_id> --where "name=\'android_id\'"
Code:
adb shell content delete --uri content://settings/secure --where "name=\'android_id\'"
adb shell content insert --uri content://settings/secure --bind name:s:android_id --bind value:s:<new_android_id>