[Upgrading, Modifying and Unlocking] tlc76:
Prerequisites:

- the phone should be connected to the computer via the USB cable provided in the commercial package;

- the Settings / Applications / Development / USB Debugging option should be enabled;

- the USB drivers for the S5690 phone should already be installed on the host computer.

Instructions:

0. download the S5690_unlock.zip file attached to this post;

1. unzip the S5690_unlock.zip archive in any place on your local hard drive;

2a. if you wish to UNLOCK the phone, execute the s5690_unlock.bat script as Administrator (right-click on the script file and select Run as Administrator);

2b. if you wish to RELOCK your phone, execute the s5690_relock.bat script as Administrator (right-click on the script file and select Run as Administrator);

3. follow the on-screen instructions and NEVER restart the phone by yourself.

WARNINGS:

- at the beginning the script waits for the sdcard to be mounted in your phone. If you have no sdcard at all, the script will wait forever! In this case you should disconnect the usb cable, turn off the phone, insert an already formatted microsd card, turn on the phone and finally reconnect the usb cable. The script will resume by itself when the card is detected;

- do not reboot the phone by yourself at any step! (neither in Recovery nor in standby); the script will do that automatically everytime it needs it;

- the ROOT.zip and UNROOT.zip files which are attached to the S5690_unlock.zip archive can be used ONLY on S5690/S5690L/S5690M phones. They won't work on other phone models;

- do not try to Relock a neverlocked phone, simply because the effects could be unpredictable (since there is no PLMN ID stored in the /dev/bml25 memory that would normally tell the phone on what network is it locked to);

- the scripts should also work on the S5690L and S5690M phone models. Please post some feedback here if you unlock/relock one of these models.

After the complete execution of the unlock/relock script, the tmp subdirectory will contain two files:

- bml25_before.bin -> backup of the original /dev/bml25 dump;

- bml25_unlocked.bin OR bml25_locked.bin -> dump of /dev/bml25 block device AFTER the unlock/relock operation.

What the script does:

1. installs root on the phone;

2. dumps the /dev/bml25 block device to a binary file;

3. changes the first two bytes of that file from 01 to 00 (for unlock) or viceversa (for relock);

4. writes back the binary file to the /dev/bml25 block device;

5. removes the root from the phone;

6. removes ROOT.zip and UNROOT.zip files from your sdcard.

If your phone is already rooted then skip the ROOT.zip installation step (from the Recovery menu) and just press any key in the script window to go to the next step.

After the execution of the script, the phone will be UNROOTED! If you want to keep the root, then you should either break the script (CTRL+C) when it reaches the INSTRUCTIONS FOR ROOT REMOVAL step or you should press any key in the script window without actually installing the UNROOT.zip from the Recovery menu.

There is no problem if you run the unlock script on an already unlocked phone or if you run the relock script on an already locked phone. In either of those cases, the phone will have the same status in the end as before running the script (either unlocked or locked). If you compare the bml25_before.bin and bml25_[un]locked.bin files you should have no differences.

I've already tested both unlock and relock scripts on several S5690 Xcovers and everything works OK.

UPDATES:

20130208 -> added support for the S5690R variant (Rogers Canada) - thanks to theshowman