Restore support for Jelly Bean

+ code cleanup

Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
Tad 2023-12-26 19:26:33 -05:00
parent f1d747b739
commit c242c1fa75
No known key found for this signature in database
GPG key ID: B286E9F57A07424B
36 changed files with 139 additions and 296 deletions

View file

@ -4,10 +4,10 @@ android {
compileSdkVersion 33
defaultConfig {
applicationId "us.spotco.malwarescanner"
minSdkVersion 19
minSdkVersion 16
targetSdkVersion 32
versionCode 301
versionName "3.01"
versionCode 302
versionName "3.02"
resConfigs 'en', 'af', 'de', 'el', 'es', 'fi', 'fr', 'it', 'pl', 'pt', 'ru', 'tr', 'zh-rCN'
}
buildTypes {

View file

@ -43,7 +43,6 @@
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="true"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View file

@ -23,6 +23,7 @@ import android.os.AsyncTask;
import android.util.Log;
import android.widget.TextView;
import com.google.common.base.Charsets;
import com.google.common.hash.BloomFilter;
import com.google.common.hash.Funnels;
@ -33,7 +34,6 @@ import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.text.DateFormat;
import java.util.Date;
import java.util.concurrent.ConcurrentLinkedQueue;
@ -127,17 +127,17 @@ class Database {
switch (databaseLocation.getName()) {
case "hypatia-md5-bloom.bin":
Log.d("Hypatia", "Processing md5");
signaturesMD5 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII));
signaturesMD5 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(Charsets.US_ASCII));
signaturesCount += signaturesMD5.approximateElementCount();
break;
case "hypatia-sha1-bloom.bin":
Log.d("Hypatia", "Processing sha1");
signaturesSHA1 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII));
signaturesSHA1 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(Charsets.US_ASCII));
signaturesCount += signaturesSHA1.approximateElementCount();
break;
case "hypatia-sha256-bloom.bin":
Log.d("Hypatia", "Processing sha256");
signaturesSHA256 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII));
signaturesSHA256 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(Charsets.US_ASCII));
signaturesCount += signaturesSHA256.approximateElementCount();
break;
}

View file

