#!/usr/bin/env node /** * Disable Android Auto Backup for SkateSpots. * * The app stores identity material, local settings, pending escrow tokens and * other private state in its WebView storage. Android Auto Backup can copy that * data to a cloud account without the user ever asking for a backup. Keep it * device-local: SkateSpots has its own explicit export/backup flows. * * Idempotent; exits quietly when android/ has not been generated yet. */ import { existsSync, readFileSync, writeFileSync } from 'node:fs'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; const root = join(dirname(fileURLToPath(import.meta.url)), '..'); const manifestPath = join(root, 'android', 'app', 'src', 'main', 'AndroidManifest.xml'); if (!existsSync(manifestPath)) { console.log('[inject-backup-policy] android/ not generated yet — skipping.'); process.exit(0); } let manifest = readFileSync(manifestPath, 'utf8'); const before = manifest; if (/android:allowBackup="[^"]*"/.test(manifest)) { manifest = manifest.replace(/android:allowBackup="[^"]*"/, 'android:allowBackup="false"'); } else { manifest = manifest.replace( /