From 3f015df0add85966608e023e6dc9dc6075843e72 Mon Sep 17 00:00:00 2001 From: mkuba50 Date: Sat, 23 Sep 2017 17:47:19 +0200 Subject: [PATCH] Add new queries, slightly modify existing queries --- fetchupd.php | 11 +++++----- get.php | 16 ++++++++------ listeditions.php | 53 ++++++++++++++++++++++++++++++++++++++++++++++ listid.php | 7 +++--- listlangs.php | 42 ++++++++++++++++++++++++++++++++++++ shared/main.php | 19 +++++++++++------ shared/packs.php | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 181 insertions(+), 22 deletions(-) create mode 100644 listeditions.php create mode 100644 listlangs.php diff --git a/fetchupd.php b/fetchupd.php index 4b2fd6c..dd390b6 100644 --- a/fetchupd.php +++ b/fetchupd.php @@ -15,10 +15,11 @@ See the License for the specific language governing permissions and limitations under the License. */ +require_once 'shared/main.php'; +require_once 'shared/requests.php'; + function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build = '16251') { - require_once 'shared/main.php'; - require_once 'shared/requests.php'; - brand(); + uupApiPrintBrand(); $arch = strtolower($arch); $ring = strtoupper($ring); @@ -50,7 +51,7 @@ function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build $build = '10.0.'.$build.'.0'; consoleLogger('Fetching information from the server...'); - $postData = composeFetchUpdRequest($device, $encData, $arch, $flight, $ring, $build); + $postData = composeFetchUpdRequest(uupDevice(), uupEncryptedData(), $arch, $flight, $ring, $build); $out = sendWuPostRequest('https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx', $postData); $out = html_entity_decode($out); @@ -144,7 +145,7 @@ function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build } return array( - 'apiVersion' => $apiVersion, + 'apiVersion' => uupApiVersion(), 'updateId' => $updateId, 'updateTitle' => $updateTitle, 'foundBuild' => $foundBuild, diff --git a/get.php b/get.php index 36b46df..b9a7298 100644 --- a/get.php +++ b/get.php @@ -15,11 +15,12 @@ See the License for the specific language governing permissions and limitations under the License. */ +require_once 'shared/main.php'; +require_once 'shared/requests.php'; + function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePack = 0, $desiredEdition = 0) { - require_once 'shared/main.php'; - require_once 'shared/requests.php'; - require_once 'shared/packs.php'; - brand(); + require 'shared/packs.php'; + uupApiPrintBrand(); function packsByEdition($edition, $pack, $lang, $filesKeys) { $filesTemp = array(); @@ -83,7 +84,7 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac } consoleLogger('Fetching information from the server...'); - $postData = composeFileGetRequest($updateId, $device, $info); + $postData = composeFileGetRequest($updateId, uupDevice(), $info); $out = sendWuPostRequest('https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured', $postData); consoleLogger('Information was successfully fetched.'); @@ -134,7 +135,7 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac 'sha1' => $sha1, 'size' => $size, 'url' => $url, - 'guid' => $guid, + 'uuid' => $guid, 'expire' => intval($expire), ); @@ -217,7 +218,8 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac consoleLogger('Successfully parsed the information.'); return array( - 'apiVersion' => $apiVersion, + 'apiVersion' => uupApiVersion(), + 'updateName' => $updateName, 'files' => $files, ); } diff --git a/listeditions.php b/listeditions.php new file mode 100644 index 0000000..81374fd --- /dev/null +++ b/listeditions.php @@ -0,0 +1,53 @@ + 'UNSUPPORTED_LANG'); + } + } + + $editionList = array(); + $editionListFancy = array(); + foreach($packsForLangs[$lang] as $val) { + foreach(array_keys($packs[$val]) as $edition) { + if($edition == 'editionNeutral') continue; + + if(isset($fancyEditionNames[$edition])) { + $fancyName = $fancyEditionNames[$edition]; + } else { + $fancyName = $edition; + } + + $temp = array($edition => $fancyName); + $editionList = array_merge($editionList, array($edition)); + $editionListFancy = array_merge($editionListFancy, $temp); + } + } + + return array( + 'apiVersion' => uupApiVersion(), + 'editionList' => $editionList, + 'editionFancyNames' => $editionListFancy, + ); +} +?> diff --git a/listid.php b/listid.php index af2fdb3..b7d99e9 100644 --- a/listid.php +++ b/listid.php @@ -15,9 +15,10 @@ See the License for the specific language governing permissions and limitations under the License. */ +require_once 'shared/main.php'; + function uupListIds() { - require_once 'shared/main.php'; - brand(); + uupApiPrintBrand(); if(!file_exists('fileinfo')) return array('error' => 'NO_FILEINFO_DIR'); @@ -60,7 +61,7 @@ function uupListIds() { consoleLogger('Done parsing database info.'); return array( - 'apiVersion' => $apiVersion, + 'apiVersion' => uupApiVersion(), 'builds' => $builds, ); } diff --git a/listlangs.php b/listlangs.php new file mode 100644 index 0000000..1c21678 --- /dev/null +++ b/listlangs.php @@ -0,0 +1,42 @@ + $val) { + if(isset($packsForLangs[$key])) { + $fancyName = $fancyLangNames[$key]; + } else { + $fancyName = $key; + } + + $temp = array($key => $fancyName); + $langList = array_merge($langList, array($key)); + $langListFancy = array_merge($langListFancy, $temp); + } + + return array( + 'apiVersion' => uupApiVersion(), + 'langList' => $langList, + 'langFancyNames' => $langListFancy, + ); +} +?> diff --git a/shared/main.php b/shared/main.php index d9e8abb..08a0dd8 100644 --- a/shared/main.php +++ b/shared/main.php @@ -15,12 +15,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -global $apiVersion; -$apiVersion = '0.1.1-alpha'; +function uupApiVersion() { + return '0.2.0-alpha'; +} -function brand() { - global $apiVersion; - consoleLogger('UUP dump API v'.$apiVersion); +function uupApiPrintBrand() { + consoleLogger('UUP dump API v'.uupApiVersion()); } function randStr($length = 4) { @@ -63,6 +63,11 @@ function consoleLogger($message, $showTime = 1) { fwrite(STDERR, $msg."\n"); } -$device = 'dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBHADcAVwBtAGUAWQBmAGkAdwAxAGMAdgByAEoAbwBvAGkAUQBzAFoAZABqAHEAawBQAEkARwA5AHUAVQBQAFcAMQB3ADMAQgBVAE8ALwBKAC8AdwBwAGUAcgBhAHQAZAB2AFgAQgB6AFkAbABaAHAAYgBzAHQANAB4AHkAbABHADcAQwBSADQANABBAFoARwB4AG4ARAAvAHIAYwBVAGoAdwBEAFAAVQBXAHkAMABPAEwAaABqAFAAZABWAEgAOQBVAFkATAA4AE0AVgBJAFIAbQA5ADEALwAwAGwATQBjAHUAMwBQAFMAOQB5AFoARwBFADIAZgBOAEcAWAA2AE8AbABrAFoAaABiAG0AbAB1AGsAdwBXAEsAdQBQAHcAcABGADQARQB5AFgAcgBTAHgALwBwAEsATgArAFoANgBOAEoAdQArAFYASwBqAFoANwBoADIAUgBBADIAWQBBAEEAQQBpAEUAWQBjADgAawBnAFoAYQBsAEgAWQBBAEIASwBIADEAZAAvAEoAZABEAFUAeAB5ADIAegBkAEoAMwA0AEIAbABYAGMAYwBsAFoANABJAE4ANQBuAHcAYQBLAE4AWgA3ADEAcQA4AEMAcQBVAFgAYwBQAGMAQgBjAGEAVQBXAFgAVgBGAEMASgBsAEEAegBTAGwAQQBtAHEALwBvAFQAQQBVAFcAYQBOAEgAWQBRADAAWQBNADEAVQAzAHEATAAvAFEAdQBhAEcAMgBuAE4AdQBvADYAVwBqAFEAcQBFAFgAYwBUAGMAWAA3AGMAdgAyAHEANABzADcAWgBpADkAWQB1ACsANwBYADAAeQA1AFgAeQAvAE4AbgBLAGUAeABRAHEAdwA3AG8AKwBjAGIAMwB1AGYAQQBFAEYAdABWAHAAawB3AGwAagBZAHYAZgBvADcAdQBwAFkANQBnAGEAdABlADUAWABwADkALwBoAFoAdQBYAFIANgAwAEoAMQBUAHEATQBGADYAVQBOAEIATQB6AC8ATABCAEMAUABPAEcAWABIAGkAWgBJAEUAZQBIAE8ASwBiAEIAUAB1AFAASwBZAGMAUQBUAFkAZwBIAEkARwA3AFIAegBnAGIAMAAzAGQARABrAFUANgByAHUASQA1AHQAYgBIAHoAaQBmAHoAVgBHAHAAVABGAGcANABrAEoAYgBQAHkARQBXAHcAcwBOAEMARgA4AFQATQBuAHAARABhAHcAeAAvAEUARgBUADcAeQBLAFQAQwBYAFkAbgBhADQASQBJAFAAMABtAFcAMABYADIAdABDAHEANgA1AEUASwBlAFkAcQBBAEYARQA1AEMASABmAFEAMQBvAHIAYgBBAGEASgBWAGkAaQBFAGsARQB3AEEANwBuADMAcgAxAFIAUQB1AHgARgBlAG4ARwBkAHgAdQByAFoAdwByADAAMABEADgATQBoAGwAUQAvAFcAYQBaAGwANgBvAFgAdgBkAHUATgBXAEIAZwBPAFMANgBLAGEARwBpAC8AYgBLADEAZwBWAEgAcABzAEcAcwBFAC8AQgA4AGkAbQBsAGYAcAAzAFEATQBWAGkAUABEAEgANgBhADMANQBCAGYAOABpAHkAMgAyAG4ASABQADAATgBIADkASwBEAHoAWAB5AGkAeABnAGsARQBlAGwAaABKAEcANgAyAHUAMgBjAFQAMgBmAFgAMQA0AEwAdwBSAFkATwArAGkAcgBWAGQAYwBqAEUAQgBoAGQASwA1ADQAYgBPAFcAdgBUAHcAbQBUAFMAVwBHAE8AaAB2ADIAbwBiADIAawBQAEEANgBpADEAVgBRAFUAaQA4AEQASwB1AEsANAA4AGYAWgBIADcASQBKAGEAZQBxAHMAdwBFAD0AJgBwAD0A'; -$encData = 'mWAGiUaiYgHfsAeIJgLgiRDyjNbyIThm35CJYPrxVEh9HAeQmequNwXuWtOJFOlHv5yT96WmtFLTh7ubpLl9H3pO4F4eCmkNqI1rWQ+CRwCUg8s5IX/mWRN1xCN3vMIl8Smkunz7/+PJ63/or2AsuDPd+bjdU0lO4tSY94mbvqJgI5mnLuRPqHY3ad+QGXBx7ipPKTt5g+g='; +function uupDevice() { + return 'dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBHADcAVwBtAGUAWQBmAGkAdwAxAGMAdgByAEoAbwBvAGkAUQBzAFoAZABqAHEAawBQAEkARwA5AHUAVQBQAFcAMQB3ADMAQgBVAE8ALwBKAC8AdwBwAGUAcgBhAHQAZAB2AFgAQgB6AFkAbABaAHAAYgBzAHQANAB4AHkAbABHADcAQwBSADQANABBAFoARwB4AG4ARAAvAHIAYwBVAGoAdwBEAFAAVQBXAHkAMABPAEwAaABqAFAAZABWAEgAOQBVAFkATAA4AE0AVgBJAFIAbQA5ADEALwAwAGwATQBjAHUAMwBQAFMAOQB5AFoARwBFADIAZgBOAEcAWAA2AE8AbABrAFoAaABiAG0AbAB1AGsAdwBXAEsAdQBQAHcAcABGADQARQB5AFgAcgBTAHgALwBwAEsATgArAFoANgBOAEoAdQArAFYASwBqAFoANwBoADIAUgBBADIAWQBBAEEAQQBpAEUAWQBjADgAawBnAFoAYQBsAEgAWQBBAEIASwBIADEAZAAvAEoAZABEAFUAeAB5ADIAegBkAEoAMwA0AEIAbABYAGMAYwBsAFoANABJAE4ANQBuAHcAYQBLAE4AWgA3ADEAcQA4AEMAcQBVAFgAYwBQAGMAQgBjAGEAVQBXAFgAVgBGAEMASgBsAEEAegBTAGwAQQBtAHEALwBvAFQAQQBVAFcAYQBOAEgAWQBRADAAWQBNADEAVQAzAHEATAAvAFEAdQBhAEcAMgBuAE4AdQBvADYAVwBqAFEAcQBFAFgAYwBUAGMAWAA3AGMAdgAyAHEANABzADcAWgBpADkAWQB1ACsANwBYADAAeQA1AFgAeQAvAE4AbgBLAGUAeABRAHEAdwA3AG8AKwBjAGIAMwB1AGYAQQBFAEYAdABWAHAAawB3AGwAagBZAHYAZgBvADcAdQBwAFkANQBnAGEAdABlADUAWABwADkALwBoAFoAdQBYAFIANgAwAEoAMQBUAHEATQBGADYAVQBOAEIATQB6AC8ATABCAEMAUABPAEcAWABIAGkAWgBJAEUAZQBIAE8ASwBiAEIAUAB1AFAASwBZAGMAUQBUAFkAZwBIAEkARwA3AFIAegBnAGIAMAAzAGQARABrAFUANgByAHUASQA1AHQAYgBIAHoAaQBmAHoAVgBHAHAAVABGAGcANABrAEoAYgBQAHkARQBXAHcAcwBOAEMARgA4AFQATQBuAHAARABhAHcAeAAvAEUARgBUADcAeQBLAFQAQwBYAFkAbgBhADQASQBJAFAAMABtAFcAMABYADIAdABDAHEANgA1AEUASwBlAFkAcQBBAEYARQA1AEMASABmAFEAMQBvAHIAYgBBAGEASgBWAGkAaQBFAGsARQB3AEEANwBuADMAcgAxAFIAUQB1AHgARgBlAG4ARwBkAHgAdQByAFoAdwByADAAMABEADgATQBoAGwAUQAvAFcAYQBaAGwANgBvAFgAdgBkAHUATgBXAEIAZwBPAFMANgBLAGEARwBpAC8AYgBLADEAZwBWAEgAcABzAEcAcwBFAC8AQgA4AGkAbQBsAGYAcAAzAFEATQBWAGkAUABEAEgANgBhADMANQBCAGYAOABpAHkAMgAyAG4ASABQADAATgBIADkASwBEAHoAWAB5AGkAeABnAGsARQBlAGwAaABKAEcANgAyAHUAMgBjAFQAMgBmAFgAMQA0AEwAdwBSAFkATwArAGkAcgBWAGQAYwBqAEUAQgBoAGQASwA1ADQAYgBPAFcAdgBUAHcAbQBUAFMAVwBHAE8AaAB2ADIAbwBiADIAawBQAEEANgBpADEAVgBRAFUAaQA4AEQASwB1AEsANAA4AGYAWgBIADcASQBKAGEAZQBxAHMAdwBFAD0AJgBwAD0A'; +} + +function uupEncryptedData() { + return 'mWAGiUaiYgHfsAeIJgLgiRDyjNbyIThm35CJYPrxVEh9HAeQmequNwXuWtOJFOlHv5yT96WmtFLTh7ubpLl9H3pO4F4eCmkNqI1rWQ+CRwCUg8s5IX/mWRN1xCN3vMIl8Smkunz7/+PJ63/or2AsuDPd+bjdU0lO4tSY94mbvqJgI5mnLuRPqHY3ad+QGXBx7ipPKTt5g+g='; +} ?> diff --git a/shared/packs.php b/shared/packs.php index d5aa160..ac84841 100644 --- a/shared/packs.php +++ b/shared/packs.php @@ -250,4 +250,59 @@ $editionPacks = array( 'PROFESSIONAL' => 0, 'PROFESSIONALN' => 1, ); + +$fancyEditionNames = array( + 'CLOUD' => 'Windows 10 S', + 'CLOUDN' => 'Windows 10 S N', + 'CORE' => 'Windows 10 Home', + 'CORECOUNTRYSPECIFIC' => 'Windows 10 Home China', + 'COREN' => 'Windows 10 Home N', + 'CORESINGLELANGUAGE' => 'Windows 10 Home Single Language', + 'EDUCATION' => 'Windows 10 Education', + 'EDUCATIONN' => 'Windows 10 Education N', + 'ENTERPRISE' => 'Windows 10 Enterprise', + 'ENTERPRISEN' => 'Windows 10 Enterprise N', + 'PROFESSIONAL' => 'Windows 10 Pro', + 'PROFESSIONALN' => 'Windows 10 Pro N', +); + +$fancyLangNames = array( + 'ar-sa' => 'Arabic (Saudi Arabia)', + 'bg-bg' => 'Bulgarian', + 'cs-cz' => 'Czech', + 'da-dk' => 'Danish', + 'de-de' => 'German', + 'el-gr' => 'Greek', + 'en-gb' => 'English (United Kingdom)', + 'en-us' => 'English (United States)', + 'es-es' => 'Spanish (Spain)', + 'es-mx' => 'Spanish (Mexico)', + 'et-ee' => 'Estonian', + 'fi-fi' => 'Finnish', + 'fr-ca' => 'French (Canada)', + 'fr-fr' => 'French (France)', + 'he-il' => 'Hebrew', + 'hr-hr' => 'Croatian', + 'hu-hu' => 'Hungarian', + 'it-it' => 'Italian', + 'ja-jp' => 'Japanese', + 'ko-kr' => 'Korean', + 'lt-lt' => 'Lithuanian', + 'lv-lv' => 'Latvian', + 'nb-no' => 'Norwegian (Bokmal)', + 'nl-nl' => 'Dutch', + 'pl-pl' => 'Polish', + 'pt-br' => 'Portuguese (Brazil)', + 'pt-pt' => 'Portuguese (Portugal)', + 'ro-ro' => 'Romanian', + 'ru-ru' => 'Russian', + 'sk-sk' => 'Slovak', + 'sl-si' => 'Slovenian', + 'sv-se' => 'Swedish', + 'th-th' => 'Thai', + 'tr-tr' => 'Turkish', + 'uk-ua' => 'Ukrainian', + 'zh-cn' => 'Chinese (Simplified)', + 'zh-tw' => 'Chinese (Traditional)', +); ?>