mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-03-01 05:48:23 +03:00
More work
This commit is contained in:
parent
a8df8fe3c1
commit
20cadea983
4 changed files with 25 additions and 9 deletions
|
@ -3,6 +3,7 @@
|
||||||
package="us.spotco.veritas">
|
package="us.spotco.veritas">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
|
|
@ -12,10 +12,11 @@ import android.widget.TextView;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
private boolean checkUpdates = true;
|
||||||
private boolean scanSystem = true;
|
private boolean scanSystem = true;
|
||||||
private boolean scanApps = true;
|
private boolean scanApps = true;
|
||||||
private boolean scanInternal = true;
|
private boolean scanInternal = true;
|
||||||
private boolean scanExternal = true;
|
private boolean scanExternal = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -58,17 +59,25 @@ public class MainActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
|
case R.id.mnuUpdateDatabase:
|
||||||
|
checkUpdates = !item.isChecked();
|
||||||
|
item.setChecked(checkUpdates);
|
||||||
|
break;
|
||||||
case R.id.mnuScanSystem:
|
case R.id.mnuScanSystem:
|
||||||
scanSystem = !item.isChecked();
|
scanSystem = !item.isChecked();
|
||||||
|
item.setChecked(scanSystem);
|
||||||
break;
|
break;
|
||||||
case R.id.mnuScanApps:
|
case R.id.mnuScanApps:
|
||||||
scanApps = !item.isChecked();
|
scanApps = !item.isChecked();
|
||||||
|
item.setChecked(scanApps);
|
||||||
break;
|
break;
|
||||||
case R.id.mnuScanInternal:
|
case R.id.mnuScanInternal:
|
||||||
scanInternal = !item.isChecked();
|
scanInternal = !item.isChecked();
|
||||||
|
item.setChecked(scanInternal);
|
||||||
break;
|
break;
|
||||||
case R.id.mnuScanExternal:
|
case R.id.mnuScanExternal:
|
||||||
scanExternal = !item.isChecked();
|
scanExternal = !item.isChecked();
|
||||||
|
item.setChecked(scanExternal);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package us.spotco.veritas;
|
package us.spotco.veritas;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -11,6 +13,8 @@ import com.google.common.io.Files;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class MalwareScanner {
|
public class MalwareScanner {
|
||||||
|
|
||||||
|
@ -62,19 +66,21 @@ public class MalwareScanner {
|
||||||
boolean scanInternal = booleans[2];
|
boolean scanInternal = booleans[2];
|
||||||
boolean scanExternal = booleans[3];
|
boolean scanExternal = booleans[3];
|
||||||
|
|
||||||
ArrayList<File> filesToScan = new ArrayList<File>();
|
Set<File> filesToScan = new HashSet<>();
|
||||||
|
|
||||||
if (scanSystem) {
|
if (scanSystem) {
|
||||||
filesToScan.addAll(getFilesRecursive(Environment.getRootDirectory()));
|
filesToScan.addAll(getFilesRecursive(Environment.getRootDirectory()));
|
||||||
}
|
}
|
||||||
if (scanApps) {
|
if (scanApps) {
|
||||||
//TODO
|
for(ApplicationInfo packageInfo : context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) {
|
||||||
|
filesToScan.add(new File(packageInfo.sourceDir));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (scanInternal) {
|
if (scanInternal) {
|
||||||
filesToScan.addAll(getFilesRecursive(Environment.getExternalStorageDirectory()));
|
filesToScan.addAll(getFilesRecursive(Environment.getExternalStorageDirectory()));
|
||||||
}
|
}
|
||||||
if (scanExternal && Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
|
if (scanExternal) {
|
||||||
//TODO
|
filesToScan.addAll(getFilesRecursive(new File("/storage")));
|
||||||
}
|
}
|
||||||
publishProgress(filesToScan.size() + " files pending scan");
|
publishProgress(filesToScan.size() + " files pending scan");
|
||||||
|
|
||||||
|
@ -95,14 +101,14 @@ public class MalwareScanner {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayList<File> getFilesRecursive(File root) {
|
private Set<File> getFilesRecursive(File root) {
|
||||||
ArrayList<File> filesAll = new ArrayList<File>();
|
Set<File> filesAll = new HashSet<>();
|
||||||
|
|
||||||
File[] files = root.listFiles();
|
File[] files = root.listFiles();
|
||||||
if (files != null && files.length > 0) {
|
if (files != null && files.length > 0) {
|
||||||
for (File f : files) {
|
for (File f : files) {
|
||||||
if (f.isDirectory()) {
|
if (f.isDirectory()) {
|
||||||
ArrayList<File> filesTmp = getFilesRecursive(f);
|
Set<File> filesTmp = getFilesRecursive(f);
|
||||||
if (filesTmp != null) {
|
if (filesTmp != null) {
|
||||||
filesAll.addAll(filesTmp);
|
filesAll.addAll(filesTmp);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,6 @@
|
||||||
android:id="@+id/mnuScanExternal"
|
android:id="@+id/mnuScanExternal"
|
||||||
android:title="@string/lblScanExternal"
|
android:title="@string/lblScanExternal"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:checked="true" />
|
android:checked="false" />
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
Loading…
Add table
Reference in a new issue