diff --git a/app/build.gradle b/app/build.gradle index 328180a..93b12ae 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { applicationId "us.spotco.malwarescanner" minSdkVersion 16 targetSdkVersion 32 - versionCode 305 - versionName "3.05" + versionCode 306 + versionName "3.06" resConfigs 'en', 'af', 'de', 'el', 'es', 'fi', 'fr', 'it', 'pl', 'pt', 'ru', 'tr', 'zh-rCN' } buildTypes { diff --git a/app/src/main/java/us/spotco/malwarescanner/MainActivity.java b/app/src/main/java/us/spotco/malwarescanner/MainActivity.java index 19f58af..eaa1ba3 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MainActivity.java +++ b/app/src/main/java/us/spotco/malwarescanner/MainActivity.java @@ -281,7 +281,7 @@ public class MainActivity extends Activity { item.setChecked(scanExternal); break; case R.id.mnuSelfTestReal: - Utils.writeSelfTestFiles(); + Utils.writeSelfTestFiles(this); break; case R.id.mnuFullCredits: showCredits(); @@ -317,6 +317,7 @@ public class MainActivity extends Activity { filesToScan.add(new File("/data")); filesToScan.add(new File("/data/local/tmp")); filesToScan.add(new File("/firmware")); + filesToScan.add(new File("/oem")); filesToScan.add(new File("/odm")); filesToScan.add(new File("/odm_dlkm")); filesToScan.add(new File("/product")); @@ -327,14 +328,26 @@ public class MainActivity extends Activity { } if (scanApps) { for (ApplicationInfo packageInfo : getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) { - filesToScan.add(new File(packageInfo.sourceDir)); - filesToScan.add(new File(packageInfo.dataDir)); - filesToScan.add(new File(packageInfo.nativeLibraryDir)); - filesToScan.add(new File(packageInfo.publicSourceDir)); + if (packageInfo != null) { + if (packageInfo.sourceDir != null) { + filesToScan.add(new File(packageInfo.sourceDir)); + } + if (packageInfo.dataDir != null) { + filesToScan.add(new File(packageInfo.dataDir)); + } + if (packageInfo.nativeLibraryDir != null) { + filesToScan.add(new File(packageInfo.nativeLibraryDir)); + } + if (packageInfo.publicSourceDir != null) { + filesToScan.add(new File(packageInfo.publicSourceDir)); + } + } } } if (scanInternal) { - filesToScan.add(Environment.getExternalStorageDirectory()); + if (Environment.getExternalStorageDirectory() != null) { + filesToScan.add(Environment.getExternalStorageDirectory()); + } } if (scanExternal) { File externalStorage = new File("/storage"); diff --git a/app/src/main/java/us/spotco/malwarescanner/Utils.java b/app/src/main/java/us/spotco/malwarescanner/Utils.java index 4a15dfd..a527cc7 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Utils.java +++ b/app/src/main/java/us/spotco/malwarescanner/Utils.java @@ -26,6 +26,7 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.os.Environment; +import android.widget.Toast; import java.io.File; import java.io.PrintWriter; @@ -166,9 +167,9 @@ class Utils { try (Socket s = new Socket(host, port)) { s.close(); return true; - } catch (Exception e) { - return false; + } catch (Exception ignored) { } + return false; } public static void waitUntilOrbotIsAvailable() { @@ -178,7 +179,6 @@ class Utils { try { Thread.sleep(1000); } catch (Exception ignored) { - } } } @@ -203,11 +203,12 @@ class Utils { Utils.context = context; } - public static void writeSelfTestFiles() { + public static void writeSelfTestFiles(Context context) { int rand = new Random().nextInt(); writeStringToFile(new File(Environment.getExternalStorageDirectory() + "/Hypatia-MD5-Test-" + rand + ".txt"), "HypatiaHypatiaHypatia-MD5"); writeStringToFile(new File(Environment.getExternalStorageDirectory() + "/Hypatia-SHA1-Test-" + rand + ".txt"), "HypatiaHypatiaHypatia-SHA1"); writeStringToFile(new File(Environment.getExternalStorageDirectory() + "/Hypatia-SHA256-Test-" + rand + ".txt"), "HypatiaHypatiaHypatia-SHA256"); + Toast.makeText(context, R.string.lblWroteTestFiles, Toast.LENGTH_SHORT).show(); } public static void writeStringToFile(File fileOut, String s) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a237d63..39fcb79 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -75,4 +75,5 @@ Confirm download You appear to be on a metered connection. Are you sure you want to update the databases?\nIt may download up to %s megabytes of data. Skipping action, an update is running! + Wrote test files! diff --git a/fastlane/metadata/android/en-US/changelogs/306.txt b/fastlane/metadata/android/en-US/changelogs/306.txt new file mode 100644 index 0000000..632648c --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/306.txt @@ -0,0 +1 @@ +* Crash fix when scanning apps in some cases diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 0000000..63c5c70 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