@ -72,7 +72,7 @@ class MalwareScanner extends AsyncTask<HashSet<File>, Object, String> {
}
}
private void logResult(String result, boolean userFacingOnly, String hashsum) {
private void logResult(String result, String hashsum) {
if (result.startsWith("Potential match")) {
String[] malwareDetect = result.split(" in ");
if (hashsum != null) {
@ -100,7 +100,6 @@ class MalwareScanner extends AsyncTask<HashSet<File>, Object, String> {
mBuilder.setChannelId("DETECTION");
}
//Lookup action
if (hashsum != null) {
Intent lookupIntent = new Intent(context, NotificationPromptActivity.class);
lookupIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
lookupIntent.setAction("us.spotco.malwarescanner.LOOKUP_HASH");
@ -108,7 +107,6 @@ class MalwareScanner extends AsyncTask<HashSet<File>, Object, String> {
lookupIntent.putExtra("HASH", hashsum);
PendingIntent lookupIntentPending = PendingIntent.getActivity(context, notificationId + 1, lookupIntent, PendingIntent.FLAG_IMMUTABLE);
mBuilder.addAction(android.R.drawable.ic_dialog_map, context.getText(R.string.lookupVT), lookupIntentPending);
}
//Delete action
if (malwareDetect[1].startsWith("~/")) {
Intent deleteIntent = new Intent(context, NotificationPromptActivity.class);
@ -148,7 +146,7 @@ class MalwareScanner extends AsyncTask<HashSet<File>, Object, String> {
@Override
protected final void onPreExecute() {
scanStartTime = SystemClock.elapsedRealtime();
logResult(context.getString(R.string.main_starting_scan), true, null);
logResult(context.getString(R.string.main_starting_scan), null);
}
@Override
@ -269,7 +267,7 @@ class MalwareScanner extends AsyncTask<HashSet<File>, Object, String> {
if (objects.length == 3) {
hash = (String) objects[2];
}
logResult((String) objects[0], (boolean) objects[1], hash);
logResult((String) objects[0], hash);
}
private void checkSignature(String hashType, HashMap<File, String> signaturesToCheck, BloomFilter<String> signatureDatabase) {

View file

@ -108,9 +108,10 @@ public class MalwareScannerService extends Service {
.setContentTitle(getText(R.string.lblNotificationRealtimeTitle))
.setContentText(getText(R.string.lblNotificationRealtimeText))
.setPriority(Notification.PRIORITY_MIN)
.setOngoing(true)
.setShowWhen(false);
.setOngoing(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
foregroundNotification.setShowWhen(false);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
foregroundNotification.setChannelId("FOREGROUND");
}

View file

@ -32,7 +32,7 @@ public class NotificationPromptActivity extends Activity {
case "us.spotco.malwarescanner.LOOKUP_HASH":
if (Objects.requireNonNull(intent.getStringExtra("HASH")).length() == 64) {
String hashsum = intent.getStringExtra("HASH");
new AlertDialog.Builder(this)
AlertDialog lookupDialog = new AlertDialog.Builder(this)
.setTitle(R.string.confirm_lookup_title)
.setMessage(getString(R.string.confirm_lookup_summary) + "\n>>>" + hashsum.substring(0, 8) + "<<<")
.setIcon(android.R.drawable.ic_dialog_alert)
@ -41,13 +41,10 @@ public class NotificationPromptActivity extends Activity {
startActivity(lookupIntent);
finish();
})
.setNegativeButton(android.R.string.no, (dialog, whichButton) -> {
finish();
})
.setOnDismissListener((dialog) -> {
finish();
})
.show();
.setNegativeButton(android.R.string.no, (dialog, whichButton) -> finish())
.create();
lookupDialog.setOnDismissListener((dialog) -> finish());
lookupDialog.show();
} else {
Log.d("Hypatia", "Invalid hash");
finish();
@ -57,7 +54,7 @@ public class NotificationPromptActivity extends Activity {
if (intent.getPackage() == null || Objects.equals(intent.getPackage(), BuildConfig.APPLICATION_ID)) {
File matched = new File(Objects.requireNonNull(intent.getStringExtra("FILE_PATH")));
if (matched.exists() && matched.isFile()) {
new AlertDialog.Builder(this)
AlertDialog deleteDialog = new AlertDialog.Builder(this)
.setTitle(R.string.confirm_delete_title)
.setMessage(getString(R.string.confirm_delete_summary) + "\n>>>" + matched.getName() + "<<<")
.setIcon(android.R.drawable.ic_dialog_alert)
@ -70,13 +67,10 @@ public class NotificationPromptActivity extends Activity {
clearNotification(context, intent.getIntExtra("NOTIFICATION_ID", 0));
finish();
})
.setNegativeButton(android.R.string.no, (dialog, whichButton) -> {
finish();
})
.setOnDismissListener((dialog) -> {
finish();
})
.show();
.setNegativeButton(android.R.string.no, (dialog, whichButton) -> finish())
.create();
deleteDialog.setOnDismissListener((dialog) -> finish());
deleteDialog.show();
} else {
finish();
}

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -6,12 +6,9 @@
<string name="app_db_type_clamav">Aangedryf deur ClamAV tipe stempels</string>
<string name="lblOnionRoutingToggle">Laai af deur Tor</string>
<string name="lblOnionRoutingEnabledHint">Laai tans af deur Tor, dit mag \'n oogknip neem...</string>
<string name="lblOnionRoutingEnabledHint">Laai tans af deur Tor, dit mag \'n oogknip neem</string>
<string name="lblOnionRoutingNotInstalled">Orbot of InviZible is nie geïnstalleer nie!</string>
<string name="lblOnionRoutingNotRunning">Orbot of InviZible is nie aan die loop nie!</string>
<string name="lblUpdateDatabase">Dateer databasisse op</string>
<string name="lblSelectDatabases">Kies databasisse</string>
<string name="lblSelectDatabasesTitle">Kies die databassisse om te aktiveer</string>
<string name="lblFullCredits">Erkennings</string>
<string name="lblScanSystem">Skandeer sisteem</string>
<string name="lblScanApps">Skandeer APKs</string>
@ -26,32 +23,23 @@
<string name="lblNotificationRealtimeDetection">Wanware Opgetel:</string>
<string name="lblRealtimeScannerToggle">Intydse Skandeerder</string>
<string name="main_database_updating">Dateer tans %s databasisse op...</string>
<string name="main_database_downloading">Laai tans %s af</string>
<string name="main_database_updating">Dateer tans %s databasisse op…</string>
<string name="main_database_download_success">Suksesvol afgelaai</string>
<string name="main_database_download_error">Lêer nie afgelaai nie, respons kode %s</string>
<string name="main_no_database_available">Geen databasis beskikbaar, skandeer dus nie...</string>
<string name="main_no_database_available">Geen databasis beskikbaar, skandeer dus nie</string>
<string name="main_database_released_on">Vrygestel op %s</string>
<string name="main_database_not_changed">Lêer nie verander</string>
<string name="main_database_not_modified_since">sedert %s</string>
<string name="main_database_download_error_logcat">Kon nie aflaai nie, kyk dalk na logcat</string>
<string name="main_starting_scan">Begin tans skandering...</string>
<string name="main_cancelling_scan">Kanseleer tans skandering...</string>
<string name="main_cancelled_scan">Skandering gekanseleer</string>
<string name="main_starting_scan">Begin tans skandering…</string>
<string name="main_cancelling_scan">Kanseleer tans skandering…</string>
<string name="main_files_pending_scan">%s lêers wag hul beurt af</string>
<string name="main_database_loading">Laai tans databasis af...</string>
<string name="main_database_loading">Laai tans databasis af</string>
<string name="main_database_loaded">Databasis gelaai met %s huts stempels</string>
<string name="main_hashing_files">Huts tans lêers...</string>
<string name="main_hashing_files">Huts tans lêers</string>
<string name="main_hashing_done">Hutse is bereken vir alle verkose lêers</string>
<string name="main_hash_scan_done">Al %s hutse is met die stempel databasis vergelyk</string>
<string name="main_scanning_done">Skandering voltooid in %s sekondes @ %sMB/s!</string>
<string name="main_files_scanned_count">%s lêers geskandeer</string>
<string name="db_desc_author">Outeur</string>
<string name="db_desc_license">Lisensie</string>
<string name="db_desc_size">Grootte</string>
<string name="db_desc_source">Bron</string>
<string name="db_desc_size_small">Klein</string>
<string name="db_desc_size_medium">Medium</string>
<string name="db_desc_size_large">Groot</string>
</resources>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -7,10 +7,7 @@
<string name="lblOnionRoutingToggle">Über Tor laden</string>
<string name="lblOnionRoutingEnabledHint">Herunterladen wird zur Anonymisierung über das Tor-Netzwerk geleitet und kann daher länger dauern.</string>
<string name="lblOnionRoutingNotInstalled">Orbot ist nicht installiert!</string>
<string name="lblOnionRoutingNotRunning">Orbot wird nicht ausgeführt!</string>
<string name="lblUpdateDatabase">Datenbank aktualisieren</string>
<string name="lblSelectDatabases">Datenbank auswählen</string>
<string name="lblSelectDatabasesTitle">Zu aktivierende Datenbank(en) auswählen (Vorauswahl ausreichend)</string>
<string name="lblDatabaseServer">Datenbankserver überschreiben</string>
<string name="lblFullCredits">Mitwirkende</string>
<string name="lblScanSystem">/system scannen</string>
@ -28,33 +25,24 @@
<string name="lblReset">Zurücksetzen</string>
<string name="lblOverride">Überschreiben</string>
<string name="main_database_updating">%s Datenbank(en) wird/werden aktualisiert...</string>
<string name="main_database_updating">%s Datenbank(en) wird/werden aktualisiert</string>
<string name="main_database_override">Datenbankserver %s wird genutzt</string>
<string name="main_database_downloading">Lade %s herunter</string>
<string name="main_database_download_success">Erfolgreich heruntergeladen</string>
<string name="main_database_download_error">Datenbank(en) nicht heruntergeladen. Fehlernummer %s</string>
<string name="main_no_database_available">Datenbank(en) nicht verfügbar. Schadsoftware-Prüfung nicht möglich...</string>
<string name="main_no_database_available">Datenbank(en) nicht verfügbar. Schadsoftware-Prüfung nicht möglich</string>
<string name="main_database_released_on">Veröffentlicht am %s</string>
<string name="main_database_not_changed">Keine Veränderung der Datenbank(en)</string>
<string name="main_database_not_modified_since">seit %s</string>
<string name="main_database_download_error_logcat">Herunterladen ist fehlgeschlagen. Details können im logcat eingesehen werden</string>
<string name="main_starting_scan">Schadsoftware-Prüfung startet...</string>
<string name="main_cancelling_scan">Prüfung wird abgebrochen...</string>
<string name="main_cancelled_scan">Prüfung wurde abgebrochen</string>
<string name="main_starting_scan">Schadsoftware-Prüfung startet…</string>
<string name="main_cancelling_scan">Prüfung wird abgebrochen…</string>
<string name="main_files_pending_scan">%s Dateien sind zur Schadsoftware-Prüfung vorgesehen</string>
<string name="main_database_loading">Lade Datenbank(en)...</string>
<string name="main_database_loading">Lade Datenbank(en)</string>
<string name="main_database_loaded">Datenbank(en) mit %s Signaturen geladen</string>
<string name="main_hashing_files">Generiere Prüfsummen der Dateien...</string>
<string name="main_hashing_files">Generiere Prüfsummen der Dateien</string>
<string name="main_hashing_done">Prüfsummen für alle Dateien generiert</string>
<string name="main_hash_scan_done">Alle %s Prüfsummen wurden mit den Signaturen der Datenbank(en) verglichen</string>
<string name="main_scanning_done">Überprüfung nach %s Sekunden abgeschlossen @ %sMB/s!</string>
<string name="main_files_scanned_count">%s Dateien überprüft</string>
<string name="db_desc_author">Autor</string>
<string name="db_desc_license">Lizenz</string>
<string name="db_desc_size">Größe</string>
<string name="db_desc_source">Quelle</string>
<string name="db_desc_size_small">Klein</string>
<string name="db_desc_size_medium">Mittel</string>
<string name="db_desc_size_large">Groß</string>
</resources>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -6,12 +6,9 @@
<string name="app_db_type_clamav">Υποστηρίζεται από υπογραφές τύπου ClamAV</string>
<string name="lblOnionRoutingToggle">Πραγματοποιείται Λήψη μέσω Tor</string>
<string name="lblOnionRoutingEnabledHint">Λήψη μέσω Tor, αυτό μπορεί να πάρει κάποιο χρόνο...</string>
<string name="lblOnionRoutingEnabledHint">Λήψη μέσω Tor, αυτό μπορεί να πάρει κάποιο χρόνο</string>
<string name="lblOnionRoutingNotInstalled">Το Orbot δεν είναι εγκατεστημένο!</string>
<string name="lblOnionRoutingNotRunning">Το Orbot δεν εκτελείται!</string>
<string name="lblUpdateDatabase">Ενημέρωση βάσεων δεδομένων</string>
<string name="lblSelectDatabases">Επιλογή βάσεων δεδομένων</string>
<string name="lblSelectDatabasesTitle">Επιλέξτε τις βάσεις δεδομένων που θέλετε να ενεργοποιήσετε</string>
<string name="lblDatabaseServer">Παράκαμψη διακομιστή βάσης δεδομένων</string>
<string name="lblFullCredits">Credits</string>
<string name="lblScanSystem">Σάρωση /system</string>
@ -29,35 +26,26 @@
<string name="lblReset">Επαναφορά</string>
<string name="lblOverride">Παράκαμψη</string>
<string name="main_database_updating">Ενημέρωση %s βάσεων δεδομένων...</string>
<string name="main_database_updating">Ενημέρωση %s βάσεων δεδομένων</string>
<string name="main_database_override">Χρήση διακομιστή %s</string>
<string name="main_database_downloading">Λήψη %s</string>
<string name="main_database_download_success">Επιτυχής λήψη</string>
<string name="main_database_download_error">Δεν έγινε η λήψη του αρχείου, κωδικός απόκρισης %s</string>
<string name="main_no_database_available">Δεν υπάρχει διαθέσιμη βάση δεδομένων, δεν γίνεται σάρωση...</string>
<string name="main_no_database_available">Δεν υπάρχει διαθέσιμη βάση δεδομένων, δεν γίνεται σάρωση</string>
<string name="main_database_released_on">Δημοσιεύτηκε στις %s</string>
<string name="main_database_not_changed">Το αρχείο δεν άλλαξε</string>
<string name="main_database_not_modified_since">από %s</string>
<string name="main_database_download_error_logcat">Αποτυχία λήψης, ελέγξτε το logcat</string>
<string name="main_starting_scan">Έναρξη σάρωσης...</string>
<string name="main_cancelling_scan">Ακύρωση σάρωσης...</string>
<string name="main_cancelled_scan">Ακυρώθηκε η σάρωση</string>
<string name="main_starting_scan">Έναρξη σάρωσης…</string>
<string name="main_cancelling_scan">Ακύρωση σάρωσης…</string>
<string name="main_files_pending_scan">%s αρχεία περιμένουν σάρωση</string>
<string name="main_database_loading">Φόρτωση βάσης δεδομένων...</string>
<string name="main_database_loading">Φόρτωση βάσης δεδομένων</string>
<string name="main_database_loaded">Φορτώθηκε βάση δεδομένων με %s υπογραφές</string>
<string name="main_hashing_files">Καταγραφή αρχείων...</string>
<string name="main_hashing_files">Καταγραφή αρχείων</string>
<string name="main_hashing_done">Υπολογίστηκαν τα hashes για όλα τα αρχεία</string>
<string name="main_hash_scan_done">Έλεγθηκαν και τα %s hashes ως προς τις βάσεις υπογραφών</string>
<string name="main_scanning_done">Η σάρωση ολοκληρώθηκε σε %s δευτερόλεπτα @ %sMB/s!</string>
<string name="main_files_scanned_count">%s αρχεία σαρώθηκαν</string>
<string name="db_desc_author">Συντάκτης</string>
<string name="db_desc_license">Άδεια</string>
<string name="db_desc_size">Μέγεθος</string>
<string name="db_desc_source">Πηγή</string>
<string name="db_desc_size_small">Μικρό</string>
<string name="db_desc_size_medium">Μεσαίο</string>
<string name="db_desc_size_large">Μεγάλο</string>
<string name="scan_control">Έλεγχος σάρωσης</string>
<string name="lblScanRunning">Παράλειψη ενέργειας, μια σάρωση βρίσκεται ήδη σε εξέλιξη!</string>
<string name="lblSigningKey">Κλειδί υπογραφής της βάσης δεδομένων</string>

View file

@ -21,6 +21,8 @@
<item>• Nex (@botherder): Bases de datos de firmas</item>
<item>• Amnesty International: Bases de datos de firmas</item>
<item>• Echap: Bases de datos de firmas</item>
<item>• MalwareBazaar: Bases de datos de firmas</item>
<item>• VirusShare: Bases de datos de firmas</item>
<item>• RecursiveFileObserver.java: Daniel Gultsch, ownCloud Inc., Bartek Przybylski</item>
<item>• GPGDetachedSignatureVerifier.java: Federico Fissore, Arduino LLC</item>
<item>• Google: Icono de la aplicación</item>

View file

@ -5,12 +5,9 @@
<string name="app_db_type_clamav">Potenciada por firmas al estilo de ClamAV</string>
<string name="lblOnionRoutingToggle">Descarga a través de Tor</string>
<string name="lblOnionRoutingEnabledHint">Descargando a través de Tor, esto puede llevar un tiempo...</string>
<string name="lblOnionRoutingEnabledHint">Descargando a través de Tor, esto puede llevar un tiempo</string>
<string name="lblOnionRoutingNotInstalled">¡Orbot no está instalado!</string>
<string name="lblOnionRoutingNotRunning">¡Orbot no se está ejecutando!</string>
<string name="lblUpdateDatabase">Actualizar bases de datos</string>
<string name="lblSelectDatabases">Seleccionar bases de datos</string>
<string name="lblSelectDatabasesTitle">Seleccione las bases de datos que desea habilitar</string>
<string name="lblDatabaseServer">Modificar servidor BBDD</string>
<string name="lblFullCredits">Créditos</string>
<string name="lblScanSystem">Escanear /sistema</string>
@ -28,35 +25,26 @@
<string name="lblReset">Restablecer</string>
<string name="lblOverride">Modificar</string>
<string name="main_database_updating">Actualizando %s bases de datos...</string>
<string name="main_database_updating">Actualizando %s bases de datos</string>
<string name="main_database_override">Utilizando el servidor %s</string>
<string name="main_database_downloading">Descargando %s</string>
<string name="main_database_download_success">Descarga exitosa</string>
<string name="main_database_download_error">Archivo no descargado, código de respuesta %s</string>
<string name="main_no_database_available">No hay base de datos disponible, no se está analizando...</string>
<string name="main_no_database_available">No hay base de datos disponible, no se está analizando</string>
<string name="main_database_released_on">Liberada en %s</string>
<string name="main_database_not_changed">Archivo no modificado</string>
<string name="main_database_not_modified_since">desde %s</string>
<string name="main_database_download_error_logcat">No se pudo descargar, compruebe el logcat</string>
<string name="main_starting_scan">Iniciando escaneo...</string>
<string name="main_cancelling_scan">Cancelando escaneo...</string>
<string name="main_cancelled_scan">Escaneo cancelado</string>
<string name="main_starting_scan">Iniciando escaneo…</string>
<string name="main_cancelling_scan">Cancelando escaneo…</string>
<string name="main_files_pending_scan">%s archivos pendientes de escanear</string>
<string name="main_database_loading">Cargando base de datos...</string>
<string name="main_database_loading">Cargando base de datos</string>
<string name="main_database_loaded">Cargada base de datos con %s firmas</string>
<string name="main_hashing_files">Calculando Hashes de archivos...</string>
<string name="main_hashing_files">Calculando Hashes de 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_scanning_done">¡Escaneo completado en %s segundos @ %sMB/s!</string>
<string name="main_files_scanned_count">%s archivos escaneados</string>
<string name="db_desc_author">Autor</string>
<string name="db_desc_license">Licencia</string>
<string name="db_desc_size">Tamaño</string>
<string name="db_desc_source">Fuente</string>
<string name="db_desc_size_small">Pequeña</string>
<string name="db_desc_size_medium">Mediana</string>
<string name="db_desc_size_large">Grande</string>
<string name="scan_control">Control de escaneo</string>
<string name="lblScanRunning">Saltarse la acción, ¡se está ejecutando un escaneo!</string>
<string name="lblSigningKey">Clave de firma de BBDD</string>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -4,12 +4,9 @@
<string name="app_db_type_clamav">Powered by ClamAV tyylin allekirjoitukset</string>
<string name="lblOnionRoutingToggle">Lataa käyttäen Tor-verkkoa</string>
<string name="lblOnionRoutingEnabledHint">Ladataan käyttäen Tor-verkkoa, tämä voi kestää jonkin aikaa...</string>
<string name="lblOnionRoutingEnabledHint">Ladataan käyttäen Tor-verkkoa, tämä voi kestää jonkin aikaa</string>
<string name="lblOnionRoutingNotInstalled">Orbot:ia ei ole asennettu!</string>
<string name="lblOnionRoutingNotRunning">Orbot ei ole käynnissä!</string>
<string name="lblUpdateDatabase">Päivitä tietokannat</string>
<string name="lblSelectDatabases">Valitse tietokannat</string>
<string name="lblSelectDatabasesTitle">Valitse käytettävät tietokannat</string>
<string name="lblDatabaseServer">Tietokantapalvelimen ohitus</string>
<string name="lblFullCredits">Krediitit</string>
<string name="lblScanSystem">Tarkista /järjestelmä</string>
@ -27,33 +24,24 @@
<string name="lblReset">Palauta</string>
<string name="lblOverride">Ohita</string>
<string name="main_database_updating">Päivitetään %s tietokanta(a)...</string>
<string name="main_database_updating">Päivitetään %s tietokanta(a)</string>
<string name="main_database_override">Käytetään palvelinta %s</string>
<string name="main_database_downloading">Ladataan %s</string>
<string name="main_database_download_success">Ladattiin onnistuneesti</string>
<string name="main_database_download_error">Tiedostoa ei ladattu, vastauskoodi %s</string>
<string name="main_no_database_available">Tietokantaa ei ole käytettävissä, ei tarkistusta...</string>
<string name="main_no_database_available">Tietokantaa ei ole käytettävissä, ei tarkistusta</string>
<string name="main_database_released_on">Julkaistu %s</string>
<string name="main_database_not_changed">Tiedostoa ei ole muutettu</string>
<string name="main_database_not_modified_since">%s jälkeen</string>
<string name="main_database_download_error_logcat">Lataus epäonnistui, tarkista logcat</string>
<string name="main_starting_scan">Aloitetaan tarkistus...</string>
<string name="main_cancelling_scan">Perutaan tarkistus...</string>
<string name="main_cancelled_scan">Tarkistus peruttu</string>
<string name="main_starting_scan">Aloitetaan tarkistus…</string>
<string name="main_cancelling_scan">Perutaan tarkistus…</string>
<string name="main_files_pending_scan">%s tarkistettavaa tiedostoa</string>
<string name="main_database_loading">Ladataan tietokantaa...</string>
<string name="main_database_loading">Ladataan tietokantaa</string>
<string name="main_database_loaded">Ladattiin tietokanta %s allekirjoituksella</string>
<string name="main_hashing_files">Hashataan tiedostoja...</string>
<string name="main_hashing_files">Hashataan tiedostoja</string>
<string name="main_hashing_done">Laskettiin hashit kaikille tiedostoille</string>
<string name="main_hash_scan_done">Tarkistettiin kaikki %s hashit allekirjoitustietokannoista</string>
<string name="main_scanning_done">Tarkistus suoritettu %s sekunnissa @ %sMB/s!</string>
<string name="main_files_scanned_count">%s tiedostoa tarkistettu</string>
<string name="db_desc_author">Tekijä</string>
<string name="db_desc_license">Lisenssi</string>
<string name="db_desc_size">Koko</string>
<string name="db_desc_source">Lähde</string>
<string name="db_desc_size_small">Pieni</string>
<string name="db_desc_size_medium">Keskikokoinen</string>
<string name="db_desc_size_large">Suuri</string>
</resources>

View file

@ -15,11 +15,14 @@
<item>• @Sdarfeesh: Simplified Chinese Translations</item>
<item>• @cardpuncher: French/Turkish Translations</item>
<item>• Tommaso Fonda: Italian Translations</item>
<item>• Dimitris Vagiakakos: Greek Translations</item>
<item>• ClamAV par Cisco: bases de données de signatures</item>
<item>• ESET: bases de données de signatures</item>
<item>• Nex (@botherder): bases de données de signatures</item>
<item>• Amnesty International: bases de données de signatures</item>
<item>• Echap: bases de données de signatures</item>
<item>• MalwareBazaar: bases de données de signatures</item>
<item>• VirusShare: bases de données de signatures</item>
<item>• RecursiveFileObserver.java: Daniel Gultsch, ownCloud Inc., Bartek Przybylski</item>
<item>• GPGDetachedSignatureVerifier.java: Federico Fissore, Arduino LLC</item>
<item>• Google: icône de l\'application</item>

View file

@ -1,18 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" translatable="false">Hypatia</string>
<string name="app_copyright">Copyright 2017-2023 Divested Computing Group</string>
<string name="app_license">Licence: GPL-3.0</string>
<string name="app_version">Numéro de version: %s</string>
<string name="app_db_type_clamav">Propulsé par les signatures de style ClamAV</string>
<string name="lblOnionRoutingToggle">Téléchargement par Tor</string>
<string name="lblOnionRoutingEnabledHint">Téléchargement par Tor, cela peut prendre un certain temps...</string>
<string name="lblOnionRoutingEnabledHint">Téléchargement par Tor, cela peut prendre un certain temps</string>
<string name="lblOnionRoutingNotInstalled">Orbot n\'est pas installé !</string>
<string name="lblOnionRoutingNotRunning">Orbot n\'est pas en marche !</string>
<string name="lblUpdateDatabase">Mise à jour des bases de données</string>
<string name="lblSelectDatabases">Sélectionner les bases de données</string>
<string name="lblSelectDatabasesTitle">Sélectionner les bases de données à activer</string>
<string name="lblDatabaseServer">Remplacer le serveur de base de données</string>
<string name="lblFullCredits">Crédits</string>
<string name="lblScanSystem">Analyser le /système</string>
@ -30,34 +26,25 @@
<string name="lblReset">Réinitialiser</string>
<string name="lblOverride">Remplacer</string>
<string name="main_database_updating">Mise à jour des %s bases de données...</string>
<string name="main_database_updating">Mise à jour des %s bases de données</string>
<string name="main_database_override">Utilisation du serveur %s</string>
<string name="main_database_downloading">Télécharger %s</string>
<string name="main_database_download_success">Téléchargement réussi</string>
<string name="main_database_download_error">Fichier non téléchargé, code de réponse %s</string>
<string name="main_no_database_available">Pas de base de données disponible, pas d\'analyse...</string>
<string name="main_no_database_available">Pas de base de données disponible, pas d\'analyse</string>
<string name="main_database_released_on">Publiée le %s</string>
<string name="main_database_not_changed">Fichier non modifié</string>
<string name="main_database_not_modified_since">depuis le %s</string>
<string name="main_database_download_error_logcat">Téléchargement échoué, vérifier le logcat</string>
<string name="main_starting_scan">Démarrage de l\'analyse...</string>
<string name="main_cancelling_scan">L\'analyse est annulée...</string>
<string name="main_cancelled_scan">L\'analyse a été annulée</string>
<string name="main_starting_scan">Démarrage de l\'analyse…</string>
<string name="main_cancelling_scan">L\'analyse est annulée…</string>
<string name="main_files_pending_scan">%s dossiers en attente de scan</string>
<string name="main_database_loaded">Base de données chargée de %s signatures</string>
<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_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">Analyse complétée en %s secondes @ %sMo/s!</string>
<string name="main_files_scanned_count">%s fichiers analysés</string>
<string name="db_desc_author">Auteur</string>
<string name="db_desc_license">Licence</string>
<string name="db_desc_size">Taille</string>
<string name="db_desc_source">La source</string>
<string name="db_desc_size_medium">Moyenne</string>
<string name="db_desc_size_large">Grande</string>
<string name="db_desc_size_small">Petite</string>
<string name="scan_control">Contrôle de l\'analyse</string>
<string name="lblScanRunning">Action ignorée, une analyse est en cours !</string>
<string name="lblSigningKey">Signature utilisée pour signer la base de données</string>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -5,12 +5,9 @@
<string name="app_db_type_clamav">Basato su firme in stile ClamAV</string>
<string name="lblOnionRoutingToggle">Aggiorna tramite Tor</string>
<string name="lblOnionRoutingEnabledHint">Aggiornamento tramite Tor, potrebbe volerci un po\'...</string>
<string name="lblOnionRoutingEnabledHint">Aggiornamento tramite Tor, potrebbe volerci un po\'</string>
<string name="lblOnionRoutingNotInstalled">Orbot non è installato!</string>
<string name="lblOnionRoutingNotRunning">Orbot non è in esecuzione!</string>
<string name="lblUpdateDatabase">Aggiorna i database</string>
<string name="lblSelectDatabases">Seleziona database</string>
<string name="lblSelectDatabasesTitle">Seleziona i database da abilitare</string>
<string name="lblDatabaseServer">Modifica il server dei database</string>
<string name="lblFullCredits">Crediti</string>
<string name="lblScanSystem">Scansiona le app di sistema</string>
@ -28,35 +25,26 @@
<string name="lblReset">Reset</string>
<string name="lblOverride">Modifica</string>
<string name="main_database_updating">Aggiornamento database %s...</string>
<string name="main_database_updating">Aggiornamento database %s</string>
<string name="main_database_override">Utilizza un altro server %s</string>
<string name="main_database_downloading">Scaricando %s</string>
<string name="main_database_download_success">Scaricato con successo</string>
<string name="main_database_download_error">Database non scaricato, errore %s</string>
<string name="main_no_database_available">Nessun database selezionato, scansione annullata...</string>
<string name="main_no_database_available">Nessun database selezionato, scansione annullata</string>
<string name="main_database_released_on">Aggiornato il %s</string>
<string name="main_database_not_changed">Database non modificato</string>
<string name="main_database_not_modified_since">dal %s</string>
<string name="main_database_download_error_logcat">Impossibile aggiornare, controlla il logcat</string>
<string name="main_starting_scan">Avviamento scansione...</string>
<string name="main_cancelling_scan">Annullamento scansione...</string>
<string name="main_cancelled_scan">Scansione annullata</string>
<string name="main_starting_scan">Avviamento scansione…</string>
<string name="main_cancelling_scan">Annullamento scansione…</string>
<string name="main_files_pending_scan">%s file da scansionare</string>
<string name="main_database_loading">Caricamento database...</string>
<string name="main_database_loading">Caricamento database</string>
<string name="main_database_loaded">Database caricato con %s firme</string>
<string name="main_hashing_files">Hashing dei file...</string>
<string name="main_hashing_files">Hashing dei 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_scanning_done">Scansione completata in %s secondi @ %sMB/s!</string>
<string name="main_files_scanned_count">%s file scansionati</string>
<string name="db_desc_author">Autore</string>
<string name="db_desc_license">Licenza</string>
<string name="db_desc_size">Dimensione</string>
<string name="db_desc_source">Fonte</string>
<string name="db_desc_size_medium">Medio</string>
<string name="db_desc_size_large">Grande</string>
<string name="db_desc_size_small">Piccola</string>
<string name="scan_control">Controllo scansione</string>
<string name="lblScanRunning">Azione saltata, è in corso una scansione!</string>
<string name="lblSigningKey">Chiave di firma del database</string>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -8,10 +8,7 @@
<string name="lblOnionRoutingToggle">Pobierz przez Tor</string>
<string name="lblOnionRoutingEnabledHint">Pobieranie przez Tor, może to zająć chwilę…</string>
<string name="lblOnionRoutingNotInstalled">Orbot nie jest zainstalowany!</string>
<string name="lblOnionRoutingNotRunning">Orbot nie jest uruchomiony!</string>
<string name="lblUpdateDatabase">Aktualizuj bazy danych</string>
<string name="lblSelectDatabases">Wybierz bazy danych</string>
<string name="lblSelectDatabasesTitle">Wybierz bazy danych do aktywacji</string>
<string name="lblDatabaseServer">Zastąpienia serwera bazy danych</string>
<string name="lblFullCredits">Uznania</string>
<string name="lblScanSystem">Skanuj /system</string>
@ -31,7 +28,6 @@
<string name="main_database_updating">Aktualizacja bazy danych %s…</string>
<string name="main_database_override">Wykorzystywanie serwera %s</string>
<string name="main_database_downloading">Pobieranie %s</string>
<string name="main_database_download_success">Pomyślnie pobrano</string>
<string name="main_database_download_error">Nie pobrano plikku, kod odpowiedzi %s</string>
<string name="main_no_database_available">Baza danych nie jest dostępna, nie skanuję…</string>
@ -42,7 +38,6 @@
<string name="main_starting_scan">Rozpoczynanie skanowania…</string>
<string name="main_cancelling_scan">Anulowanie skanowania…</string>
<string name="main_cancelled_scan">Anulowano skanowanie</string>
<string name="main_files_pending_scan">%s plików oczekuje na skanowanie</string>
<string name="main_database_loading">Ładowanie bazy danych…</string>
<string name="main_database_loaded">Załadowano bazę danych z %s sygnaturami</string>
@ -51,11 +46,4 @@
<string name="main_hash_scan_done">Porównano wszystkie %s hashów z bazą danych sygnatur</string>
<string name="main_scanning_done">Ukończono skanowanie w %s sekund @ %sMB/s!</string>
<string name="main_files_scanned_count">Zeskanowano %s plików</string>
<string name="db_desc_author">Autor</string>
<string name="db_desc_license">Licencja</string>
<string name="db_desc_size">Rozmiar</string>
<string name="db_desc_source">Źródło</string>
<string name="db_desc_size_small">Small</string>
<string name="db_desc_size_medium">Medium</string>
<string name="db_desc_size_large">Large</string>
</resources>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -5,12 +5,9 @@
<string name="app_version">Versão: %s</string>
<string name="app_db_type_clamav">Produzido por assinaturas estilo ClamAV</string>
<string name="lblOnionRoutingEnabledHint">Baixando via Tor, isto pode demorar um pouco...</string>
<string name="lblOnionRoutingEnabledHint">Baixando via Tor, isto pode demorar um pouco</string>
<string name="lblOnionRoutingNotInstalled">Orbot não está instalado!</string>
<string name="lblOnionRoutingNotRunning">Orbot não está iniciado!</string>
<string name="lblUpdateDatabase">Atualizar base de dados</string>
<string name="lblSelectDatabases">Selecionar base de dados</string>
<string name="lblSelectDatabasesTitle">Selecionar base de dados para ativar</string>
<string name="lblFullCredits">Créditos</string>
<string name="lblScanSystem">Analisar /sistema</string>
<string name="lblScanApps">Analisar APKs do App</string>
@ -25,31 +22,23 @@
<string name="lblNotificationRealtimeDetection">Malware detectado:</string>
<string name="lblRealtimeScannerToggle">Analisar em tempo real</string>
<string name="main_database_updating">Atualizando %s base de dados...</string>
<string name="main_database_downloading">Baixando %s</string>
<string name="main_database_updating">Atualizando %s base de dados…</string>
<string name="main_database_download_success">Baixado com sucesso</string>
<string name="main_database_download_error">Arquivo não baixado, código de resposta %s</string>
<string name="main_no_database_available">Sem base de dados disponível, análise não efetuada...</string>
<string name="main_no_database_available">Sem base de dados disponível, análise não efetuada</string>
<string name="main_database_released_on">Lançado em %s</string>
<string name="main_database_not_changed">Arquivo não alterado</string>
<string name="main_database_not_modified_since">desde %s</string>
<string name="main_database_download_error_logcat">Falha no download, veja logcat</string>
<string name="main_starting_scan">Iniciando análise...</string>
<string name="main_cancelling_scan">Cancelando análise...</string>
<string name="main_cancelled_scan">Análise cancelada</string>
<string name="main_starting_scan">Iniciando análise…</string>
<string name="main_cancelling_scan">Cancelando análise…</string>
<string name="main_files_pending_scan">%s arquivos pendentes para analisar</string>
<string name="main_database_loading">Carregando base de dados...</string>
<string name="main_database_loading">Carregando base de dados</string>
<string name="main_database_loaded">Carregou base de dados com %s assinaturas</string>
<string name="main_hashing_files">Hashing arquivos...</string>
<string name="main_hashing_files">Hashing 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 base de dados de assinaturas</string>
<string name="main_scanning_done">Análise concluída em %s segundos @ %sMB/s!</string>
<string name="main_files_scanned_count">%s arquivos analisados</string>
<string name="db_desc_license">Licença</string>
<string name="db_desc_size_large">Grande</string>
<string name="db_desc_size_medium">Média</string>
<string name="db_desc_size_small">Pequena</string>
<string name="db_desc_source">Fonte</string>
<string name="db_desc_size">Tamanho</string>
</resources>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources />

View file

@ -5,12 +5,9 @@
<string name="app_db_type_clamav">Используются сигнатуры от ClamAV</string>
<string name="lblOnionRoutingToggle">Скачать через Tor</string>
<string name="lblOnionRoutingEnabledHint">Загрузка через Tor может занять некоторое время...</string>
<string name="lblOnionRoutingEnabledHint">Загрузка через Tor может занять некоторое время</string>
<string name="lblOnionRoutingNotInstalled">Orbot не установлен!</string>
<string name="lblOnionRoutingNotRunning">Orbot не запущен!</string>
<string name="lblUpdateDatabase">Обновить базы данных</string>
<string name="lblSelectDatabases">Выбрать базы данных</string>
<string name="lblSelectDatabasesTitle">Выберите базы данных для включения</string>
<string name="lblDatabaseServer">Переопределение сервера базы данных</string>
<string name="lblFullCredits">Благодарность</string>
<string name="lblScanSystem">Сканировать /system</string>
@ -28,35 +25,26 @@
<string name="lblReset">Сбросить</string>
<string name="lblOverride">Переопределить</string>
<string name="main_database_updating">Обновление %s баз данных...</string>
<string name="main_database_updating">Обновление %s баз данных</string>
<string name="main_database_override">Используется сервер %s</string>
<string name="main_database_downloading">Загрузка %s</string>
<string name="main_database_download_success">Успешно загружена</string>
<string name="main_database_download_error">Файл не загружен, код ответа %s</string>
<string name="main_no_database_available">База данных недоступна, сканирование не выполняется...</string>
<string name="main_no_database_available">База данных недоступна, сканирование не выполняется</string>
<string name="main_database_released_on">Выпущены %s</string>
<string name="main_database_not_changed">Файл не изменен</string>
<string name="main_database_not_modified_since">%s</string>
<string name="main_database_download_error_logcat">Не удалось загрузить, проверьте logcat</string>
<string name="main_starting_scan">Запуск сканирования...</string>
<string name="main_cancelling_scan">Отмена сканирования...</string>
<string name="main_cancelled_scan">Сканирование отменено</string>
<string name="main_starting_scan">Запуск сканирования…</string>
<string name="main_cancelling_scan">Отмена сканирования…</string>
<string name="main_files_pending_scan">%s файл(-ов) ожидают сканирования</string>
<string name="main_database_loading">Загрузка базы данных...</string>
<string name="main_database_loading">Загрузка базы данных</string>
<string name="main_database_loaded">Загружена база данных с %s сигнатурами</string>
<string name="main_hashing_files">Хеширование файлов...</string>
<string name="main_hashing_files">Хеширование файлов</string>
<string name="main_hashing_done">Расчетные хеши для всех файлов</string>
<string name="main_hash_scan_done">Проверены все хэши %s по базам данных сигнатур</string>
<string name="main_scanning_done">Сканирование выполнено за %s секунд @ %sMB/s!</string>
<string name="main_files_scanned_count">Просканировано %s файлов</string>
<string name="db_desc_license">Лицензия</string>
<string name="db_desc_author">Автор</string>
<string name="db_desc_size">Размер</string>
<string name="db_desc_source">Источник</string>
<string name="db_desc_size_small">Маленький</string>
<string name="db_desc_size_medium">Средний</string>
<string name="db_desc_size_large">Большой</string>
<string name="scan_control">Контроль сканирования</string>
<string name="lblScanRunning">Пропускаем действие, выполняется сканирование!</string>
<string name="lblSigningKey">Ключ подписи базы данных</string>

View file

@ -15,11 +15,14 @@
<item>• @Sdarfeesh: Simplified Chinese Translations</item>
<item>• @cardpuncher: French/Turkish Translations</item>
<item>• Tommaso Fonda: Italian Translations</item>
<item>• Dimitris Vagiakakos: Greek Translations</item>
<item>• Cisco tarafından ClamAV: İmza Veri Tabanları</item>
<item>• ESET: İmza Veri Tabanları</item>
<item>• Nex (@botherder): İmza Veri Tabanları</item>
<item>• Uluslararası Af Örgütü: İmza Veri Tabanları</item>
<item>• Echap: İmza Veri Tabanları</item>
<item>• MalwareBazaar: İmza Veri Tabanları</item>
<item>• VirusShare: İmza Veri Tabanları</item>
<item>• RecursiveFileObserver.java: Daniel Gultsch, ownCloud Inc., Bartek Przybylski</item>
<item>• GPGDetachedSignatureVerifier.java: Federico Fissore, Arduino LLC</item>
<item>• Google: Uygulama İkonu</item>

View file

@ -1,18 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" translatable="false">Hypatia</string>
<string name="app_copyright">Telif hakkı 2017-2023 Divested Computing Group</string>
<string name="app_license">Lisans: GPL-3.0</string>
<string name="app_version">Sürüm: %s</string>
<string name="app_db_type_clamav">ClamAV tarzı imzalarla güçlendirilmiştir</string>
<string name="lblOnionRoutingToggle">Tor üzerinden indir</string>
<string name="lblOnionRoutingEnabledHint">Tor üzerinden indiriliyor, bu uzun sürebilir...</string>
<string name="lblOnionRoutingEnabledHint">Tor üzerinden indiriliyor, bu uzun sürebilir</string>
<string name="lblOnionRoutingNotInstalled">Orbot kurulu değil!</string>
<string name="lblOnionRoutingNotRunning">Orbot çalışır hâlde değil!</string>
<string name="lblUpdateDatabase">Veri tabanlarını güncelle</string>
<string name="lblSelectDatabases">Veri tabanlarını seç</string>
<string name="lblSelectDatabasesTitle">Etkinleştirilecek veri tabanlarını seç</string>
<string name="lblDatabaseServer">Veri tabanı sunucusu yerine koy</string>
<string name="lblFullCredits">Katkıda bulunanlar</string>
<string name="lblScanSystem">Sistemi /tara</string>
@ -30,35 +26,26 @@
<string name="lblReset">Sıfırla</string>
<string name="lblOverride">Yerine Koy</string>
<string name="main_database_updating">%s veri tabanı güncelleniyor...</string>
<string name="main_database_updating">%s veri tabanı güncelleniyor</string>
<string name="main_database_override">%s sunucusu kullanılıyor</string>
<string name="main_database_downloading">%s indiriliyor</string>
<string name="main_database_download_success">Başarıyla indirildi</string>
<string name="main_database_download_error">Dosya indirilmedi, cevap kodu %s</string>
<string name="main_no_database_available">Hiçbir veri tabanı mevcut değil, tarama yapılmıyor...</string>
<string name="main_no_database_available">Hiçbir veri tabanı mevcut değil, tarama yapılmıyor</string>
<string name="main_database_released_on">%s tarihinde yayınlandı</string>
<string name="main_database_not_changed">Dosya değiştirilmedi</string>
<string name="main_database_not_modified_since">%s tarihinden beri</string>
<string name="main_database_download_error_logcat">İndirme başarısız, logcat kontrolü yapın</string>
<string name="main_starting_scan">Tarama başlatılıyor...</string>
<string name="main_cancelling_scan">Tarama iptal ediliyor...</string>
<string name="main_cancelled_scan">Tarama iptal edildi</string>
<string name="main_starting_scan">Tarama başlatılıyor…</string>
<string name="main_cancelling_scan">Tarama iptal ediliyor…</string>
<string name="main_files_pending_scan">%s dosya taranmayı bekliyor</string>
<string name="main_database_loading">Veri tabanı yükleniyor...</string>
<string name="main_database_loading">Veri tabanı yükleniyor</string>
<string name="main_database_loaded">Veri tabanı, %s imza ile yüklendi</string>
<string name="main_hashing_files">Dosyaların karma değeri hesaplanıyor...</string>
<string name="main_hashing_files">Dosyaların karma değeri hesaplanıyor</string>
<string name="main_hashing_done">Tüm dosyaların karma değeri hesaplandı</string>
<string name="main_hash_scan_done">Tüm %s karma değer imza veri tabanlarıyla karşılaştırıldı</string>
<string name="main_scanning_done">Tarama % saniyede %sMB/s hızla tamamlandı!</string>
<string name="main_files_scanned_count">%s dosya tarandı</string>
<string name="db_desc_author">Yazar</string>
<string name="db_desc_license">Lisans</string>
<string name="db_desc_size">Boyut</string>
<string name="db_desc_source">Kaynak</string>
<string name="db_desc_size_small">Küçük</string>
<string name="db_desc_size_medium">Orta</string>
<string name="db_desc_size_large">Büyük</string>
<string name="scan_control">Tarama Kontrolü</string>
<string name="lblScanRunning">Faaliyet es geçiliyor, bir tarama devam etmekte!</string>
<string name="lblSigningKey">Veri tabanı imzalama anahtarı</string>

View file

@ -1,18 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" translatable="false">Hypatia</string>
<string name="app_copyright">版权所有 2017-2023 Divested Computing Group</string>
<string name="app_license">许可证GPL-3.0</string>
<string name="app_version">版本:%s</string>
<string name="app_db_type_clamav">由 ClamAV 数据库特征码提供支持</string>
<string name="lblOnionRoutingToggle">通过 Tor 下载</string>
<string name="lblOnionRoutingEnabledHint">正在通过 Tor 下载,这可能需要一段时间...</string>
<string name="lblOnionRoutingEnabledHint">正在通过 Tor 下载,这可能需要一段时间</string>
<string name="lblOnionRoutingNotInstalled">Orbot 未安装!</string>
<string name="lblOnionRoutingNotRunning">Orbot 未运行!</string>
<string name="lblUpdateDatabase">更新数据库</string>
<string name="lblSelectDatabases">选择数据库</string>
<string name="lblSelectDatabasesTitle">选择要启用的数据库</string>
<string name="lblDatabaseServer">数据库服务器覆盖</string>
<string name="lblFullCredits">致谢名单</string>
<string name="lblScanSystem">扫描 /system</string>
@ -30,35 +26,26 @@
<string name="lblReset">重置</string>
<string name="lblOverride">覆盖</string>
<string name="main_database_updating">正在更新 %s 个数据库...</string>
<string name="main_database_updating">正在更新 %s 个数据库</string>
<string name="main_database_override">使用服务器 %s</string>
<string name="main_database_downloading">正在下载 %s</string>
<string name="main_database_download_success">下载成功</string>
<string name="main_database_download_error">文件未下载,响应代码 %s</string>
<string name="main_no_database_available">无可用数据库,不执行扫描...</string>
<string name="main_no_database_available">无可用数据库,不执行扫描</string>
<string name="main_database_released_on">发布于 %s</string>
<string name="main_database_not_changed">文件无变更</string>
<string name="main_database_not_modified_since">%s 以来)</string>
<string name="main_database_download_error_logcat">下载失败,查看 Logcat</string>
<string name="main_starting_scan">开始扫描...</string>
<string name="main_cancelling_scan">正在取消扫描...</string>
<string name="main_cancelled_scan">扫描已取消</string>
<string name="main_starting_scan">开始扫描…</string>
<string name="main_cancelling_scan">正在取消扫描…</string>
<string name="main_files_pending_scan">%s 个文件等待扫描</string>
<string name="main_database_loading">正在加载数据库...</string>
<string name="main_database_loading">正在加载数据库</string>
<string name="main_database_loaded">已加载带有 %s 个特征码的数据库</string>
<string name="main_hashing_files">正在计算文件哈希值...</string>
<string name="main_hashing_files">正在计算文件哈希值</string>
<string name="main_hashing_done">已计算所有文件的哈希值</string>
<string name="main_hash_scan_done">已根据特征码数据库检查全部 %s 哈希值</string>
<string name="main_scanning_done">扫描在 %s 秒内完成 @ %sMB/s!</string>
<string name="main_files_scanned_count">已扫描 %s 个文件</string>
<string name="db_desc_author">作者</string>
<string name="db_desc_license">许可证</string>
<string name="db_desc_size">大小</string>
<string name="db_desc_source">来源</string>
<string name="db_desc_size_small"></string>
<string name="db_desc_size_medium"></string>
<string name="db_desc_size_large"></string>
<string name="scan_control">扫描控制</string>
<string name="lblScanRunning">跳过操作,扫描正在运行!</string>
</resources>

View file

@ -22,6 +22,7 @@
<item>• Amnesty International: Signature Databases</item>
<item>• Echap: Signature Databases</item>
<item>• MalwareBazaar: Signature Databases</item>
<item>• VirusShare: Signature Databases</item>
<item>• RecursiveFileObserver.java: Daniel Gultsch, ownCloud Inc., Bartek Przybylski</item>
<item>• GPGDetachedSignatureVerifier.java: Federico Fissore, Arduino LLC</item>
<item>• Google: App Icon</item>

View file

@ -1,3 +1 @@
<resources>
<dimen name="fab_margin">16dp</dimen>
</resources>
<resources></resources>

View file

@ -7,12 +7,9 @@
<string name="app_db_type_clamav">Powered by ClamAV style signatures</string>
<string name="lblOnionRoutingToggle">Download over Tor</string>
<string name="lblOnionRoutingEnabledHint">Downloading over Tor, this may take a while...</string>
<string name="lblOnionRoutingEnabledHint">Downloading over Tor, this may take a while</string>
<string name="lblOnionRoutingNotInstalled">Orbot is not installed!</string>
<string name="lblOnionRoutingNotRunning">Orbot is not running!</string>
<string name="lblUpdateDatabase">Update databases</string>
<string name="lblSelectDatabases">Select databases</string>
<string name="lblSelectDatabasesTitle">Select databases to enable</string>
<string name="lblDatabaseServer">Database server override</string>
<string name="lblFullCredits">Credits</string>
<string name="lblScanSystem">Scan /system</string>
@ -30,35 +27,26 @@
<string name="lblReset">Reset</string>
<string name="lblOverride">Override</string>
<string name="main_database_updating">Updating %s databases...</string>
<string name="main_database_updating">Updating %s databases</string>
<string name="main_database_override">Using server %s</string>
<string name="main_database_downloading">Downloading %s</string>
<string name="main_database_download_success">Successfully downloaded</string>
<string name="main_database_download_error">File not downloaded, response code %s</string>
<string name="main_no_database_available">No database available, not scanning...</string>
<string name="main_no_database_available">No database available, not scanning</string>
<string name="main_database_released_on">Released on %s</string>
<string name="main_database_not_changed">File not changed</string>
<string name="main_database_not_modified_since">since %s</string>
<string name="main_database_download_error_logcat">Failed to download, check logcat</string>
<string name="main_starting_scan">Starting scan...</string>
<string name="main_cancelling_scan">Cancelling scan...</string>
<string name="main_cancelled_scan">Cancelled scan</string>
<string name="main_starting_scan">Starting scan…</string>
<string name="main_cancelling_scan">Cancelling scan…</string>
<string name="main_files_pending_scan">%s files pending scan</string>
<string name="main_database_loading">Loading database...</string>
<string name="main_database_loading">Loading database</string>
<string name="main_database_loaded">Loaded database with %s signatures</string>
<string name="main_hashing_files">Hashing files...</string>
<string name="main_hashing_files">Hashing 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_scanning_done">Scan completed in %s seconds @ %sMB/s!</string>
<string name="main_files_scanned_count">%s files scanned</string>
<string name="db_desc_author">Author</string>
<string name="db_desc_license">License</string>
<string name="db_desc_size">Size</string>
<string name="db_desc_source">Source</string>
<string name="db_desc_size_small">Small</string>
<string name="db_desc_size_medium">Medium</string>
<string name="db_desc_size_large">Large</string>
<string name="scan_control">Scan Control</string>
<string name="lblScanRunning">Skipping action, a scan is running!</string>
<string name="lblSigningKey">Database signing key</string>
@ -79,8 +67,6 @@
<string name="confirm_delete_summary">Are you sure you want to delete the following file?</string>
<string name="delete_failed">Failed to delete!</string>
<string name="ignored">Ignored!</string>
<string name="confirm_uninstall_title">Confirm uninstall</string>
<string name="confirm_uninstall_summary">Are you sure you want to uninstall the following app?</string>
<string name="uninstallApp">Uninstall</string>
<string name="lblSelfTest">Write self test files</string>
</resources>

View file

@ -0,0 +1 @@
* Small crash fix

View file

@ -0,0 +1 @@
* Improve notification action handling

View file

@ -0,0 +1,2 @@
* Restore support for Android 4.1 / Jelly Bean
* Code cleanup

View file

@ -16,6 +16,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import com.google.common.base.CharMatcher;
import com.google.common.base.Charsets;
import com.google.common.hash.BloomFilter;
import com.google.common.hash.Funnels;
@ -25,7 +26,6 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.zip.GZIPInputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -53,9 +53,9 @@ public class Main {
public static int amtPreviousSignaturesSHA256 = 0;
public static void main(String[] args) {
signaturesMD5 = BloomFilter.create(Funnels.stringFunnel(StandardCharsets.US_ASCII), 4500000, 0.00001); //4.5m
signaturesSHA1 = BloomFilter.create(Funnels.stringFunnel(StandardCharsets.US_ASCII), 10000, 0.00001); //10k
signaturesSHA256 = BloomFilter.create(Funnels.stringFunnel(StandardCharsets.US_ASCII), 800000, 0.00001); //800k
signaturesMD5 = BloomFilter.create(Funnels.stringFunnel(Charsets.US_ASCII), 5800000, 0.00001); //5.8m
signaturesSHA1 = BloomFilter.create(Funnels.stringFunnel(Charsets.US_ASCII), 10000, 0.00001); //10k
signaturesSHA256 = BloomFilter.create(Funnels.stringFunnel(Charsets.US_ASCII), 800000, 0.00001); //800k
System.out.println("Processing:");
for (File databaseLocation : new File(args[0]).listFiles()) {