886d3ece18
Adds an opt-in Tor mode that routes all app traffic through a local SOCKS5 proxy backed by arti (Tor in Rust), bundled via the org.torproject:arti-mobile:1.7.0.1 AAR. - TorController starts/stops arti and installs a fail-closed WebView proxy override (no direct fallback) so traffic can't leak while Tor is connecting or down. Connectivity is verified against check.torproject.org (IsTor) and re-checked continuously; the exit IP is surfaced for verification, and the status isn't latched so a dropped circuit downgrades honestly. - TorPlugin bridges enable/disable/status to the Capacitor/JS layer. Toggling applies live, in place, with no app restart. - UI: a slim fail-closed status banner (replacing the old full-screen gate), the Tor toggle in Advanced settings reachable while logged out, and Settings/Search/About added to the logged-out menu. - R8 keep rules for org.torproject.arti.** so the JNI native-method classes aren't stripped/renamed; androidx.webkit on the compile classpath for the WebView proxy APIs.
41 lines
1.4 KiB
Prolog
41 lines
1.4 KiB
Prolog
# Add project specific ProGuard rules here.
|
|
# You can control the set of applied configuration files using the
|
|
# proguardFiles setting in build.gradle.
|
|
#
|
|
# For more details, see
|
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
|
|
# Keep Capacitor classes (WebView JS bridge)
|
|
-keep class com.getcapacitor.** { *; }
|
|
-keep class spot.agora.app.** { *; }
|
|
|
|
# Keep WebView JS interfaces
|
|
-keepclassmembers class * {
|
|
@android.webkit.JavascriptInterface <methods>;
|
|
}
|
|
|
|
# Keep OkHttp (used by Capacitor)
|
|
-dontwarn okhttp3.**
|
|
-dontwarn okio.**
|
|
-keep class okhttp3.** { *; }
|
|
|
|
# Barcode scanner plugin (@capacitor/barcode-scanner -> OutSystems ionbarcode)
|
|
# references Gson's @SerializedName, but Gson isn't on the release classpath.
|
|
# Suppress the missing-class warning, keep the annotation attribute, and keep
|
|
# the plugin's model classes so R8 doesn't strip/rename serialized fields.
|
|
-dontwarn com.google.gson.**
|
|
-keepattributes *Annotation*
|
|
-keep class com.outsystems.plugins.barcode.** { *; }
|
|
|
|
# Keep arti (Tor) classes — ArtiJNI declares native methods invoked from the
|
|
# Rust .so via JNI, so its names must not be obfuscated/stripped.
|
|
-keep class org.torproject.arti.** { *; }
|
|
|
|
# Uncomment this to preserve the line number information for
|
|
# debugging stack traces.
|
|
#-keepattributes SourceFile,LineNumberTable
|
|
|
|
# If you keep the line number information, uncomment this to
|
|
# hide the original source file name.
|
|
#-renamesourcefileattribute SourceFile
|