From 78ab43a5d6283ec1efef413212275481e2cb3a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aliberk=20Sand=C4=B1k=C3=A7=C4=B1?= Date: Thu, 23 Jan 2025 21:27:57 +0300 Subject: [PATCH 1/3] WIP: ci test for database --- .github/workflows/database_generate.yml | 50 +++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/database_generate.yml diff --git a/.github/workflows/database_generate.yml b/.github/workflows/database_generate.yml new file mode 100644 index 0000000..e486835 --- /dev/null +++ b/.github/workflows/database_generate.yml @@ -0,0 +1,50 @@ +name: DatabaseGenerate + +on: + workflow_dispatch: + pull_request: + branches: + - dev + - master + - extended + - stable + - '**-feature-**' + paths-ignore: + - 'README.md' + - 'doc/**' + - 'fastlane/**' + - 'assets/**' + - '.github/**/*.md' + - '.github/FUNDING.yml' + - '.github/ISSUE_TEMPLATE/**' + +jobs: + build: + runs-on: ubuntu-latest + + permissions: write-all + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: "temurin" + cache: 'gradle' + + - name: Run Java file (test) + run: java ./scripts/Main.java + + # - name: Generate checksum + # run: | + # sha256sum app/build/outputs/apk/debug/*.apk > app/build/outputs/apk/debug/checksums.txt + # echo "::notice::$(cat app/build/outputs/apk/debug/checksums.txt)" + + # - name: Upload APK + # uses: actions/upload-artifact@v4 + # with: + # name: app + # path: app/build/outputs/apk/debug/*.apk From 272b4d8e553892e4ebf0dfed131fc774255e6e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aliberk=20Sand=C4=B1k=C3=A7=C4=B1?= Date: Mon, 27 Jan 2025 01:01:25 +0300 Subject: [PATCH 2/3] test --- .../main/java/us/spotco/malwarescanner/Database.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/us/spotco/malwarescanner/Database.java b/app/src/main/java/us/spotco/malwarescanner/Database.java index 0732530..d06caf8 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Database.java +++ b/app/src/main/java/us/spotco/malwarescanner/Database.java @@ -69,10 +69,14 @@ public static boolean areDatabasesAvailable() { } public static boolean isDatabaseLoaded() { + // FIXME: CHANGE THIS LINES LATER !!! + Log.d("Hypatia", "md5 approximate element:" + signaturesMD5.approximateElementCount()); + Log.d("Hypatia", "sha1 approximate element:" + signaturesSHA1.approximateElementCount()); + Log.d("Hypatia", "sha256 approximate element:" + signaturesSHA256.approximateElementCount()); return areDatabasesAvailable() && !isDatabaseLoading() - && signaturesMD5 != null && signaturesMD5.approximateElementCount() > 0 - && signaturesSHA1 != null && signaturesSHA1.approximateElementCount() > 0 - && signaturesSHA256 != null && signaturesSHA256.approximateElementCount() > 0; + && signaturesMD5 != null && signaturesMD5.approximateElementCount() >= 0 + && signaturesSHA1 != null && signaturesSHA1.approximateElementCount() >= 0 + && signaturesSHA256 != null && signaturesSHA256.approximateElementCount() >= 0; } public static boolean isDomainDatabaseLoaded() { From 2191aace2c4aef266d884f5622e89f2c8717d502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aliberk=20Sand=C4=B1k=C3=A7=C4=B1?= Date: Mon, 27 Jan 2025 01:03:25 +0300 Subject: [PATCH 3/3] fix error + delete database ci, It'll be on another repo later --- .github/workflows/database_generate.yml | 50 ------------------- .../us/spotco/malwarescanner/Database.java | 11 ++-- .../java/us/spotco/malwarescanner/Utils.java | 4 +- 3 files changed, 6 insertions(+), 59 deletions(-) delete mode 100644 .github/workflows/database_generate.yml diff --git a/.github/workflows/database_generate.yml b/.github/workflows/database_generate.yml deleted file mode 100644 index e486835..0000000 --- a/.github/workflows/database_generate.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: DatabaseGenerate - -on: - workflow_dispatch: - pull_request: - branches: - - dev - - master - - extended - - stable - - '**-feature-**' - paths-ignore: - - 'README.md' - - 'doc/**' - - 'fastlane/**' - - 'assets/**' - - '.github/**/*.md' - - '.github/FUNDING.yml' - - '.github/ISSUE_TEMPLATE/**' - -jobs: - build: - runs-on: ubuntu-latest - - permissions: write-all - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up JDK - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: "temurin" - cache: 'gradle' - - - name: Run Java file (test) - run: java ./scripts/Main.java - - # - name: Generate checksum - # run: | - # sha256sum app/build/outputs/apk/debug/*.apk > app/build/outputs/apk/debug/checksums.txt - # echo "::notice::$(cat app/build/outputs/apk/debug/checksums.txt)" - - # - name: Upload APK - # uses: actions/upload-artifact@v4 - # with: - # name: app - # path: app/build/outputs/apk/debug/*.apk diff --git a/app/src/main/java/us/spotco/malwarescanner/Database.java b/app/src/main/java/us/spotco/malwarescanner/Database.java index d06caf8..b0c19dc 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Database.java +++ b/app/src/main/java/us/spotco/malwarescanner/Database.java @@ -69,14 +69,10 @@ public static boolean areDatabasesAvailable() { } public static boolean isDatabaseLoaded() { - // FIXME: CHANGE THIS LINES LATER !!! - Log.d("Hypatia", "md5 approximate element:" + signaturesMD5.approximateElementCount()); - Log.d("Hypatia", "sha1 approximate element:" + signaturesSHA1.approximateElementCount()); - Log.d("Hypatia", "sha256 approximate element:" + signaturesSHA256.approximateElementCount()); return areDatabasesAvailable() && !isDatabaseLoading() - && signaturesMD5 != null && signaturesMD5.approximateElementCount() >= 0 - && signaturesSHA1 != null && signaturesSHA1.approximateElementCount() >= 0 - && signaturesSHA256 != null && signaturesSHA256.approximateElementCount() >= 0; + && signaturesMD5 != null && signaturesMD5.approximateElementCount() > 0 + && signaturesSHA1 != null && signaturesSHA1.approximateElementCount() > 0 + && signaturesSHA256 != null && signaturesSHA256.approximateElementCount() > 0; } public static boolean isDomainDatabaseLoaded() { @@ -136,6 +132,7 @@ public static void loadDatabase(Context context, boolean forceReload, Concurrent signaturesMD5Extended = null; domains = null; File publicKey = new File(databasePath + "/gpg.key"); + GPGDetachedSignatureVerifier verifier = new GPGDetachedSignatureVerifier(Utils.getSigningKey(context)); for (SignatureDatabase database : signatureDatabases) { File databaseLocation = new File(databasePath + "/" + database.getName()); diff --git a/app/src/main/java/us/spotco/malwarescanner/Utils.java b/app/src/main/java/us/spotco/malwarescanner/Utils.java index e760a99..8ba7f3b 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Utils.java +++ b/app/src/main/java/us/spotco/malwarescanner/Utils.java @@ -44,9 +44,9 @@ class Utils { private static Context context = null; public final static int MAX_SCAN_SIZE = (1000 * 1000) * 500; //500MB public final static int MAX_SCAN_SIZE_REALTIME = (1000 * 1000) * 250; //250MB - public final static String DATABASE_URL_DEFAULT = "https://divested.dev/MalwareScannerSignatures/"; + public final static String DATABASE_URL_DEFAULT = "https://raw.githubusercontent.com/MaintainTeam/HypatiaDatabases/refs/heads/main/"; public final static String DATABASE_URL_CLOUDFLARE = "https://eeyo.re/MalwareScannerSignatures/"; - public final static String SIGNING_KEY_DEFAULT = "BADFCABDDBF5B694"; + public final static String SIGNING_KEY_DEFAULT = "5298C0C0C3E73288"; public static final AtomicInteger FILES_SCANNED = new AtomicInteger(); public final static ConcurrentHashMap MATCHED_FILES_TIME = new ConcurrentHashMap<>();