This is a Flutter Plugin for Android, based on code from Tor Onion Proxy Library and Tor Android.
Check out the example app included in this repo for reference on how to use this library with sockets.
This is built using tor 0.4.3.6
android.bundle.enableUncompressedNativeLibs=false
to your android -> gradle.properties
file.
org.gradle.jvmargs=-Xmx1536M
...
android.bundle.enableUncompressedNativeLibs=false
Add android:extractNativeLibs="true"
to your AndroidManifest.xml
.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="...">
...
<application
...
android:extractNativeLibs="true">
...
</application>
...
</manifest>
Add shrink, zip aligned and minify settings into your android/app/build.gradle
file.
android {
compileSdkVersion 29
defaultConfig {
...
minSdkVersion 16
targetSdkVersion 29
}
buildTypes {
...
release {
signingConfig signingConfigs.debug
shrinkResources false
zipAlignEnabled false
minifyEnabled false
...
}
}
}
--no-shrink
param in build appbundle command.
flutter build appbundle --no-shrink ...
dependencies:
utopic_tor_onion_proxy: version_number
import 'package:utopic_tor_onion_proxy/utopic_tor_onion_proxy.dart';
try {
port = await UtopicTorOnionProxy.startTor();
} on PlatformException catch (e) {
print('Failed to get port. Message: ${e.message}');
}
try {
await UtopicTorOnionProxy.isTorRunning();
} on PlatformException catch (e) {
print('Failed to get is tor running. Message: ${e.message}');
}
try {
await UtopicTorOnionProxy.stopTor();
} on PlatformException catch (e) {
print('Failed to stop tor. Message: ${e.message}');
}