diff --git a/autodl_files/converter_multi b/autodl_files/converter_multi new file mode 100644 index 0000000..a3025e3 --- /dev/null +++ b/autodl_files/converter_multi @@ -0,0 +1,7 @@ +https://git.uupdump.net/uup-dump/converter/raw/commit/7b507c6c99afcf4cff59adcdf51cdb75159bd548/convert.sh + out=convert.sh + checksum=sha-256=689ba88620ae9e49d370341422ece227fd3f08014a0b6f3e302e9528648ff4ab + +https://git.uupdump.net/uup-dump/converter/raw/commit/7b507c6c99afcf4cff59adcdf51cdb75159bd548/convert_ve_plugin + out=convert_ve_plugin + checksum=sha-256=02db2f5f2caf742daa6aeaa189d9af27775e8457db48fadd8d71bb1be5982eae diff --git a/autodl_files/depends_win.ps1 b/autodl_files/depends_win.ps1 new file mode 100644 index 0000000..63ee168 --- /dev/null +++ b/autodl_files/depends_win.ps1 @@ -0,0 +1,91 @@ +<# +This was made because I refuse to continue taking part in the unwritten +PowerShell/Batch obfuscation contest. +#> + +param ( + [Parameter()] + [Switch]$ForDownload +) + +<# +There are myths that some Windows versions do not work without this. + +Since I can't be arsed to verify this, I'm just adding this to lower the number +of reports to which I would normally respond with "works on my machine". +#> +try { + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +} catch { + Write-Error "Outdated operating systems are not supported." + Exit 1 +} + +$filesDownload = @('aria2c.exe') +$filesConvert = @('aria2c.exe', '7zr.exe', 'uup-converter-wimlib.7z') + +$urls = @{ + 'aria2c.exe' = 'https://uupdump.net/misc/aria2c.exe'; + '7zr.exe' = 'https://uupdump.net/misc/7zr.exe'; + 'uup-converter-wimlib.7z' = 'https://uupdump.net/misc/uup-converter-wimlib.7z'; +} + +$hashes = @{ + 'aria2c.exe' = '0ae98794b3523634b0af362d6f8c04a9bbd32aeda959b72ca0e7fc24e84d2a66'; + '7zr.exe' = '108ab5f1e36f2068e368fe97cd763c639e403cac8f511c6681eaf19fc585d814'; + 'uup-converter-wimlib.7z' = '7f07dfc0fa041820746c55c2704fd18f8930b984ca472d2ac397a1c69f15f3af'; +} + +function Retrieve-File { + param ( + [String]$File, + [String]$Url + ) + + Write-Host -BackgroundColor Black -ForegroundColor Yellow "Downloading ${File}..." + Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile "files\$File" -ErrorAction Stop +} + +function Test-Hash { + param ( + [String]$File, + [String]$Hash + ) + + Write-Host -BackgroundColor Black -ForegroundColor Cyan "Verifying ${File}..." + + $fileHash = (Get-FileHash -Path "files\$File" -Algorithm SHA256 -ErrorAction Stop).Hash + return ($fileHash.ToLower() -eq $Hash) +} + +if($ForDownload.IsPresent) { + $files = $filesDownload +} else { + $files = $filesConvert +} + +if(-not (Test-Path -PathType Container -Path "files")) { + $null = New-Item -Path "files" -ItemType Directory +} + +foreach($file in $files) { + try { + Retrieve-File -File $file -Url $urls[$file] + } catch { + Write-Host "Failed to download $file" + Write-Host $_ + Exit 1 + } +} + +Write-Host "" + +foreach($file in $files) { + if(-not (Test-Hash -File $file -Hash $hashes[$file])) { + Write-Error "$file appears to be tampered with" + Exit 1 + } +} + +Write-Host "" +Write-Host -BackgroundColor Black -ForegroundColor Green "It appears all the dependencies are ready." diff --git a/autodl_files/readme.unix.md b/autodl_files/readme.unix.md new file mode 100644 index 0000000..365dbe5 --- /dev/null +++ b/autodl_files/readme.unix.md @@ -0,0 +1,34 @@ +Multiplatform UUP converter requirements +======================================== +The script requires the following applications: + * cabextract - to extract cabs + * wimlib-imagex - to export files from metadata ESD + * chntpw - to modify registry of first index of boot.wim + * genisoimage or mkisofs - to create ISO image + +Linux +----- +If you use Debian or Ubuntu based distribution you can install these using +the following command: + +```bash +sudo apt-get install cabextract wimtools chntpw genisoimage +``` + +If you use Arch Linux you can also install these using the following command: +```bash +sudo pacman -S cabextract wimlib chntpw cdrtools +``` + +If you use any other distribution, you'll need to check its repository for the +appropriate packages. + +macOS +----- +macOS requires [Homebrew](https://brew.sh) to install the prerequisite software. +After Homebrew was installed, you can install the requirements using: + +```bash +brew tap sidneys/homebrew +brew install cabextract wimlib cdrtools sidneys/homebrew/chntpw +```