http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo2 urn:uuid:$uuid https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured $created $expires $device $updateId $rev FileUrl FileDecryption $deviceAttributes XML; } // Composes POST data for fetching the latest update information from Windows Update function composeFetchUpdRequest($device, $encData, $arch, $flight, $ring, $build, $sku = 48) { $uuid = genUUID(); $createdTime = time(); $expiresTime = $createdTime + 120; $cookieExpiresTime = $createdTime + 604800; $created = gmdate(DATE_W3C, $createdTime); $expires = gmdate(DATE_W3C, $expiresTime); $cookieExpires = gmdate(DATE_W3C, $cookieExpiresTime); $branch = branchFromBuild($build); if($sku == 7 || $sku == 8) { $mainProduct = 'Server.OS'; } else { $mainProduct = 'Client.OS.rs2'; } $products = array( 'PN='.$mainProduct.'.'.$arch.'&Branch='.$branch.'&PrimaryOSProduct=1&Repairable=1&V='.$build.'&ReofferUpdate=1', 'PN=Windows.Appraiser.'.$arch.'&Repairable=1&V='.$build, 'PN=Windows.AppraiserData.'.$arch.'&Repairable=1&V='.$build, 'PN=Windows.EmergencyUpdate.'.$arch.'&Repairable=1&V='.$build, 'PN=Windows.OOBE.'.$arch.'&IsWindowsOOBE=1&Repairable=1&V='.$build, 'PN=Windows.UpdateStackPackage.'.$arch.'&Name=Update Stack Package&Repairable=1&V='.$build, 'PN=Hammer.'.$arch.'&Source=UpdateOrchestrator&V=0.0.0.0', 'PN=MSRT.'.$arch.'&Source=UpdateOrchestrator&V=0.0.0.0', 'PN=SedimentPack.'.$arch.'&Source=UpdateOrchestrator&V=0.0.0.0', ); $callerAttrib = array( 'Id=UpdateOrchestrator', 'SheddingAware=1', 'Interactive=1', 'IsSeeker=1', ); $products = htmlentities(implode(';', $products)); $callerAttrib = htmlentities('E:'.implode('&', $callerAttrib)); $deviceAttributes = composeDeviceAttributes( $flight, $ring, $build, $arch, $sku ); return << http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncUpdates urn:uuid:$uuid https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx $created $expires $device $cookieExpires $encData false false true true Extended LocalizedProperties Eula en-US false $deviceAttributes $callerAttrib $products XML; } // Composes POST data for Get Cookie request function composeGetCookieRequest($device) { $uuid = genUUID(); $createdTime = time(); $expiresTime = $createdTime + 120; $created = gmdate(DATE_W3C, $createdTime); $expires = gmdate(DATE_W3C, $expiresTime); return << http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie urn:uuid:$uuid https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx $created $expires $device $created $created $created 2.0 XML; } ?>