[Windows Phone 8 Development and Hacking] compu829:
Since my HTC 8x phone finally received GDR2 yesterday (Thanks T-Mobile). I *think* I understand how the transaction works.

1. Phone calls out to get list of updates.

2. Phone receives list of updates. The GDR2 "main" updates appear to be 9109105 (T-Mobile HTC 8x GDR2) and 9109435 (Qualcomm/HTC FW bundle for T-Mobile)

3. the embedded xml payload makes the Windows Update client on the phone request "extended info" for the assigned updates. This info includes download links for the spkg cab files.

4. Once this info is parsed, the sync is complete and the phone displays an update prompt to the user.

5. when the user presses "update", the phone goes out and grabs the cab files associated with the update.

The following is the "xml" embedded code for 9109105 (step 2):

<UpdateIdentity UpdateID="14d24200-4f61-4540-ac84-bbe497a6cd70" RevisionNumber="200" /><Properties UpdateType="Software" ExplicitlyDeployable="true" AutoSelectOnWebSites="true" /><Relationships><Prerequisites><UpdateIdentity UpdateID="d0d79eb1-40cd-4bb2-bf90-da7fa925c8f9" /><UpdateIdentity UpdateID="e4b1f9ff-cdd0-42ae-bb12-ffc810bc4e76" /><UpdateIdentity UpdateID="177708f3-5a66-439a-86bf-08fba02b6ac7" /><UpdateIdentity UpdateID="fba533c3-db4f-4f0b-87f7-c581685898e7" /><AtLeastOne IsCategory="true"><UpdateIdentity UpdateID="28bc880e-0592-4cbf-8f95-c79b17911d5f" /></AtLeastOne><AtLeastOne IsCategory="true"><UpdateIdentity UpdateID="2ab85861-6aec-4223-888d-c1fb7e16f8c6" /></AtLeastOne></Prerequisites><BundledUpdates><UpdateIdentity UpdateID="42b5d92b-8167-4ba8-a6e3-50a70da97a44" RevisionNumber="200" /></BundledUpdates></Relationships>

and for 9109435 (step 2):

<UpdateIdentity UpdateID="15deae6b-e4e1-403f-b0c9-6b277ab08435" RevisionNumber="200" /><Properties UpdateType="Software" ExplicitlyDeployable="true" AutoSelectOnWebSites="true" /><Relationships><Prerequisites><UpdateIdentity UpdateID="d69ece98-0bdb-4860-9903-718ec9ee5c6a" /><UpdateIdentity UpdateID="e4b1f9ff-cdd0-42ae-bb12-ffc810bc4e76" /><UpdateIdentity UpdateID="fba533c3-db4f-4f0b-87f7-c581685898e7" /><AtLeastOne IsCategory="true"><UpdateIdentity UpdateID="28bc880e-0592-4cbf-8f95-c79b17911d5f" /></AtLeastOne><AtLeastOne IsCategory="true"><UpdateIdentity UpdateID="2ab85861-6aec-4223-888d-c1fb7e16f8c6" /></AtLeastOne></Prerequisites><BundledUpdates><UpdateIdentity UpdateID="7e8378d0-ee1f-446b-a5ac-9ecebff268d1" RevisionNumber="200" /></BundledUpdates></Relationships>

Some interesting notes:

During the "normal" routine, Windows Updates was going out and fetching various cab files with payloads. One of the updates that did this was 9109433. it's XML code contained the following:

<Ref CabDigest="b49iLhmRLx GP4AWipa2Oqa1HyQ="><AdditionalDigest Algorithm="SHA256">PcshSv1zX7SbfJQ/zrV5wv3OdNNfDYd4B9kyWqf8eg0=</AdditionalDigest></Ref>

this CabDigest (since update was set to true) immediately went out and fetched the cab file. What was interesting is that the client sent the CabDigest to the server and it returned with a download link. This same info is in the extendinfo that returns with the GDR2 updates, except it is a spkg.cab file that is requested based on the "fileDigest".

I am attaching my fiddler capture of the phone first becoming aware of GDR2 and what files it needs to get. I stopped capturing after as it was just all the cab files referenced at the begging of this post.

If someone can come through with a fiddler log of a T-Mobile branded Nokia with WiFi calling receiving GDR2/Amber, I might be able to figure out a way to get the package installed. (no promises)

Hope that helps! :)