Add support for Canary

This commit is contained in:
abbodi1406 2023-03-14 18:09:51 +03:00
parent 1fc14b6fd4
commit b1d8121507
6 changed files with 67 additions and 12 deletions

View File

@ -39,14 +39,18 @@ function uupFetchUpd(
$flight = 'Active';
if($build == 'latest' || (!$build)) {
$builds = array('17134.1');
$builds = array('22000.1');
$ids = uupListIds();
if(isset($ids['error'])) {
$ids['builds'] = array();
}
$build = $ids['builds'][0]['build'];
if(empty($ids['builds'])) {
$build = $builds[0];
} else {
$build = $ids['builds'][0]['build'];
}
unset($builds, $ids);
}
@ -59,7 +63,7 @@ function uupFetchUpd(
return array('error' => 'UNKNOWN_ARCH');
}
if(!($ring == 'DEV' || $ring == 'BETA' || $ring == 'RELEASEPREVIEW' || $ring == 'WIF' || $ring == 'WIS' || $ring == 'RP' || $ring == 'RETAIL' || $ring == 'MSIT')) {
if(!($ring == 'CANARY' || $ring == 'DEV' || $ring == 'BETA' || $ring == 'RELEASEPREVIEW' || $ring == 'WIF' || $ring == 'WIS' || $ring == 'RP' || $ring == 'RETAIL' || $ring == 'MSIT')) {
return array('error' => 'UNKNOWN_RING');
}

28
get.php
View File

@ -48,7 +48,7 @@ function uupGetFiles(
}
$edition = is_array($desiredEdition) ? implode('_', $desiredEdition) : $desiredEdition;
$res = "api-get-${updateId}_${usePack}_${edition}_${requestType}";
$res = "api-get-{$updateId}_{$usePack}_{$edition}_{$requestType}";
$cache = new UupDumpCache($res);
$fromCache = $cache->get();
if($fromCache !== false) return $fromCache;
@ -175,16 +175,34 @@ function uupGetFiles(
if(isset($filesInfoList[$val])) unset($filesInfoList[$val]);
}
$baseless = preg_grep('/^baseless_|Windows(10|11)\.0-KB.*-EXPRESS|SSU-.*-EXPRESS/i', array_keys($filesInfoList));
$baseless = preg_grep('/^baseless_/i', array_keys($filesInfoList));
foreach($baseless as $val) {
if(isset($filesInfoList[$val])) unset($filesInfoList[$val]);
}
$expresscab = preg_grep('/Windows(10|11)\.0-KB.*-EXPRESS|SSU-.*-EXPRESS/i', array_keys($filesInfoList));
$expresspsf = array();
foreach($expresscab as $val) {
$name = preg_replace('/-EXPRESS.cab$/i', '', $val);
$expresspsf[] = $name;
if(isset($filesInfoList[$val])) unset($filesInfoList[$val]);
}
unset($index, $name, $expresscab);
foreach($expresspsf as $val) {
if(isset($filesInfoList[$val.'.cab'])) {
if(isset($filesInfoList[$val.'.psf'])) unset($filesInfoList[$val.'.psf']);
}
}
unset($expresspsf);
$psf = array_keys($filesInfoList);
$psf = preg_grep('/\.psf$/i', $psf);
$psfk = preg_grep('/Windows(10|11)\.0-KB.*/i', $psf);
$psfk = preg_grep('/.*-EXPRESS/i', $psfk, PREG_GREP_INVERT);
if($build < 17763) $psfk = preg_grep('/Windows(10|11)\.0-KB.*_\d\.psf$/i', $psfk, PREG_GREP_INVERT);
foreach($psfk as $key => $val) {
if(isset($psf[$key])) unset($psf[$key]);
}
@ -227,7 +245,7 @@ function uupGetFiles(
switch($fileListSource) {
case 'UPDATEONLY':
$skipPackBuild = 1;
$removeFiles = preg_grep('/Windows(10|11)\.0-KB.*-EXPRESS|Windows(10|11)\.0-KB.*-baseless|SSU-.*-.{3,5}-EXPRESS/i', $filesInfoKeys);
$removeFiles = preg_grep('/Windows(10|11)\.0-KB.*-baseless/i', $filesInfoKeys);
foreach($removeFiles as $val) {
if(isset($filesInfoList[$val])) unset($filesInfoList[$val]);
@ -273,7 +291,7 @@ function uupGetFiles(
unset($removeMSUs);
$filesInfoKeys = array_keys($filesInfoList);
$temp = preg_grep('/Windows(10|11)\.0-KB.*-EXPRESS|Windows(10|11)\.0-KB.*-baseless|SSU-.*-.{3,5}-EXPRESS/i', $filesInfoKeys, PREG_GREP_INVERT);
$temp = preg_grep('/Windows(10|11)\.0-KB.*-baseless/i', $filesInfoKeys, PREG_GREP_INVERT);
if($appEdition) {
$temp = preg_grep('/.*?AggregatedMetadata.*?\.cab|.*?DesktopDeployment.*?\.cab/i', $temp);
} else if($build > 21380) {
@ -361,7 +379,7 @@ function uupGetFiles(
}
function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) {
$res = "api-get-online-${updateId}_rev.$rev";
$res = "api-get-online-{$updateId}_rev.$rev";
$cache = new UupDumpCache($res);
$fromCache = $cache->get();
$cached = ($fromCache !== false);

View File

@ -166,7 +166,7 @@ function uupListIds($search = null, $sortByDate = 0) {
$cache->put($builds, 60);
}
if($search != null) {
if(count($builds) && $search != null) {
if(!preg_match('/^regex:/', $search)) {
$searchSafe = preg_quote($search, '/');

View File

@ -10,7 +10,7 @@ Parameters:
- **Supported values:** `amd64`, `x86`, `arm64`, `all`
- `ring` - Channel to use when fetching information (Previously called Ring)
- **Supported values:** `Dev`, `Beta`, `ReleasePreview`, `Retail`
- **Supported values:** `Canary`, `Dev`, `Beta`, `ReleasePreview`, `Retail`
- **Supported Ring values :** `WIF`, `WIS`, `RP`
- `flight` - Content type to use when fetching information (Previously called Flight)

View File

@ -16,7 +16,7 @@ limitations under the License.
*/
function uupApiVersion() {
return '1.39.3';
return '1.40.1';
}
require_once dirname(__FILE__).'/auths.php';

View File

@ -94,6 +94,11 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type) {
$fltRing = 'Internal';
}
if($ring == 'CANARY') {
$fltBranch = 'CanaryChannel';
$ring = 'WIF';
}
$bldnum = explode('.', $build);
$bldnum = $bldnum[2];
@ -107,14 +112,20 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type) {
$attrib = array(
'App=WU_OS',
'AppVer='.$build,
'AttrDataVer=177',
'AttrDataVer=208',
'AllowInPlaceUpgrade=1',
'AllowUpgradesWithUnsupportedTPMOrCPU=1',
'BlockFeatureUpdates='.$blockUpgrades,
'BranchReadinessLevel=CB',
'CurrentBranch='.$branch,
'DataExpDateEpoch_CU23H2='.(time()+82800),
'DataExpDateEpoch_CU23H2Setup='.(time()+82800),
'DataExpDateEpoch_NI22H2='.(time()+82800),
'DataExpDateEpoch_NI22H2Setup='.(time()+82800),
'DataExpDateEpoch_CO21H2='.(time()+82800),
'DataExpDateEpoch_CO21H2Setup='.(time()+82800),
'DataExpDateEpoch_23H2='.(time()+82800),
'DataExpDateEpoch_22H2='.(time()+82800),
'DataExpDateEpoch_21H2='.(time()+82800),
'DataExpDateEpoch_21H1='.(time()+82800),
'DataExpDateEpoch_20H1='.(time()+82800),
@ -128,8 +139,14 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type) {
//'FlightContent='.$fltContent,
'FlightRing='.$fltRing,
'Free=gt64',
'GStatus_CU23H2=2',
'GStatus_CU23H2Setup=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',
'GStatus_20H1=2',
@ -151,6 +168,7 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type) {
'OEMModel=Asus ROG Maximus Z690 Extreme',
'OEMModelBaseBoard=ROG MAXIMUS Z690 EXTREME',
'OEMName_Uncleaned=ASUSTeK COMPUTER INC.',
'OemPartnerRing=UPSFlighting',
'OSArchitecture='.$arch,
'OSSkuId='.$sku,
'OSUILocale=en-US',
@ -163,8 +181,14 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type) {
'SdbVer_19H1=2000000000',
'SecureBootCapable=1',
'TelemetryLevel=3',
'TimestampEpochString_CU23H2='.(time()-3600),
'TimestampEpochString_CU23H2Setup='.(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),
'TimestampEpochString_20H1='.(time()-3600),
@ -172,18 +196,27 @@ function composeDeviceAttributes($flight, $ring, $build, $arch, $sku, $type) {
'TPMVersion=2',
'UpdateManagementGroup=2',
'UpdateOfferedDays=0',
'UpgEx_CU23H2=Green',
'UpgEx_NI22H2=Green',
'UpgEx_CO21H2=Green',
'UpgEx_23H2=Green',
'UpgEx_22H2=Green',
'UpgEx_21H2=Green',
'UpgEx_21H1=Green',
'UpgEx_20H1=Green',
'UpgEx_19H1=Green',
'UpgEx_RS5=Green',
'UpgradeAccepted=1',
'UpgradeEligible=1',
'UserInPlaceUpgrade=1',
'Version_RS5=2000000000',
'WuClientVer='.$build,
);
if(uupApiConfigIsTrue('fetch_sync_current_only')) {
$attrib[] = 'MediaBranch='.$branch;
}
if($ring == 'MSIT' && uupApiConfigIsTrue('allow_corpnet')) {
$attrib[] = 'DUInternal=1';
}