- mhrv-rs:// deep links, QR scanner, clipboard banner, share sheet - DEFLATE-compressed base64 encoding (~200 chars vs ~800 raw) - Every import path requires explicit user confirmation; the dialog shows the new deployment IDs and a trust warning so an attacker posting a malicious mhrv-rs:// link in a public channel can't silently overwrite a user's auth_key + script_ids - ZXing for QR generation/scanning (no Google Play Services) Closes #266. Thanks @yyoyoian-pixel — the rebase from auto-import to confirmation-gated import is exactly the right shape. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.6 KiB
• import/export کانفیگ در نسخهٔ اندروید با QR code، کلیپبورد، deep link، و share sheet (#266): انتقال کانفیگ بین دستگاهها با یک تپ. Export: یک دیالوگ یکپارچه با QR code + رشتهٔ فشرده + دکمهٔ کپی، یا Share از طریق هر اپ (تلگرام، WhatsApp، ایمیل). فیلدهای device-specific (پورتها، حالت VPN/proxy، splitMode) export نمیشن، فقط فیلدهای منطقی (mode، script_ids، auth_key، sni_hosts، passthrough_hosts، upstream_socks5). encoding با DEFLATE compression + base64 — کانفیگ معمولی ~۲۰۰ کاراکتر میشه بهجای ~۸۰۰. Import: clipboard banner خودکار وقتی مهرو متن mhrv-rs:// یا JSON خام در clipboard میبینه، scanner QR، یا deep link mhrv-rs://... (تپ روی لینک در هر اپ). هر import نیاز به تأیید صریح کاربر داره — قبل از overwrite شدن کانفیگ فعلی، یه دیالوگ deployment IDهای جدید رو نشون میده و هشدار میده که "این لینک ترافیک شما رو از طریق این deployment IDها مسیریابی میکنه — فقط از منابع قابل اعتماد import کنید." این مهمه چون کانفیگ شامل auth_key هست. ممنون از @yyoyoian-pixel
• Config import/export on Android via QR code, clipboard, deep link, and share sheet (#266): one-tap config sharing between devices. Export: a unified dialog with QR code + compressed text hash + copy button, or Share via any app (Telegram, WhatsApp, email). Device-specific fields (ports, VPN/proxy mode, splitMode) are not exported — only logical config (mode, script_ids, auth_key, sni_hosts, passthrough_hosts, upstream_socks5). DEFLATE compression + base64 encoding shrinks a typical config from ~800 to ~200 chars. Import: clipboard banner auto-appears when mhrv-rs detects mhrv-rs://... or raw JSON in clipboard, QR scanner, or deep link mhrv-rs://... (tap from any app). Every import path requires explicit user confirmation — before the current config is overwritten, a dialog displays the new deployment IDs and warns "this link routes your traffic through these deployment IDs — only import from sources you trust." Important because the config contains auth_key. Thanks @yyoyoian-pixel