version bump to 1.2.78.409

- fixes to the function for disabling file signature verification
- display a setting to enable exclusive mode for an output device
- enable list Private by default setting in desktop social settings
This commit is contained in:
amd64fox
2025-11-30 09:48:49 +03:00
parent b26febf64b
commit fcd40cbc48
34 changed files with 311 additions and 142 deletions

View File

@@ -579,7 +579,7 @@
"native_description": "Enable embedded display ads on NPV",
"version": {
"fr": "1.2.57",
"to": ""
"to": "1.2.77"
}
},
"EnhancedAdsClientDeconfliction": {
@@ -615,7 +615,7 @@
"native_description": "EWhen enabled, enhanced visibility logs will be sent for embedded ads",
"version": {
"fr": "1.2.63",
"to": ""
"to": "1.2.77"
}
},
"Hpto": {
@@ -660,7 +660,7 @@
"native_description": "Enable embedded ads fetching when canvas track is playing. Defaults to true since this is currently existing behavior",
"version": {
"fr": "1.2.72",
"to": ""
"to": "1.2.77"
}
},
"SponsoredPlaylistMockEndpoint": {
@@ -690,12 +690,47 @@
"to": ""
}
},
"AgeAssuranceSocial": {
"name": "enableAgeAssuranceSocial",
"description": "Enables the age assurance feature for social aspects (e.g., comments, friend feed)",
"native_description": "Enables the age assurance feature for social aspects (e.g., comments, friend feed)",
"AgeAssuranceFriendActivity": {
"name": "enableAgeAssuranceFriendActivity",
"version": {
"fr": "1.2.77",
"fr": "1.2.78",
"to": ""
}
},
"AgeAssuranceComments": {
"name": "enableAgeAssuranceComments",
"version": {
"fr": "1.2.78",
"to": ""
}
},
"AgeAssuranceProfileMenu": {
"name": "enableAgeAssuranceProfileMenu",
"version": {
"fr": "1.2.78",
"to": ""
}
},
"AgeAssuranceSettings": {
"name": "enableAgeAssuranceSettings",
"version": {
"fr": "1.2.78",
"to": ""
}
},
"UnderAgeBlockingModal": {
"name": "enableUnderAgeBlockingModal",
"native_description": "Enables the underage blocking modal for accounts in blocked/pending disabled state",
"version": {
"fr": "1.2.78",
"to": ""
}
},
"AdImpressionDoesNotIgnoreVisilibility": {
"name": "embeddedAdImpressionDoesNotIgnoreVisilibility",
"native_description": "If enabled, we do consider percent visibility when logging the display ad impression",
"version": {
"fr": "1.2.78",
"to": ""
}
}
@@ -1708,6 +1743,22 @@
"fr": "1.2.76",
"to": ""
}
},
"ExclusiveModeSetting": {
"name": "enableExclusiveModeSetting",
"native_description": "Display a setting to enable exclusive mode for an output device",
"version": {
"fr": "1.2.78",
"to": ""
}
},
"ListPrivateByDefaultSetting": {
"name": "enableListPrivateByDefaultSetting",
"native_description": "Enable List Private By Default setting in Desktop Social Settings",
"version": {
"fr": "1.2.78",
"to": ""
}
}
},
"CustomExp": {

332
run.ps1
View File

@@ -305,6 +305,26 @@ if ($psv -ge 7) {
# add Tls12
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12;
function Stop-Script {
param(
[string]$Message = ($lang).StopScript
)
Write-Host $Message
switch ($Host.Name) {
"Windows PowerShell ISE Host" {
pause
break
}
default {
Write-Host ($lang).PressAnyKey
[void][System.Console]::ReadKey($true)
break
}
}
Exit
}
function Get-Link {
param (
[Alias("e")]
@@ -382,7 +402,7 @@ if (!($version -and $version -match $match_v)) {
}
else {
# latest tested version for Win 10-12
$onlineFull = "1.2.77.358.g4339a634-545"
$onlineFull = "1.2.78.409.g6aead1f8-948"
}
}
else {
@@ -557,13 +577,11 @@ function downloadSp() {
$Error[0].Exception
Write-Host
Write-Host ($lang).Download4`n
($lang).StopScript
$tempDirectory = $PWD
Pop-Location
Start-Sleep -Milliseconds 200
Remove-Item -Recurse -LiteralPath $tempDirectory
Pause
Exit
Stop-Script
}
}
}
@@ -644,9 +662,7 @@ if ($win10 -or $win11 -or $win8_1 -or $win8 -or $win12) {
Get-AppxPackage -Name SpotifyAB.SpotifyMusic | Remove-AppxPackage
}
if ($ch -eq 'n') {
Read-Host ($lang).StopScript
Pause
Exit
Stop-Script
}
}
}
@@ -871,13 +887,11 @@ if ($spotifyInstalled) {
}
if ($ch -eq 'n') {
Write-Host ($lang).StopScript
$tempDirectory = $PWD
Pop-Location
Start-Sleep -Milliseconds 200
Remove-Item -Recurse -LiteralPath $tempDirectory
Pause
Exit
Stop-Script
}
}
}
@@ -1006,14 +1020,11 @@ $webjson = Get -Url (Get-Link -e "/patches/patches.json") -RetrySeconds 5
if ($webjson -eq $null) {
Write-Host
Write-Host "Failed to get patches.json" -ForegroundColor Red
Write-Host ($lang).StopScript
$tempDirectory = $PWD
Pop-Location
Start-Sleep -Milliseconds 200
Remove-Item -Recurse -LiteralPath $tempDirectory
Pause
Exit
Stop-Script
}
@@ -1679,114 +1690,201 @@ function Extract-WebpackModules {
}
function Reset-Dll-Sign {
param(
[Parameter(Mandatory = $true)]
param (
[string]$FilePath
)
# convert hex string to byte array
function ConvertTo-ByteArray {
param([string]$HexString)
return [byte[]]($HexString -split ' ' | ForEach-Object { [Convert]::ToByte($_, 16) })
$TargetStringText = "Check failed: sep_pos != std::wstring::npos."
$Patch_x64 = "B8 01 00 00 00 C3"
$Patch_ARM64 = "20 00 80 52 C0 03 5F D6"
$Patch_x64 = [byte[]]($Patch_x64 -split ' ' | ForEach-Object { [Convert]::ToByte($_, 16) })
$Patch_ARM64 = [byte[]]($Patch_ARM64 -split ' ' | ForEach-Object { [Convert]::ToByte($_, 16) })
$csharpCode = @"
using System;
using System.Collections.Generic;
public class ScannerCore {
public static int FindBytes(byte[] data, byte[] pattern) {
for (int i = 0; i < data.Length - pattern.Length; i++) {
bool match = true;
for (int j = 0; j < pattern.Length; j++) {
if (data[i + j] != pattern[j]) { match = false; break; }
}
if (match) return i;
}
return -1;
}
# byte patterns for x64 arch
# <= 1.2.77
$searchPattern_x64_old = '30 01 00 00 5B C3 CC CC 48 89 5C 24 18 55'
public static List<int> FindXref_ARM64(byte[] data, ulong stringRVA, ulong sectionRVA, uint sectionRawPtr, uint sectionSize) {
List<int> results = new List<int>();
for (uint i = 0; i < sectionSize; i += 4) {
uint fileOffset = sectionRawPtr + i;
if (fileOffset + 8 > data.Length) break;
uint inst1 = BitConverter.ToUInt32(data, (int)fileOffset);
# >= 1.2.78
$searchPattern_x64_new = '4A 01 CC CC CC 48 8B C4 48 89 58'
// ADRP
if ((inst1 & 0x9F000000) == 0x90000000) {
int rd = (int)(inst1 & 0x1F);
long immLo = (inst1 >> 29) & 3;
long immHi = (inst1 >> 5) & 0x7FFFF;
long imm = (immHi << 2) | immLo;
if ((imm & 0x100000) != 0) { imm |= unchecked((long)0xFFFFFFFFFFE00000); }
imm = imm << 12;
ulong pc = sectionRVA + i;
ulong pcPage = pc & 0xFFFFFFFFFFFFF000;
ulong page = (ulong)((long)pcPage + imm);
# common replace pattern for x64
$replacePattern_x64 = 'B8 01 00 00 00 C3'
$bytesToReplaceCount_x64 = 6
# byte patterns for ARM64 arch
$searchPattern_ARM64 = 'E0 03 13 AA FD 7B D3 A8 F3 07 41 F8 C0 03 5F D6 61 00 00 D4 00 00 00 00 FD 7B BA A9 F3 53 01 A9'
$replacePattern_ARM64 = '20 00 80 52 C0 03 5F D6'
$bytesToReplaceCount_ARM64 = 8
if (-not (Test-Path $FilePath -PathType Leaf)) {
Write-Error "File not found at path: $FilePath"
Write-Host ($lang).StopScript
Pause
Exit
}
$fileBytes = [System.IO.File]::ReadAllBytes($FilePath)
$peHeaderOffset = [System.BitConverter]::ToUInt32($fileBytes, 0x3C)
$fileHeaderOffset = $peHeaderOffset + 4
$archInfo = Get-PEArchitectureOffsets -bytes $fileBytes -fileHeaderOffset $fileHeaderOffset
if ($archInfo.Architecture -eq 'ARM64') {
$searchPattern = ConvertTo-ByteArray $searchPattern_ARM64
$replacePattern = ConvertTo-ByteArray $replacePattern_ARM64
$bytesToReplaceCount = $bytesToReplaceCount_ARM64
Write-Verbose "Using ARM64 byte patterns"
}
else {
$replacePattern = ConvertTo-ByteArray $replacePattern_x64
$bytesToReplaceCount = $bytesToReplaceCount_x64
if ([version]$offline -ge [version]'1.2.78.354') {
$searchPattern = ConvertTo-ByteArray $searchPattern_x64_new
Write-Verbose "Using new x64 byte patterns (>= 1.2.78)"
}
else {
$searchPattern = ConvertTo-ByteArray $searchPattern_x64_old
Write-Verbose "Using old x64 byte patterns (<= 1.2.77)"
uint inst2 = BitConverter.ToUInt32(data, (int)fileOffset + 4);
// ADD
if ((inst2 & 0xFF800000) == 0x91000000) {
int rn = (int)((inst2 >> 5) & 0x1F);
if (rn == rd) {
long imm12 = (inst2 >> 10) & 0xFFF;
ulong target = page + (ulong)imm12;
if (target == stringRVA) { results.Add((int)fileOffset); }
}
}
}
}
return results;
}
public static int FindStart(byte[] data, int startOffset, bool isArm) {
int step = isArm ? 4 : 1;
if (isArm && (startOffset % 4 != 0)) { startOffset -= (startOffset % 4); }
for (int i = startOffset; i > 0; i -= step) {
if (isArm) {
if (i < 4) break;
uint currInst = BitConverter.ToUInt32(data, i);
// ARM64 Prologue: STP X29, X30, [SP, -imm]! -> FD 7B .. A9
if ((currInst & 0xFF00FFFF) == 0xA9007BFD) { return i; }
} else {
// x64 Prologue: Padding 0xCC
if (data[i] != 0xCC && data[i-1] == 0xCC) return i;
}
if (startOffset - i > 20000) break;
}
return 0;
}
}
"@
if (-not ([System.Management.Automation.PSTypeName]'ScannerCore').Type) {
Add-Type -TypeDefinition $csharpCode
}
Write-Verbose "Loading file: $FilePath"
if (-not (Test-Path $FilePath)) {
Write-Warning "File Spotify.dll not found"
Stop-Script
}
$bytes = [System.IO.File]::ReadAllBytes($FilePath)
try {
Write-Verbose "Reading file..."
$fileBytes = [System.IO.File]::ReadAllBytes($FilePath)
Write-Verbose "File read. Size: $($fileBytes.Length) bytes."
$e_lfanew = [BitConverter]::ToInt32($bytes, 0x3C)
$Machine = [BitConverter]::ToUInt16($bytes, $e_lfanew + 4)
$IsArm64 = $false
$ArchName = "Unknown"
$offset = -1
$searchLimit = $fileBytes.Length - $searchPattern.Length
Write-Verbose "Searching for byte sequence..."
for ($i = 0; $i -le $searchLimit; $i++) {
$match = $true
for ($j = 0; $j -lt $searchPattern.Length; $j++) {
if ($fileBytes[$i + $j] -ne $searchPattern[$j]) {
$match = $false
break
}
}
if ($match) {
$offset = $i
break
}
if ($Machine -eq 0x8664) { $ArchName = "x64"; $IsArm64 = $false }
elseif ($Machine -eq 0xAA64) { $ArchName = "ARM64"; $IsArm64 = $true }
else {
Write-Warning "Architecture not supported for patching Spotify.dll"
Stop-Script
}
if ($offset -eq -1) {
Write-Warning "Required byte sequence not found for the signature reset patch"
Write-Warning "Spotify Version: $offline | Architecture: $($archInfo.Architecture)"
Write-Host ($lang).StopScript
Pause
Exit
Write-Verbose "Architecture: $ArchName"
$NumberOfSections = [BitConverter]::ToUInt16($bytes, $e_lfanew + 0x06)
$SizeOfOptionalHeader = [BitConverter]::ToUInt16($bytes, $e_lfanew + 0x14)
$SectionTableStart = $e_lfanew + 0x18 + $SizeOfOptionalHeader
$Sections = @(); $CodeSection = $null
for ($i = 0; $i -lt $NumberOfSections; $i++) {
$secEntry = $SectionTableStart + ($i * 40)
$VA = [BitConverter]::ToUInt32($bytes, $secEntry + 12)
$RawSize = [BitConverter]::ToUInt32($bytes, $secEntry + 16)
$RawPtr = [BitConverter]::ToUInt32($bytes, $secEntry + 20)
$Chars = [BitConverter]::ToUInt32($bytes, $secEntry + 36)
$SecObj = [PSCustomObject]@{ VA = $VA; RawPtr = $RawPtr; RawSize = $RawSize }
$Sections += $SecObj
if (($Chars -band 0x20) -ne 0 -and $CodeSection -eq $null) { $CodeSection = $SecObj }
}
Write-Verbose "Sequence found at offset: 0x$($offset.ToString('X'))"
$patchOffset = $offset + ($searchPattern.Length - $bytesToReplaceCount)
Write-Verbose "Applying patch at offset: 0x$($patchOffset.ToString('X'))"
for ($i = 0; $i -lt $replacePattern.Length; $i++) {
$fileBytes[$patchOffset + $i] = $replacePattern[$i]
}
Write-Verbose "Writing patched file..."
[System.IO.File]::WriteAllBytes($FilePath, $fileBytes)
}
catch {
Write-Error "An error occurred: $_"
Write-Host ($lang).StopScript
Pause
Exit
Write-Warning "PE Error in Spotify.dll"
Stop-Script
}
function Get-RVA($FileOffset) {
foreach ($sec in $Sections) {
if ($FileOffset -ge $sec.RawPtr -and $FileOffset -lt ($sec.RawPtr + $sec.RawSize)) {
return ($FileOffset - $sec.RawPtr) + $sec.VA
}
}
return 0
}
Write-Verbose "Searching for function..."
$StringBytes = [System.Text.Encoding]::ASCII.GetBytes($TargetStringText)
$StringOffset = [ScannerCore]::FindBytes($bytes, $StringBytes)
if ($StringOffset -eq -1) {
Write-Warning "String not found in Spotify.dll"
Stop-Script
}
$StringRVA = Get-RVA $StringOffset
$PatchOffset = 0
if (-not $IsArm64) {
$RawStart = $CodeSection.RawPtr; $RawEnd = $RawStart + $CodeSection.RawSize
for ($i = $RawStart; $i -lt $RawEnd; $i++) {
if ($bytes[$i] -eq 0x48 -and $bytes[$i + 1] -eq 0x8D -and $bytes[$i + 2] -eq 0x15) {
$Rel = [BitConverter]::ToInt32($bytes, $i + 3)
$Target = (Get-RVA $i) + 7 + $Rel
if ($Target -eq $StringRVA) {
$PatchOffset = [ScannerCore]::FindStart($bytes, $i, $false); break
}
}
}
}
else {
$Results = [ScannerCore]::FindXref_ARM64($bytes, [uint64]$StringRVA, [uint64]$CodeSection.VA, [uint32]$CodeSection.RawPtr, [uint32]$CodeSection.RawSize)
if ($Results.Count -gt 0) {
$PatchOffset = [ScannerCore]::FindStart($bytes, $Results[0], $true)
}
}
if ($PatchOffset -eq 0) {
Write-Warning "Function not found in Spotify.dll"
Stop-Script
}
$BytesToWrite = if ($IsArm64) { $Patch_ARM64 } else { $Patch_x64 }
$CurrentBytes = @(); for ($i = 0; $i -lt $BytesToWrite.Length; $i++) { $CurrentBytes += $bytes[$PatchOffset + $i] }
$FoundHex = ($CurrentBytes | ForEach-Object { $_.ToString("X2") }) -join " "
Write-Verbose "Found (Offset: 0x$($PatchOffset.ToString("X"))): $FoundHex"
if ($CurrentBytes[0] -eq $BytesToWrite[0] -and $CurrentBytes[$BytesToWrite.Length - 1] -eq $BytesToWrite[$BytesToWrite.Length - 1]) {
Write-Warning "File Spotify.dll already patched"
return
}
Write-Verbose "Applying patch..."
for ($i = 0; $i -lt $BytesToWrite.Length; $i++) { $bytes[$PatchOffset + $i] = $BytesToWrite[$i] }
try {
[System.IO.File]::WriteAllBytes($FilePath, $bytes)
Write-Verbose "Success"
}
catch {
Write-Warning "Write error in Spotify.dll $($_.Exception.Message)"
Stop-Script
}
}
@@ -1852,9 +1950,7 @@ function Remove-Signature-FromFiles([string[]]$fileNames) {
$fullPath = Join-Path -Path $spotifyDirectory -ChildPath $fileName
if (-not (Test-Path $fullPath)) {
Write-Error "File not found: $fullPath"
Write-Host ($lang).StopScript
Pause
Exit
Stop-Script
}
try {
Write-Verbose "Processing file: $fileName"
@@ -1864,9 +1960,7 @@ function Remove-Signature-FromFiles([string[]]$fileNames) {
}
catch {
Write-Error "Failed to process file '$fileName': $_"
Write-Host ($lang).StopScript
Pause
Exit
Stop-Script
}
}
}
@@ -1943,9 +2037,7 @@ $test_js = Test-Path -Path $xpui_js_patch
if ($test_spa -and $test_js) {
Write-Host ($lang).Error -ForegroundColor Red
Write-Host ($lang).FileLocBroken
Write-Host ($lang).StopScript
pause
Exit
Stop-Script
}
if ($test_js) {
@@ -1962,16 +2054,12 @@ if ($test_js) {
Start-Process $Url
}
Write-Host ($lang).StopScript
Pause
Exit
Stop-Script
}
if (!($test_js) -and !($test_spa)) {
Write-Host "xpui.spa not found, reinstall Spotify"
Write-Host ($lang).StopScript
Pause
Exit
Stop-Script
}
if ($test_spa) {
@@ -2027,9 +2115,7 @@ if ($test_spa) {
}
if (-not $v8_snapshot -and $null -eq $xpuiJsEntry) {
Write-Warning "v8_context_snapshot file not found, cannot create xpui.js"
Write-Host ($lang).StopScript
Pause
Exit
Stop-Script
}
}

View File

@@ -46,4 +46,5 @@
HostBak = "Рэзервовае капіраванне hosts.bak..."
HostDel = "Спроба выдаліць непажаданыя URL-адрасы з арыгінальнага файла hosts..."
HostError = "Нешта пайшло не так пры рэдагаванні файла hosts, адрэдагуйце яго ўручную або запусціце сцэнарый ад імя адміністратара"
PressAnyKey = "Націсніце любую клавішу, каб выйсці..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "hosts.bak ফাইলটি ব্যাকআপ রাখা হয়েছে..."
HostDel = "অরিজিনাল হোস্ট ফাইল থেকে অপ্রত্যাশিত ইউআরএল মুছে ফেলার চেষ্টা করা হচ্ছে..."
HostError = "হোস্ট ফাইল মুছে ফেলার সময় কিছু একটা সমস্যা হয়েছে, এটি ম্যানুয়ালি সম্পাদন করুন অথবা এডমিনিস্ট্রেটর হিসেবে স্ক্রিপ্টটি রান করুন"
PressAnyKey = "Press any key to exit..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Zálohuji soubor hosts.bak..."
HostDel = "Pokouším se odebrat nechtěné URL adresy z originálního souboru hosts..."
HostError = "Něco se nepovedlo s úpravou souboru hosts, upravte ho manuálně nebo spusťte skript jako"
PressAnyKey = "Stiskněte libovolnou klávesu pro ukončení..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Sichere hosts.bak..."
HostDel = "Versuche, unerwünschte URLs von der originalen hosts-Datei zu entfernen..."
HostError = "Beim Bearbeiten der hosts-Datei ist etwas schief gelaufen, bearbeiten Sie sie manuell oder führen Sie die Installation als Administrator aus"
PressAnyKey = "Drücken Sie eine beliebige Taste zum Beenden..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Δημιουργείται αντίγραφο ασφαλείας hosts.bak..."
HostDel = "Προσπάθεια κατάργησης ανεπιθύμητων διευθύνσεων URL από το αρχικό αρχείο hosts..."
HostError = "Παρουσιάστηκε κάποιο πρόβλημα κατά την επεξεργασία του αρχείου hosts, επεξεργαστείτε το χειροκίνητα ή εκτελέστε το script ως διαχειριστής"
PressAnyKey = "Πατήστε οποιοδήποτε πλήκτρο για έξοδο..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Backing up hosts.bak..."
HostDel = "Trying to remove unwanted URLs from the original hosts file..."
HostError = "Something went wrong while editing the hosts file, edit it manually or run the script as administrator"
PressAnyKey = "Press any key to exit..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Haciendo una copia de seguridad de hosts.bak..."
HostDel = "Intentando eliminar los URL no deseados del archivo hosts original..."
HostError = "Algo salió mal al editar el archivo hosts; edítelo manualmente o ejecute el script como administrador"
PressAnyKey = "Presione cualquier tecla para salir..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "پشتیبان گیری از hosts.bak"
HostDel = "تلاش برای حذف URL های ناخواسته از فایل میزبان اصلی"
HostError = "هنگام ویرایش فایل میزبان مشکلی پیش آمد، آن را به صورت دستی ویرایش کنید یا اسکریپت را صورت ادمینستریتور اجرا کنید"
PressAnyKey = "برای خروج هر کلیدی را فشار دهید..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Varmuuskopioidaan hosts.bak..."
HostDel = "Yritetään poistaa ei toivottuja URL-osoitteita alkuperäisestä hosts-tiedostosta..."
HostError = "Jotain meni pieleen, hosts-tiedostoton muokkaamisessa, muokkaa sitä manuaalisesti tai suorita komentosarja järjestelmänvalvojana"
PressAnyKey = "Paina mitä tahansa näppäintä poistuaksesi..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Nagbabackup ng hosts.bak..."
HostDel = "Sinusubukang alisin ang mga hindi kanais-nais na URL mula sa orihinal na hosts file..."
HostError = "May naging problema sa pag-eedit ng hosts file, i-edit ito ng manu-mano o patakbuhin ang script bilang administrator"
PressAnyKey = "Pindutin ang anumang key upang lumabas..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Sauvegarde de hosts.bak..."
HostDel = "Tentative de suppression des URLs indésirables du fichier hosts original..."
HostError = "Quelque chose ne s'est pas bien passé lors de l'édition du fichier hosts, modifiez le manuellement ou lancez le script en tant qu'administrateur"
PressAnyKey = "Appuyez sur n'importe quelle touche pour quitter..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "hosts.bak का बैकअप बनाया जा रहा है..."
HostDel = "ओरिजिनल hosts फ़ाइल से गैर-जरूरी URLs को हटाने की कोशिश की जा रही है..."
HostError = "hosts फ़ाइल को एडिट करते समय कोई समस्या हुई है। कृपया इसे मैनुअली एडिट करें या स्क्रिप्ट को एडमिनिस्ट्रेटर के रूप में चलाएँ"
PressAnyKey = "Press any key to exit..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "A hosts.bak mentése..."
HostDel = "A nem kívánt URL-ek eltávolítása az eredeti hosts fájlból..."
HostError = "Valami hiba történt a hosts fájl szerkesztése közben, szerkeszd meg manuálisan, vagy futtasd a szkriptet rendszergazdaként."
PressAnyKey = "Nyomjon meg egy gombot a kilépéshez..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Membuat cadangan hosts.bak..."
HostDel = "Mencoba menghapus URL yang tidak diinginkan dari file hosts asli..."
HostError = "Ada yang salah saat mengedit file hosts, edit manual atau jalankan skrip sebagai administrator"
PressAnyKey = "Tekan sembarang tombol untuk keluar..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Backup di hosts.bak in corso..."
HostDel = "Provo a rimuovere URL non desiderati dal file hosts originale..."
HostError = "Qualcosa è andato storto durante la modifica del file hosts, modificalo manualmente o fai partire lo script come amministratore"
PressAnyKey = "Premi un tasto qualsiasi per uscire..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "hosts.bak にバックアップ中..."
HostDel = "元の hosts から望まない URL を削除中..."
HostError = "hosts ファイルの編集中に不明の問題が発生、手動で編集するか、管理者としてスクリプトを実行してください"
PressAnyKey = "終了するには何かキーを押してください..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "იქმნება hosts.bak-ის სარევეზნო ასლი..."
HostDel = "ვცდილობთ რომ ამოვიღოთ არასასურველი URL-ები ორიგინალური მასპინძელის ფაილიდან..."
HostError = "რაღაც შეცდომა მოხდა მასპინძელის ფაილის რედაქტირებისას, დაარედაქტირეთ ის ხელით ან გაუშვით სკრიპტი ადმინისტრატორის სახით"
PressAnyKey = "დააჭირეთ ნებისმიერ ღილაკს გასასვლელად..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "hosts.bak 백업 파일을 생성하는 중..."
HostDel = "원본 hosts 파일에서 불필요한 URL 제거를 시도하는 중..."
HostError = "파일을 수정하는 데 오류가 발생했습니다, 직접 수정하거나 이 스크립트를 관리자 권한으로 실행해주세요"
PressAnyKey = "종료하려면 아무 키나 누르십시오..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Dublē hosts.bak ..."
HostDel = "Mēģina noņemt nevēlamus URL no sākotnējā hosts faila..."
HostError = "Kaut kas greizi aizgāja rediģējot hosts failu, rediģējiet to manuāli vai palaidiet skriptu ar administratora privilēģijām"
PressAnyKey = "Nospiediet jebkuru taustiņu, lai izietu..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Tworzenie kopii zapasowej pliku hosts.bak..."
HostDel = "Próba usunięcia niechcianych adresów URL z oryginalnego pliku hosts..."
HostError = "Coś poszło nie tak podczas edycji pliku hosts, edytuj go ręcznie lub uruchom skrypt jako administrator"
PressAnyKey = "Naciśnij dowolny klawisz, aby wyjść..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Fazendo backup de hosts.bak..."
HostDel = "Tentando remover URLs indesejados do arquivo hosts original..."
HostError = "Algo deu errado ao editar o arquivo hosts, edite-o manualmente ou execute o script como Administrador"
PressAnyKey = "Pressione qualquer tecla para sair..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Se efectuează o copie de siguranță a fișierului hosts.bak..."
HostDel = "Se încearcă eliminarea URL-urilor nedorite din fișierul original hosts..."
HostError = "Ceva nu a mers bine in timpul editării fișierului hosts, editează-l manual sau rulează scriptul ca Administrator."
PressAnyKey = "Apăsați orice tastă pentru a ieși..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Создаю резервную копию hosts.bak..."
HostDel = "Попытка удалить нежелательные Url-адреса из оригинального файла hosts..."
HostError = "Что-то пошло не так при редактировании файла hosts, отредактируйте его вручную или запустите скрипт от администратора"
PressAnyKey = "Нажмите любую клавишу для выхода..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Zálohujem súbor hosts.bak..."
HostDel = "Pokúšam sa odobrať nechcené URLs z originálneho hosts súboru..."
HostError = "Niečo sa nepodarilo s upravovaním súboru hosts, uprav ho manuálne alebo spusti skript ako administrátor"
PressAnyKey = "Stlačte ľubovoľnú klávesu pre ukončenie..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Прављење резервне копије hosts.bak..."
HostDel = "Покушавамо да уклонимо нежељене URL-ове из оригиналног фајла hosts..."
HostError = "Нешто је пошло наопако током уређивања фајла hosts, уредите га ручно или покрените скрипту као администратор"
PressAnyKey = "Press any key to exit..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Backar upp hosts.bak..."
HostDel = "Försöker ta bort oönskade webbadresser från den ursprungliga hosts filen..."
HostError = "Något gick fel vid redigering av hosts filen, redigera den manuellt eller kör skriptet som administratör"
PressAnyKey = "Tryck på valfri tangent för att avsluta..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "hosts.bak காப்புப்பிரதி..."
HostDel = "Original host filesலிருந்து தேவையற்ற URL களை அகற்ற முயற்சிக்கிறது ..."
HostError = "Hosts Filesயைத் திருத்தும் போது ஏதோ தவறு ஏற்பட்டது, அதை manualலாக திருத்தவும் அல்லது Scriptயை administratorராக இயக்கவும்"
PressAnyKey = "Press any key to exit..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "hosts.bak dosyası yedekleniyor...."
HostDel = "Orijinal hosts dosyasından istenmeyen URL'ler kaldırılmaya çalışılıyor..."
HostError = "Hosts dosyasını düzenlerken bir şeyler ters gitti, elle düzenleyin veya kodu yönetici olarak çalıştırın"
PressAnyKey = "Çıkmak için herhangi bir tuşa basın..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Бекап hosts.bak..."
HostDel = "Спроба прибрати небажані посилання з оригінального файлу hosts..."
HostError = "Щось пішло не так під час редагування файлу hosts, змініть його вручну, або спробуйте запустити скрипт від імені адміністратора"
PressAnyKey = "Натисніть будь-яку клавішу, щоб вийти..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "Đang sao lưu hosts.bak..."
HostDel = "Đang xóa các URL không cần thiết khỏi tệp hosts..."
HostError = "Xảy ra lỗi khi đang chỉnh sửa tệp hosts. Hãy tự sửa hoặc chạy tệp này với tư cách quản trị viên"
PressAnyKey = "Nhấn phím bất kỳ để thoát..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "正在備份 hosts.bak..."
HostDel = "正在嘗試從原始 hosts 檔案中刪除不需要的網址..."
HostError = "在編輯 hosts 檔案時發生了錯誤,請手動編輯或以系統管理員身分執行腳本"
PressAnyKey = "按任意鍵退出..."
}

View File

@@ -46,4 +46,5 @@
HostBak = "备份原始 hosts 文件为 hosts.bak..."
HostDel = "正在试图从原始 hosts 文件中删除不需要的 URL..."
HostError = "在编辑 hosts 文件时发生了错误,请手动编辑或以管理员身份重新运行该脚本。"
PressAnyKey = "按任意键退出..."
}