mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-03-01 05:48:23 +03:00
Show scan speed too
This commit is contained in:
parent
15b49f0d5b
commit
2d56574a1e
14 changed files with 27 additions and 14 deletions
2
.idea/compiler.xml
generated
2
.idea/compiler.xml
generated
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="CompilerConfiguration">
|
<component name="CompilerConfiguration">
|
||||||
<bytecodeTargetLevel target="1.8" />
|
<bytecodeTargetLevel target="11" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
|
@ -45,7 +45,7 @@
|
||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|
1
.idea/runConfigurations.xml
generated
1
.idea/runConfigurations.xml
generated
|
@ -3,6 +3,7 @@
|
||||||
<component name="RunConfigurationProducerService">
|
<component name="RunConfigurationProducerService">
|
||||||
<option name="ignoredProducers">
|
<option name="ignoredProducers">
|
||||||
<set>
|
<set>
|
||||||
|
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
||||||
|
|
|
@ -6,7 +6,7 @@ android {
|
||||||
applicationId "us.spotco.malwarescanner"
|
applicationId "us.spotco.malwarescanner"
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 72
|
versionCode 73
|
||||||
versionName "2.20"
|
versionName "2.20"
|
||||||
resConfigs "en", "de", "es", "fr", "it", "pt", "ru"
|
resConfigs "en", "de", "es", "fr", "it", "pt", "ru"
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
|
||||||
private TextView logOutput = null;
|
private TextView logOutput = null;
|
||||||
private boolean userFacing = false;
|
private boolean userFacing = false;
|
||||||
private NotificationManager notificationManager = null;
|
private NotificationManager notificationManager = null;
|
||||||
private long scanTime = 0;
|
private long scanStartTime = 0;
|
||||||
private final HashMap<String, File> fileHashesMD5 = new HashMap<>();
|
private final HashMap<String, File> fileHashesMD5 = new HashMap<>();
|
||||||
private final HashMap<String, File> fileHashesSHA1 = new HashMap<>();
|
private final HashMap<String, File> fileHashesSHA1 = new HashMap<>();
|
||||||
private final HashMap<String, File> fileHashesSHA256 = new HashMap<>();
|
private final HashMap<String, File> fileHashesSHA256 = new HashMap<>();
|
||||||
|
@ -95,7 +95,7 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected final void onPreExecute() {
|
protected final void onPreExecute() {
|
||||||
scanTime = SystemClock.elapsedRealtime();
|
scanStartTime = SystemClock.elapsedRealtime();
|
||||||
logResult(context.getString(R.string.main_starting_scan), true);
|
logResult(context.getString(R.string.main_starting_scan), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,12 +137,15 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
|
||||||
percentIncrement = 1;
|
percentIncrement = 1;
|
||||||
}
|
}
|
||||||
String spinnerCur = " ~ ";
|
String spinnerCur = " ~ ";
|
||||||
|
long totalBytesHashed = 0;
|
||||||
|
long hashStartTime = SystemClock.elapsedRealtime();
|
||||||
for (File file : filesToScan[0]) {
|
for (File file : filesToScan[0]) {
|
||||||
if (this.isCancelled()) { //Allow quicker cancels
|
if (this.isCancelled()) { //Allow quicker cancels
|
||||||
//publishProgress("\t" + context.getString(R.string.main_cancelled_scan), true);
|
//publishProgress("\t" + context.getString(R.string.main_cancelled_scan), true);
|
||||||
running = false;
|
running = false;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
totalBytesHashed += file.length();
|
||||||
getFileHashes(file);
|
getFileHashes(file);
|
||||||
fileScannedCount++;
|
fileScannedCount++;
|
||||||
if ((fileScannedCount % percentIncrement) == 0) {
|
if ((fileScannedCount % percentIncrement) == 0) {
|
||||||
|
@ -165,9 +168,16 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
|
||||||
fileHashesMD5.clear();
|
fileHashesMD5.clear();
|
||||||
fileHashesSHA1.clear();
|
fileHashesSHA1.clear();
|
||||||
fileHashesSHA256.clear();
|
fileHashesSHA256.clear();
|
||||||
System.gc();
|
|
||||||
Utils.FILES_SCANNED += filesToScan[0].size();
|
Utils.FILES_SCANNED += filesToScan[0].size();
|
||||||
publishProgress(context.getString(R.string.main_scanning_done, ((SystemClock.elapsedRealtime() - scanTime) / 1000) + "") + "\n\n\n\n", true);
|
if(userFacing || Utils.FILES_SCANNED % 40 == 0) {
|
||||||
|
System.gc(); //GC can be expensive, don't run it too often.
|
||||||
|
}
|
||||||
|
if(userFacing) {
|
||||||
|
long secondsSpent = ((SystemClock.elapsedRealtime() - scanStartTime) / 1000L);
|
||||||
|
long secondsSpentHasing = ((SystemClock.elapsedRealtime() - hashStartTime) / 1000L);
|
||||||
|
long MBS = totalBytesHashed / 1000 / 1000 / secondsSpentHasing;
|
||||||
|
publishProgress(context.getString(R.string.main_scanning_done, secondsSpent + "", MBS + "") + "\n\n\n\n", true);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
publishProgress("\t" + context.getString(R.string.main_no_database_available), true);
|
publishProgress("\t" + context.getString(R.string.main_no_database_available), true);
|
||||||
running = false;
|
running = false;
|
||||||
|
|
|
@ -42,6 +42,6 @@
|
||||||
<string name="main_hashing_done">Hashes für alle Dateien generiert</string>
|
<string name="main_hashing_done">Hashes für alle Dateien generiert</string>
|
||||||
<string name="main_hash_scan_done">Alle %s Hashes wurden mit den Signatur-Datenbanken abgeglichen</string>
|
<string name="main_hash_scan_done">Alle %s Hashes wurden mit den Signatur-Datenbanken abgeglichen</string>
|
||||||
<string name="main_no_hashes_available">Keine %s Hash-Signaturen verfügbar</string>
|
<string name="main_no_hashes_available">Keine %s Hash-Signaturen verfügbar</string>
|
||||||
<string name="main_scanning_done">Scan nach %s Sekunden abgeschlossen!</string>
|
<string name="main_scanning_done">Scan nach %s Sekunden abgeschlossen @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">%s Datei(en) gescannt</string>
|
<string name="main_files_scanned_count">%s Datei(en) gescannt</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -44,6 +44,6 @@
|
||||||
<string name="main_hashing_done">Hashes calculados para todos los archivos</string>
|
<string name="main_hashing_done">Hashes calculados para todos los archivos</string>
|
||||||
<string name="main_hash_scan_done">Comprobados todos los hashes de %s con las bases de datos de firmas</string>
|
<string name="main_hash_scan_done">Comprobados todos los hashes de %s con las bases de datos de firmas</string>
|
||||||
<string name="main_no_hashes_available">No hay firmas %s hashes disponibles</string>
|
<string name="main_no_hashes_available">No hay firmas %s hashes disponibles</string>
|
||||||
<string name="main_scanning_done">¡Escaneo completado en %s segundos!</string>
|
<string name="main_scanning_done">¡Escaneo completado en %s segundos @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">%s archivos escaneados</string>
|
<string name="main_files_scanned_count">%s archivos escaneados</string>
|
||||||
</resources>
|
</resources>
|
|
@ -41,6 +41,6 @@
|
||||||
<string name="main_hashing_files">Hachage de fichiers...</string>
|
<string name="main_hashing_files">Hachage de fichiers...</string>
|
||||||
<string name="main_hashing_done">Hachages calculés pour tous les fichiers</string>
|
<string name="main_hashing_done">Hachages calculés pour tous les fichiers</string>
|
||||||
<string name="main_hash_scan_done">Vérification de tous les hachages %s par rapport aux bases de données de signatures</string>
|
<string name="main_hash_scan_done">Vérification de tous les hachages %s par rapport aux bases de données de signatures</string>
|
||||||
<string name="main_scanning_done">Scan complété en %s secondes !</string>
|
<string name="main_scanning_done">Scan complété en %s secondes @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">%s fichiers scannés</string>
|
<string name="main_files_scanned_count">%s fichiers scannés</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -43,6 +43,6 @@
|
||||||
<string name="main_hashing_done">Calcolando gli hash per tutti i file</string>
|
<string name="main_hashing_done">Calcolando gli hash per tutti i file</string>
|
||||||
<string name="main_hash_scan_done">Confrontati tutti gli hash %s con il database delle firme</string>
|
<string name="main_hash_scan_done">Confrontati tutti gli hash %s con il database delle firme</string>
|
||||||
<string name="main_no_hashes_available">Nessuna firma hash %s disponibile</string>
|
<string name="main_no_hashes_available">Nessuna firma hash %s disponibile</string>
|
||||||
<string name="main_scanning_done">Scansione completata in %s secondi!</string>
|
<string name="main_scanning_done">Scansione completata in %s secondi @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">%s file scansionati</string>
|
<string name="main_files_scanned_count">%s file scansionati</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -44,6 +44,6 @@
|
||||||
<string name="main_hashing_done">Hashes calculados para todos os arquivos</string>
|
<string name="main_hashing_done">Hashes calculados para todos os arquivos</string>
|
||||||
<string name="main_hash_scan_done">Verificados todos %s hashes em relação a bade de dados de assinaturas</string>
|
<string name="main_hash_scan_done">Verificados todos %s hashes em relação a bade de dados de assinaturas</string>
|
||||||
<string name="main_no_hashes_available">Sem %s assinaturas de hashes disponíveis</string>
|
<string name="main_no_hashes_available">Sem %s assinaturas de hashes disponíveis</string>
|
||||||
<string name="main_scanning_done">Análise será concluída em %s segundo(s)!</string>
|
<string name="main_scanning_done">Análise será concluída em %s segundos @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">%s arquivos analisados</string>
|
<string name="main_files_scanned_count">%s arquivos analisados</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -44,6 +44,6 @@
|
||||||
<string name="main_hashing_done">Расчетные хеши для всех файлов</string>
|
<string name="main_hashing_done">Расчетные хеши для всех файлов</string>
|
||||||
<string name="main_hash_scan_done">Проверены все хэши %s по базам данных сигнатур</string>
|
<string name="main_hash_scan_done">Проверены все хэши %s по базам данных сигнатур</string>
|
||||||
<string name="main_no_hashes_available">Нет доступных подписей хэшей %s</string>
|
<string name="main_no_hashes_available">Нет доступных подписей хэшей %s</string>
|
||||||
<string name="main_scanning_done">Сканирование выполнено за %s секунд!</string>
|
<string name="main_scanning_done">Сканирование выполнено за %s секунд @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">Просканировано %s файлов</string>
|
<string name="main_files_scanned_count">Просканировано %s файлов</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -46,6 +46,6 @@
|
||||||
<string name="main_hashing_done">Calculated hashes for all files</string>
|
<string name="main_hashing_done">Calculated hashes for all files</string>
|
||||||
<string name="main_hash_scan_done">Checked all %s hashes against signature databases</string>
|
<string name="main_hash_scan_done">Checked all %s hashes against signature databases</string>
|
||||||
<string name="main_no_hashes_available">No %s hashes signatures available</string>
|
<string name="main_no_hashes_available">No %s hashes signatures available</string>
|
||||||
<string name="main_scanning_done">Scan completed in %s seconds!</string>
|
<string name="main_scanning_done">Scan completed in %s seconds @ %sMB/s!</string>
|
||||||
<string name="main_files_scanned_count">%s files scanned</string>
|
<string name="main_files_scanned_count">%s files scanned</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
1
fastlane/metadata/android/de/title.txt
Normal file
1
fastlane/metadata/android/de/title.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Hypatia
|
1
fastlane/metadata/android/fr/title.txt
Normal file
1
fastlane/metadata/android/fr/title.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Hypatia
|
Loading…
Add table
Reference in a new issue