Understand structure of Chrome User Profile data to Transfer to new PC/ OS & avoid Settings corruption Error?

I found a way to transfer without resetting. As you can guess, Chrome keeps around checksum/hash in the user profile.

I found the file is User Data\Default\Secure Preferences. This is a plain-text JSON file, so we can take a look of it. In this file there are this protection and super_mac, which stores the HMAC_SHA256 of the other objects. If verification fails, the reset is triggered. This feature is implemented in Chromium, so if you are interested you can read their source code.

The way I go is this:

  1. Make sure you backup your old profile before anything. Make sure your User Data\Default\Extensions still has all extension directories.
  2. Make sure you also sync everything you need to Google account. Note, even you do this, many local extension preferences are not synced (extension not support). That's why we need next steps.
  3. Create a new profile. Then sync up with Google account. This will download every extension to the new profile. This step is to get you a good new Secure Preferences file.
  4. Close Chrome. Find the Secure Preferences file from the new profile. Use it to replace the one in your old profile. Remove the new profile and replace with your old profile. Now you should have almost everything restored.
  5. There is chance that some of your extensions (their preferences are still intact) are missing. This is because the extension directory path is versioned, and in step 3 Chrome created different path. You need to rename those from the old profile to the new one. Do not tamper the Secure Preferences.

Good luck. I really hope Google change mind to allow user to transfer profile, since they can't guarantee that every extension will implement the preference sync.

For time being, this method works on Chrome 49.0.2623.75. Google may change the verification method in the future.


I have made several improvements upon Crend King's answer and found a method to transfer the user profile locally without the need to sync to a Google account and with no missing extensions.

I used these steps to migrate the Chromium 59.0.3071.115 build from https://chromium.woolyss.com from Windows 7 to Windows 10. However, the differences between Chrome and Chromium described on this page indicates that while the path to the user data directory will be different, the contents thereof are compatible and can even be used to migrate directly from Chrome to Chromium.

Some example paths here:

  • Chrome on Windows %APPDATA%/Local/Google/Chrome/User Data
  • Chromium on Windows %APPDATA%/Local/Chromium/User Data
  • Chromium on Linux $HOME/.config/chromium/user data

These steps will migrate the Default profile found at User Data/Default, but will also work for other profiles found at User Data/Profile 1, User Data/Profile 2, and so on.

  1. Backup your old profile and make sure your extensions are still under User Data/Default/Extensions. You will need to reinstall all your extensions from the Chrome web store and the contents of this directory will help you find which extensions you had if you no longer have access to your previous OS or you cannot remember all of them.

  2. Delete the existing Chromium/User Data directory and run Chromium to recreate it.

  3. Install all your extensions. The easiest way to do this is to look at the directories under User Data/Default/Extensions from your backup. For instance, if you had HTTPS Everywhere installed, there would be a directory User Data/Default/Extensions/gcbommkclmclpchllfjekcdonpmejbdp. Then the Chrome web store URL is https://chrome.google.com/webstore/detail/gcbommkclmclpchllfjekcdonpmejbdp.

  4. If you had Settings -> On startup -> Continue where you left off set previously, set it again.

  5. Close Chromium and delete everything under User Data/Default except Extensions and Secure Preferences. Then copy everything in from your backup under User Data/Default except Extensions and Secure Preferences.

The reason for retaining Extensions is that, as noted by Crend King, the extension directories are versioned. I found that the contents of these directories are verified and if the extension has updated since the backup was made, then Chromium will consider the extension to be corrupt and your settings will be clobbered upon repair.

These will be migrated for sure:

  • Bookmarks
  • History
  • Extensions and all extension settings/configs/local data
  • Download history
  • Most Chromium settings, including most items under Privacy and security, Content settings, and Downloads
  • Session tabs if you save them

Not migrated:

  • Settings under chrome://extensions/ such as whether a particular extension is enabled or allowed in incognito. I believe this is a part of Secure Preferences.

  • Profile name and icon which will default to Person 1 and the grey icon. This information as well as the list of available profiles is stored in Chromium/User Data/Local State and it does not seem hard to copy over the relevent parts.

Not tested:

  • Cookies
  • Passwords
  • Saved forms