RebreakVpnService.onStartCommand crashed with SecurityException because Android 16's validateForegroundServiceType rejects the implicit 2-arg startForeground(). Now passes FOREGROUND_SERVICE_TYPE_SPECIAL_USE explicitly (Google's documented best practice) and guards the call so a failed foreground promotion stops the service cleanly instead of crashing the app. Verified vs reported Galaxy A54 / Android 16 signature (97% of crash events, 1-user crash loop). Bundles pending working-tree work across native/marketing/locales/mac + graphify-out rebuild. gitignore: google-services.json + /screenshots/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.8 KiB
5.8 KiB
Session-Handoff 2026-06-07 (Windows-Schutz + Mac-DNS + Marketing-Nav)
Für die nächste Claude-Code-Session. Stand: ~15:40, User macht gleich Mac-Neustart. Memory-Files (MEMORY.md) ergänzen diesen Stand — hier das Session-Spezifische.
🔴 SOFORT-NÄCHSTER SCHRITT (offen, blockt Mac-Entscheidung)
Mac-DNS-Profil: Wall oder stale-state? Nach dem Neustart:
~/Downloads/rebreak-schutz-signed.mobileconfiginstallieren (signiertes DNS-Profil, Platzhalter-PW egal).- Installiert → KEINE Wall, manuelles DNS-Profil reicht (heutige Fails = stale Netzwerk-Dienst vom entfernten alten Profil). RemovalPassword-Schutz steht → kein MDM nötig.
- Failt auch auf frisch gebootetem Mac (
„VPN-Dienst konnte nicht erstellt werden") → echte macOS-26-Wall (DNS nur via MDM) → dann MDM-Pfad (NanoMDM, siehe unten).
⚠️ Wichtig: NICHT vorschnell „MDM Pflicht" sagen — das echte ReBreak-DNS-Profil hat bei diesem User VORHER manuell installiert. Beweislage unklar bis Clean-Boot-Test.
✅ Was heute fertig wurde (verifiziert)
- Windows-Schutz end-to-end bewiesen (in UTM Win11-ARM64-VM):
- PowerShell DoH-Takeover →
Resolve-DnsName bet365.de=0.0.0.0/NXDOMAIN - Browser-Bypass gelöst: Chrome/Edge umgehen System-DNS via built-in-Resolver+eigenem DoH → Fix = 2 Policies (
DnsOverHttpsMode=off+BuiltInDnsClientEnabled=false), beide nötig. - Subdomain-Bug (User-Fund): Blocklist war Apex-only (
bet365.comgeblockt,www.bet365.comoffen). Fix deployed (siehe unten).
- PowerShell DoH-Takeover →
- ReBreak Magic Windows-App (
apps/rebreak-magic-win/, Tauri): komplett gecodet, CI-Build grün, Installer gebaut:ReBreak Magic_0.1.0_x64-setup.exe(3,8 MB, in/tmp/rebreak-win-installer/). Browser-Policies improtection-core/apply_script. - Mac Removal-Lock BEWIESEN: Profil mit
PayloadRemovalDisallowed+RemovalPassword→ macOS verlangt beim Entfernen das Removal-PW, NICHT Admin-PW (Dock-Test-Profil). RemovalPassword hält gegen Admin. - Marketing-Nav umgebaut (
apps/marketing/app/layouts/default.vue): Floating-Tabbar raus → Hamburger (mobil) / Header-Nav (Desktop).
🟡 Offene Threads / Entscheidungen
| Thread | Status | Nächster Schritt |
|---|---|---|
| Mac-DNS Wall-Test | blockt | Clean-Boot-Test (oben) |
| Mac-MDM-Pfad (falls Wall) | geplant | NanoMDM Mac-Enrollment + DNS-Push testen (rebreak-binder-Domain). Teile da: ops/mdm/rebreak-mac-dns-filter.mobileconfig, backend/server/api/mdm/enroll.get.ts |
| Backend-Deploys | warten auf GO | ProhibitDisablement (dns/profile), Geräte-Matrix (plan-features+magic), magic/status — alle uncommitted |
| Marketing-Content | offen | „was wir alles bieten" (iOS/Android/Mac/Windows) — braucht User-Steer (Positionierung) |
| Installer hosten + Download-Link | offen | Wohin? rebreak.org/downloads/ lt. magic/info. Dann Download-Page um Windows ergänzen |
| Mac Browser-Policies | offen | Managed Prefs Chrome/Edge ins Mac-Profil (Chromium umgeht DNS auch auf Mac) |
| Backend-Cooldown-Flow (Mac-Selbstbindung) | offen | Backend hält RemovalPassword, App-Release nach 24h, verschlüsselte Delivery |
| Android: Ina Internal-Test | offen | Opt-in-Link (Play Console → Interne Tests → „Teilnahme am Test") an Ina; Account inabrini15@gmail.com |
| Android Open Testing | besprochen | „Offener Test" (public Link) braucht Google-Review; Glücksspiel-Framing beachten |
📦 Working-Tree (uncommitted — NICHT deployed)
Backend (deploy nach GO → triggert Staging via push main):
dns/profile.get.ts—ProhibitDisablement: trueergänzt (gegen Toggle-Bypass)magic/register.post.ts—platform-Feld (windows) + Cross-Counting Desktop-Slotsmagic/status.get.ts— neu (Token-Status-Poll für Win-Tamper-Service)magic/info.get.ts— Windows-Installer-URLplan-features.ts— PromaxProtectedDevices 0→1(Geräte-Matrix Pro 1+1 / Legend 3+2)db/devices.ts— MAGIC_DEVICE_LIMIT entfernt (jetzt plan-gated)devices/enroll.post.ts— Cross-Counting Magic+Protected
Native (Frontend, kein Backend-Deploy):
devices.tsx(Mac/Win-Menü raus → MagicSheet direkt),MagicSheet.tsx(Mac/Win-Toggle + i18n),DeviceProgressBar.tsx(label),AddMacSheet.tsx, locales ar/de/en/fr
Marketing: layouts/default.vue (Nav-Umbau), locales de/en (Pricing 2/5 Geräte)
🚀 Committed + deployed heute
80be124blocklist||domain^(Subdomain-Fix) → deployed Staging, AdGuard re-pulled (395k Regeln),www.*verifiziert NXDOMAIN4b4b9fc/771af0f/869d8afrebreak-magic-win App + CI → Build grün, Installer-Artefakt da- AdGuard-Server (rebreak-mdm):
blocking_mode: default → nxdomain(Config-Edit, BackupAdGuardHome.yaml.bak-1780828505). Beides LIVE für alle DNS-Plattformen.
🧪 Artefakte (lokal)
/tmp/rebreak-win-installer/ReBreak Magic_0.1.0_x64-setup.exe— Windows-Installer (3,8 MB)~/Downloads/rebreak-schutz-signed.mobileconfig— signiertes Mac-DNS-Profil (für Clean-Boot-Test)~/Downloads/removal-lock-test.mobileconfig— Dock+RemovalPassword (beweist Removal-Lock, installiert)~/Downloads/Windows11-ARM64-de.iso— VM-ISO (4,9 GB)
🧠 Key-Findings (auch in Memory)
- chromium-dns-bypass — Chrome/Edge/Brave umgehen System-DNS (Mac+Win), Fix = 2 Browser-Policies
- mac-magic-profile-lock — RemovalPassword > Admin bewiesen; macOS-26 evtl. DNS-nur-via-MDM (Clean-Boot-Test pending); ProhibitDisablement gegen Toggle-Bypass
- rebreak-magic-win — Windows-App-Architektur + E2E-Validierung
- — Geräte-Matrix Pro 1+1 / Legend 3+2 final
⚠️ Mac-Speicher: kritisch
460-GB-Disk war voll (865 MB frei). Heute ~29 GB Xcode-DevData gelöscht → ~35 GB frei. Windows-VM braucht ~40 GB. Langfristig: externe NVMe-SSD für VMs/Archive.