Crash fixes

Also adds an icon
Closes https://gitlab.com/divested-mobile/hypatia/-/issues/37

Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
Tad 2023-12-30 14:39:08 -05:00
parent a0f6a00244
commit fedca835d6
No known key found for this signature in database
GPG key ID: B286E9F57A07424B
6 changed files with 28 additions and 12 deletions

View file

@ -6,8 +6,8 @@ android {
applicationId "us.spotco.malwarescanner" applicationId "us.spotco.malwarescanner"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 32 targetSdkVersion 32
versionCode 305 versionCode 306
versionName "3.05" versionName "3.06"
resConfigs 'en', 'af', 'de', 'el', 'es', 'fi', 'fr', 'it', 'pl', 'pt', 'ru', 'tr', 'zh-rCN' resConfigs 'en', 'af', 'de', 'el', 'es', 'fi', 'fr', 'it', 'pl', 'pt', 'ru', 'tr', 'zh-rCN'
} }
buildTypes { buildTypes {

View file

@ -281,7 +281,7 @@ public class MainActivity extends Activity {
item.setChecked(scanExternal); item.setChecked(scanExternal);
break; break;
case R.id.mnuSelfTestReal: case R.id.mnuSelfTestReal:
Utils.writeSelfTestFiles(); Utils.writeSelfTestFiles(this);
break; break;
case R.id.mnuFullCredits: case R.id.mnuFullCredits:
showCredits(); showCredits();
@ -317,6 +317,7 @@ public class MainActivity extends Activity {
filesToScan.add(new File("/data")); filesToScan.add(new File("/data"));
filesToScan.add(new File("/data/local/tmp")); filesToScan.add(new File("/data/local/tmp"));
filesToScan.add(new File("/firmware")); filesToScan.add(new File("/firmware"));
filesToScan.add(new File("/oem"));
filesToScan.add(new File("/odm")); filesToScan.add(new File("/odm"));
filesToScan.add(new File("/odm_dlkm")); filesToScan.add(new File("/odm_dlkm"));
filesToScan.add(new File("/product")); filesToScan.add(new File("/product"));
@ -327,15 +328,27 @@ public class MainActivity extends Activity {
} }
if (scanApps) { if (scanApps) {
for (ApplicationInfo packageInfo : getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) { for (ApplicationInfo packageInfo : getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) {
if (packageInfo != null) {
if (packageInfo.sourceDir != null) {
filesToScan.add(new File(packageInfo.sourceDir)); filesToScan.add(new File(packageInfo.sourceDir));
}
if (packageInfo.dataDir != null) {
filesToScan.add(new File(packageInfo.dataDir)); filesToScan.add(new File(packageInfo.dataDir));
}
if (packageInfo.nativeLibraryDir != null) {
filesToScan.add(new File(packageInfo.nativeLibraryDir)); filesToScan.add(new File(packageInfo.nativeLibraryDir));
}
if (packageInfo.publicSourceDir != null) {
filesToScan.add(new File(packageInfo.publicSourceDir)); filesToScan.add(new File(packageInfo.publicSourceDir));
} }
} }
}
}
if (scanInternal) { if (scanInternal) {
if (Environment.getExternalStorageDirectory() != null) {
filesToScan.add(Environment.getExternalStorageDirectory()); filesToScan.add(Environment.getExternalStorageDirectory());
} }
}
if (scanExternal) { if (scanExternal) {
File externalStorage = new File("/storage"); File externalStorage = new File("/storage");
if (externalStorage.exists()) { if (externalStorage.exists()) {

View file

@ -26,6 +26,7 @@ import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.widget.Toast;
import java.io.File; import java.io.File;
import java.io.PrintWriter; import java.io.PrintWriter;
@ -166,9 +167,9 @@ class Utils {
try (Socket s = new Socket(host, port)) { try (Socket s = new Socket(host, port)) {
s.close(); s.close();
return true; return true;
} catch (Exception e) { } catch (Exception ignored) {
return false;
} }
return false;
} }
public static void waitUntilOrbotIsAvailable() { public static void waitUntilOrbotIsAvailable() {
@ -178,7 +179,6 @@ class Utils {
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (Exception ignored) { } catch (Exception ignored) {
} }
} }
} }
@ -203,11 +203,12 @@ class Utils {
Utils.context = context; Utils.context = context;
} }
public static void writeSelfTestFiles() { public static void writeSelfTestFiles(Context context) {
int rand = new Random().nextInt(); int rand = new Random().nextInt();
writeStringToFile(new File(Environment.getExternalStorageDirectory() + "/Hypatia-MD5-Test-" + rand + ".txt"), "HypatiaHypatiaHypatia-MD5"); 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-SHA1-Test-" + rand + ".txt"), "HypatiaHypatiaHypatia-SHA1");
writeStringToFile(new File(Environment.getExternalStorageDirectory() + "/Hypatia-SHA256-Test-" + rand + ".txt"), "HypatiaHypatiaHypatia-SHA256"); 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) { public static void writeStringToFile(File fileOut, String s) {

View file

@ -75,4 +75,5 @@
<string name="confirm_update_title">Confirm download</string> <string name="confirm_update_title">Confirm download</string>
<string name="confirm_update_summary">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.</string> <string name="confirm_update_summary">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.</string>
<string name="lblUpdateRunning">Skipping action, an update is running!</string> <string name="lblUpdateRunning">Skipping action, an update is running!</string>
<string name="lblWroteTestFiles">Wrote test files!</string>
</resources> </resources>

View file

@ -0,0 +1 @@
* Crash fix when scanning apps in some cases

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB