From 99a1839f0e201986796abd2ac53944c994ad483b Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Tue, 26 May 2026 19:09:13 +0200 Subject: [PATCH] =?UTF-8?q?prevent=20R8=20shrinking=20from=20removing=20To?= =?UTF-8?q?r=E2=80=99s=20private=20JNI=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/flutter_tor/android/build.gradle | 1 + packages/flutter_tor/android/consumer-rules.pro | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 packages/flutter_tor/android/consumer-rules.pro diff --git a/packages/flutter_tor/android/build.gradle b/packages/flutter_tor/android/build.gradle index 66fe29fb..65203eaa 100644 --- a/packages/flutter_tor/android/build.gradle +++ b/packages/flutter_tor/android/build.gradle @@ -56,6 +56,7 @@ android { defaultConfig { minSdk = 24 + consumerProguardFiles("consumer-rules.pro") } dependencies { diff --git a/packages/flutter_tor/android/consumer-rules.pro b/packages/flutter_tor/android/consumer-rules.pro new file mode 100644 index 00000000..90a4c47d --- /dev/null +++ b/packages/flutter_tor/android/consumer-rules.pro @@ -0,0 +1,11 @@ +#################################################################################################### +# tor-android JNI +#################################################################################################### + +# libtor accesses these fields and native methods by their Java names/signatures. +# Release R8 shrinking can otherwise remove private fields that are only used from JNI. +-keep class org.torproject.jni.TorService { + long torConfiguration; + int torControlFd; + native ; +}