Tanjay Unable to Update after Rolling Back to R1 Code

I ran across this issue awhile back.  I had a Tanjay running version 1.0.522.101.  I updated it to the R2 software, version 3.5.6907.0.  I then logged into the phone with a user homed on an R1 pool.  Because I had the R1 Update Server deployed, the phone rolled back to the R1 software, version 1.0.522.101.  After that, I was unable to get the phone to update to the newer version again.

I tried taking a look at the logs from the phone, but opening the log file in Notepad, just gets you the following:

What you need to do is use the Readlog tool to generate a readable version of the file.  From the MSDN article on Readlog:

Readlog (Readlog.exe) is a command-line tool that performs a conversion of the kernel tracker output, generated in CELog (.clg) format, into text (.txt) format.

After converting the file, you can now open it in Notepad:

At the bottom of the file is the following:

F i r m w a r e V e r s i o n : 1 . 2 3  

P l a t f o r m V e r s i o n : 1 . 0 . 5 2 2 . 1 0

L a s t U p d a t e : N / A

L a s t U p d a t e R e q u e s t : 0 4 / 2 4 / 2 0 0 9 1 0 : 3 9  

L a s t U p d a t e S t a t u s : ( 0 x 0 / 2 0 0 )  

A c t i v e R e g i o n : 2  

R e g i o n 1 I n f o : R e g i o n 1 : V e r : 3 . 5 . 6 9 0 7 . 0  

R e g i o n 2 I n f o : R e g i o n 1 : V e r : 1 . 0 . 5 2 2 . 1 0 1  

As you can see, both versions of the firmware are in memory, but Region 2 is the active region.  Unfortunately there's no easy way to switch between regions.  One workaround that I've used is to push out a newer QFE that updates the phone to a later version than what is in Region 1, but there may not always be a newer version available.

Another workaround that was proposed by Zsolt Milos, a Support Engineer in Germany, was to edit the following:

  1. In the rtcconfig database, open the MSFT_SIPDeviceUpdateRules table and select the instance that corresponds to the type of phone that you have.
  2. Edit the ApprovedVersion from 3.5.6907.0 to 3.5.6907.1
  3. Rename the following folder:
     \\<SERVER>\<ShareName>\DeviceUpdates\UCPhone\<Vendor>\
    <Model>\<Revision>\ENU\3.56907.0\

    to
    \\<SERVER>\<ShareName>\DeviceUpdates\UCPhone\<Vendor>\
    <Model>\<Revision>\ENU\3.56907.1\

The phone should now update to 3.5.6907.0 again.