From ff6b13aa8d0139f79dcb0cc2b892e444d2cfeaf5 Mon Sep 17 00:00:00 2001
From: tux-mind <massimo.dragano@gmail.com>
Date: Sat, 11 Feb 2017 17:14:31 +0100
Subject: [PATCH 01/21] [#831] manage Endpoint with null HW address

---
 .../java/org/csploit/android/core/System.java | 71 ++++++-------------
 .../org/csploit/android/net/Endpoint.java     |  3 +-
 2 files changed, 24 insertions(+), 50 deletions(-)

diff --git a/cSploit/src/main/java/org/csploit/android/core/System.java b/cSploit/src/main/java/org/csploit/android/core/System.java
index d2cd4f87fa..4c0718ebea 100644
--- a/cSploit/src/main/java/org/csploit/android/core/System.java
+++ b/cSploit/src/main/java/org/csploit/android/core/System.java
@@ -18,6 +18,24 @@
  */
 package org.csploit.android.core;
 
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.ActivityManager.RunningServiceInfo;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.net.wifi.WifiManager;
+import android.net.wifi.WifiManager.WifiLock;
+import android.os.Build;
+import android.os.Environment;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
+import android.preference.PreferenceManager;
+import android.support.annotation.Nullable;
+import android.util.SparseIntArray;
 import org.acra.ACRA;
 import org.acra.ACRAConfiguration;
 import org.apache.commons.compress.utils.IOUtils;
@@ -41,54 +59,9 @@
 import org.csploit.android.services.Services;
 import org.csploit.android.tools.ToolBox;
 
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.app.ActivityManager.RunningServiceInfo;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.net.wifi.WifiManager;
-import android.net.wifi.WifiManager.WifiLock;
-import android.os.Build;
-import android.os.Environment;
-import android.os.PowerManager;
-import android.os.PowerManager.WakeLock;
-import android.preference.PreferenceManager;
-import android.util.SparseIntArray;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.NoRouteToHostException;
-import java.net.Socket;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Observer;
-import java.util.SortedSet;
-import java.util.TreeSet;
+import java.io.*;
+import java.net.*;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.zip.GZIPInputStream;
@@ -1062,7 +1035,7 @@ public static KnownIssues getKnownIssues() {
     return mKnownIssues;
   }
 
-  public static String getMacVendor(byte[] mac) {
+  public static String getMacVendor(@Nullable byte[] mac) {
     if (mac != null && mVendors != null && mac.length >= 3)
       return mVendors.get(NetworkHelper.getOUICode(mac));
     else
diff --git a/cSploit/src/main/java/org/csploit/android/net/Endpoint.java b/cSploit/src/main/java/org/csploit/android/net/Endpoint.java
index 2f52d5d100..93a696278d 100644
--- a/cSploit/src/main/java/org/csploit/android/net/Endpoint.java
+++ b/cSploit/src/main/java/org/csploit/android/net/Endpoint.java
@@ -122,8 +122,9 @@ public void setAddress(InetAddress address){
     this.mAddress = address;
   }
 
+  @Nullable
   public byte[] getHardware(){
-    return Arrays.copyOf(mHardware, mHardware.length);
+    return mHardware != null ? Arrays.copyOf(mHardware, mHardware.length) : null;
   }
 
   public String getHardwareAsString(){

From 41b9ccfef50d4c54f4c9f7e5a141d1a492e020e8 Mon Sep 17 00:00:00 2001
From: pahapoika <pahapoika91@protonmail.com>
Date: Thu, 15 Jun 2017 21:35:30 +0300
Subject: [PATCH 02/21] Update styling for more simplified template

Hopefully helps issue reporting
---
 ISSUE_TEMPLATE.md | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index cca0066ac0..8a4f36434e 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -4,17 +4,19 @@
 ##OS version:
 
 
-##cSploit version:
+##**cSploit version:**
 
 
-##busybox (installed or not):
+##**busybox** *(installed or not):*
 
 
-##Rooted with supersu?
+##**Rooted with supersu?**
 
 
-##logcat (filter it!):
+##**logcat** *(filter it!):*
+[How-to guide] (https://forum.xda-developers.com/showthread.php?t=1726238)
 
+------------------------------------------------------------------------------------------------------------------------------
 
 **Daemon specific questions**
 
@@ -26,10 +28,12 @@
 
 ##Using Docker (incase of unofficial build.)
 
-
 ##Actions performed:
 
+
 #Logs:
+------------------------------------------------------------------------------------------------------------------------------
+
+##**Issue:**
+*Remember to search for issues alike before creating new one!*
 
-##Issue:
-*Remember to search for issues alike before creating new one.

From 2751837465910697218da0994955f807c861f255 Mon Sep 17 00:00:00 2001
From: pahapoika <pahapoika91@protonmail.com>
Date: Thu, 15 Jun 2017 21:38:46 +0300
Subject: [PATCH 03/21] Quick fix for styling

---
 ISSUE_TEMPLATE.md | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 8a4f36434e..526bb69521 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -1,39 +1,39 @@
-##DEVICE:
+DEVICE:
 
 
-##OS version:
+OS version:
 
 
-##**cSploit version:**
+**cSploit version:**
 
 
-##**busybox** *(installed or not):*
+**busybox** *(installed or not):*
 
 
-##**Rooted with supersu?**
+**Rooted with supersu?**
 
 
-##**logcat** *(filter it!):*
+**logcat** *(filter it!):*
 [How-to guide] (https://forum.xda-developers.com/showthread.php?t=1726238)
 
 ------------------------------------------------------------------------------------------------------------------------------
 
 **Daemon specific questions**
 
-##Go version:
+Go version:
 
 
-##OS:
+OS:
 
 
-##Using Docker (incase of unofficial build.)
+Using Docker (incase of unofficial build.)
 
-##Actions performed:
+Actions performed:
 
 
-#Logs:
+Logs:
 ------------------------------------------------------------------------------------------------------------------------------
 
-##**Issue:**
+**Issue:**
 *Remember to search for issues alike before creating new one!*
 

From 09bb74b4b7f08c8aa1c5ec0769b64a472a1f9920 Mon Sep 17 00:00:00 2001
From: IwraStudios <IwraStudios@users.noreply.github.com>
Date: Thu, 15 Jun 2017 21:11:27 +0200
Subject: [PATCH 04/21] Fixed Href Link in ISSUE_TEMPLATE

---
 ISSUE_TEMPLATE.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 526bb69521..72f9cc18f2 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -14,7 +14,7 @@ OS version:
 
 
 **logcat** *(filter it!):*
-[How-to guide] (https://forum.xda-developers.com/showthread.php?t=1726238)
+[How-to guide](https://forum.xda-developers.com/showthread.php?t=1726238)
 
 ------------------------------------------------------------------------------------------------------------------------------
 

From f794919f02b4c3bf4e43ea120d5b92a5bf2ef296 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Thu, 15 Feb 2018 15:55:26 -0800
Subject: [PATCH 05/21] Update everything for Android 3.2a3  (big, see below)

While waiting for cSploit 2.0 to come online, here's a quick refresh:

* target API/sdk 27, support as far back as 14 (from 9)
* update libraries and use new "implementation" build.gradle syntax
* Update Java to 1.8
* Update to gradle 4.5.1 from 2.9
* Update android gradle plugin from 1.5.0 to 3.2.0-a3
* Use the google dependency repository
* simplify build.gradle date stamp calculation
* update ACRA (even though target end point @ iriscouch went offline).
  This is not really tested past the "send info" dialog (no point)
* Support multi-window on chromebook.
* Add Notification Channel as required by Oreo (Android 8)
* Add very simple runtime permissions request
* Minor changes to use .apply() instead of .commit()
* Similar minor fix to use Locale with string formatting.
* Minor removal of dialog theme defining itself
* Fix bug in SettingsFragment where super.onViewCreated() not called
* Minor fix to preferences compat xml file

Th-that's all, folks!
---
 build.gradle                                  |  4 +-
 cSploit/build.gradle                          | 55 +++++++++----------
 cSploit/src/main/AndroidManifest.xml          | 15 +++--
 .../csploit/android/CSploitApplication.java   | 50 ++++++++++++-----
 .../org/csploit/android/MainActivity.java     | 50 ++++++++++++++++-
 .../org/csploit/android/SettingsFragment.java |  5 +-
 .../android/core/MultiAttackService.java      | 11 ++--
 .../java/org/csploit/android/core/System.java | 40 +++++++++++---
 .../android/services/UpdateService.java       | 41 +++++++++-----
 .../receivers/MsfRpcdServiceReceiver.java     |  5 +-
 cSploit/src/main/res/values/strings.xml       |  8 +++
 cSploit/src/main/res/values/style.xml         |  2 -
 cSploit/src/main/res/xml/preferences.xml      |  4 +-
 gradle/wrapper/gradle-wrapper.properties      |  4 +-
 14 files changed, 205 insertions(+), 89 deletions(-)

diff --git a/build.gradle b/build.gradle
index dea94eb99c..dfc3de68c0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,16 +1,18 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 buildscript {
     repositories {
+        google()
         jcenter()
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.5.0'
+        classpath 'com.android.tools.build:gradle:3.2.0-alpha03'
     }
 }
 
 allprojects {
     repositories {
+        google()
         jcenter()
         mavenCentral()
     }
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 0002b242e6..d96c10529d 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -1,19 +1,17 @@
 buildscript {
     repositories {
+        google()
         jcenter()
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.5.0'
+        classpath 'com.android.tools.build:gradle:3.2.0-alpha03'
     }
 }
 
-def getDate() {
-    return Calendar.getInstance().getTimeInMillis();
-}
-
 allprojects {
     repositories {
+        google()
         jcenter()
         mavenCentral()
     }
@@ -21,28 +19,29 @@ allprojects {
 apply plugin:  'com.android.application'
 
 dependencies {
-    compile 'com.android.support:support-v4:23.1.1'
-    compile 'com.android.support:appcompat-v7:23.1.1'
-    compile 'com.android.support:design:23.1.1'
-    compile 'com.android.support:preference-v7:23.1.1'
-    compile 'org.apache.commons:commons-compress:1.10'
-    compile 'commons-net:commons-net:3.3'
-    compile 'com.github.zafarkhaja:java-semver:0.9.0'
-    compile 'org.unbescape:unbescape:1.1.1.RELEASE'
-    compile 'org.msgpack:msgpack:0.6.12'
-    compile 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
-    compile 'org.tukaani:xz:1.5'
-    compile 'ch.acra:acra:4.6.2'
-    testCompile 'junit:junit:4.12'
+    implementation 'com.android.support:support-v4:27.0.2'
+    implementation 'com.android.support:appcompat-v7:27.0.2'
+    implementation 'com.android.support:design:27.0.2'
+    implementation 'com.android.support:preference-v7:27.0.2'
+    implementation 'org.apache.commons:commons-compress:1.16.1'
+    implementation 'commons-net:commons-net:3.6'
+    implementation 'com.github.zafarkhaja:java-semver:0.9.0'
+    implementation 'org.unbescape:unbescape:1.1.5.RELEASE'
+    implementation 'org.msgpack:msgpack:0.6.12'
+    implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
+    implementation 'org.tukaani:xz:1.8'
+    implementation 'ch.acra:acra-http:5.1.0'
+    implementation 'ch.acra:acra-notification:5.1.0'
+    testImplementation 'junit:junit:4.12'
 }
 
 android {
-    compileSdkVersion 23
-    buildToolsVersion '23.0.2'
+    compileSdkVersion 27
+    buildToolsVersion '27.0.3'
 
     compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_7
-        targetCompatibility JavaVersion.VERSION_1_7
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
     }
 
     packagingOptions {
@@ -51,8 +50,8 @@ android {
     }
 
     defaultConfig {
-        minSdkVersion 9
-        targetSdkVersion 22
+        minSdkVersion 14
+        targetSdkVersion 27
         versionCode 4
         versionName "1.7.0-unstable"
         if(System.getenv("NIGHTLY_BUILD")) {
@@ -81,8 +80,8 @@ android {
 
     buildTypes {
         debug {
-            buildConfigField "java.util.Date", "BUILD_TIME", "new java.util.Date(" + getDate() + "L)"
-            buildConfigField "String", "BUILD_NAME", "\"" + System.getenv("USER") + "\"";
+            buildConfigField "java.util.Date", "BUILD_TIME", "new java.util.Date(" + Calendar.getInstance().getTimeInMillis() + "L)"
+            buildConfigField "String", "BUILD_NAME", "\"" + System.getenv("USER") + "\""
             minifyEnabled false
             shrinkResources false
             debuggable true
@@ -91,8 +90,8 @@ android {
             multiDexEnabled true
         }
         release {
-            buildConfigField "java.util.Date", "BUILD_TIME", "new java.util.Date(" + getDate() + "L)"
-            buildConfigField "String", "BUILD_NAME", "\"" + System.getenv("USER") + "\"";
+            buildConfigField "java.util.Date", "BUILD_TIME", "new java.util.Date(" + Calendar.getInstance().getTimeInMillis() + "L)"
+            buildConfigField "String", "BUILD_NAME", "\"" + System.getenv("USER") + "\""
             if (System.getenv("KEYSTORE_FILE") != null) {
                 signingConfig signingConfigs.release
             }
diff --git a/cSploit/src/main/AndroidManifest.xml b/cSploit/src/main/AndroidManifest.xml
index 84618a1962..3c6a33db5d 100644
--- a/cSploit/src/main/AndroidManifest.xml
+++ b/cSploit/src/main/AndroidManifest.xml
@@ -14,14 +14,19 @@
     <uses-permission
         android:name="android.permission.READ_EXTERNAL_STORAGE"
         android:maxSdkVersion="18" />
-    <uses-permission android:name="android.permission.READ_LOGS" />
 
     <application
         android:name=".CSploitApplication"
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
-        android:theme="@style/AppTheme">
+        android:theme="@style/AppTheme"
+        android:resizeableActivity="true">
+
+    <meta-data
+            android:name="android.max_aspect"
+            android:value="2.1" />
+
         <activity
             android:name=".MainActivity"
             android:configChanges="orientation|screenSize"
@@ -34,12 +39,6 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="org.acra.CrashReportDialog"
-                  android:theme="@style/Theme.Dialog"
-                  android:launchMode="singleInstance"
-                  android:excludeFromRecents="true"
-                  android:finishOnTaskLaunch="true" />
-
         <!-- suppress AndroidDomInspection -->
         <service
             android:name=".services.UpdateService"
diff --git a/cSploit/src/main/java/org/csploit/android/CSploitApplication.java b/cSploit/src/main/java/org/csploit/android/CSploitApplication.java
index ce3a4b747c..d56917e200 100644
--- a/cSploit/src/main/java/org/csploit/android/CSploitApplication.java
+++ b/cSploit/src/main/java/org/csploit/android/CSploitApplication.java
@@ -19,13 +19,19 @@
 package org.csploit.android;
 
 import android.app.Application;
+import android.content.Context;
 import android.content.SharedPreferences;
+import android.support.multidex.MultiDex;
 
 import org.acra.ACRA;
-import org.acra.ReportingInteractionMode;
-import org.acra.annotation.ReportsCrashes;
+import org.acra.annotation.AcraCore;
+import org.acra.annotation.AcraHttpSender;
+import org.acra.annotation.AcraNotification;
+import org.acra.config.CoreConfigurationBuilder;
+import org.acra.config.HttpSenderConfigurationBuilder;
+import org.acra.config.NotificationConfigurationBuilder;
+import org.acra.data.StringFormat;
 import org.acra.sender.HttpSender;
-import org.csploit.android.core.Logger;
 import org.csploit.android.core.System;
 import org.csploit.android.plugins.ExploitFinder;
 import org.csploit.android.plugins.Inspector;
@@ -40,19 +46,24 @@
 
 import java.net.NoRouteToHostException;
 
-@ReportsCrashes(
+@AcraHttpSender(
   httpMethod = HttpSender.Method.PUT,
-  reportType = HttpSender.Type.JSON,
-  formUri = "http://csploit.iriscouch.com/acra-csploit/_design/acra-storage/_update/report",
-  formUriBasicAuthLogin = "android",
-  formUriBasicAuthPassword = "DEADBEEF",
-  mode = ReportingInteractionMode.DIALOG,
-  resDialogText = R.string.crash_dialog_text,
-  resDialogIcon = R.drawable.dsploit_icon,
-  resDialogTitle = R.string.crash_dialog_title,
-  resDialogCommentPrompt = R.string.crash_dialog_comment
+  uri = "http://csploit.iriscouch.com/acra-csploit/_design/acra-storage/_update/report",
+  basicAuthLogin = "android",
+  basicAuthPassword = "DEADBEEF"
 )
+@AcraNotification (
+        resChannelName = R.string.csploitChannelId,
+        resText = R.string.crash_dialog_text,
+        resIcon = R.drawable.dsploit_icon,
+        resTitle = R.string.crash_dialog_title,
+        resCommentPrompt = R.string.crash_dialog_comment
+)
+
+@AcraCore(applicationLogFile = "/cSploitd.log")
+
 public class CSploitApplication extends Application {
+
   @Override
   public void onCreate() {
     SharedPreferences themePrefs = getSharedPreferences("THEME", 0);
@@ -76,7 +87,11 @@ public void onCreate() {
         System.errorLogging(e);
     }
 
-    ACRA.setConfig(ACRA.getConfig().setApplicationLogFile(System.getCorePath() + "/cSploitd.log"));
+    CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this);
+    builder.setBuildConfigClass(BuildConfig.class).setReportFormat(StringFormat.JSON);
+    builder.getPluginConfigurationBuilder(HttpSenderConfigurationBuilder.class);
+    builder.getPluginConfigurationBuilder(NotificationConfigurationBuilder.class);
+    ACRA.init(this, builder);
 
     // load system modules even if the initialization failed
     System.registerPlugin(new RouterPwn());
@@ -89,4 +104,11 @@ public void onCreate() {
     System.registerPlugin(new MITM());
     System.registerPlugin(new PacketForger());
   }
+
+  @Override
+  protected void attachBaseContext(Context base) {
+    super.attachBaseContext(base);
+    MultiDex.install(this);
+    ACRA.init(this);
+  }
 }
diff --git a/cSploit/src/main/java/org/csploit/android/MainActivity.java b/cSploit/src/main/java/org/csploit/android/MainActivity.java
index 79accb87a7..89b9ca7a33 100644
--- a/cSploit/src/main/java/org/csploit/android/MainActivity.java
+++ b/cSploit/src/main/java/org/csploit/android/MainActivity.java
@@ -19,17 +19,35 @@
  */
 package org.csploit.android;
 
+import android.Manifest;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
 import android.support.v7.app.AppCompatActivity;
+import android.widget.Toast;
 
 public class MainActivity extends AppCompatActivity {
 
   MainFragment f;
+  final static int MY_PERMISSIONS_WANTED = 1;
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
+    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
+      NotificationChannel mChannel = new NotificationChannel(getString(R.string.csploitChannelId),
+              getString(R.string.cSploitChannelDescription), NotificationManager.IMPORTANCE_DEFAULT);
+      NotificationManager mNotificationManager =
+              (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+      if (mNotificationManager != null) {
+          mNotificationManager.createNotificationChannel(mChannel);
+      }
+    }
     SharedPreferences themePrefs = getSharedPreferences("THEME", 0);
     if (themePrefs.getBoolean("isDark", false))
       setTheme(R.style.DarkTheme);
@@ -44,9 +62,35 @@ protected void onCreate(Bundle savedInstanceState) {
       getSupportFragmentManager().beginTransaction()
               .add(R.id.mainframe, f).commit();
     }
+    verifyPerms();
   }
 
-  public void onBackPressed() {
-    f.onBackPressed();
-  }
+  public void verifyPerms() {
+        if (ContextCompat.checkSelfPermission(this,
+                Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this,
+                Manifest.permission.READ_PHONE_STATE)
+                != PackageManager.PERMISSION_GRANTED) {
+          ActivityCompat.requestPermissions(this,
+                  new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE},
+                  MY_PERMISSIONS_WANTED);
+        }
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode,
+                                           String permissions[], int[] grantResults) {
+        switch (requestCode) {
+            case MY_PERMISSIONS_WANTED: {
+                // If request is cancelled, the result arrays are empty.
+                if (grantResults.length > 0
+                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+                    Toast.makeText(this, R.string.permissions_succeed, Toast.LENGTH_LONG).show();
+                } else {
+                    Toast.makeText(this, R.string.permissions_fail, Toast.LENGTH_LONG).show();
+                    finish();
+                }
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/cSploit/src/main/java/org/csploit/android/SettingsFragment.java b/cSploit/src/main/java/org/csploit/android/SettingsFragment.java
index ba6db23dd2..1aea61f5fc 100644
--- a/cSploit/src/main/java/org/csploit/android/SettingsFragment.java
+++ b/cSploit/src/main/java/org/csploit/android/SettingsFragment.java
@@ -99,6 +99,7 @@ public static class PrefsFrag extends PreferenceFragmentCompat implements Shared
 
             @Override
             public void onViewCreated(View v, Bundle savedInstanceState) {
+                super.onViewCreated(v, savedInstanceState);
                 SharedPreferences themePrefs = getActivity().getSharedPreferences("THEME", 0);
                 Boolean isDark = themePrefs.getBoolean("isDark", false);
                 if (isDark) {
@@ -140,7 +141,7 @@ public void onCreate(Bundle savedInstanceState) {
                 @Override
                 public boolean onPreferenceChange(Preference preference, Object newValue) {
                     SharedPreferences themePrefs = getActivity().getBaseContext().getSharedPreferences("THEME", 0);
-                    themePrefs.edit().putBoolean("isDark", (Boolean) newValue).commit();
+                    themePrefs.edit().putBoolean("isDark", (Boolean) newValue).apply();
                     Toast.makeText(getActivity().getBaseContext(), getString(R.string.please_restart), Toast.LENGTH_LONG).show();
                     return true;
                 }
@@ -276,7 +277,7 @@ else if (checker != null && !checker.canExecuteInDir(path))
 
                 else {
                     //noinspection ConstantConditions
-                    getPreferenceManager().getSharedPreferences().edit().putString(key, path).commit();
+                    getPreferenceManager().getSharedPreferences().edit().putString(key, path).apply();
                     if (oldPath != null && !oldPath.equals(path)) {
                         File current = new File(oldPath);
 
diff --git a/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java b/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java
index 8956a8c6de..3804258e70 100644
--- a/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java
+++ b/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java
@@ -17,6 +17,7 @@
 import org.csploit.android.tools.NMap;
 
 import java.util.List;
+import java.util.Locale;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -84,8 +85,9 @@ public void run() {
 
         synchronized (MultiAttackService.this) {
           completedTargets++;
-          mBuilder.setContentInfo(String.format("%d/%d",
-                  completedTargets, totalTargets));
+          mBuilder.setContentInfo(String.format(Locale.getDefault(), "%d/%d",
+                  completedTargets, totalTargets))
+                  .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
           mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
         }
 
@@ -199,7 +201,7 @@ private void setupNotification() {
     // get notification manager
     mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
     // get notification builder
-    mBuilder = new NotificationCompat.Builder(this);
+    mBuilder = new NotificationCompat.Builder(this, getBaseContext().getString(R.string.csploitChannelId));
     // create a broadcast receiver to get actions
     // performed on the notification by the user
     mReceiver = new BroadcastReceiver() {
@@ -237,7 +239,8 @@ private void finishNotification() {
       mBuilder.setContentIntent(PendingIntent.getActivity(this, CLICK_CODE, mContentIntent, 0))
               .setProgress(0,0,false)
               .setAutoCancel(true)
-              .setDeleteIntent(PendingIntent.getActivity(this, 0, new Intent(), 0));
+              .setDeleteIntent(PendingIntent.getActivity(this, 0, new Intent(), 0))
+              .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
       mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
     }
     if(mReceiver!=null)
diff --git a/cSploit/src/main/java/org/csploit/android/core/System.java b/cSploit/src/main/java/org/csploit/android/core/System.java
index 4c0718ebea..be85431054 100644
--- a/cSploit/src/main/java/org/csploit/android/core/System.java
+++ b/cSploit/src/main/java/org/csploit/android/core/System.java
@@ -36,8 +36,7 @@
 import android.preference.PreferenceManager;
 import android.support.annotation.Nullable;
 import android.util.SparseIntArray;
-import org.acra.ACRA;
-import org.acra.ACRAConfiguration;
+
 import org.apache.commons.compress.utils.IOUtils;
 import org.csploit.android.R;
 import org.csploit.android.WifiScannerFragment;
@@ -59,9 +58,36 @@
 import org.csploit.android.services.Services;
 import org.csploit.android.tools.ToolBox;
 
-import java.io.*;
-import java.net.*;
-import java.util.*;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.NoRouteToHostException;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Observer;
+import java.util.SortedSet;
+import java.util.TreeSet;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.zip.GZIPInputStream;
@@ -271,12 +297,12 @@ private static void startCoreDaemon() throws SuException, DaemonException {
     if (ret != 0) {
       File log = new File(System.getCorePath(), "cSploitd.log");
       DaemonException daemonException = new DaemonException("core daemon returned " + ret);
-      if (log.exists() && log.canRead()) {
+   /*   if (log.exists() && log.canRead()) {
         ACRAConfiguration conf = ACRA.getConfig();
         conf.setApplicationLogFile(log.getAbsolutePath());
         ACRA.setConfig(conf);
         ACRA.getErrorReporter().handleException(daemonException, false);
-      }
+      }*/
       throw daemonException;
     }
   }
diff --git a/cSploit/src/main/java/org/csploit/android/services/UpdateService.java b/cSploit/src/main/java/org/csploit/android/services/UpdateService.java
index 1a24cd2e22..dcbd717354 100644
--- a/cSploit/src/main/java/org/csploit/android/services/UpdateService.java
+++ b/cSploit/src/main/java/org/csploit/android/services/UpdateService.java
@@ -243,7 +243,7 @@ private void setupNotification() {
     // get notification manager
     mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
     // get notification builder
-    mBuilder = new NotificationCompat.Builder(this);
+    mBuilder = new NotificationCompat.Builder(this, getBaseContext().getString(R.string.csploitChannelId));
     // create a broadcast receiver to get actions
     // performed on the notification by the user
     mReceiver = new BroadcastReceiver() {
@@ -283,7 +283,8 @@ private void finishNotification() {
     } else {
       Logger.debug("assign '"+contentIntent.toString()+"' to notification");
      if(mBuilder!=null&&mNotificationManager!=null) {
-       mBuilder.setContentIntent(PendingIntent.getActivity(this, DOWNLOAD_COMPLETE_CODE, contentIntent, 0));
+       mBuilder.setContentIntent(PendingIntent.getActivity(this, DOWNLOAD_COMPLETE_CODE, contentIntent, 0))
+               .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
      }
     }
@@ -342,7 +343,8 @@ private void verifyArchiveIntegrity() throws RuntimeException, KeyException {
             .setSmallIcon(android.R.drawable.ic_popup_sync)
             .setContentText("")
             .setContentInfo("")
-            .setProgress(100, 0, true);
+            .setProgress(100, 0, true)
+            .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
     mNotificationManager.notify(NOTIFICATION_ID,mBuilder.build());
 
     f = new File(mCurrentTask.path);
@@ -385,7 +387,8 @@ private void verifyArchiveIntegrity() throws RuntimeException, KeyException {
         percentage = (short) (((double) counter.getBytesRead() / total) * 100);
         if (percentage != old_percentage) {
           mBuilder.setProgress(100, percentage, false)
-                  .setContentInfo(percentage + "%");
+                  .setContentInfo(percentage + "%")
+                  .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
           mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
           old_percentage = percentage;
         }
@@ -455,7 +458,8 @@ private boolean haveLocalFile() throws CancellationException, SecurityException,
         mBuilder.setContentTitle(getString(R.string.checking))
                 .setSmallIcon(android.R.drawable.ic_popup_sync)
                 .setContentText("")
-                .setProgress(100, 0, false);
+                .setProgress(100, 0, false)
+                .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
         mNotificationManager.notify(NOTIFICATION_ID,mBuilder.build());
 
         md5 = (mCurrentTask.md5!=null ? MessageDigest.getInstance("MD5") : null);
@@ -473,7 +477,8 @@ private boolean haveLocalFile() throws CancellationException, SecurityException,
           percentage = (short) (((double) read_counter / total) * 100);
           if (percentage != previous_percentage) {
             mBuilder.setProgress(100, percentage, false)
-                    .setContentInfo(percentage + "%");
+                    .setContentInfo(percentage + "%")
+                    .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
             mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
             previous_percentage = percentage;
           }
@@ -542,7 +547,8 @@ private void downloadFile() throws SecurityException, KeyException, IOException,
       mBuilder.setContentTitle(getString(R.string.downloading_update))
               .setContentText(getString(R.string.connecting))
               .setSmallIcon(android.R.drawable.stat_sys_download)
-              .setProgress(100, 0, true);
+              .setProgress(100, 0, true)
+              .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
       mNotificationManager.notify(NOTIFICATION_ID,mBuilder.build());
 
       md5 = (mCurrentTask.md5!=null  ? MessageDigest.getInstance("MD5") : null);
@@ -573,7 +579,8 @@ private void downloadFile() throws SecurityException, KeyException, IOException,
       downloaded=0;
       previous_percentage=-1;
 
-      mBuilder.setContentText(file.getName());
+      mBuilder.setContentText(file.getName())
+              .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
       mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
 
       Logger.info(String.format("downloading '%s' to '%s'", mCurrentTask.url, mCurrentTask.path));
@@ -592,7 +599,8 @@ private void downloadFile() throws SecurityException, KeyException, IOException,
 
           if (percentage != previous_percentage) {
             mBuilder.setProgress(100, percentage, false)
-                    .setContentInfo(percentage + "%");
+                    .setContentInfo(percentage + "%")
+                    .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
             mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
             previous_percentage = percentage;
           }
@@ -663,7 +671,8 @@ private void extract() throws RuntimeException, IOException, InterruptedExceptio
             .setContentText("")
             .setContentInfo("")
             .setSmallIcon(android.R.drawable.ic_popup_sync)
-            .setProgress(100, 0, false);
+            .setProgress(100, 0, false)
+            .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
     mNotificationManager.notify(NOTIFICATION_ID,mBuilder.build());
 
     Logger.info(String.format("extracting '%s' to '%s'", mCurrentTask.path, mCurrentTask.outputDir));
@@ -782,7 +791,8 @@ else if(entry.isDirectory())
           percentage = (short) (((double) counter.getBytesRead() / total) * 100);
           if (percentage != old_percentage) {
             mBuilder.setProgress(100, percentage, false)
-                    .setContentInfo(percentage + "%");
+                    .setContentInfo(percentage + "%")
+                    .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
             mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
             old_percentage = percentage;
           }
@@ -823,7 +833,8 @@ else if(entry.isDirectory())
         Logger.info(".nomedia created");
 
       mBuilder.setContentInfo("")
-              .setProgress(100, 100, true);
+              .setProgress(100, 100, true)
+              .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
       mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
     } finally {
       if(is != null)
@@ -843,7 +854,8 @@ private void installGems() throws RuntimeException, IOException, InterruptedExce
             .setContentText(getString(R.string.installing_bundle))
             .setContentInfo("")
             .setSmallIcon(android.R.drawable.stat_sys_download)
-            .setProgress(100, 0, true);
+            .setProgress(100, 0, true)
+            .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
     mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
     Child bundleInstallTask;
 
@@ -855,7 +867,8 @@ private void installGems() throws RuntimeException, IOException, InterruptedExce
         bundleInstallTask = System.getTools().ruby.async("gem install bundle", mErrorReceiver);
       }
 
-      mBuilder.setContentText(getString(R.string.installing_msf_gems));
+      mBuilder.setContentText(getString(R.string.installing_msf_gems))
+              .setChannelId(getBaseContext().getString(R.string.csploitChannelId));
       mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
 
       // remove cache version file
diff --git a/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java b/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
index cbd48e2661..dff6472111 100644
--- a/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
+++ b/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
@@ -69,12 +69,13 @@ private void showToastForStatus(Context context, MsfRpcdService.Status status) {
 
   private void updateNotificationForStatus(Context context, MsfRpcdService.Status status) {
     NotificationCompat.Builder mBuilder =
-            new NotificationCompat.Builder(context)
+            new NotificationCompat.Builder(context, context.getString(R.string.csploitChannelId))
             .setSmallIcon(R.drawable.exploit_msf)
             .setContentTitle(context.getString(R.string.msf_status))
             .setProgress(0, 0, status.inProgress())
             .setContentText(context.getString(status.getText()))
-            .setColor(ContextCompat.getColor(context, status.getColor()));
+            .setColor(ContextCompat.getColor(context, status.getColor()))
+            .setChannelId(context.getString(R.string.csploitChannelId));
 
     NotificationManager mNotificationManager =
             (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
diff --git a/cSploit/src/main/res/values/strings.xml b/cSploit/src/main/res/values/strings.xml
index 643793f6bd..261c012269 100644
--- a/cSploit/src/main/res/values/strings.xml
+++ b/cSploit/src/main/res/values/strings.xml
@@ -537,4 +537,12 @@
     <string name="connection_lost_prompt">delete current session and start another?</string>
     <string name="any_interface">any interface</string>
     <string name="error_initializing_interface">Error initializing %s</string>
+
+    <!-- notification channel-->
+    <string name="csploitChannelId" translatable="false">csploit_channel</string>
+    <string name="cSploitChannelDescription" >cSploit-related messages</string>
+
+    <!-- permissions -->
+    <string name="permissions_fail">Sorry, you need to approve both permission requests.</string>
+    <string name="permissions_succeed">Thanks!</string>
 </resources>
diff --git a/cSploit/src/main/res/values/style.xml b/cSploit/src/main/res/values/style.xml
index 628c655cfb..401b44f90c 100644
--- a/cSploit/src/main/res/values/style.xml
+++ b/cSploit/src/main/res/values/style.xml
@@ -47,8 +47,6 @@
         <item name="android:windowBackground">@color/background_window_dark</item>
     </style>
 
-    <style name="Theme.Dialog" parent="@android:style/Theme.Dialog" />
-
     <style name="AppAnimation" parent="android:Animation.Dialog">
         <item name="android:inAnimation">@anim/fadein</item>
         <item name="android:outAnimation">@anim/fadein</item>
diff --git a/cSploit/src/main/res/xml/preferences.xml b/cSploit/src/main/res/xml/preferences.xml
index 3d3e039ead..b385cb193b 100644
--- a/cSploit/src/main/res/xml/preferences.xml
+++ b/cSploit/src/main/res/xml/preferences.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
@@ -234,4 +234,4 @@
             android:title="@string/pref_msf_delete" />
     </PreferenceCategory>
 
-</PreferenceScreen>
+</android.support.v7.preference.PreferenceScreen>
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 4b8a3c2dae..8ac864467d 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Thu Nov 19 16:09:54 PST 2015
+#Tue Oct 17 19:27:29 PDT 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip

From 455e1145610cb552f1068a1d5926d73747b12277 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Fri, 2 Mar 2018 00:15:49 -0800
Subject: [PATCH 06/21] Additional updates for Android Studio 3.2a4 + new
 gradle + acra update

---
 build.gradle                             | 2 +-
 cSploit/build.gradle                     | 6 +++---
 gradle/wrapper/gradle-wrapper.properties | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/build.gradle b/build.gradle
index dfc3de68c0..822fadc2eb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0-alpha03'
+        classpath 'com.android.tools.build:gradle:3.2.0-alpha04'
     }
 }
 
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index d96c10529d..93b3de2e3c 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0-alpha03'
+        classpath 'com.android.tools.build:gradle:3.2.0-alpha04'
     }
 }
 
@@ -30,8 +30,8 @@ dependencies {
     implementation 'org.msgpack:msgpack:0.6.12'
     implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
     implementation 'org.tukaani:xz:1.8'
-    implementation 'ch.acra:acra-http:5.1.0'
-    implementation 'ch.acra:acra-notification:5.1.0'
+    implementation 'ch.acra:acra-http:5.1.1'
+    implementation 'ch.acra:acra-notification:5.1.1'
     testImplementation 'junit:junit:4.12'
 }
 
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 8ac864467d..8cb0e291ba 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

From 7cb17d6ec129005363791d63be841f60c0cfe87f Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 19 Aug 2018 14:46:33 -0700
Subject: [PATCH 07/21] Update build tools + libraries + gradle etc. to latest
 + target api 28

---
 build.gradle                             |  2 +-
 cSploit/build.gradle                     | 24 ++++++++++++------------
 gradle/wrapper/gradle-wrapper.properties |  2 +-
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/build.gradle b/build.gradle
index 822fadc2eb..49f5eb61e1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0-alpha04'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha06'
     }
 }
 
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 93b3de2e3c..6f52aa0d2e 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0-alpha04'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha06'
     }
 }
 
@@ -19,25 +19,25 @@ allprojects {
 apply plugin:  'com.android.application'
 
 dependencies {
-    implementation 'com.android.support:support-v4:27.0.2'
-    implementation 'com.android.support:appcompat-v7:27.0.2'
-    implementation 'com.android.support:design:27.0.2'
-    implementation 'com.android.support:preference-v7:27.0.2'
-    implementation 'org.apache.commons:commons-compress:1.16.1'
+    implementation 'com.android.support:support-v4:27.1.1'
+    implementation 'com.android.support:appcompat-v7:27.1.1'
+    implementation 'com.android.support:design:27.1.1'
+    implementation 'com.android.support:preference-v7:27.1.1'
+    implementation 'org.apache.commons:commons-compress:1.18'
     implementation 'commons-net:commons-net:3.6'
     implementation 'com.github.zafarkhaja:java-semver:0.9.0'
-    implementation 'org.unbescape:unbescape:1.1.5.RELEASE'
+    implementation 'org.unbescape:unbescape:1.1.6.RELEASE'
     implementation 'org.msgpack:msgpack:0.6.12'
     implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
     implementation 'org.tukaani:xz:1.8'
-    implementation 'ch.acra:acra-http:5.1.1'
-    implementation 'ch.acra:acra-notification:5.1.1'
+    implementation 'ch.acra:acra-http:5.1.3'
+    implementation 'ch.acra:acra-notification:5.1.3'
     testImplementation 'junit:junit:4.12'
 }
 
 android {
-    compileSdkVersion 27
-    buildToolsVersion '27.0.3'
+    compileSdkVersion 28
+    buildToolsVersion '28.0.2'
 
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
@@ -51,7 +51,7 @@ android {
 
     defaultConfig {
         minSdkVersion 14
-        targetSdkVersion 27
+        targetSdkVersion 28
         versionCode 4
         versionName "1.7.0-unstable"
         if(System.getenv("NIGHTLY_BUILD")) {
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 8cb0e291ba..59c28e7e2b 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-rc-2-all.zip

From e3b0dd075d594169e4387abd65ef3f0355bc4710 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 19 Aug 2018 14:49:45 -0700
Subject: [PATCH 08/21] Add check to make sure WAKE_LOCK perm is available +
 delcare in manifest

This was an issue in ACRA.  Thanks to vczilla & gregd for chasing it down.
See issue #941
---
 cSploit/src/main/AndroidManifest.xml                      | 3 +++
 .../src/main/java/org/csploit/android/MainActivity.java   | 8 ++++++--
 cSploit/src/main/res/values/strings.xml                   | 2 +-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/cSploit/src/main/AndroidManifest.xml b/cSploit/src/main/AndroidManifest.xml
index 3c6a33db5d..f142250582 100644
--- a/cSploit/src/main/AndroidManifest.xml
+++ b/cSploit/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     package="org.csploit.android">
 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@@ -14,6 +15,8 @@
     <uses-permission
         android:name="android.permission.READ_EXTERNAL_STORAGE"
         android:maxSdkVersion="18" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" tools:node="replace"/>
+
 
     <application
         android:name=".CSploitApplication"
diff --git a/cSploit/src/main/java/org/csploit/android/MainActivity.java b/cSploit/src/main/java/org/csploit/android/MainActivity.java
index 89b9ca7a33..44d4a102e7 100644
--- a/cSploit/src/main/java/org/csploit/android/MainActivity.java
+++ b/cSploit/src/main/java/org/csploit/android/MainActivity.java
@@ -70,9 +70,13 @@ public void verifyPerms() {
                 Manifest.permission.WRITE_EXTERNAL_STORAGE)
                 != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this,
                 Manifest.permission.READ_PHONE_STATE)
-                != PackageManager.PERMISSION_GRANTED) {
+                != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this,
+              Manifest.permission.WAKE_LOCK)
+              != PackageManager.PERMISSION_GRANTED)
+      {
           ActivityCompat.requestPermissions(this,
-                  new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE},
+                  new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE,
+                  Manifest.permission.WAKE_LOCK},
                   MY_PERMISSIONS_WANTED);
         }
     }
diff --git a/cSploit/src/main/res/values/strings.xml b/cSploit/src/main/res/values/strings.xml
index 261c012269..076cb5bdb7 100644
--- a/cSploit/src/main/res/values/strings.xml
+++ b/cSploit/src/main/res/values/strings.xml
@@ -543,6 +543,6 @@
     <string name="cSploitChannelDescription" >cSploit-related messages</string>
 
     <!-- permissions -->
-    <string name="permissions_fail">Sorry, you need to approve both permission requests.</string>
+    <string name="permissions_fail">Sorry, you need to approve all permission requests.</string>
     <string name="permissions_succeed">Thanks!</string>
 </resources>

From 20aad68da4fb376ccf4b515608ffcc8b6c50a414 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 19 Aug 2018 14:50:34 -0700
Subject: [PATCH 09/21] Some additions to manifest in case anyone is using this
 on a chromebook.

---
 cSploit/src/main/AndroidManifest.xml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/cSploit/src/main/AndroidManifest.xml b/cSploit/src/main/AndroidManifest.xml
index f142250582..23e689c1f8 100644
--- a/cSploit/src/main/AndroidManifest.xml
+++ b/cSploit/src/main/AndroidManifest.xml
@@ -40,6 +40,11 @@
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
+            <meta-data android:name="WindowManagerPreference:SuppressWindowControlNavigationButton" android:value="true" />
+            <layout
+                android:gravity="center"
+                android:minHeight="320dp"
+                android:minWidth="480dp" />
         </activity>
 
         <!-- suppress AndroidDomInspection -->

From 4db083018adcee1429bedffe7cef10d050134264 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 19 Aug 2018 14:51:49 -0700
Subject: [PATCH 10/21] Remove double WAKE_LOCK permission.

---
 cSploit/src/main/AndroidManifest.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/cSploit/src/main/AndroidManifest.xml b/cSploit/src/main/AndroidManifest.xml
index 23e689c1f8..e835cfaa72 100644
--- a/cSploit/src/main/AndroidManifest.xml
+++ b/cSploit/src/main/AndroidManifest.xml
@@ -8,7 +8,6 @@
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />

From 3402fb3c7b20dce84448fc0a71820d72e29608a1 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 19 Aug 2018 15:18:26 -0700
Subject: [PATCH 11/21] Refactor for AppCompat (using AS3.3 canary 6 + custom
 fixes)

---
 .../main/java/org/csploit/android/core/System.java   |  7 ++++---
 .../org/csploit/android/gui/dialogs/AboutDialog.java |  8 ++++----
 .../csploit/android/gui/dialogs/ChangelogDialog.java |  6 +++---
 .../csploit/android/gui/dialogs/ChoiceDialog.java    |  6 +++---
 .../csploit/android/gui/dialogs/ConfirmDialog.java   |  6 +++---
 .../android/gui/dialogs/CustomFilterDialog.java      |  6 +++---
 .../org/csploit/android/gui/dialogs/ErrorDialog.java |  8 ++++----
 .../org/csploit/android/gui/dialogs/FatalDialog.java |  8 ++++----
 .../csploit/android/gui/dialogs/FinishDialog.java    |  6 +++---
 .../org/csploit/android/gui/dialogs/InputDialog.java |  8 ++++----
 .../android/gui/dialogs/ListChoiceDialog.java        | 12 ++++++------
 .../android/gui/dialogs/MultipleChoiceDialog.java    | 12 ++++++------
 .../android/gui/dialogs/RedirectionDialog.java       |  6 +++---
 .../csploit/android/gui/dialogs/SpinnerDialog.java   |  8 ++++----
 .../csploit/android/gui/dialogs/WifiCrackDialog.java |  6 +++---
 .../java/org/csploit/android/plugins/RouterPwn.java  |  4 ++--
 .../services/receivers/MsfRpcdServiceReceiver.java   |  3 ++-
 cSploit/src/main/res/layout/actions_list_item.xml    |  3 ++-
 .../main/res/layout/plugin_exploit_finder_item.xml   |  3 ++-
 .../res/layout/plugin_mitm_hijacker_list_item.xml    |  3 ++-
 .../src/main/res/layout/plugin_mitm_list_item.xml    |  3 ++-
 cSploit/src/main/res/layout/target_empty.xml         |  5 +++--
 .../src/main/res/layout/wifi_scanner_list_item.xml   |  3 ++-
 23 files changed, 74 insertions(+), 66 deletions(-)

diff --git a/cSploit/src/main/java/org/csploit/android/core/System.java b/cSploit/src/main/java/org/csploit/android/core/System.java
index be85431054..82ded9565b 100644
--- a/cSploit/src/main/java/org/csploit/android/core/System.java
+++ b/cSploit/src/main/java/org/csploit/android/core/System.java
@@ -18,7 +18,6 @@
  */
 package org.csploit.android.core;
 
-import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.ActivityManager.RunningServiceInfo;
 import android.content.Context;
@@ -35,6 +34,8 @@
 import android.os.PowerManager.WakeLock;
 import android.preference.PreferenceManager;
 import android.support.annotation.Nullable;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AppCompatActivity;
 import android.util.SparseIntArray;
 
 import org.apache.commons.compress.utils.IOUtils;
@@ -385,12 +386,12 @@ private static void uncaughtReloadNetworkMapping() throws UnknownHostException,
     mInitialized = true;
   }
 
-  public static boolean checkNetworking(final Activity current) {
+  public static boolean checkNetworking(final FragmentActivity current) {
     if (!mNetwork.isConnected()) {
 
       Intent intent = new Intent();
       intent.putExtra(WifiScannerFragment.CONNECTED, false);
-      current.setResult(Activity.RESULT_OK, intent);
+      current.setResult(AppCompatActivity.RESULT_OK, intent);
 
       String title = current.getString(R.string.error);
       String message = current.getString(R.string.wifi_went_down);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java
index 334825a4d9..14b3c20ab2 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.TextView;
@@ -31,8 +31,8 @@
 
 import java.text.DateFormat;
 
-public class AboutDialog extends AlertDialog{
-  public AboutDialog(Activity activity){
+public class AboutDialog extends AlertDialog {
+  public AboutDialog(FragmentActivity activity){
     super(activity);
 
     DateFormat df = DateFormat.getDateTimeInstance();
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java
index d322f49010..c997d3407a 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java
@@ -19,10 +19,10 @@
 package org.csploit.android.gui.dialogs;
 
 import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.app.ProgressDialog;
 import android.content.DialogInterface;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatActivity;
 import android.text.Html;
 import android.widget.TextView;
 
@@ -41,7 +41,7 @@ public class ChangelogDialog extends AlertDialog
   private ProgressDialog mLoader = null;
 
   @SuppressLint("SetJavaScriptEnabled")
-  public ChangelogDialog(final Activity activity){
+  public ChangelogDialog(final AppCompatActivity activity){
     super(activity);
 
     this.setTitle("Changelog");
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java
index 7fb6dfb0f0..7db39afe1d 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.Button;
 import android.widget.LinearLayout;
@@ -33,7 +33,7 @@ public interface ChoiceDialogListener{
     void onChoice(int choice);
   }
 
-  public ChoiceDialog(final Activity activity, String title, String[] choices, final ChoiceDialogListener listener){
+  public ChoiceDialog(final FragmentActivity activity, String title, String[] choices, final ChoiceDialogListener listener){
     super(activity);
 
     this.setTitle(title);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java
index 7f8d62d2ec..420f439f66 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 
 import org.csploit.android.R;
 
@@ -31,7 +31,7 @@ public interface ConfirmDialogListener{
     void onCancel();
   }
 
-  public ConfirmDialog(String title, CharSequence message, Activity activity, ConfirmDialogListener confirmDialogListener){
+  public ConfirmDialog(String title, CharSequence message, FragmentActivity activity, ConfirmDialogListener confirmDialogListener){
     super(activity);
 
     this.setTitle(title);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java
index ca5d00eee6..89dd105a39 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatActivity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.EditText;
@@ -34,7 +34,7 @@ public interface CustomFilterDialogListener{
     void onInputEntered(ArrayList<String> from, ArrayList<String> to);
   }
 
-  public CustomFilterDialog(String title, Activity activity, final CustomFilterDialogListener listener){
+  public CustomFilterDialog(String title, AppCompatActivity activity, final CustomFilterDialogListener listener){
     super(activity);
 
     final View view = LayoutInflater.from(activity).inflate(R.layout.plugin_mitm_filter_dialog, null);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java
index 1c84e3f0f5..07d8580fea 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java
@@ -18,12 +18,12 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 
-public class ErrorDialog extends AlertDialog{
-  public ErrorDialog(String title, String message, final Activity activity){
+public class ErrorDialog extends AlertDialog {
+  public ErrorDialog(String title, String message, final FragmentActivity activity){
     super(activity);
 
     this.setTitle(title);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java
index e2dd45d206..85a770d866 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java
@@ -18,15 +18,15 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
 import android.widget.TextView;
 
 public class FatalDialog extends AlertDialog{
-  public FatalDialog(String title, String message, boolean html, final Activity activity){
+  public FatalDialog(String title, String message, boolean html, final FragmentActivity activity){
     super(activity);
 
     this.setTitle(title);
@@ -52,7 +52,7 @@ public void onClick(DialogInterface dialog, int id){
     });
   }
 
-  public FatalDialog(String title, String message, final Activity activity){
+  public FatalDialog(String title, String message, final FragmentActivity activity){
     this(title, message, false, activity);
   }
 }
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java
index 6fad70c785..703958ed92 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java
@@ -18,12 +18,12 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 
 public class FinishDialog extends AlertDialog{
-  public FinishDialog(String title, String message, final Activity activity){
+  public FinishDialog(String title, String message, final FragmentActivity activity){
     super(activity);
 
     this.setTitle(title);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java
index dcf4b39615..a0049c17fa 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.text.InputType;
 import android.widget.EditText;
 
@@ -33,11 +33,11 @@ public interface InputDialogListener{
     void onInputEntered(String input);
   }
 
-  public InputDialog(String title, String message, Activity activity, InputDialogListener inputDialogListener){
+  public InputDialog(String title, String message, FragmentActivity activity, InputDialogListener inputDialogListener){
     this(title, message, null, true, false, activity, inputDialogListener);
   }
 
-  public InputDialog(String title, String message, String text, boolean editable, boolean password, Activity activity, InputDialogListener inputDialogListener){
+  public InputDialog(String title, String message, String text, boolean editable, boolean password, FragmentActivity activity, InputDialogListener inputDialogListener){
     super(activity);
 
     mEditText = new EditText(activity);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java
index a79d83fdd6..43c5f0f7d5 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
@@ -28,12 +28,12 @@
 
 import org.csploit.android.R;
 
-public class ListChoiceDialog extends AlertDialog{
+public class ListChoiceDialog extends AlertDialog {
 
   /** create a list choice dialog from android resource ids
    * @param items String ids
    */
-  public ListChoiceDialog(Integer title, Integer[] items, Activity activity, final ChoiceDialog.ChoiceDialogListener listener){
+  public ListChoiceDialog(Integer title, Integer[] items, FragmentActivity activity, final ChoiceDialog.ChoiceDialogListener listener){
     super(activity);
 
     ListView mList = new ListView(activity);
@@ -67,7 +67,7 @@ public void onClick(DialogInterface dialog, int id){
   /** create a list choice dialog from a String array
    * @param items Strings to choose from
    */
-  public ListChoiceDialog(String title, String[] items, Activity activity, final ChoiceDialog.ChoiceDialogListener listener){
+  public ListChoiceDialog(String title, String[] items, FragmentActivity activity, final ChoiceDialog.ChoiceDialogListener listener){
     super(activity);
 
     ListView mList = new ListView(activity);
@@ -95,7 +95,7 @@ public void onClick(DialogInterface dialog, int id){
   /** create a list choice dialog from generic objects array ( call toString on every object )
    * @param items array containing objects to choices from
    */
-  public ListChoiceDialog(String title, Object[] items, Activity activity, final ChoiceDialog.ChoiceDialogListener listener) {
+  public ListChoiceDialog(String title, Object[] items, FragmentActivity activity, final ChoiceDialog.ChoiceDialogListener listener) {
     super(activity);
 
     ListView mList = new ListView(activity);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java
index 1a556dc999..5e5657a355 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
@@ -40,7 +40,7 @@ public interface MultipleChoiceDialogListener{
   /** create a list choice dialog from android resource ids
    * @param items String ids
    */
-  public MultipleChoiceDialog(int title, int[] items, Activity activity, final MultipleChoiceDialogListener listener){
+  public MultipleChoiceDialog(int title, int[] items, FragmentActivity activity, final MultipleChoiceDialogListener listener){
     super(activity);
 
     String[] _items = new String[items.length];
@@ -55,7 +55,7 @@ public MultipleChoiceDialog(int title, int[] items, Activity activity, final Mul
    * @param items Strings to choose from
    */
 
-  public MultipleChoiceDialog(String title, String[] items, Activity activity, final MultipleChoiceDialogListener listener){
+  public MultipleChoiceDialog(String title, String[] items, FragmentActivity activity, final MultipleChoiceDialogListener listener){
     super(activity);
 
     commonCtor(title, items, activity, listener);
@@ -64,7 +64,7 @@ public MultipleChoiceDialog(String title, String[] items, Activity activity, fin
   /** create a list choice dialog from generic objects array ( call toString on every object )
    * @param items
    */
-  public MultipleChoiceDialog(String title, Object[] items, Activity activity, final MultipleChoiceDialogListener listener) {
+  public MultipleChoiceDialog(String title, Object[] items, FragmentActivity activity, final MultipleChoiceDialogListener listener) {
     super(activity);
 
     String[] _items = new String[items.length];
@@ -75,7 +75,7 @@ public MultipleChoiceDialog(String title, Object[] items, Activity activity, fin
     commonCtor(title, _items, activity, listener);
   }
 
-  private void commonCtor(String title, String[] items, Activity activity, final MultipleChoiceDialogListener listener) {
+  private void commonCtor(String title, String[] items, FragmentActivity activity, final MultipleChoiceDialogListener listener) {
 
     ListView mList = new ListView(activity);
 
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java
index 593932cc4d..3d38b3cf38 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatActivity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.EditText;
@@ -28,7 +28,7 @@
 import org.csploit.android.R;
 
 public class RedirectionDialog extends AlertDialog{
-  public RedirectionDialog(String title, Activity activity, final RedirectionDialogListener listener){
+  public RedirectionDialog(String title, AppCompatActivity activity, final RedirectionDialogListener listener){
     super(activity);
 
     final View view = LayoutInflater.from(activity).inflate(R.layout.plugin_mitm_redirect_dialog, null);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java
index 57fca5c69c..a177dc1c54 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemSelectedListener;
@@ -32,7 +32,7 @@
 public class SpinnerDialog extends AlertDialog{
   private int mSelected = 0;
 
-  public SpinnerDialog(String title, String message, String[] items, int default_index, Activity activity, final SpinnerDialogListener listener){
+  public SpinnerDialog(String title, String message, String[] items, int default_index, FragmentActivity activity, final SpinnerDialogListener listener){
     super(activity);
 
     Spinner mSpinner = new Spinner(activity);
@@ -66,7 +66,7 @@ public void onClick(DialogInterface dialog, int id) {
     });
   }
 
-  public SpinnerDialog(String title, String message, String[] items, Activity activity, final SpinnerDialogListener listener) {
+  public SpinnerDialog(String title, String message, String[] items, FragmentActivity activity, final SpinnerDialogListener listener) {
     this(title,message,items,0,activity,listener);
   }
 
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java
index 9ab1e3dc50..fbaf8a55d4 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java
@@ -18,9 +18,9 @@
  */
 package org.csploit.android.gui.dialogs;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.DialogInterface;
+import android.support.v4.app.FragmentActivity;
+import android.support.v7.app.AlertDialog;
 import android.text.InputType;
 import android.widget.EditText;
 
@@ -29,7 +29,7 @@
 public class WifiCrackDialog extends AlertDialog{
   private EditText mEditText = null;
 
-  public WifiCrackDialog(String title, String message, Activity activity, WifiCrackDialogListener wifiCrackDialogListener){
+  public WifiCrackDialog(String title, String message, FragmentActivity activity, WifiCrackDialogListener wifiCrackDialogListener){
     super(activity);
 
     mEditText = new EditText(activity);
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java b/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java
index b4f000b3d4..a0f836c692 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java
@@ -18,11 +18,11 @@
  */
 package org.csploit.android.plugins;
 
-import android.app.Activity;
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
+import android.support.v4.app.FragmentActivity;
 
 import org.csploit.android.R;
 import org.csploit.android.core.Plugin;
@@ -64,7 +64,7 @@ public void onActionClick(Context context){
     }
     catch(ActivityNotFoundException e){
       System.errorLogging(e);
-      new ErrorDialog(getString(R.string.error), getString(R.string.no_activities_for_url), (Activity) context).show();
+      new ErrorDialog(getString(R.string.error), getString(R.string.no_activities_for_url), (FragmentActivity) context).show();
     }
   }
 }
diff --git a/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java b/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
index dff6472111..cbdb062ff2 100644
--- a/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
+++ b/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
@@ -9,6 +9,7 @@
 import android.support.design.widget.Snackbar;
 import android.support.v4.app.NotificationCompat;
 import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AppCompatActivity;
 
 import org.csploit.android.R;
 import org.csploit.android.core.ManagedReceiver;
@@ -63,7 +64,7 @@ public void run() {
 
   private void showToastForStatus(Context context, MsfRpcdService.Status status) {
     Snackbar
-            .make(((Activity) context).findViewById(android.R.id.content), status.getText(), status.isError() ? Snackbar.LENGTH_LONG : Snackbar.LENGTH_SHORT)
+            .make(((AppCompatActivity) context).findViewById(android.R.id.content), status.getText(), status.isError() ? Snackbar.LENGTH_LONG : Snackbar.LENGTH_SHORT)
     .show();
   }
 
diff --git a/cSploit/src/main/res/layout/actions_list_item.xml b/cSploit/src/main/res/layout/actions_list_item.xml
index 547fb06425..aca8520a7b 100644
--- a/cSploit/src/main/res/layout/actions_list_item.xml
+++ b/cSploit/src/main/res/layout/actions_list_item.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
@@ -32,7 +33,7 @@
                 android:layout_height="match_parent"
                 android:layout_gravity="center"
                 android:contentDescription="@string/image"
-                android:src="@drawable/action_plugin" />
+                app:srcCompat="@drawable/action_plugin" />
         </LinearLayout>
 
         <LinearLayout
diff --git a/cSploit/src/main/res/layout/plugin_exploit_finder_item.xml b/cSploit/src/main/res/layout/plugin_exploit_finder_item.xml
index fac11969f0..8f77cf6965 100644
--- a/cSploit/src/main/res/layout/plugin_exploit_finder_item.xml
+++ b/cSploit/src/main/res/layout/plugin_exploit_finder_item.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
 
@@ -12,7 +13,7 @@
         android:layout_marginBottom="4dp"
         android:layout_marginRight="16dp"
         android:gravity="center_vertical"
-        android:src="@android:drawable/ic_menu_edit"
+        app:srcCompat="@android:drawable/ic_menu_edit"
         android:layout_centerVertical="true" />
 
     <TextView
diff --git a/cSploit/src/main/res/layout/plugin_mitm_hijacker_list_item.xml b/cSploit/src/main/res/layout/plugin_mitm_hijacker_list_item.xml
index d47dbe6c89..12b3b80722 100644
--- a/cSploit/src/main/res/layout/plugin_mitm_hijacker_list_item.xml
+++ b/cSploit/src/main/res/layout/plugin_mitm_hijacker_list_item.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
@@ -11,7 +12,7 @@
         android:layout_height="fill_parent"
         android:layout_marginRight="16dp"
         android:gravity="center_vertical"
-        android:src="@drawable/favicon_generic"
+        app:srcCompat="@drawable/favicon_generic"
         android:contentDescription="@string/app_name" />
 
     <TextView
diff --git a/cSploit/src/main/res/layout/plugin_mitm_list_item.xml b/cSploit/src/main/res/layout/plugin_mitm_list_item.xml
index 2ec30bbe60..1e7fde3405 100644
--- a/cSploit/src/main/res/layout/plugin_mitm_list_item.xml
+++ b/cSploit/src/main/res/layout/plugin_mitm_list_item.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@drawable/card_background">
@@ -20,7 +21,7 @@
             android:layout_centerVertical="true"
             android:layout_marginRight="8dp"
             android:gravity="center_vertical"
-            android:src="@drawable/action_plugin"
+            app:srcCompat="@drawable/action_plugin"
             android:contentDescription="@string/app_name" />
 
         <TextView
diff --git a/cSploit/src/main/res/layout/target_empty.xml b/cSploit/src/main/res/layout/target_empty.xml
index b3f235abc7..fc98985f9e 100644
--- a/cSploit/src/main/res/layout/target_empty.xml
+++ b/cSploit/src/main/res/layout/target_empty.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"
-                 android:layout_width="wrap_content"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center"
                  android:orientation="vertical"
@@ -11,7 +12,7 @@
         android:layout_height="fill_parent"
         android:layout_gravity="center"
         android:scaleType="centerInside"
-        android:src="@drawable/ic_launcher" />
+        app:srcCompat="@drawable/ic_launcher" />
 
     <TextView
         android:id="@+id/emptyTextView"
diff --git a/cSploit/src/main/res/layout/wifi_scanner_list_item.xml b/cSploit/src/main/res/layout/wifi_scanner_list_item.xml
index a27c21b936..d5a40ee1df 100644
--- a/cSploit/src/main/res/layout/wifi_scanner_list_item.xml
+++ b/cSploit/src/main/res/layout/wifi_scanner_list_item.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="horizontal"
@@ -19,7 +20,7 @@
         android:cropToPadding="false"
         android:focusable="false"
         android:scaleType="fitXY"
-        android:src="@drawable/ic_impossible" />
+        app:srcCompat="@drawable/ic_impossible" />
 
 
     <TextView

From 01beed3155414356669fc31c6287b97028c0af5e Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 19 Aug 2018 15:31:24 -0700
Subject: [PATCH 12/21] Migrate from legacy support libraries to new
 Jetpack/AndroidX

---
 cSploit/build.gradle                            |  8 ++++----
 .../org/csploit/android/ActionActivity.java     |  2 +-
 .../org/csploit/android/ActionFragment.java     |  8 ++++----
 .../org/csploit/android/CSploitApplication.java |  2 +-
 .../java/org/csploit/android/MainActivity.java  |  6 +++---
 .../java/org/csploit/android/MainFragment.java  | 10 +++++-----
 .../org/csploit/android/SettingsActivity.java   |  2 +-
 .../org/csploit/android/SettingsFragment.java   | 17 +++++++++--------
 .../csploit/android/WifiScannerActivity.java    |  2 +-
 .../csploit/android/WifiScannerFragment.java    |  8 ++++----
 .../android/core/MultiAttackService.java        |  2 +-
 .../java/org/csploit/android/core/Plugin.java   |  4 +---
 .../java/org/csploit/android/core/System.java   |  6 +++---
 .../java/org/csploit/android/gui/Console.java   |  4 ++--
 .../java/org/csploit/android/gui/FileEdit.java  |  2 +-
 .../android/gui/dialogs/AboutDialog.java        |  4 ++--
 .../android/gui/dialogs/ChangelogDialog.java    |  4 ++--
 .../android/gui/dialogs/ChoiceDialog.java       |  5 +++--
 .../android/gui/dialogs/ConfirmDialog.java      |  4 ++--
 .../android/gui/dialogs/CustomFilterDialog.java |  4 ++--
 .../android/gui/dialogs/ErrorDialog.java        |  4 ++--
 .../android/gui/dialogs/FatalDialog.java        |  4 ++--
 .../android/gui/dialogs/FinishDialog.java       |  4 ++--
 .../android/gui/dialogs/InputDialog.java        |  5 +++--
 .../android/gui/dialogs/ListChoiceDialog.java   |  4 ++--
 .../gui/dialogs/MultipleChoiceDialog.java       |  5 +++--
 .../android/gui/dialogs/RedirectionDialog.java  |  4 ++--
 .../android/gui/dialogs/SpinnerDialog.java      |  4 ++--
 .../android/gui/dialogs/WifiCrackDialog.java    |  4 ++--
 .../java/org/csploit/android/net/Endpoint.java  |  4 ++--
 .../java/org/csploit/android/net/Network.java   |  4 ++--
 .../java/org/csploit/android/net/Target.java    |  3 ++-
 .../csploit/android/plugins/ExploitFinder.java  |  4 ++--
 .../org/csploit/android/plugins/Inspector.java  |  4 ++--
 .../csploit/android/plugins/LoginCracker.java   |  4 ++--
 .../csploit/android/plugins/PortScanner.java    |  4 ++--
 .../org/csploit/android/plugins/RouterPwn.java  |  3 ++-
 .../org/csploit/android/plugins/Traceroute.java |  4 ++--
 .../android/plugins/mitm/DNSSpoofing.java       |  2 +-
 .../android/plugins/mitm/PasswordSniffer.java   |  2 +-
 .../csploit/android/plugins/mitm/Sniffer.java   |  3 +--
 .../android/plugins/mitm/hijacker/Hijacker.java |  2 +-
 .../plugins/mitm/hijacker/HijackerWebView.java  |  2 +-
 .../csploit/android/services/UpdateService.java |  2 +-
 .../receivers/MsfRpcdServiceReceiver.java       |  8 ++++----
 cSploit/src/main/res/layout/console_layout.xml  |  2 +-
 .../main/res/layout/plugin_exploit_finder.xml   |  2 +-
 .../src/main/res/layout/plugin_inspector.xml    |  2 +-
 .../main/res/layout/plugin_login_cracker.xml    |  2 +-
 .../src/main/res/layout/plugin_portscanner.xml  |  2 +-
 .../src/main/res/layout/plugin_traceroute.xml   |  2 +-
 cSploit/src/main/res/xml/preferences.xml        |  4 ++--
 52 files changed, 108 insertions(+), 105 deletions(-)

diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 6f52aa0d2e..3fae09f4e6 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -19,10 +19,10 @@ allprojects {
 apply plugin:  'com.android.application'
 
 dependencies {
-    implementation 'com.android.support:support-v4:27.1.1'
-    implementation 'com.android.support:appcompat-v7:27.1.1'
-    implementation 'com.android.support:design:27.1.1'
-    implementation 'com.android.support:preference-v7:27.1.1'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
+    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
+    implementation 'androidx.preference:preference:1.0.0-rc01'
+    implementation 'com.google.android.material:material:1.0.0-rc01'
     implementation 'org.apache.commons:commons-compress:1.18'
     implementation 'commons-net:commons-net:3.6'
     implementation 'com.github.zafarkhaja:java-semver:0.9.0'
diff --git a/cSploit/src/main/java/org/csploit/android/ActionActivity.java b/cSploit/src/main/java/org/csploit/android/ActionActivity.java
index de675fcd1d..205a118adf 100644
--- a/cSploit/src/main/java/org/csploit/android/ActionActivity.java
+++ b/cSploit/src/main/java/org/csploit/android/ActionActivity.java
@@ -20,7 +20,7 @@
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 
 public class ActionActivity extends AppCompatActivity {
 
diff --git a/cSploit/src/main/java/org/csploit/android/ActionFragment.java b/cSploit/src/main/java/org/csploit/android/ActionFragment.java
index ba82dec8db..e6a8cf08dc 100644
--- a/cSploit/src/main/java/org/csploit/android/ActionFragment.java
+++ b/cSploit/src/main/java/org/csploit/android/ActionFragment.java
@@ -5,10 +5,10 @@
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
diff --git a/cSploit/src/main/java/org/csploit/android/CSploitApplication.java b/cSploit/src/main/java/org/csploit/android/CSploitApplication.java
index d56917e200..1bfddc1ce7 100644
--- a/cSploit/src/main/java/org/csploit/android/CSploitApplication.java
+++ b/cSploit/src/main/java/org/csploit/android/CSploitApplication.java
@@ -21,7 +21,7 @@
 import android.app.Application;
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.support.multidex.MultiDex;
+import androidx.multidex.MultiDex;
 
 import org.acra.ACRA;
 import org.acra.annotation.AcraCore;
diff --git a/cSploit/src/main/java/org/csploit/android/MainActivity.java b/cSploit/src/main/java/org/csploit/android/MainActivity.java
index 44d4a102e7..2584817084 100644
--- a/cSploit/src/main/java/org/csploit/android/MainActivity.java
+++ b/cSploit/src/main/java/org/csploit/android/MainActivity.java
@@ -26,9 +26,9 @@
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AppCompatActivity;
 import android.widget.Toast;
 
 public class MainActivity extends AppCompatActivity {
diff --git a/cSploit/src/main/java/org/csploit/android/MainFragment.java b/cSploit/src/main/java/org/csploit/android/MainFragment.java
index 926a853157..6f65344e45 100644
--- a/cSploit/src/main/java/org/csploit/android/MainFragment.java
+++ b/cSploit/src/main/java/org/csploit/android/MainFragment.java
@@ -28,11 +28,11 @@
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.view.ActionMode;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.view.ActionMode;
 import android.text.Html;
 import android.view.LayoutInflater;
 import android.view.Menu;
diff --git a/cSploit/src/main/java/org/csploit/android/SettingsActivity.java b/cSploit/src/main/java/org/csploit/android/SettingsActivity.java
index 5ff17402c5..36bcb32363 100644
--- a/cSploit/src/main/java/org/csploit/android/SettingsActivity.java
+++ b/cSploit/src/main/java/org/csploit/android/SettingsActivity.java
@@ -20,7 +20,7 @@
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 
 public class SettingsActivity extends AppCompatActivity {
 
diff --git a/cSploit/src/main/java/org/csploit/android/SettingsFragment.java b/cSploit/src/main/java/org/csploit/android/SettingsFragment.java
index 1aea61f5fc..ec8008accf 100644
--- a/cSploit/src/main/java/org/csploit/android/SettingsFragment.java
+++ b/cSploit/src/main/java/org/csploit/android/SettingsFragment.java
@@ -24,14 +24,6 @@
 import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.preference.EditTextPreference;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceFragmentCompat;
-import android.support.v7.preference.TwoStatePreference;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Toast;
@@ -51,6 +43,15 @@
 import java.io.File;
 import java.io.IOException;
 
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+import androidx.preference.EditTextPreference;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.TwoStatePreference;
+
 public class SettingsFragment extends Fragment {
 
 
diff --git a/cSploit/src/main/java/org/csploit/android/WifiScannerActivity.java b/cSploit/src/main/java/org/csploit/android/WifiScannerActivity.java
index 6641543c4a..6275e98cbf 100644
--- a/cSploit/src/main/java/org/csploit/android/WifiScannerActivity.java
+++ b/cSploit/src/main/java/org/csploit/android/WifiScannerActivity.java
@@ -20,7 +20,7 @@
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 
 public class WifiScannerActivity extends AppCompatActivity {
 
diff --git a/cSploit/src/main/java/org/csploit/android/WifiScannerFragment.java b/cSploit/src/main/java/org/csploit/android/WifiScannerFragment.java
index 77aace94d5..51d6efcf6b 100644
--- a/cSploit/src/main/java/org/csploit/android/WifiScannerFragment.java
+++ b/cSploit/src/main/java/org/csploit/android/WifiScannerFragment.java
@@ -29,10 +29,10 @@
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
-import android.support.v4.app.ListFragment;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
+import androidx.fragment.app.ListFragment;
+import androidx.core.content.ContextCompat;
+import androidx.core.view.MenuItemCompat;
+import androidx.appcompat.app.AppCompatActivity;
 import android.text.ClipboardManager;
 import android.text.Html;
 import android.view.LayoutInflater;
diff --git a/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java b/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java
index 3804258e70..ee7d1a1054 100644
--- a/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java
+++ b/cSploit/src/main/java/org/csploit/android/core/MultiAttackService.java
@@ -7,7 +7,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
 
 import org.csploit.android.R;
 import org.csploit.android.net.Network;
diff --git a/cSploit/src/main/java/org/csploit/android/core/Plugin.java b/cSploit/src/main/java/org/csploit/android/core/Plugin.java
index afab51a3db..d044fde5a5 100644
--- a/cSploit/src/main/java/org/csploit/android/core/Plugin.java
+++ b/cSploit/src/main/java/org/csploit/android/core/Plugin.java
@@ -20,13 +20,11 @@
 
 import android.content.Context;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.MenuItem;
 
 import org.csploit.android.R;
 import org.csploit.android.net.Target;
-import org.csploit.android.net.Target.Exploit;
-import org.csploit.android.net.Target.Port;
 import org.csploit.android.net.metasploit.RPCClient;
 
 import java.util.Arrays;
diff --git a/cSploit/src/main/java/org/csploit/android/core/System.java b/cSploit/src/main/java/org/csploit/android/core/System.java
index 82ded9565b..b5d22efe4f 100644
--- a/cSploit/src/main/java/org/csploit/android/core/System.java
+++ b/cSploit/src/main/java/org/csploit/android/core/System.java
@@ -33,9 +33,9 @@
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
 import android.preference.PreferenceManager;
-import android.support.annotation.Nullable;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AppCompatActivity;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.util.SparseIntArray;
 
 import org.apache.commons.compress.utils.IOUtils;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/Console.java b/cSploit/src/main/java/org/csploit/android/gui/Console.java
index 9ad404341f..879442b257 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/Console.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/Console.java
@@ -3,8 +3,8 @@
 import android.content.Context;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v7.app.AppCompatActivity;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import androidx.appcompat.app.AppCompatActivity;
 import android.text.Html;
 import android.view.KeyEvent;
 import android.view.Menu;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/FileEdit.java b/cSploit/src/main/java/org/csploit/android/gui/FileEdit.java
index af03a8d927..fe7caa686f 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/FileEdit.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/FileEdit.java
@@ -1,7 +1,7 @@
 package org.csploit.android.gui;
 
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java
index 14b3c20ab2..def8bbe26e 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/AboutDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.TextView;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java
index c997d3407a..53964d1231 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChangelogDialog.java
@@ -21,8 +21,8 @@
 import android.annotation.SuppressLint;
 import android.app.ProgressDialog;
 import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
 import android.text.Html;
 import android.widget.TextView;
 
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java
index 7db39afe1d..4c94925847 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ChoiceDialog.java
@@ -19,8 +19,6 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.Button;
 import android.widget.LinearLayout;
@@ -28,6 +26,9 @@
 
 import org.csploit.android.R;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+
 public class ChoiceDialog extends AlertDialog{
   public interface ChoiceDialogListener{
     void onChoice(int choice);
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java
index 420f439f66..627fbbeb25 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ConfirmDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 
 import org.csploit.android.R;
 
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java
index 89dd105a39..dda33c5575 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/CustomFilterDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.EditText;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java
index 07d8580fea..0ba0ae303a 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ErrorDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 
 public class ErrorDialog extends AlertDialog {
   public ErrorDialog(String title, String message, final FragmentActivity activity){
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java
index 85a770d866..99544b3709 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FatalDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
 import android.widget.TextView;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java
index 703958ed92..6532ae4bac 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/FinishDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 
 public class FinishDialog extends AlertDialog{
   public FinishDialog(String title, String message, final FragmentActivity activity){
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java
index a0049c17fa..9be91a3f93 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/InputDialog.java
@@ -19,13 +19,14 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
 import android.text.InputType;
 import android.widget.EditText;
 
 import org.csploit.android.R;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+
 public class InputDialog extends AlertDialog{
   private EditText mEditText = null;
 
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java
index 43c5f0f7d5..ee4af4c77c 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/ListChoiceDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java
index 5e5657a355..7d93f60aee 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/MultipleChoiceDialog.java
@@ -19,8 +19,6 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
@@ -29,6 +27,9 @@
 
 import org.csploit.android.R;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+
 public class MultipleChoiceDialog extends AlertDialog{
 
   public interface MultipleChoiceDialogListener{
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java
index 3d38b3cf38..e614116eb5 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/RedirectionDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.EditText;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java
index a177dc1c54..bf303a42d9 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/SpinnerDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemSelectedListener;
diff --git a/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java b/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java
index fbaf8a55d4..da237a2067 100644
--- a/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java
+++ b/cSploit/src/main/java/org/csploit/android/gui/dialogs/WifiCrackDialog.java
@@ -19,8 +19,8 @@
 package org.csploit.android.gui.dialogs;
 
 import android.content.DialogInterface;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.appcompat.app.AlertDialog;
 import android.text.InputType;
 import android.widget.EditText;
 
diff --git a/cSploit/src/main/java/org/csploit/android/net/Endpoint.java b/cSploit/src/main/java/org/csploit/android/net/Endpoint.java
index 93a696278d..934ad0a172 100644
--- a/cSploit/src/main/java/org/csploit/android/net/Endpoint.java
+++ b/cSploit/src/main/java/org/csploit/android/net/Endpoint.java
@@ -18,8 +18,8 @@
  */
 package org.csploit.android.net;
 
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import org.csploit.android.core.System;
 import org.csploit.android.helpers.NetworkHelper;
 
diff --git a/cSploit/src/main/java/org/csploit/android/net/Network.java b/cSploit/src/main/java/org/csploit/android/net/Network.java
index b4ad47e191..e50fe4cc68 100644
--- a/cSploit/src/main/java/org/csploit/android/net/Network.java
+++ b/cSploit/src/main/java/org/csploit/android/net/Network.java
@@ -24,8 +24,8 @@
 import android.net.NetworkInfo;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import android.util.Patterns;
 import org.apache.commons.net.util.SubnetUtils;
 import org.csploit.android.core.Logger;
diff --git a/cSploit/src/main/java/org/csploit/android/net/Target.java b/cSploit/src/main/java/org/csploit/android/net/Target.java
index 63f17df623..6f907a5607 100644
--- a/cSploit/src/main/java/org/csploit/android/net/Target.java
+++ b/cSploit/src/main/java/org/csploit/android/net/Target.java
@@ -19,7 +19,6 @@
 package org.csploit.android.net;
 
 import android.os.StrictMode;
-import android.support.annotation.NonNull;
 
 import org.csploit.android.R;
 import org.csploit.android.core.Logger;
@@ -40,6 +39,8 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import androidx.annotation.NonNull;
+
 public class Target implements Comparable<Target>
 {
 
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/ExploitFinder.java b/cSploit/src/main/java/org/csploit/android/plugins/ExploitFinder.java
index e2acb447e8..d2a54b43f1 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/ExploitFinder.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/ExploitFinder.java
@@ -24,8 +24,8 @@
 import android.graphics.Typeface;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.content.ContextCompat;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import androidx.core.content.ContextCompat;
 import android.text.Html;
 import android.view.LayoutInflater;
 import android.view.Menu;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/Inspector.java b/cSploit/src/main/java/org/csploit/android/plugins/Inspector.java
index a3850c882b..16c2ed182a 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/Inspector.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/Inspector.java
@@ -20,8 +20,8 @@
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.content.ContextCompat;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import androidx.core.content.ContextCompat;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/LoginCracker.java b/cSploit/src/main/java/org/csploit/android/plugins/LoginCracker.java
index b97110089c..19d559821a 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/LoginCracker.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/LoginCracker.java
@@ -25,8 +25,8 @@
 import android.graphics.Typeface;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.content.ContextCompat;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import androidx.core.content.ContextCompat;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java b/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java
index 73e86639e8..6a789e9b9d 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java
@@ -23,8 +23,8 @@
 import android.content.SharedPreferences;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.content.ContextCompat;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import androidx.core.content.ContextCompat;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java b/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java
index a0f836c692..1422a042d1 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java
@@ -22,7 +22,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.support.v4.app.FragmentActivity;
 
 import org.csploit.android.R;
 import org.csploit.android.core.Plugin;
@@ -30,6 +29,8 @@
 import org.csploit.android.gui.dialogs.ErrorDialog;
 import org.csploit.android.net.Target;
 
+import androidx.fragment.app.FragmentActivity;
+
 public class RouterPwn extends Plugin{
   public RouterPwn(){
     super(
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/Traceroute.java b/cSploit/src/main/java/org/csploit/android/plugins/Traceroute.java
index a790a7f17e..f48878f8a4 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/Traceroute.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/Traceroute.java
@@ -20,8 +20,8 @@
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.content.ContextCompat;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import androidx.core.content.ContextCompat;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/mitm/DNSSpoofing.java b/cSploit/src/main/java/org/csploit/android/plugins/mitm/DNSSpoofing.java
index cf0fc832cf..ac6ffb84f1 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/mitm/DNSSpoofing.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/mitm/DNSSpoofing.java
@@ -20,7 +20,7 @@
 
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/mitm/PasswordSniffer.java b/cSploit/src/main/java/org/csploit/android/plugins/mitm/PasswordSniffer.java
index 7fc5552553..31ca6563f9 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/mitm/PasswordSniffer.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/mitm/PasswordSniffer.java
@@ -23,7 +23,7 @@
 import android.content.SharedPreferences;
 import android.graphics.Typeface;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/mitm/Sniffer.java b/cSploit/src/main/java/org/csploit/android/plugins/mitm/Sniffer.java
index 3599384249..e3087af77e 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/mitm/Sniffer.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/mitm/Sniffer.java
@@ -23,7 +23,7 @@
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.os.FileObserver;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.text.Html;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -44,7 +44,6 @@
 import org.csploit.android.R;
 import org.csploit.android.core.Child;
 import org.csploit.android.core.ChildManager;
-import org.csploit.android.core.Logger;
 import org.csploit.android.core.System;
 import org.csploit.android.gui.dialogs.ConfirmDialog;
 import org.csploit.android.gui.dialogs.ErrorDialog;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/Hijacker.java b/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/Hijacker.java
index 1277b8f816..f175174440 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/Hijacker.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/Hijacker.java
@@ -26,7 +26,7 @@
 import android.graphics.Canvas;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
diff --git a/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/HijackerWebView.java b/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/HijackerWebView.java
index 863b9da859..04188dbb7a 100644
--- a/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/HijackerWebView.java
+++ b/cSploit/src/main/java/org/csploit/android/plugins/mitm/hijacker/HijackerWebView.java
@@ -22,7 +22,7 @@
 import android.content.SharedPreferences;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.util.Patterns;
 import android.view.KeyEvent;
 import android.view.Menu;
diff --git a/cSploit/src/main/java/org/csploit/android/services/UpdateService.java b/cSploit/src/main/java/org/csploit/android/services/UpdateService.java
index dcbd717354..2a6afbec62 100644
--- a/cSploit/src/main/java/org/csploit/android/services/UpdateService.java
+++ b/cSploit/src/main/java/org/csploit/android/services/UpdateService.java
@@ -25,7 +25,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
 
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
diff --git a/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java b/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
index cbdb062ff2..3c353ef377 100644
--- a/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
+++ b/cSploit/src/main/java/org/csploit/android/services/receivers/MsfRpcdServiceReceiver.java
@@ -6,10 +6,10 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.SharedPreferences;
-import android.support.design.widget.Snackbar;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.app.NotificationCompat;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AppCompatActivity;
 
 import org.csploit.android.R;
 import org.csploit.android.core.ManagedReceiver;
diff --git a/cSploit/src/main/res/layout/console_layout.xml b/cSploit/src/main/res/layout/console_layout.xml
index d57a93ea0c..78a23dd936 100644
--- a/cSploit/src/main/res/layout/console_layout.xml
+++ b/cSploit/src/main/res/layout/console_layout.xml
@@ -61,7 +61,7 @@
         android:textSize="14sp"
         android:typeface="monospace" />
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/myFAB"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/cSploit/src/main/res/layout/plugin_exploit_finder.xml b/cSploit/src/main/res/layout/plugin_exploit_finder.xml
index 6aae0d9c12..c1ac9b7e11 100644
--- a/cSploit/src/main/res/layout/plugin_exploit_finder.xml
+++ b/cSploit/src/main/res/layout/plugin_exploit_finder.xml
@@ -22,7 +22,7 @@
         android:layout_marginLeft="16dp"
         android:layout_marginRight="16dp" />
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/searchToggleButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/cSploit/src/main/res/layout/plugin_inspector.xml b/cSploit/src/main/res/layout/plugin_inspector.xml
index 026735c44a..5d2390daf3 100644
--- a/cSploit/src/main/res/layout/plugin_inspector.xml
+++ b/cSploit/src/main/res/layout/plugin_inspector.xml
@@ -148,7 +148,7 @@
     Later children in a RelativeLayout tend to float over earlier children in a RelativeLayout.
     https://www.stackoverflow.com/a/28651543
     -->
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/inspectToggleButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/cSploit/src/main/res/layout/plugin_login_cracker.xml b/cSploit/src/main/res/layout/plugin_login_cracker.xml
index 045b8d0d9c..64a166445c 100644
--- a/cSploit/src/main/res/layout/plugin_login_cracker.xml
+++ b/cSploit/src/main/res/layout/plugin_login_cracker.xml
@@ -207,7 +207,7 @@
 
         </RelativeLayout>
     </LinearLayout>
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/startFAB"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/cSploit/src/main/res/layout/plugin_portscanner.xml b/cSploit/src/main/res/layout/plugin_portscanner.xml
index a2143e10f8..06eed0be1d 100644
--- a/cSploit/src/main/res/layout/plugin_portscanner.xml
+++ b/cSploit/src/main/res/layout/plugin_portscanner.xml
@@ -58,7 +58,7 @@
         android:textAppearance="?android:attr/textAppearanceSmall"
         android:visibility="gone" />
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/scanToggleButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/cSploit/src/main/res/layout/plugin_traceroute.xml b/cSploit/src/main/res/layout/plugin_traceroute.xml
index 88cb31ecf0..8ea01a9340 100644
--- a/cSploit/src/main/res/layout/plugin_traceroute.xml
+++ b/cSploit/src/main/res/layout/plugin_traceroute.xml
@@ -20,7 +20,7 @@
         android:layout_alignRight="@+id/traceListView"
         android:visibility="invisible" />
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/traceToggleButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/cSploit/src/main/res/xml/preferences.xml b/cSploit/src/main/res/xml/preferences.xml
index b385cb193b..10abb995bf 100644
--- a/cSploit/src/main/res/xml/preferences.xml
+++ b/cSploit/src/main/res/xml/preferences.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
@@ -234,4 +234,4 @@
             android:title="@string/pref_msf_delete" />
     </PreferenceCategory>
 
-</android.support.v7.preference.PreferenceScreen>
+</androidx.preference.PreferenceScreen>

From 621387217650d93b6df133c180edbdf163321ed5 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Thu, 23 Aug 2018 15:06:51 -0700
Subject: [PATCH 13/21] Add multidex support for older APIs & update to latest
 gradle/plugins

---
 build.gradle                             | 2 +-
 cSploit/build.gradle                     | 3 ++-
 gradle/wrapper/gradle-wrapper.properties | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/build.gradle b/build.gradle
index 49f5eb61e1..d736044f29 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha06'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
     }
 }
 
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 3fae09f4e6..0a566821ff 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha06'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
     }
 }
 
@@ -22,6 +22,7 @@ dependencies {
     implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
     implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
     implementation 'androidx.preference:preference:1.0.0-rc01'
+    implementation 'androidx.multidex:multidex:2.0.0'
     implementation 'com.google.android.material:material:1.0.0-rc01'
     implementation 'org.apache.commons:commons-compress:1.18'
     implementation 'commons-net:commons-net:3.6'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 59c28e7e2b..b19eeb6dbb 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-rc-2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-rc-3-all.zip

From 09cc75e13013027a7f03620eb0b4e5863826a33d Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 26 Aug 2018 12:40:28 -0700
Subject: [PATCH 14/21] Drop unneeded MavenCentral() repositories

---
 build.gradle         | 2 --
 cSploit/build.gradle | 2 --
 2 files changed, 4 deletions(-)

diff --git a/build.gradle b/build.gradle
index d736044f29..e0c9394682 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,6 @@ buildscript {
     repositories {
         google()
         jcenter()
-        mavenCentral()
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
@@ -14,6 +13,5 @@ allprojects {
     repositories {
         google()
         jcenter()
-        mavenCentral()
     }
 }
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 0a566821ff..141692c7c5 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -2,7 +2,6 @@ buildscript {
     repositories {
         google()
         jcenter()
-        mavenCentral()
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
@@ -13,7 +12,6 @@ allprojects {
     repositories {
         google()
         jcenter()
-        mavenCentral()
     }
 }
 apply plugin:  'com.android.application'

From dd165aec7508913ac0411a7eeff48b50b197d1b7 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Tue, 28 Aug 2018 12:11:29 -0700
Subject: [PATCH 15/21] Update gradle to 4.10 release

---
 gradle/wrapper/gradle-wrapper.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index b19eeb6dbb..b9fafea71c 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-rc-3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip

From 49cd67af2466b6cf334f923fb0c0d9f6ed2098f2 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Tue, 28 Aug 2018 12:14:45 -0700
Subject: [PATCH 16/21] Add gradle.properties to git per gradle.org forum
 recommendation

See discussion at:

https://discuss.gradle.org/t/best-practice-for-gradle-properties-and-scm/5809/2
---
 gradle.properties | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 gradle.properties

diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000000..5465fec0ec
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file

From 269d4817b58397edea0712b1eb62e9dfb79259a4 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Sun, 2 Sep 2018 18:54:38 -0700
Subject: [PATCH 17/21] Update to latest build tools + androidx libraries.

---
 build.gradle         | 2 +-
 cSploit/build.gradle | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/build.gradle b/build.gradle
index e0c9394682..8e336579ec 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
     }
 }
 
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 141692c7c5..256ed69c84 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -4,7 +4,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
     }
 }
 
@@ -17,9 +17,9 @@ allprojects {
 apply plugin:  'com.android.application'
 
 dependencies {
-    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
-    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
-    implementation 'androidx.preference:preference:1.0.0-rc01'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc02'
+    implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
+    implementation 'androidx.preference:preference:1.0.0-rc02'
     implementation 'androidx.multidex:multidex:2.0.0'
     implementation 'com.google.android.material:material:1.0.0-rc01'
     implementation 'org.apache.commons:commons-compress:1.18'

From 0da556441fb2be3d420b5dc156c1bf432154a2cf Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Wed, 19 Sep 2018 11:10:48 -0700
Subject: [PATCH 18/21] Update build tools, a few libraries, &
 MaterialComponents theme

---
 build.gradle                          | 2 +-
 cSploit/build.gradle                  | 8 ++++----
 cSploit/src/main/res/values/style.xml | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/build.gradle b/build.gradle
index 8e336579ec..e7d74871ff 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
     }
 }
 
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 256ed69c84..814e72f1f6 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -4,7 +4,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
     }
 }
 
@@ -21,7 +21,7 @@ dependencies {
     implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
     implementation 'androidx.preference:preference:1.0.0-rc02'
     implementation 'androidx.multidex:multidex:2.0.0'
-    implementation 'com.google.android.material:material:1.0.0-rc01'
+    implementation 'com.google.android.material:material:1.0.0-rc02'
     implementation 'org.apache.commons:commons-compress:1.18'
     implementation 'commons-net:commons-net:3.6'
     implementation 'com.github.zafarkhaja:java-semver:0.9.0'
@@ -29,8 +29,8 @@ dependencies {
     implementation 'org.msgpack:msgpack:0.6.12'
     implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
     implementation 'org.tukaani:xz:1.8'
-    implementation 'ch.acra:acra-http:5.1.3'
-    implementation 'ch.acra:acra-notification:5.1.3'
+    implementation 'ch.acra:acra-http:5.2.0'
+    implementation 'ch.acra:acra-notification:5.2.0'
     testImplementation 'junit:junit:4.12'
 }
 
diff --git a/cSploit/src/main/res/values/style.xml b/cSploit/src/main/res/values/style.xml
index 401b44f90c..2f7ae26288 100644
--- a/cSploit/src/main/res/values/style.xml
+++ b/cSploit/src/main/res/values/style.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
-    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
         <item name="actionBarStyle">@style/Theme.CSploitActionBarStyle</item>
         <item name="android:windowBackground">@color/background_window</item>
         <item name="colorPrimary">@color/app_color</item>
@@ -17,7 +17,7 @@
 
     <!-- this dark theme needs a lot of help and support in the app overall -->
 
-    <style name="DarkTheme" parent="Theme.AppCompat">
+    <style name="DarkTheme" parent="Theme.MaterialComponents">
         <item name="actionBarStyle">@style/Theme.CSploitActionBarDarkStyle</item>
         <item name="actionModeBackground">@color/app_color_dark</item>
         <item name="colorPrimary">@color/selectable_blue_dark</item>

From 1cc243956655b0d205a0afa4b576bb10ff31306a Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Thu, 20 Sep 2018 11:06:46 -0700
Subject: [PATCH 19/21] Update gradle 4.10->4.10.2

---
 gradle/wrapper/gradle-wrapper.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index b9fafea71c..e55a7e35d7 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

From b18590192d75d911592838fb7badc65ddc6218a7 Mon Sep 17 00:00:00 2001
From: fattire <f4ttire@gmail.com>
Date: Fri, 28 Sep 2018 11:27:57 -0700
Subject: [PATCH 20/21] gradle plugin & library updates + enable R8

---
 build.gradle         |  2 +-
 cSploit/build.gradle | 12 ++++++------
 gradle.properties    |  3 ++-
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/build.gradle b/build.gradle
index e7d74871ff..e97f625189 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha12'
     }
 }
 
diff --git a/cSploit/build.gradle b/cSploit/build.gradle
index 814e72f1f6..41ac0b3288 100644
--- a/cSploit/build.gradle
+++ b/cSploit/build.gradle
@@ -4,7 +4,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
+        classpath 'com.android.tools.build:gradle:3.3.0-alpha12'
     }
 }
 
@@ -17,11 +17,11 @@ allprojects {
 apply plugin:  'com.android.application'
 
 dependencies {
-    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc02'
-    implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
-    implementation 'androidx.preference:preference:1.0.0-rc02'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+    implementation 'androidx.appcompat:appcompat:1.0.0'
+    implementation 'androidx.preference:preference:1.0.0'
     implementation 'androidx.multidex:multidex:2.0.0'
-    implementation 'com.google.android.material:material:1.0.0-rc02'
+    implementation 'com.google.android.material:material:1.0.0'
     implementation 'org.apache.commons:commons-compress:1.18'
     implementation 'commons-net:commons-net:3.6'
     implementation 'com.github.zafarkhaja:java-semver:0.9.0'
@@ -36,7 +36,7 @@ dependencies {
 
 android {
     compileSdkVersion 28
-    buildToolsVersion '28.0.2'
+    buildToolsVersion '28.0.3'
 
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
diff --git a/gradle.properties b/gradle.properties
index 5465fec0ec..6b5ce54ee5 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,2 +1,3 @@
 android.enableJetifier=true
-android.useAndroidX=true
\ No newline at end of file
+android.useAndroidX=true
+android.enableR8 = true

From 814ddc87c31c7bab21107791d52568c5ecd6d6e4 Mon Sep 17 00:00:00 2001
From: pahapoika <pahapoika@riseup.net>
Date: Wed, 13 Jan 2021 11:00:40 +0200
Subject: [PATCH 21/21] EOL notice

Announce EOL. The project hasn't been updated by the devs for a long time.
---
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index 9fd7c7d789..a6c7ce4105 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,7 @@
+# cSploit is now considered EOL and is not being updated by the developers. Current version might not be functional on newer Android versions. We appreciate everyone who contributed to cSploit over the years. 
+
+
+
 # cSploit: Android network pentesting suite
 
 <img src="http://i.imgur.com/cFll5P9.jpg" width="250" />