From 55305f88f18059aeef5ab0afa5dceeec132fe437 Mon Sep 17 00:00:00 2001 From: Tad Date: Fri, 22 Dec 2023 14:59:47 -0500 Subject: [PATCH] Declare QUERY_ALL_PACKAGES Signed-off-by: Tad --- app/src/main/AndroidManifest.xml | 1 + .../java/us/spotco/malwarescanner/EventReceiver.java | 10 +++++++--- .../java/us/spotco/malwarescanner/MainActivity.java | 1 + .../java/us/spotco/malwarescanner/MalwareScanner.java | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b7a8c39..db89b3f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + diff --git a/app/src/main/java/us/spotco/malwarescanner/EventReceiver.java b/app/src/main/java/us/spotco/malwarescanner/EventReceiver.java index f58befa..dc5c187 100644 --- a/app/src/main/java/us/spotco/malwarescanner/EventReceiver.java +++ b/app/src/main/java/us/spotco/malwarescanner/EventReceiver.java @@ -32,14 +32,16 @@ public class EventReceiver extends BroadcastReceiver { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Utils.considerStartService(context); } + //Broken on Android 8.0+ if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) { if (intent.getDataString().contains(context.getPackageName())) { Utils.considerStartService(context); //We've been updated, restart service } else { + //Log.d("Hypatia", "An app has been updated"); //scanApp(context, intent.getDataString());//An app was updated, scan it } - } - if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) { + } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) { + //Log.d("Hypatia", "An app has been installed"); //scanApp(context, intent.getDataString());//An app was installed, scan it } } @@ -48,7 +50,9 @@ public class EventReceiver extends BroadcastReceiver { if (Utils.isServiceRunning(MalwareScannerService.class, context)) { HashSet filesToScan = new HashSet<>(); try { - filesToScan.add(new File(context.getPackageManager().getApplicationInfo(appID, PackageManager.GET_META_DATA).sourceDir)); + File appToScan = new File(context.getPackageManager().getApplicationInfo(appID, PackageManager.GET_META_DATA).sourceDir); + //Log.d("Hypatia", "Scanning app " + appToScan); + filesToScan.add(appToScan); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/java/us/spotco/malwarescanner/MainActivity.java b/app/src/main/java/us/spotco/malwarescanner/MainActivity.java index 600ce3b..da33133 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MainActivity.java +++ b/app/src/main/java/us/spotco/malwarescanner/MainActivity.java @@ -251,6 +251,7 @@ public class MainActivity extends Activity { if (scanApps) { for (ApplicationInfo packageInfo : getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) { filesToScan.add(new File(packageInfo.sourceDir)); + //Log.d("Hypatia", "Planning to scan " + packageInfo.sourceDir); } } if (scanInternal) { diff --git a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java index 154e01e..eee0e6a 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java +++ b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java @@ -207,6 +207,8 @@ class MalwareScanner extends AsyncTask, Object, String> { for (Map.Entry file : signaturesToCheck.entrySet()) { if (signatureDatabase.mightContain(file.getValue())) { publishProgress("Potential match in " + file.getKey().toString().replaceAll(Environment.getExternalStorageDirectory().toString(), "~"), false); + } else { + //Log.d("Hypatia", "No match for " + file.getValue()); } } publishProgress("\t" + context.getString(R.string.main_hash_scan_done, hashType) + "\n", true);