mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-03-01 05:48:23 +03:00
Allow selection of enabled databases
This commit is contained in:
parent
58eaa3d7ab
commit
71883023e6
5 changed files with 78 additions and 20 deletions
|
@ -6,8 +6,8 @@ android {
|
|||
applicationId "us.spotco.malwarescanner"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 26
|
||||
versionCode 20
|
||||
versionName "1.9"
|
||||
versionCode 21
|
||||
versionName "2.0"
|
||||
}
|
||||
buildTypes {
|
||||
debug {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package us.spotco.malwarescanner;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.AsyncTask;
|
||||
import android.widget.TextView;
|
||||
|
||||
|
@ -54,23 +55,36 @@ class Database {
|
|||
|
||||
signatureDatabases.clear();
|
||||
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/bofhland_malware_attach.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/crdfam.clamav.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/doppelstern.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/hackingteam.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/main.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/main.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/malware.expert.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/malwarehash.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/porcupine.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/rfxn.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/rogue.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/spamattach.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/spamimg.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow.attachments.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow_bad_cw.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow_extended_malware.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow_malware.hdb"));
|
||||
SharedPreferences prefs = context.getSharedPreferences(BuildConfig.APPLICATION_ID, Context.MODE_PRIVATE);
|
||||
if (prefs.getBoolean("SIGNATURES_EXTENDED", false)) {
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/bofhland_malware_attach.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/crdfam.clamav.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/doppelstern.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/hackingteam.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/malware.expert.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/malwarehash.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/porcupine.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/rfxn.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/rogue.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/spamattach.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/spamimg.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow.attachments.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow_bad_cw.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow_extended_malware.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/winnow_malware.hdb"));
|
||||
}
|
||||
if (prefs.getBoolean("SIGNATURES_CLAMAV-MAIN", false)) {
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/main.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/main.hsb"));
|
||||
}
|
||||
if (prefs.getBoolean("SIGNATURES_CLAMAV-DAILY", false)) {
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/daily.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/daily.hsb"));
|
||||
}
|
||||
if (prefs.getBoolean("SIGNATURES_CLAMAV-ANDROID", true)) {
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/Android.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase("https://spotco.us/Theia/Android.hsb"));
|
||||
}
|
||||
}
|
||||
|
||||
public static void loadDatabase(Context context, boolean ignoreifLoaded, THashSet<SignatureDatabase> signatureDatabases) {
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package us.spotco.malwarescanner;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
|
@ -85,12 +88,48 @@ public class MainActivity extends AppCompatActivity {
|
|||
}
|
||||
}
|
||||
|
||||
private void selectDatabases() {
|
||||
final String[] databases = {"ClamAV: Android Only", "ClamAV: Main", "ClamAV: Daily (NOT RECOMMENDED)", "3rd Parties: Extended"};
|
||||
final boolean[] databaseDefaults = {
|
||||
prefs.getBoolean("SIGNATURES_CLAMAV-ANDROID", true),
|
||||
prefs.getBoolean("SIGNATURES_CLAMAV-MAIN", false),
|
||||
prefs.getBoolean("SIGNATURES_CLAMAV-DAILY", false),
|
||||
prefs.getBoolean("SIGNATURES_EXTENDED", false)};
|
||||
|
||||
Dialog dialog;
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle(R.string.lblSelectDatabasesTitle);
|
||||
|
||||
builder.setMultiChoiceItems(databases, databaseDefaults, new DialogInterface.OnMultiChoiceClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i, boolean selected) {
|
||||
databaseDefaults[i] = selected;
|
||||
}
|
||||
});
|
||||
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
prefs.edit().putBoolean("SIGNATURES_CLAMAV-ANDROID", databaseDefaults[0]).apply();
|
||||
prefs.edit().putBoolean("SIGNATURES_CLAMAV-MAIN", databaseDefaults[1]).apply();
|
||||
prefs.edit().putBoolean("SIGNATURES_CLAMAV-DAILY", databaseDefaults[2]).apply();
|
||||
prefs.edit().putBoolean("SIGNATURES_EXTENDED", databaseDefaults[3]).apply();
|
||||
updateDatabase();
|
||||
}
|
||||
});
|
||||
|
||||
dialog = builder.create();
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.mnuUpdateDatabase:
|
||||
updateDatabase();
|
||||
break;
|
||||
case R.id.mnuSelectDatabases:
|
||||
selectDatabases();
|
||||
break;
|
||||
case R.id.toggleRealtime:
|
||||
Intent realtimeScanner = new Intent(getApplicationContext(), MalwareScannerService.class);
|
||||
if (!item.isChecked()) {
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
<item
|
||||
android:id="@+id/mnuUpdateDatabase"
|
||||
android:title="@string/lblUpdateDatabase" />
|
||||
<item
|
||||
android:id="@+id/mnuSelectDatabases"
|
||||
android:title="@string/lblSelectDatabases" />
|
||||
<item
|
||||
android:id="@+id/toggleRealtime"
|
||||
android:title="@string/lblRealtimeScannerToggle"
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<resources>
|
||||
<string name="app_name">Theia</string>
|
||||
<string name="lblUpdateDatabase">Update database</string>
|
||||
<string name="lblUpdateDatabase">Update databases</string>
|
||||
<string name="lblSelectDatabases">Select databases</string>
|
||||
<string name="lblSelectDatabasesTitle">Select databases to enable</string>
|
||||
<string name="lblStartRealtime">Start realtime scanner</string>
|
||||
<string name="lblScanSystem">Scan /system</string>
|
||||
<string name="lblScanApps">Scan App APKs</string>
|
||||
|
|
Loading…
Add table
Reference in a new issue