# eBesucher Addon Installer for Windows # Laedt Firefox ESR Addon herunter und startet Firefox mit vorkonfiguriertem Profil # # Ausfuehrung: # powershell -ExecutionPolicy Bypass -File install-addon-windows.ps1 # Oder als Einzeiler: # powershell -c "irm https://ebesucher.de/addon/install.ps1 | iex" $ErrorActionPreference = "Stop" # Konfiguration $EBESUCHER_DIR = "$env:LOCALAPPDATA\eBesucher" $PROFILE_DIR = "$EBESUCHER_DIR\firefox-profile" $ADDON_PATH = "$EBESUCHER_DIR\ebesucher-addon.xpi" $ADDON_URL = "https://ebesucher.de/addon/download" $ETAG_FILE = "$EBESUCHER_DIR\.addon-etag" # Firefox ESR Pfade (Standard-Installationsorte) $FIREFOX_PATHS = @( "$env:ProgramFiles\Mozilla Firefox\firefox.exe", "${env:ProgramFiles(x86)}\Mozilla Firefox\firefox.exe", "$env:LOCALAPPDATA\Mozilla Firefox\firefox.exe" ) function Write-Status($message) { Write-Host "[eBesucher] " -ForegroundColor Cyan -NoNewline Write-Host $message } function Write-Error-Message($message) { Write-Host "[FEHLER] " -ForegroundColor Red -NoNewline Write-Host $message } function Write-Success($message) { Write-Host "[OK] " -ForegroundColor Green -NoNewline Write-Host $message } # 1. Verzeichnisse erstellen Write-Status "Pruefe eBesucher Verzeichnis..." if (-not (Test-Path $EBESUCHER_DIR)) { New-Item -ItemType Directory -Path $EBESUCHER_DIR -Force | Out-Null Write-Success "Verzeichnis erstellt: $EBESUCHER_DIR" } # 2. Firefox ESR finden oder installieren Write-Status "Suche Firefox..." $firefoxPath = $null foreach ($path in $FIREFOX_PATHS) { if (Test-Path $path) { $firefoxPath = $path break } } if (-not $firefoxPath) { Write-Status "Firefox nicht gefunden - starte automatische Installation..." # Pruefe ob winget verfuegbar ist (Windows 10/11) $wingetAvailable = Get-Command winget -ErrorAction SilentlyContinue if ($wingetAvailable) { Write-Status "Installiere Firefox ESR via Windows Package Manager..." try { # Installiere Firefox ESR silent winget install Mozilla.Firefox.ESR --silent --accept-package-agreements --accept-source-agreements # Warte kurz und suche erneut Start-Sleep -Seconds 3 foreach ($path in $FIREFOX_PATHS) { if (Test-Path $path) { $firefoxPath = $path break } } if ($firefoxPath) { Write-Success "Firefox ESR erfolgreich installiert!" } } catch { Write-Error-Message "Automatische Installation fehlgeschlagen: $_" } } # Falls immer noch nicht gefunden, manuelle Installation anbieten if (-not $firefoxPath) { Write-Host "" Write-Host "Firefox konnte nicht automatisch installiert werden." -ForegroundColor Yellow Write-Host "Bitte installiere Firefox ESR manuell von:" -ForegroundColor Yellow Write-Host "https://www.mozilla.org/de/firefox/enterprise/" -ForegroundColor Cyan Write-Host "" # Oeffne Browser mit Download-Seite Start-Process "https://www.mozilla.org/de/firefox/enterprise/" Write-Host "Nach der Installation, fuehre dieses Script erneut aus." -ForegroundColor Yellow Read-Host "Druecke Enter zum Beenden" exit 1 } } Write-Success "Firefox gefunden: $firefoxPath" # 3. Addon herunterladen (nur wenn noetig) Write-Status "Pruefe Addon-Version..." $needsDownload = $true $currentVersion = "" # Pruefe ob Addon existiert und hole Server-Version (ETag oder Last-Modified) if (Test-Path $ADDON_PATH) { try { $response = Invoke-WebRequest -Uri $ADDON_URL -Method Head -UseBasicParsing $serverEtag = $response.Headers["ETag"] $serverLastModified = $response.Headers["Last-Modified"] # Verwende ETag wenn verfuegbar, sonst Last-Modified $serverVersion = if ($serverEtag) { $serverEtag } else { $serverLastModified } if ((Test-Path $ETAG_FILE) -and $serverVersion) { $localVersion = Get-Content $ETAG_FILE -ErrorAction SilentlyContinue if ($localVersion -eq $serverVersion) { $needsDownload = $false Write-Success "Addon ist aktuell" } else { Write-Status "Neue Version verfuegbar" } } $currentVersion = $serverVersion } catch { Write-Status "Konnte Version nicht pruefen, lade herunter..." } } if ($needsDownload) { Write-Status "Lade Addon herunter..." try { Invoke-WebRequest -Uri $ADDON_URL -OutFile $ADDON_PATH -UseBasicParsing # Speichere Version (ETag oder Last-Modified) fuer zukuenftige Pruefung if ($currentVersion) { $currentVersion | Out-File $ETAG_FILE -NoNewline } Write-Success "Addon heruntergeladen" } catch { Write-Error-Message "Download fehlgeschlagen: $_" exit 1 } } # 4. Firefox-Profil erstellen/konfigurieren Write-Status "Konfiguriere Firefox-Profil..." if (-not (Test-Path $PROFILE_DIR)) { New-Item -ItemType Directory -Path $PROFILE_DIR -Force | Out-Null } # user.js mit Konfiguration erstellen $userJs = @" // ============================================================ // eBesucher Firefox ESR Profil Konfiguration // Optimiert fuer Surfbar: Werbung, Videos, Drittanbieter-Content // Automatisch generiert - nicht manuell bearbeiten // ============================================================ // === UNSIGNED ADDONS (nur Firefox ESR) === user_pref("xpinstall.signatures.required", false); user_pref("extensions.autoDisableScopes", 0); user_pref("extensions.enabledScopes", 15); // === COOKIES: Alle Drittanbieter-Cookies erlauben === user_pref("network.cookie.cookieBehavior", 0); // 0 = Alle Cookies erlauben user_pref("network.cookie.thirdparty.sessionOnly", false); user_pref("network.cookie.thirdparty.nonsecureSessionOnly", false); user_pref("privacy.firstparty.isolate", false); // Keine Cookie-Isolation // === AUTOPLAY: Videos und Audio automatisch abspielen === user_pref("media.autoplay.default", 0); // 0 = Alles erlauben user_pref("media.autoplay.blocking_policy", 0); // Erlauben nach Interaktion user_pref("media.autoplay.allow-extension-background-pages", true); user_pref("media.autoplay.block-event.enabled", false); // === TRACKING PROTECTION: Komplett deaktiviert === user_pref("privacy.trackingprotection.enabled", false); user_pref("privacy.trackingprotection.pbmode.enabled", false); user_pref("privacy.trackingprotection.socialtracking.enabled", false); user_pref("privacy.trackingprotection.cryptomining.enabled", false); user_pref("privacy.trackingprotection.fingerprinting.enabled", false); user_pref("browser.contentblocking.category", "custom"); user_pref("privacy.annotate_channels.strict_list.enabled", false); // === ENHANCED TRACKING PROTECTION: Deaktiviert === user_pref("browser.contentblocking.enabled", false); user_pref("privacy.socialtracking.block_cookies.enabled", false); user_pref("privacy.partition.network_state.ocsp_cache", false); // === POPUPS: Fuer Werbung erlauben === user_pref("dom.disable_open_during_load", false); user_pref("dom.popup_allowed_events", "change click dblclick auxclick mousedown mouseup pointerdown pointerup notificationclick reset submit touchend contextmenu"); // === MIXED CONTENT: HTTP in HTTPS erlauben (aeltere Werbeseiten) === user_pref("security.mixed_content.block_active_content", false); user_pref("security.mixed_content.block_display_content", false); // === REFERRER: Nicht senden (Privatsphaere) === user_pref("network.http.referer.XOriginPolicy", 2); // 2 = Nur same-origin (kein cross-site Referrer) user_pref("network.http.referer.XOriginTrimmingPolicy", 2); // 2 = Nur Origin senden user_pref("network.http.sendRefererHeader", 0); // 0 = Nie senden // === CACHE & PERFORMANCE === user_pref("browser.cache.disk.enable", true); user_pref("browser.cache.memory.enable", true); // === DIVERSES: Keine Warnungen/Popups === user_pref("browser.shell.checkDefaultBrowser", false); user_pref("datareporting.policy.dataSubmissionEnabled", false); user_pref("browser.tabs.warnOnClose", false); user_pref("browser.tabs.warnOnCloseOtherTabs", false); user_pref("browser.warnOnQuit", false); user_pref("toolkit.telemetry.enabled", false); user_pref("toolkit.telemetry.unified", false); // === SAFE BROWSING: Deaktiviert (Performance) === user_pref("browser.safebrowsing.malware.enabled", false); user_pref("browser.safebrowsing.phishing.enabled", false); user_pref("browser.safebrowsing.downloads.enabled", false); "@ $userJs | Out-File "$PROFILE_DIR\user.js" -Encoding UTF8 Write-Success "Profil konfiguriert" # 5. Addon in Extensions-Ordner kopieren Write-Status "Installiere Addon im Profil..." $extensionsDir = "$PROFILE_DIR\extensions" if (-not (Test-Path $extensionsDir)) { New-Item -ItemType Directory -Path $extensionsDir -Force | Out-Null } # Kopiere XPI (wird beim Start automatisch installiert) # Firefox erwartet die Datei mit der Addon-ID als Namen # Addon-ID aus manifest.json: {583c5e82-fece-4d52-a1bc-8d633c5ae130} Copy-Item $ADDON_PATH "$extensionsDir\{583c5e82-fece-4d52-a1bc-8d633c5ae130}.xpi" -Force Write-Success "Addon installiert" # 6. Firefox starten Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host " eBesucher Addon erfolgreich eingerichtet!" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Cyan Write-Host "" Write-Status "Starte Firefox ESR..." Write-Host "" # Starte Firefox mit dem eBesucher-Profil und oeffne Guide-Seite Start-Process -FilePath $firefoxPath -ArgumentList "-profile", "`"$PROFILE_DIR`"", "https://www.ebesucher.de/geld-verdienen-guide" Write-Host "Firefox wurde gestartet." -ForegroundColor Green Write-Host "" Write-Host "WICHTIG: Beim ersten Start musst du das Addon" -ForegroundColor Yellow Write-Host "moeglicherweise noch manuell aktivieren:" -ForegroundColor Yellow Write-Host " 1. Gehe zu about:addons" -ForegroundColor White Write-Host " 2. Klicke auf 'eBesucher Addon'" -ForegroundColor White Write-Host " 3. Aktiviere das Addon" -ForegroundColor White Write-Host ""