diff --git a/.gitmodules b/.gitmodules
index b8f0e8d35cb33d94187fff08d1d9f081f9c2bb9a..eb8fc432651f75f51fc5f63af50e3ab85ef5b053 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,4 +7,4 @@
 	url = https://0xacab.org/leap/android_libs/bitmaskcore.git
 [submodule "tor-android"]
 	path = tor-android
-	url = https://0xacab.org/leap/android_snowflake/tor-android.git
+	url = https://0xacab.org/leap/android_libs/tor-android.git
diff --git a/app/build.gradle b/app/build.gradle
index 4d5ce05046f6a0103d7e538e45d0c27d259e1dee..df1634c74f1753fa4f3a9046390c8c0c6b7be7e3 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,6 +6,7 @@ apply plugin: 'com.android.application'
 android {
   compileSdkVersion 30
   ndkVersion "21.4.7075529"
+  buildToolsVersion '30.0.3'
 
   compileOptions {
     targetCompatibility 1.8
@@ -369,21 +370,20 @@ android {
 dependencies {
   testImplementation 'junit:junit:4.12'
   //outdated mockito-core version due to powermock dependency
-  testImplementation 'org.mockito:mockito-core:2.8.9'
-  testImplementation('org.powermock:powermock-api-mockito2:1.7.3')
-          { exclude group: 'junit' exclude group: 'org.mockito' }
-  testImplementation 'org.powermock:powermock-module-junit4:1.7.3'
-  testImplementation 'org.powermock:powermock-core:1.7.3'
-  testImplementation 'org.powermock:powermock-module-junit4-rule:1.7.3'
+  testImplementation 'org.mockito:mockito-core:3.6.0'
+  testImplementation('org.powermock:powermock-api-mockito2:2.0.9')
+       //   { exclude group: 'junit' exclude group: 'org.mockito' }
+  testImplementation 'org.powermock:powermock-module-junit4:2.0.9'
+  testImplementation 'org.powermock:powermock-core:2.0.9'
+  testImplementation 'org.powermock:powermock-module-junit4-rule:2.0.9'
   testImplementation group: 'com.tngtech.java', name: 'junit-dataprovider', version: '1.10.0'
 
-  androidTestImplementation 'org.mockito:mockito-core:2.8.9'
-  androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
-  androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0'
-  androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0'
+  androidTestImplementation 'org.mockito:mockito-core:3.6.0'
+  androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+  androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0'
+  androidTestImplementation 'androidx.test.espresso:espresso-intents:3.4.0'
   //TODO: remove that library
   androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3'
-  testImplementation 'junit:junit:4.12'
   testImplementation 'org.json:json:20180813'
   debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.2'
   releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.2'
diff --git a/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadNotificationManager.java b/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadNotificationManager.java
index 939ed852dc1566f3cb169e04b03bc43cbf9a75ee..e7e871fd5b9a71be3a00e5504c0ca5b391727593 100644
--- a/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadNotificationManager.java
+++ b/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadNotificationManager.java
@@ -23,6 +23,7 @@ import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.Color;
 import android.os.Build;
 
 import androidx.annotation.NonNull;
diff --git a/app/src/insecure/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java b/app/src/insecure/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java
index dfb5346bd80522ed11497fd5b69cfa771247370f..221871efc6690a47c3050d4cff637c0e69d39f90 100644
--- a/app/src/insecure/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java
+++ b/app/src/insecure/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java
@@ -69,6 +69,7 @@ import static se.leap.bitmaskclient.base.utils.ConfigHelper.getProviderFormatted
 import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
 import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_CERTIFICATE_PINNING;
 import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_CORRUPTED_PROVIDER_JSON;
+import static se.leap.bitmaskclient.tor.TorStatusObservable.getProxyPort;
 
 /**
  * Created by cyberta on 04.01.18.
@@ -325,7 +326,7 @@ public class ProviderApiManager extends ProviderApiManagerBase {
         String responseString;
         JSONObject errorJson = new JSONObject();
 
-        OkHttpClient okHttpClient = clientGenerator.initCommercialCAHttpClient(errorJson);
+        OkHttpClient okHttpClient = clientGenerator.initCommercialCAHttpClient(errorJson, getProxyPort());
         if (okHttpClient == null) {
             return errorJson.toString();
         }
@@ -360,7 +361,7 @@ public class ProviderApiManager extends ProviderApiManagerBase {
     private String downloadFromUrlWithProviderCA(String urlString, Provider provider, boolean dangerOn) {
         String responseString;
         JSONObject errorJson = new JSONObject();
-        OkHttpClient okHttpClient = clientGenerator.initSelfSignedCAHttpClient(provider.getCaCert(), errorJson);
+        OkHttpClient okHttpClient = clientGenerator.initSelfSignedCAHttpClient(provider.getCaCert(), getProxyPort(), errorJson);
         if (okHttpClient == null) {
             return errorJson.toString();
         }
@@ -395,7 +396,7 @@ public class ProviderApiManager extends ProviderApiManagerBase {
         JSONObject initError = new JSONObject();
         String responseString;
 
-        OkHttpClient okHttpClient = clientGenerator.initSelfSignedCAHttpClient(caCert, initError);
+        OkHttpClient okHttpClient = clientGenerator.initSelfSignedCAHttpClient(caCert, getProxyPort(), initError);
         if (okHttpClient == null) {
             return initError.toString();
         }
diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java
index 4b523edbcddd2066b71a3a0e56f94d87142a5ff1..31d6ae89ae4443972f2b20ed4ea1a4c4a08df9eb 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java
@@ -439,7 +439,9 @@ public class ProviderApiManagerTest {
 
     @Test
     public void test_handleIntentSetupProvider_preseededCustomProviderAndCA_failedConfiguration() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
-
+        if ("insecure".equals(BuildConfig.FLAVOR_implementation )) {
+            return;
+        }
         Provider provider = getConfiguredProvider();
 
         mockProviderApiConnector(ERROR_CASE_MICONFIGURED_PROVIDER);
diff --git a/tor-android b/tor-android
index 2ba958276d8dbbdfd5a003ed9423a2a74e643de2..0173fc7610a69b8282ffad680e36f1105e872d67 160000
--- a/tor-android
+++ b/tor-android
@@ -1 +1 @@
-Subproject commit 2ba958276d8dbbdfd5a003ed9423a2a74e643de2
+Subproject commit 0173fc7610a69b8282ffad680e36f1105e872d67