chahinebrini 63fae25531 fix(android-protection): explicit specialUse FGS type — Samsung/Android 16 crash loop
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>
2026-06-10 22:33:28 +02:00

147 lines
6.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="min-h-screen bg-gray-950 text-white flex flex-col items-center justify-center px-4 py-16">
<div class="w-full max-w-md">
<!-- Logo / Brand -->
<div class="flex items-center gap-3 mb-10">
<div class="w-12 h-12 rounded-2xl bg-indigo-500 flex items-center justify-center">
<span class="text-2xl font-bold">R</span>
</div>
<div>
<h1 class="text-2xl font-bold tracking-tight">RebreakMagic</h1>
<p class="text-sm text-gray-400">Lock-Modus für iPhone, ohne Reset</p>
</div>
</div>
<!-- Header -->
<h2 class="text-3xl font-extrabold mb-2">RebreakMagic für Mac</h2>
<p class="text-gray-400 mb-1 text-sm">
Version {{ version }} &nbsp;·&nbsp; Build {{ buildDate }}
</p>
<span
class="inline-block bg-amber-500/15 text-amber-400 text-xs font-semibold px-2.5 py-1 rounded-full mb-6"
>
Beta, Companion-App für ReBreak iOS
</span>
<!-- Why "Magic"? -->
<div class="bg-indigo-950/30 border border-indigo-800/30 rounded-2xl p-5 mb-6">
<p class="text-sm text-indigo-200 leading-relaxed">
<strong>Warum Magic"?</strong> Normalerweise muss ein iPhone komplett zurückgesetzt werden,
um in den Lock-Modus (Supervised-Mode) zu wechseln, und alle Daten sind weg. RebreakMagic schafft
das <strong>ohne Reset</strong>: Fotos, Apps, Chats, Settings bleiben. In ~2 Minuten.
</p>
</div>
<!-- Download Button -->
<a
:href="dmgUrl"
class="block w-full bg-indigo-600 hover:bg-indigo-500 active:bg-indigo-700 transition-colors text-white text-center font-bold text-lg py-4 rounded-2xl mb-4 shadow-lg shadow-indigo-900/40"
download
>
DMG herunterladen ({{ dmgSize }})
</a>
<!-- SHA256 -->
<p class="text-xs text-gray-500 text-center break-all mb-10">
SHA256: <span class="font-mono">{{ sha256 }}</span>
</p>
<!-- Install Instructions -->
<div class="bg-gray-900 rounded-2xl p-6 mb-8">
<h3 class="font-bold text-base mb-4 text-white">Setup in 4 Schritten</h3>
<ol class="space-y-4">
<li class="flex gap-3">
<span class="w-7 h-7 shrink-0 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold">1</span>
<div>
<p class="font-medium text-sm text-white">DMG laden &amp; öffnen</p>
<p class="text-xs text-gray-400 mt-0.5">Doppelklick auf das DMG, dann RebreakMagic.app in den Programme-Ordner ziehen.</p>
</div>
</li>
<li class="flex gap-3">
<span class="w-7 h-7 shrink-0 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold">2</span>
<div>
<p class="font-medium text-sm text-white">Erste Öffnung erlauben</p>
<p class="text-xs text-gray-400 mt-0.5">
App ist (noch) unsigniert: Rechtsklick → Öffnen → Bestätigen. Macht macOS einmalig nötig.
</p>
</div>
</li>
<li class="flex gap-3">
<span class="w-7 h-7 shrink-0 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold">3</span>
<div>
<p class="font-medium text-sm text-white">iPhone per USB anschließen</p>
<p class="text-xs text-gray-400 mt-0.5">
Lightning/USB-C-Kabel an Mac. Auf dem iPhone „Vertrauen" tippen, falls gefragt.
</p>
</div>
</li>
<li class="flex gap-3">
<span class="w-7 h-7 shrink-0 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold">4</span>
<div>
<p class="font-medium text-sm text-white">Setup durchklicken</p>
<p class="text-xs text-gray-400 mt-0.5">RebreakMagic führt dich durch 5 Schritte (~2 Min). Nach einem Neustart ist der Lock-Modus aktiv.</p>
</div>
</li>
</ol>
</div>
<!-- Voraussetzungen -->
<div class="bg-gray-900 rounded-2xl p-6 mb-8">
<h3 class="font-bold text-base mb-3 text-white">Voraussetzungen</h3>
<ul class="space-y-2 text-xs text-gray-400">
<li> macOS 13 Ventura oder neuer (Intel oder Apple Silicon)</li>
<li> iPhone mit iOS 17 oder neuer</li>
<li> USB-Kabel (Lightning oder USB-C, passend zum iPhone)</li>
<li> ReBreak-App ist vor dem Setup aus dem App Store installiert</li>
<li> Find-My-iPhone &amp; Stolen-Device-Protection sind vor dem Setup ausgeschaltet (RebreakMagic prüft das im Pre-Flight)</li>
</ul>
</div>
<!-- Deaktivieren -->
<div class="bg-gray-900 rounded-2xl p-6 mb-8">
<h3 class="font-bold text-base mb-3 text-white">Wie wird der Lock wieder gelöst?</h3>
<p class="text-xs text-gray-400 leading-relaxed">
Drei Wege, geordnet nach Aufwand: 1) deine Vertrauensperson (Trustee) entsperrt aus der ReBreak-App.
2) iPhone erneut am Mac mit RebreakMagic anschließen und Reset" wählen.
3) Werks-Reset des iPhones (letzter Notausweg, alle Daten weg).
Das ist Designprinzip: der Schutz soll genau dem Impuls standhalten, der ihn loswerden will.
</p>
</div>
<!-- Beta Notice -->
<div class="bg-amber-950/40 border border-amber-800/30 rounded-xl p-4 mb-8">
<p class="text-amber-300 text-xs leading-relaxed">
<strong>Beta-Hinweis:</strong> RebreakMagic ist in geschlossener Beta. Bei Problemen oder
Feedback bitte E-Mail an
<a href="mailto:support@rebreak.org" class="underline">support@rebreak.org</a>.
</p>
</div>
<!-- Footer -->
<p class="text-center text-xs text-gray-600">
&copy; {{ new Date().getFullYear() }} Rebreak &nbsp;·&nbsp;
<NuxtLink to="/datenschutz" class="hover:text-gray-400">Datenschutz</NuxtLink>
</p>
</div>
</div>
</template>
<script setup lang="ts">
// Werte bei jedem Release manuell aktualisieren (oder per Script aus der DMG).
const version = "0.1.0";
const buildDate = "2026-06-01";
const dmgSize = "740 KB";
const sha256 = "7c4af6a17982d84cfbd3066fda1217b8dbf0209322ac7263fca50c8793849c36";
const dmgUrl = "/downloads/RebreakMagic-latest.dmg";
useSeoMeta({
title: "RebreakMagic für Mac Lock-Modus ohne Reset",
description:
"Companion-App für ReBreak iOS. Aktiviert den Lock-Modus deines iPhones in ~2 Minuten per USB-Kabel, ohne Werks-Reset und ohne Datenverlust.",
});
definePageMeta({
layout: false,
});
</script>