From dd74997adc899c283c0ad5f113c5bf0bc0e19f2e Mon Sep 17 00:00:00 2001 From: Honey_Loverr <202041310+Honey-Loverr@users.noreply.github.com> Date: Sun, 9 Mar 2025 22:30:00 +0000 Subject: [PATCH 1/2] Create os_detection.dart --- lib/os_detection.dart | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lib/os_detection.dart diff --git a/lib/os_detection.dart b/lib/os_detection.dart new file mode 100644 index 000000000..de6a5b14e --- /dev/null +++ b/lib/os_detection.dart @@ -0,0 +1,26 @@ +import 'dart:io'; + +class OSDetector { + static Future isTails() async { + try { + final osReleaseFile = File('/etc/os-release'); + if (await osReleaseFile.exists()) { + final osReleaseContent = await osReleaseFile.readAsString(); + return osReleaseContent.contains('Tails'); + } + } catch (e) { + print('Error detecting Tails: $e'); + } + return false; + } + + static Future isWhonix() async { + try { + final whonixVersionFile = File('/etc/whonix_version'); + return await whonixVersionFile.exists(); + } catch (e) { + print('Error detecting Whonix: $e'); + } + return false; + } +} From 5a4144ac918923eedd5e94e9768780ad3f61100c Mon Sep 17 00:00:00 2001 From: Honey_Loverr <202041310+Honey-Loverr@users.noreply.github.com> Date: Sun, 9 Mar 2025 22:35:23 +0000 Subject: [PATCH 2/2] Update main.dart Add OS detection and Tor configuration for Tails/Whonix --- lib/main.dart | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/lib/main.dart b/lib/main.dart index e2cae6f72..4bf6e8ab6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -77,6 +77,9 @@ import 'utilities/util.dart'; import 'wallets/isar/providers/all_wallets_info_provider.dart'; import 'widgets/crypto_notifications.dart'; +// Add OS detection import +import 'os_detection.dart'; + final openedFromSWBFileStringStateProvider = StateProvider((ref) => null); @@ -86,6 +89,35 @@ final openedFromSWBFileStringStateProvider = void main(List args) async { WidgetsFlutterBinding.ensureInitialized(); +// Add OS detection and Tor configuration Tails/Whonix +final isTails = await OSDetector.isTails(); +final isWhonix = await OSDetector.isWhonix(); + +if (isTails) { + print('Tails detected, configuring Tor to use 127.0.0.1:9050'); + // Configure Tor to use 127.0.0.1:9050 + TorService.sharedInstance.init( + torDataDirPath: (await StackFileSystem.applicationTorDirectory()).path, + proxySettings: { + 'host': '127.0.0.1', + 'port': 9050, + 'type': 'socks5h', + }, + ); + await TorService.sharedInstance.start(); +} else if (isWhonix) { + print('Whonix detected, using gateway Tor'); + // No need to configure Tor, just notify the user +} else { + // Existing Tor initialization + if (Prefs.instance.useTor) { + TorService.sharedInstance.init( + torDataDirPath: (await StackFileSystem.applicationTorDirectory()).path, + ); + await TorService.sharedInstance.start(); + } +} + if (Util.isDesktop && args.length == 2 && args.first == "-d") { StackFileSystem.setDesktopOverrideDir(args.last); }