From 6ff681b273b5393040144d2d0a8760dcf9e30c28 Mon Sep 17 00:00:00 2001 From: mkuba50 Date: Fri, 20 Apr 2018 14:18:43 +0200 Subject: [PATCH] 17650 pack template, support of single file editions --- get.php | 42 +++++++- shared/main.php | 2 +- shared/packs.php | 5 + shared/packs/17063.php | 3 + shared/packs/17093.php | 3 + shared/packs/17623.php | 3 + shared/packs/17634.php | 3 + shared/packs/17650.php | 205 ++++++++++++++++++++++++++++++++++++++++ shared/packs/legacy.php | 5 +- 9 files changed, 264 insertions(+), 7 deletions(-) create mode 100644 shared/packs/17650.php diff --git a/get.php b/get.php index 4025188..b253438 100644 --- a/get.php +++ b/get.php @@ -62,8 +62,13 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac $packsForLangs = $packs['packsForLangs']; $editionPacks = $packs['editionPacks']; $checkEditions = $packs['allEditions']; + $skipNeutral = $packs['skipNeutral']; + $skipLangPack = $packs['skipLangPack']; $packs = $packs['packs']; + $noLangPack = 0; + $noNeutral = 0; + if($usePack) { $usePack = strtolower($usePack); if(!isset($packsForLangs[$usePack])) { @@ -73,8 +78,10 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac $desiredEdition = strtoupper($desiredEdition); + + switch($desiredEdition) { - case 0: break; + case '0': break; case 'WUBFILE': break; case 'UPDATEONLY': @@ -101,10 +108,32 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac } unset($supported); + + + if(isset($skipLangPack[$desiredEdition])) { + if($skipLangPack[$desiredEdition]) { + $noLangPack = 1; + } + } + + if(isset($skipNeutral[$desiredEdition])) { + if($skipNeutral[$desiredEdition]) { + $noNeutral = 1; + } + } + $checkEditions = array($desiredEdition); break; } + if($noNeutral) { + foreach($packsForLangs[$usePack] as $num) { + if(isset($packs[$num]['editionNeutral'])) { + unset($packs[$num]['editionNeutral']); + } + } + } + $rev = 1; if(preg_match('/_rev\./', $updateId)) { $rev = preg_replace('/.*_rev\./', '', $updateId); @@ -282,11 +311,14 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac $filesKeys = array_keys($files); $filesTemp = array(); - $temp = preg_grep('/.*'.$usePack.'-Package.*/i', $filesKeys); - $filesTemp = array_merge($filesTemp, $temp); - $temp = preg_grep('/.*'.$usePack.'_lp..../i', $filesKeys); - $filesTemp = array_merge($filesTemp, $temp); + if(!$noLangPack) { + $temp = preg_grep('/.*'.$usePack.'-Package.*/i', $filesKeys); + $filesTemp = array_merge($filesTemp, $temp); + + $temp = preg_grep('/.*'.$usePack.'_lp..../i', $filesKeys); + $filesTemp = array_merge($filesTemp, $temp); + } foreach($packsForLangs[$usePack] as $num) { foreach($packs[$num] as $key => $val) { diff --git a/shared/main.php b/shared/main.php index 8cbd468..ec0fd1f 100644 --- a/shared/main.php +++ b/shared/main.php @@ -16,7 +16,7 @@ limitations under the License. */ function uupApiVersion() { - return '1.12.0'; + return '1.13.0'; } function uupApiPrintBrand() { diff --git a/shared/packs.php b/shared/packs.php index 4ba45dd..5233d62 100644 --- a/shared/packs.php +++ b/shared/packs.php @@ -61,6 +61,7 @@ function uupGetPacks($build = 15063) { 'ANALOGONECORE', 'ANDROMEDA', 'CLOUD', + 'CLOUDE', 'CLOUDN', 'CORE', 'CORECOUNTRYSPECIFIC', @@ -148,6 +149,8 @@ function uupGetPacks($build = 15063) { if($build < 17063) { require dirname(__FILE__).'/packs/legacy.php'; + } elseif ($build >= 17650) { + require dirname(__FILE__).'/packs/17650.php'; } elseif ($build >= 17634) { require dirname(__FILE__).'/packs/17634.php'; } elseif ($build >= 17623) { @@ -165,6 +168,8 @@ function uupGetPacks($build = 15063) { 'fancyEditionNames' => $fancyEditionNames, 'fancyLangNames' => $fancyLangNames, 'allEditions' => $allEditions, + 'skipNeutral' => $skipNeutral, + 'skipLangPack' => $skipLangPack, ); } ?> diff --git a/shared/packs/17063.php b/shared/packs/17063.php index 7f16f97..abce071 100644 --- a/shared/packs/17063.php +++ b/shared/packs/17063.php @@ -183,4 +183,7 @@ $fancyEditionNames = array( 'PROFESSIONAL' => 'Windows 10 Pro', 'PROFESSIONALN' => 'Windows 10 Pro N', ); + +$skipNeutral = array(); +$skipLangPack = array(); ?> diff --git a/shared/packs/17093.php b/shared/packs/17093.php index acf7649..6c04a9e 100644 --- a/shared/packs/17093.php +++ b/shared/packs/17093.php @@ -184,4 +184,7 @@ $fancyEditionNames = array( 'PROFESSIONAL' => 'Windows 10 Pro', 'PROFESSIONALN' => 'Windows 10 Pro N', ); + +$skipNeutral = array(); +$skipLangPack = array(); ?> diff --git a/shared/packs/17623.php b/shared/packs/17623.php index 257eb8a..3144b6b 100644 --- a/shared/packs/17623.php +++ b/shared/packs/17623.php @@ -188,4 +188,7 @@ $fancyEditionNames = array( 'PROFESSIONAL' => 'Windows 10 Pro', 'PROFESSIONALN' => 'Windows 10 Pro N', ); + +$skipNeutral = array(); +$skipLangPack = array(); ?> diff --git a/shared/packs/17634.php b/shared/packs/17634.php index 8aa09df..378d81e 100644 --- a/shared/packs/17634.php +++ b/shared/packs/17634.php @@ -191,4 +191,7 @@ $fancyEditionNames = array( 'PROFESSIONAL' => 'Windows 10 Pro', 'PROFESSIONALN' => 'Windows 10 Pro N', ); + +$skipNeutral = array(); +$skipLangPack = array(); ?> diff --git a/shared/packs/17650.php b/shared/packs/17650.php new file mode 100644 index 0000000..34daaf2 --- /dev/null +++ b/shared/packs/17650.php @@ -0,0 +1,205 @@ + array( + 'editionNeutral' => array( + 'Microsoft-Windows-Foundation-Package', + 'Microsoft-Windows-Client-Desktop-Required', + 'Microsoft-Windows-Client-Desktop-Required-WOW64-Package', + 'Microsoft-Windows-Client-Desktop-Required-arm64arm-Package', + 'Microsoft-Windows-Client-Features-Package', + 'Microsoft-Windows-Client-Features-WOW64-Package', + 'Microsoft-Windows-Client-Features-arm64arm-Package', + 'Microsoft-Windows-WowPack-CoreARM-arm64arm-Package', + 'Microsoft-Windows-ContactSupport-Package', + 'Microsoft-Windows-Not-Supported-On-LTSB-Package', + 'Microsoft-Windows-Not-Supported-On-LTSB-WOW64-Package', + 'Microsoft-Windows-Not-Supported-On-LTSB-arm64arm-Package', + 'Microsoft-Windows-RegulatedPackages-Package', + 'Microsoft-Windows-RegulatedPackages-WOW64-Package', + 'Microsoft-Windows-RegulatedPackages-arm64arm-Package', + 'Microsoft-Windows-Holographic-Desktop-Merged-Package', + 'Microsoft-Windows-Holographic-Desktop-Merged-WOW64-Package', + 'Microsoft-Windows-Holographic-Desktop-Analog-Package', + 'Microsoft-Windows-QuickAssist-Package', + 'Microsoft-Windows-InternetExplorer-Optional-Package', + 'Microsoft-Windows-MediaPlayer-Package', + 'Microsoft-Windows-Hello-Face-Resource-.-Package', + 'Microsoft-OneCore-ApplicationModel-Sync-Desktop-FOD-Package', + 'Microsoft-Windows-TabletPCMath-Package', + 'OpenSSH-Client-Package', + 'Windows10\.0-KB', + ), + 'CORE' => array( + 'Microsoft-Windows-EditionPack-Core-Package', + 'Microsoft-Windows-EditionPack-Core-WOW64-Package', + 'Microsoft-Windows-EditionPack-Core-arm64arm-Package', + 'Microsoft-Windows-EditionSpecific-Core-Package', + 'Microsoft-Windows-EditionSpecific-Core-WOW64-Package', + 'Microsoft-Windows-EditionSpecific-Core-arm64arm-Package', + 'Microsoft\.ModernApps\.Client\.All', + 'Microsoft\.ModernApps\.Client\.core', + ), + 'PROFESSIONAL' => array( + 'Microsoft-Windows-EditionPack-Professional-Package', + 'Microsoft-Windows-EditionPack-Professional-WOW64-Package', + 'Microsoft-Windows-EditionPack-Professional-arm64arm-Package', + 'Microsoft-Windows-EditionSpecific-Professional-Package', + 'Microsoft-Windows-EditionSpecific-Professional-WOW64-Package', + 'Microsoft-Windows-EditionSpecific-Professional-arm64arm-Package', + 'Microsoft\.ModernApps\.Client\.All', + 'Microsoft\.ModernApps\.Client\.professional', + ), + 'CLOUDE' => array(), + ), + + // European "N" Editions + 1 => array( + 'COREN' => array( + 'Microsoft-Windows-EditionPack-Core-Package', + 'Microsoft-Windows-EditionPack-Core-WOW64-Package', + 'Microsoft-Windows-EditionPack-Core-arm64arm-Package', + 'Microsoft-Windows-EditionSpecific-CoreN-Package', + 'Microsoft-Windows-EditionSpecific-CoreN-WOW64-Package', + 'Microsoft-Windows-EditionSpecific-CoreN-arm64arm-Package', + 'Microsoft\.ModernApps\.ClientN\.All', + ), + 'PROFESSIONALN' => array( + 'Microsoft-Windows-EditionPack-Professional-Package', + 'Microsoft-Windows-EditionPack-Professional-WOW64-Package', + 'Microsoft-Windows-EditionPack-Professional-arm64arm-Package', + 'Microsoft-Windows-EditionSpecific-ProfessionalN-Package', + 'Microsoft-Windows-EditionSpecific-ProfessionalN-WOW64-Package', + 'Microsoft-Windows-EditionSpecific-ProfessionalN-arm64arm-Package', + 'Microsoft\.ModernApps\.ClientN\.All', + ), + ), + + // China specific editions + 2 => array( + 'CORECOUNTRYSPECIFIC' => array( + 'Microsoft-Windows-EditionPack-Core-Package', + 'Microsoft-Windows-EditionPack-Core-WOW64-Package', + 'Microsoft-Windows-EditionPack-Core-arm64arm-Package', + 'Microsoft-Windows-EditionSpecific-CoreCountrySpecific-Package', + 'Microsoft-Windows-EditionSpecific-CoreCountrySpecific-WOW64-Package', + 'Microsoft-Windows-EditionSpecific-CoreCountrySpecific-arm64arm-Package', + 'Microsoft\.ModernApps\.Client\.All', + ), + ), + + // Additional packages for some languages + 3 => array( + 'editionNeutral' => array( + 'Microsoft-Windows-LanguageFeatures-Basic-en-us-Package', + 'Microsoft-Windows-LanguageFeatures-OCR-en-us-Package', + ), + ), + + // Additional packages for ar-sa language + 4 => array( + 'editionNeutral' => array( + 'Microsoft-Windows-LanguageFeatures-TextToSpeech-ar-eg-Package', + ), + ), + + // Additional packages for fr-ca language + 5 => array( + 'editionNeutral' => array( + 'Microsoft-Windows-LanguageFeatures-Basic-fr-fr-Package', + 'Microsoft-Windows-LanguageFeatures-Handwriting-fr-fr-Package', + ), + ), + + // Additional packages for zh-tw language + 6 => array( + 'editionNeutral' => array( + 'Microsoft-Windows-LanguageFeatures-Speech-zh-hk-Package', + 'Microsoft-Windows-LanguageFeatures-TextToSpeech-zh-hk-Package', + ), + ), +); + +$packsForLangs = array( + 'ar-sa' => array(0, 3, 4), + 'bg-bg' => array(0, 1, 3), + 'cs-cz' => array(0, 1), + 'da-dk' => array(0, 1, 3), + 'de-de' => array(0, 1), + 'el-gr' => array(0, 1, 3), + 'en-gb' => array(0, 1), + 'en-us' => array(0, 1), + 'es-es' => array(0, 1), + 'es-mx' => array(0), + 'et-ee' => array(0, 1), + 'fi-fi' => array(0, 1), + 'fr-ca' => array(0, 3, 5), + 'fr-fr' => array(0, 1), + 'he-il' => array(0, 3), + 'hr-hr' => array(0, 1), + 'hu-hu' => array(0, 1), + 'it-it' => array(0, 1), + 'ja-jp' => array(0), + 'ko-kr' => array(0, 1), + 'lt-lt' => array(0, 1), + 'lv-lv' => array(0, 1), + 'nb-no' => array(0, 1), + 'nl-nl' => array(0, 1), + 'pl-pl' => array(0, 1), + 'pt-br' => array(0), + 'pt-pt' => array(0, 1), + 'ro-ro' => array(0, 1), + 'ru-ru' => array(0, 3), + 'sk-sk' => array(0, 1), + 'sl-si' => array(0, 1), + 'sr-latn-rs' => array(0), + 'sv-se' => array(0, 1), + 'th-th' => array(0, 3), + 'tr-tr' => array(0), + 'uk-ua' => array(0, 3), + 'zh-cn' => array(0, 2), + 'zh-tw' => array(0, 6), +); + +$editionPacks = array( + 'CLOUDE' => 0, + 'CORE' => 0, + 'CORECOUNTRYSPECIFIC' => 2, + 'COREN' => 1, + 'PROFESSIONAL' => 0, + 'PROFESSIONALN' => 1, +); + +$fancyEditionNames = array( + 'CLOUDE' => 'Windows 10 Lean', + 'CORE' => 'Windows 10 Home', + 'CORECOUNTRYSPECIFIC' => 'Windows 10 Home China', + 'COREN' => 'Windows 10 Home N', + 'PROFESSIONAL' => 'Windows 10 Pro', + 'PROFESSIONALN' => 'Windows 10 Pro N', +); + +$skipNeutral = array( + 'CLOUDE' => 1, +); + +$skipLangPack = array( + 'CLOUDE' => 1, +); +?> diff --git a/shared/packs/legacy.php b/shared/packs/legacy.php index fe6d911..653f96d 100644 --- a/shared/packs/legacy.php +++ b/shared/packs/legacy.php @@ -1,6 +1,6 @@ 'Windows 10 Pro', 'PROFESSIONALN' => 'Windows 10 Pro N', ); + +$skipNeutral = array(); +$skipLangPack = array(); ?>