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 EsrpDecryptionInformation PiecesHashUrl BlockMapUrl $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'; } if($arch == 'all') { $arch = array( 'amd64', 'x86', 'arm64', 'arm', ); } if(!is_array($arch)) { $arch = array($arch); } $products = array(); foreach($arch as $currArch) { $products[] = "PN=$mainProduct.$currArch&Branch=$branch&PrimaryOSProduct=1&Repairable=1&V=$build&ReofferUpdate=1"; $products[] = "PN=Windows.Appraiser.$currArch&Repairable=1&V=$build"; $products[] = "PN=Windows.AppraiserData.$currArch&Repairable=1&V=$build"; $products[] = "PN=Windows.EmergencyUpdate.$currArch&Repairable=1&V=$build"; $products[] = "PN=Windows.ManagementOOBE.$currArch&IsWindowsManagementOOBE=1&Repairable=1&V=$build"; $products[] = "PN=Windows.OOBE.$currArch&IsWindowsOOBE=1&Repairable=1&V=$build"; $products[] = "PN=Windows.UpdateStackPackage.$currArch&Name=Update Stack Package&Repairable=1&V=$build"; $products[] = "PN=Hammer.$currArch&Source=UpdateOrchestrator&V=0.0.0.0"; $products[] = "PN=MSRT.$currArch&Source=UpdateOrchestrator&V=0.0.0.0"; $products[] = "PN=SedimentPack.$currArch&Source=UpdateOrchestrator&V=0.0.0.0"; } $callerAttrib = array( 'Interactive=1', 'Profile=AUv2', 'SheddingAware=1', 'IsSeeker=1', 'Id=MoUpdateOrchestrator', ); $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 1 10 105939029 105995585 106017178 107825194 10809856 11 117765322 129905029 130040030 130040031 130040032 130040033 133399034 138372035 138372036 139536037 139536038 139536039 139536040 142045136 158941041 158941042 158941043 158941044 159776047 160733048 160733049 160733050 160733051 160733055 160733056 161870057 161870058 161870059 17 19 2 23110993 23110994 23110995 23110996 23110999 23111000 23111001 23111002 23111003 23111004 2359974 2359977 24513870 28880263 3 30077688 30486944 5143990 5169043 5169044 5169047 59830006 59830007 59830008 60484010 62450018 62450019 62450020 69801474 8788830 8806526 9125350 9154769 98959022 98959023 98959024 98959025 98959026 false true true Extended LocalizedProperties 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; }