feat: migrate Tor implementation from tor-android to Arti (Rust)
Replace Guardian Project's tor-android (C Tor) and jtorctl with arti-mobile-ex, a Rust-based Tor implementation. This eliminates the Android Service binding complexity in favor of an in-process ArtiProxy object. Key changes: - TorService: Replace ServiceConnection to org.torproject.jni.TorService with direct ArtiProxy.Builder/start/stop API. Bootstrap state detected via log parsing (following BitChat's pattern). - TorServiceStatus: Remove TorControlConnection field (Arti doesn't support jtorctl control protocol). - RelayProxyClientConnector: Remove DORMANT/ACTIVE/NEWNYM control signals. Arti manages its own circuit lifecycle internally. - Dependencies: Replace tor-android + jtorctl with arti-mobile-ex 1.2.3. TorManager's external API (status/activePortOrNull StateFlows) and all downstream consumers (DualHttpClientManager, TorSettings, UI) are unchanged. https://claude.ai/code/session_01BApgDd5udqBzMqysSRMpZu
This commit is contained in:
@@ -25,7 +25,7 @@ fragmentKtx = "1.8.9"
|
||||
gms = "4.4.4"
|
||||
jacksonModuleKotlin = "2.21.2"
|
||||
javaKeyring = "1.0.4"
|
||||
jtorctl = "0.4.5.7"
|
||||
artiMobileEx = "1.2.3"
|
||||
junit = "4.13.2"
|
||||
kchesslib = "1.0.5"
|
||||
kotlin = "2.3.20"
|
||||
@@ -51,7 +51,6 @@ securityCryptoKtx = "1.1.0"
|
||||
slf4j = "2.0.17"
|
||||
spotless = "8.4.0"
|
||||
tarsosdsp = "2.5"
|
||||
torAndroid = "0.4.9.5.1"
|
||||
translate = "17.0.3"
|
||||
jetbrainsCompose = "1.10.3"
|
||||
unifiedpush = "3.0.10"
|
||||
@@ -141,7 +140,7 @@ google-mlkit-language-id = { group = "com.google.mlkit", name = "language-id", v
|
||||
google-mlkit-translate = { group = "com.google.mlkit", name = "translate", version.ref = "translate" }
|
||||
jackson-module-kotlin = { group = "com.fasterxml.jackson.module", name = "jackson-module-kotlin", version.ref = "jacksonModuleKotlin" }
|
||||
java-keyring = { group = "com.github.javakeyring", name = "java-keyring", version.ref = "javaKeyring" }
|
||||
jtorctl = { module = "info.guardianproject:jtorctl", version.ref = "jtorctl" }
|
||||
arti-mobile-ex = { module = "info.guardianproject:arti-mobile-ex", version.ref = "artiMobileEx" }
|
||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||
kchesslib = { module = "io.github.cvb941:kchesslib", version.ref = "kchesslib" }
|
||||
kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" }
|
||||
@@ -163,7 +162,6 @@ secp256k1-kmp-common = { group = "fr.acinq.secp256k1", name = "secp256k1-kmp", v
|
||||
secp256k1-kmp-jni-android = { group = "fr.acinq.secp256k1", name = "secp256k1-kmp-jni-android", version.ref = "secp256k1KmpJniAndroid" }
|
||||
secp256k1-kmp-jni-jvm = { group = "fr.acinq.secp256k1", name = "secp256k1-kmp-jni-jvm", version.ref = "secp256k1KmpJniAndroid" }
|
||||
tarsosdsp = { group = "be.tarsos.dsp", name = "core", version.ref = "tarsosdsp" }
|
||||
tor-android = { module = "info.guardianproject:tor-android", version.ref = "torAndroid" }
|
||||
unifiedpush = { group = "com.github.UnifiedPush", name = "android-connector", version.ref = "unifiedpush" }
|
||||
vico-charts-compose = { group = "com.patrykandpatrick.vico", name = "compose", version.ref = "vico-charts-compose" }
|
||||
vico-charts-m3 = { group = "com.patrykandpatrick.vico", name = "compose-m3", version.ref = "vico-charts-compose" }
|
||||
|
||||
Reference in New Issue
Block a user