From 8b576e4496572914595eb05dbc182f5789f138e4 Mon Sep 17 00:00:00 2001 From: abbodi1406 Date: Mon, 21 Oct 2024 17:24:10 +0300 Subject: [PATCH] Add support for NetFX updates --- fetchupd.php | 15 ++++++++++++++- shared/main.php | 2 +- shared/requests.php | 17 +++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/fetchupd.php b/fetchupd.php index fd991ee..b6ac7a0 100644 --- a/fetchupd.php +++ b/fetchupd.php @@ -295,6 +295,15 @@ function parseFetchUpdate($updateInfo, $out, $arch, $ring, $flight, $build, $sku $foundBuild = @$info[3]; } + $isNet = 0; + if(strpos($foundArch, 'netfx') !== false) { + $isNet = 1; + preg_match('/ProductReleaseInstalled Name\=".*\.(.*?)\.(.*?)" Version\=".*\.\d{5}\.(.*?)"/', $updateInfo, $info); + $foundType = @strtolower($info[1]); + $foundArch = @strtolower($info[2]); + $foundBuild = @$info[3]; + } + $updateTitle = preg_grep('/.*<\/Title>/', $updateMeta); sort($updateTitle); @@ -314,7 +323,11 @@ function parseFetchUpdate($updateInfo, $out, $arch, $ring, $flight, $build, $sku $isCumulativeUpdate = 0; if(preg_match('/\d{4}-\d{2}.+Update|Cumulative Update|Microsoft Edge|Windows Feature Experience Pack|Cumulative security Hotpatch/i', $updateTitle)) { $isCumulativeUpdate = 1; - $updateTitle = preg_replace('/ for .{3,5}-based systems| \(KB.*?\)/i', '', $updateTitle); + if($isNet) { + $updateTitle = preg_replace("/3.5 and 4.8.1 |3.5 and 4.8 | for $foundArch| for x64| \(KB.*?\)/i", '', $updateTitle); + } else { + $updateTitle = preg_replace('/ for .{3,5}-based systems| \(KB.*?\)/i', '', $updateTitle); + } } $updateTitle = preg_replace("/ ?\d{4}-\d{2}\D ?| ?$foundArch ?| ?x64 ?/i", '', $updateTitle); diff --git a/shared/main.php b/shared/main.php index e09c6c9..8a783c5 100644 --- a/shared/main.php +++ b/shared/main.php @@ -16,7 +16,7 @@ limitations under the License. */ function uupApiVersion() { - return '1.47.3'; + return '1.47.4'; } require_once dirname(__FILE__).'/auths.php'; diff --git a/shared/requests.php b/shared/requests.php index 30c3387..493a46c 100644 --- a/shared/requests.php +++ b/shared/requests.php @@ -33,12 +33,14 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type, $fl $dvcFamily = 'Windows.Desktop'; $insType = 'Client'; + $prodType = 'WinNT'; if($sku == 119) { $dvcFamily = 'Windows.Team'; } if(uupApiIsServer($sku)) { $dvcFamily = 'Windows.Server'; $insType = 'Server'; + $prodType = 'ServerNT'; $blockUpgrades = 1; } /*/ Hololens @@ -114,7 +116,7 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type, $fl $attrib = array( 'App=WU_OS', 'AppVer='.$build, - 'AttrDataVer=247', + 'AttrDataVer=281', 'AllowInPlaceUpgrade=1', 'AllowOptionalContent=1', 'AllowUpgradesWithUnsupportedTPMOrCPU=1', @@ -122,6 +124,8 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type, $fl 'BranchReadinessLevel=CB', 'CIOptin=1', 'CurrentBranch='.$branch, + 'DataExpDateEpoch_GE24H2='.(time()+82800), + 'DataExpDateEpoch_GE24H2Setup='.(time()+82800), 'DataExpDateEpoch_CU23H2='.(time()+82800), 'DataExpDateEpoch_CU23H2Setup='.(time()+82800), 'DataExpDateEpoch_NI22H2='.(time()+82800), @@ -144,13 +148,15 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type, $fl //'FlightContent='.$fltContent, 'FlightRing='.$fltRing, 'Free=gt64', + 'GStatus_GE24H2=2', + 'GStatus_GE24H2Setup=2', 'GStatus_CU23H2=2', 'GStatus_CU23H2Setup=2', + 'GStatus_NI23H2=2', 'GStatus_NI22H2=2', 'GStatus_NI22H2Setup=2', 'GStatus_CO21H2=2', 'GStatus_CO21H2Setup=2', - 'GStatus_23H2=2', 'GStatus_22H2=2', 'GStatus_21H2=2', 'GStatus_21H1=2', @@ -182,18 +188,21 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type, $fl 'ProcessorIdentifier=Intel64 Family 6 Model 186 Stepping 3', 'ProcessorManufacturer=GenuineIntel', 'ProcessorModel=13th Gen Intel(R) Core(TM) i7-1355U', + 'ProductType='.$prodType, 'ReleaseType='.$type, 'SdbVer_20H1=2000000000', 'SdbVer_19H1=2000000000', 'SecureBootCapable=1', 'TelemetryLevel=3', + 'TimestampEpochString_GE24H2='.(time()-3600), + 'TimestampEpochString_GE24H2Setup='.(time()-3600), 'TimestampEpochString_CU23H2='.(time()-3600), 'TimestampEpochString_CU23H2Setup='.(time()-3600), + 'TimestampEpochString_NI23H2='.(time()-3600), 'TimestampEpochString_NI22H2='.(time()-3600), 'TimestampEpochString_NI22H2Setup='.(time()-3600), 'TimestampEpochString_CO21H2='.(time()-3600), 'TimestampEpochString_CO21H2Setup='.(time()-3600), - 'TimestampEpochString_23H2='.(time()-3600), 'TimestampEpochString_22H2='.(time()-3600), 'TimestampEpochString_21H2='.(time()-3600), 'TimestampEpochString_21H1='.(time()-3600), @@ -441,7 +450,7 @@ function composeFetchUpdRequest($arch, $flight, $ring, $build, $sku = 48, $type $products[] = "PN=$mainProduct.$currArch&Branch=$branch&PrimaryOSProduct=1&Repairable=1&V=$build&ReofferUpdate=1"; $products[] = "PN=Adobe.Flash.$currArch&Repairable=1&V=0.0.0.0"; $products[] = "PN=Microsoft.Edge.Stable.$currArch&Repairable=1&V=0.0.0.0"; - $products[] = "PN=Microsoft.NETFX.$currArch&V=2018.12.2.0"; + $products[] = "PN=Microsoft.NETFX.$currArch&V=0.0.0.0"; $products[] = "PN=Windows.Autopilot.$currArch&Repairable=1&V=0.0.0.0"; $products[] = "PN=Windows.AutopilotOOBE.$currArch&Repairable=1&V=0.0.0.0"; $products[] = "PN=Windows.Appraiser.$currArch&Repairable=1&V=$build";