Remove NetCipher

This commit is contained in:
Tad 2018-09-21 00:51:48 -04:00
parent 3d7901caa8
commit 6d01c4934d
5 changed files with 64 additions and 9 deletions

2
.idea/misc.xml generated
View file

@ -24,7 +24,7 @@
</value> </value>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View file

@ -6,8 +6,8 @@ android {
applicationId "us.spotco.malwarescanner" applicationId "us.spotco.malwarescanner"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 26 targetSdkVersion 26
versionCode 37 versionCode 38
versionName "2.7" versionName "2.8"
resConfigs "en" resConfigs "en"
} }
buildTypes { buildTypes {
@ -31,5 +31,4 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0' implementation 'com.android.support:design:26.1.0'
implementation 'info.guardianproject.netcipher:netcipher:2.0.0-alpha1'
} }

View file

@ -166,6 +166,7 @@ class Database {
try { try {
HttpURLConnection connection; HttpURLConnection connection;
if (onionRouting) { if (onionRouting) {
Utils.waitUntilOrbotIsAvailable();
//url = url.replaceAll(baseURL, baseURLOnion); //TODO: Setup the .onion //url = url.replaceAll(baseURL, baseURLOnion); //TODO: Setup the .onion
Proxy orbot = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 9050)); Proxy orbot = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 9050));
connection = (HttpURLConnection) new URL(url).openConnection(orbot); connection = (HttpURLConnection) new URL(url).openConnection(orbot);

View file

@ -46,8 +46,6 @@ import java.io.File;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import info.guardianproject.netcipher.proxy.OrbotHelper;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private SharedPreferences prefs = null; private SharedPreferences prefs = null;
@ -149,11 +147,10 @@ public class MainActivity extends AppCompatActivity {
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.toggleOnionRouting: case R.id.toggleOnionRouting:
if (!item.isChecked()) { if (!item.isChecked()) {
if (OrbotHelper.isOrbotInstalled(this)) { if (Utils.isOrbotInstalled(this)) {
prefs.edit().putBoolean("ONION_ROUTING", !item.isChecked()).apply(); prefs.edit().putBoolean("ONION_ROUTING", !item.isChecked()).apply();
item.setChecked(true); item.setChecked(true);
} else { } else {
startActivity(OrbotHelper.getOrbotInstallIntent(this));
prefs.edit().putBoolean("ONION_ROUTING", false).apply(); prefs.edit().putBoolean("ONION_ROUTING", false).apply();
item.setChecked(false); item.setChecked(false);
Toast.makeText(this, R.string.lblOnionRoutingNotInstalled, Toast.LENGTH_SHORT).show(); Toast.makeText(this, R.string.lblOnionRoutingNotInstalled, Toast.LENGTH_SHORT).show();
@ -165,7 +162,7 @@ public class MainActivity extends AppCompatActivity {
break; break;
case R.id.mnuUpdateDatabase: case R.id.mnuUpdateDatabase:
if (prefs.getBoolean("ONION_ROUTING", false)) { if (prefs.getBoolean("ONION_ROUTING", false)) {
OrbotHelper.requestStartTor(this); Utils.requestStartOrbot(this);
logView.append("Downloading over Tor, this may take a while...\n"); logView.append("Downloading over Tor, this may take a while...\n");
} }
updateDatabase(); updateDatabase();

View file

@ -21,9 +21,12 @@ import android.app.ActivityManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
import android.preference.PreferenceManager;
import java.io.File; import java.io.File;
import java.net.Socket;
import java.util.HashSet; import java.util.HashSet;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
@ -101,4 +104,59 @@ class Utils {
} }
} }
//Credit: https://stackoverflow.com/a/6758962
public static boolean isPackageInstalled(Context context, String packageID) {
PackageManager pm = context.getPackageManager();
try {
pm.getPackageInfo(packageID, PackageManager.GET_META_DATA);
} catch(PackageManager.NameNotFoundException e) {
return false;
}
return true;
}
public static boolean isOrbotInstalled(Context context) {
return isPackageInstalled(context, "org.torproject.android");
}
//Credit: OrbotHelper/NetCipher
public static void requestStartOrbot(Context context) {
Intent intent = new Intent("org.torproject.android.intent.action.START");
intent.setPackage("org.torproject.android");
intent.putExtra("org.torproject.android.intent.extra.PACKAGE_NAME", context.getPackageName());
context.sendBroadcast(intent);
}
//Credit: https://www.geekality.net/2013/04/30/java-simple-check-to-see-if-a-server-is-listening-on-a-port/
public static boolean isPortListening(String host, int port) {
Socket s = null;
try {
s = new Socket(host, port);
return true;
} catch(Exception e) {
return false;
} finally {
if (s != null) {
try {
s.close();
} catch(Exception e1) {
}
}
}
}
public static boolean waitUntilOrbotIsAvailable() {
int tries = 0;
boolean listening;
while(!(listening = isPortListening("127.0.0.1", 9050)) && tries <= 60) {
tries++;
try {
Thread.sleep(1000);
} catch(Exception e) {
}
}
return listening;
}
} }