diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index cca0066ac0..72f9cc18f2 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,35 +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:** +*Remember to search for issues alike before creating new one!* -##Issue: -*Remember to search for issues alike before creating new one. 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 diff --git a/build.gradle b/build.gradle index dea94eb99c..e97f625189 100644 --- a/build.gradle +++ b/build.gradle @@ -1,17 +1,17 @@ // 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.3.0-alpha12' } } allprojects { repositories { + google() jcenter() - mavenCentral() } } diff --git a/cSploit/build.gradle b/cSploit/build.gradle index 0002b242e6..41ac0b3288 100644 --- a/cSploit/build.gradle +++ b/cSploit/build.gradle @@ -1,48 +1,46 @@ buildscript { repositories { + google() jcenter() - mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.5.0' + classpath 'com.android.tools.build:gradle:3.3.0-alpha12' } } -def getDate() { - return Calendar.getInstance().getTimeInMillis(); -} - allprojects { repositories { + google() jcenter() - mavenCentral() } } 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 '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' + 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.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.2.0' + implementation 'ch.acra:acra-notification:5.2.0' + testImplementation 'junit:junit:4.12' } android { - compileSdkVersion 23 - buildToolsVersion '23.0.2' + compileSdkVersion 28 + buildToolsVersion '28.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 +49,8 @@ android { } defaultConfig { - minSdkVersion 9 - targetSdkVersion 22 + minSdkVersion 14 + targetSdkVersion 28 versionCode 4 versionName "1.7.0-unstable" if(System.getenv("NIGHTLY_BUILD")) { @@ -81,8 +79,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 +89,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..e835cfaa72 100644 --- a/cSploit/src/main/AndroidManifest.xml +++ b/cSploit/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -7,21 +8,27 @@ - - + + + android:theme="@style/AppTheme" + android:resizeableActivity="true"> + + + + + - - = 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,39 @@ 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 || 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, + Manifest.permission.WAKE_LOCK}, + 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/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 ba6db23dd2..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 { @@ -99,6 +100,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 +142,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 +278,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/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 8956a8c6de..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; @@ -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/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 d2cd4f87fa..b5d22efe4f 100644 --- a/cSploit/src/main/java/org/csploit/android/core/System.java +++ b/cSploit/src/main/java/org/csploit/android/core/System.java @@ -18,8 +18,26 @@ */ package org.csploit.android.core; -import org.acra.ACRA; -import org.acra.ACRAConfiguration; +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 androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.app.AppCompatActivity; +import android.util.SparseIntArray; + import org.apache.commons.compress.utils.IOUtils; import org.csploit.android.R; import org.csploit.android.WifiScannerFragment; @@ -41,24 +59,6 @@ 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; @@ -298,12 +298,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; } } @@ -386,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); @@ -1062,7 +1062,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/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 334825a4d9..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -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 androidx.appcompat.app.AlertDialog; +import androidx.appcompat.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..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 @@ -18,8 +18,6 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; import android.view.View; import android.widget.Button; @@ -28,12 +26,15 @@ 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); } - 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..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; @@ -34,7 +34,7 @@ public interface CustomFilterDialogListener{ void onInputEntered(ArrayList from, ArrayList 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..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 @@ -18,12 +18,12 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -18,15 +18,15 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -18,12 +18,12 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -18,14 +18,15 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; 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; @@ -33,11 +34,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..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -18,8 +18,6 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; import android.view.View; import android.widget.AdapterView; @@ -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{ @@ -40,7 +41,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 +56,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 +65,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 +76,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..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.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..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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..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 @@ -18,9 +18,9 @@ */ package org.csploit.android.gui.dialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.DialogInterface; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.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/net/Endpoint.java b/cSploit/src/main/java/org/csploit/android/net/Endpoint.java index 2f52d5d100..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; @@ -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(){ 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 { 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 b4f000b3d4..1422a042d1 100644 --- a/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java +++ b/cSploit/src/main/java/org/csploit/android/plugins/RouterPwn.java @@ -18,7 +18,6 @@ */ package org.csploit.android.plugins; -import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; @@ -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( @@ -64,7 +65,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/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 1a24cd2e22..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; @@ -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..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,9 +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 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; @@ -63,18 +64,19 @@ 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(); } 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/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 @@ + app:srcCompat="@drawable/action_plugin" /> - - @@ -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" /> - - @@ -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" /> - - + app:srcCompat="@drawable/ic_launcher" /> + app:srcCompat="@drawable/ic_impossible" /> delete current session and start another? any interface Error initializing %s + + + csploit_channel + cSploit-related messages + + + Sorry, you need to approve all permission requests. + Thanks! diff --git a/cSploit/src/main/res/values/style.xml b/cSploit/src/main/res/values/style.xml index 628c655cfb..2f7ae26288 100644 --- a/cSploit/src/main/res/values/style.xml +++ b/cSploit/src/main/res/values/style.xml @@ -1,7 +1,7 @@ - -