{
  "capsule": {
    "schema": "apk-scanner.proof/v2",
    "issuer": "apk-scanner.com",
    "issued_at": "2026-10-13T16:32:20.513Z",
    "app": {
      "app_id": "com.gansoft.photosolve",
      "title": "PhotoSolve: AI Homework Helper",
      "version": "5.3.0"
    },
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 10169.413,
        "harvest": 3722.8280000000004,
        "detectors": 5708.310000000001
      },
      "bytes_total": 82533493,
      "bytes_scanned": 82533493,
      "bytes_skipped": 0,
      "files_processed": 1226,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "5c361b305e61587c3f4d7bcf7f43b4f1eefb927b72089e1ac81c57bb1856b8a2"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "5473a2106c60d19120aa70e3c8e9ea5d489c6550e0482c7604a8411511ccdc99"
        },
        {
          "name": "config.en.apk",
          "sha256": "81acc879ccfb55ac737be47289e06c358c25d99d1ef3a833d4cb9836f15304eb"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "4c607a5fbf87b961aef71edee70e3763d6295edb810a6ded89d19d680091801a"
        }
      ],
      "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
    },
    "apk_sha256": "5c361b305e61587c3f4d7bcf7f43b4f1eefb927b72089e1ac81c57bb1856b8a2",
    "scan": {
      "scan_id": "99cf5e6f-6ec5-4d15-9b07-250a013a199f",
      "scanned_at": "2026-10-08T17:04:24.271Z",
      "grade": "B",
      "score": 78
    },
    "apk_signer": {
      "scheme": "v3",
      "subject_o": "Google Inc.",
      "subject_cn": "Android",
      "sha256": "98f0ce2d038a2a2e0b2d7ce814e12f2b11b978b554c2fb770d8a974167ec0ea3",
      "not_after": "2053-04-19T09:10:24+00:00"
    },
    "counts": {
      "critical": 0,
      "high": 1,
      "medium": 0,
      "low": 26,
      "info": 1
    },
    "findings": [
      {
        "finding_type": 67,
        "severity": "high",
        "title": "Database connection string with credentials",
        "redacted_display": "•••••••• (40+ chars, redacted)",
        "fingerprint": "1a16601bc96feb9783088ceb44c232343d82496fe237fbafa9d7a3bfbec071e6",
        "verified": false,
        "cwe": [
          "CWE-798",
          "CWE-312"
        ],
        "masvs": [
          "MASVS-STORAGE-1",
          "MASVS-AUTH-1"
        ],
        "remediation": "Remove the embedded username:password, rotate the credential, and authenticate to the endpoint with short-lived per-user tokens instead."
      },
      {
        "finding_type": 37,
        "severity": "info",
        "title": "Application data is backup-enabled",
        "redacted_display": "android:allowBackup=\"true\"",
        "fingerprint": "68d134f0bcd98a9559d6dd5275f80a3928e4a6490ac4a0f1bd16f87683bd49f8",
        "verified": false,
        "cwe": [
          "CWE-530",
          "CWE-312"
        ],
        "masvs": [
          "MASVS-STORAGE-1",
          "MASVS-STORAGE-2"
        ],
        "remediation": "Backup is on by default on Android; this manifest states it explicitly. If the app stores sensitive local data, define dataExtractionRules/fullBackupContent to exclude it, or set android:allowBackup=false."
      },
      {
        "finding_type": 2,
        "severity": "low",
        "title": "Firebase Realtime Database reference",
        "redacted_display": "https://██████████████████████████████.firebaseio.com/███",
        "fingerprint": "3397c2f649428bc9eb782e19a7a5c3e48908003024c4a138ac4a1418f627e791",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 20,
        "severity": "low",
        "title": "Google API key (client-shipped; restriction unverified)",
        "redacted_display": "AIza•••••••• (21–40 chars, redacted)",
        "fingerprint": "b1fcb783fe7262a2f9f34057618cf80fdf98e4d99cf673f95e9cf65d48f38e81",
        "verified": false,
        "cwe": [
          "CWE-798"
        ],
        "masvs": [
          "MASVS-STORAGE-1"
        ],
        "remediation": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "a5febf312adb22324b2b891038649dd190deb914c8e092ab8cf75209cc45976f",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "49812963b61374163921d6b765aad6a584aea13d85efb0fe4e67f40ace436f52",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "307b4e814a7834a995cb782eacf855e038177894e985b309c2c700b5dd4d3096",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "c90ac93763a16f7e4d529619222520071cc18196419fbd86cda14b8bc87a5c6a",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "69502da3ef55895149955b64aa19c29cd5d388d1c94fc5e7062aa9d493133a53",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "fea0f0c3f5a7c73aaf15a8765f66edd191c9304e709f1cd4ebfd3b0a6e8bed15",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "dc342d27c7cdb546d1ed0c388755efe382d7362507a6d2ffb3da62d31556fd95",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "9bebdc5c5505424b50050d7ef022bf987a3c59537f9b785a8a87a5e26ddac214",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "1c6567894a0e88455fd525ee4cd0c37d2c9d5f1f635840be47e17132de4042fe",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "0ea060d8ae1a16d211012f6b599464197c36300bd52be876fa124961a8e6b9bc",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "6bc6b274bd166983280d2e3512c755e670de24834667c9e71ad22b0acb47a114",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "e5da1e6b3c71375b4aa74136a967996de0206eb96371ce1037d4f3cfec246117",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "124ae2e068e72fb34f3f26c8167367538fd0f401c0f5b7eedf9016cd6b4c6874",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "dde96052311fbbe412b9825b8df6b4b9fd62b520dce2438830356febd31a95cf",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "4e269bf15a177ed9e753913df7048622fc4cfdcb0a6818d37179c37d8795e661",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "cf450da833f1748acb8eda729c26e368663b2f3bc3a2dd77bf07fa06698a78c5",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "29a8360953e8f219aeff2b1f187f3f8ab6398311d5f20bfb65bf7c41120f2b8d",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "0f1e4f179e5d4eaa62ab67b319aaece70ee49057d959326d213e91f69efdc6ee",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "2d58f0300a297f49b0f0f5609a55f259481493d944c4dec60a91deecdf4807cb",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "https://███████████████.googleapis.com/███",
        "fingerprint": "2a6f3422b4107c7f0d715eafb8fa25c4fae290e305cbf6b95d4ae6a6490a7849",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "b58381dc968111cf501a960e58ba803e23001733cfad31c5b572569c84d74925",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "6da605c01a32d6178ae1e6876876e3de02277efaeb0bf30b781056b6efdcc7a8",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "b6e2cb8eb4bf3d0a7bcb1c02e7aaa6b80181f3fefcd2655ab608c7c76f9d6977",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 72,
        "severity": "low",
        "title": "Sentry DSN",
        "redacted_display": "https://█████████████████.ingest.us.sentry.io/███",
        "fingerprint": "027df5510df85bf7892e209096c5e21611ac32db14ed2b4f79a6f6226c33c989",
        "verified": false,
        "cwe": [
          "CWE-200"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "A client DSN is low-risk but confirm it is a client (not internal) DSN and cannot be abused to spoof events."
      }
    ],
    "live_verification": {
      "verified_count": 0,
      "items": []
    },
    "trackers_count": 10,
    "pii": {
      "sources": 2,
      "identifiers": [
        "Advertising ID (AAID)",
        "Android ID",
        "Device ID / IMEI"
      ],
      "destinations": 7
    },
    "sbom": {
      "component_count": 110,
      "vuln_count": 0,
      "components": [
        {
          "name": "androidx.activity:activity",
          "version": "1.12.2",
          "cves": []
        },
        {
          "name": "androidx.activity:activity-compose",
          "version": "1.12.2",
          "cves": []
        },
        {
          "name": "androidx.activity:activity-ktx",
          "version": "1.12.2",
          "cves": []
        },
        {
          "name": "androidx.annotation:annotation-experimental",
          "version": "1.4.1",
          "cves": []
        },
        {
          "name": "androidx.appcompat:appcompat",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.appcompat:appcompat-resources",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.asynclayoutinflater:asynclayoutinflater",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.autofill:autofill",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.browser:browser",
          "version": "1.9.0",
          "cves": []
        },
        {
          "name": "androidx.camera.featurecombinationquery:featurecombinationquery",
          "version": "1.5.0",
          "cves": []
        },
        {
          "name": "androidx.camera:camera-camera2",
          "version": "1.5.0",
          "cves": []
        },
        {
          "name": "androidx.camera:camera-core",
          "version": "1.5.0",
          "cves": []
        },
        {
          "name": "androidx.camera:camera-lifecycle",
          "version": "1.5.0",
          "cves": []
        },
        {
          "name": "androidx.cardview:cardview",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.compose.animation:animation",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.compose.animation:animation-core",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.compose.foundation:foundation",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.compose.foundation:foundation-layout",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.compose.material3:material3",
          "version": "1.2.1",
          "cves": []
        },
        {
          "name": "androidx.compose.material:material-icons-core",
          "version": "1.6.7",
          "cves": []
        },
        {
          "name": "androidx.compose.material:material-ripple",
          "version": "1.6.7",
          "cves": []
        },
        {
          "name": "androidx.compose.runtime:runtime",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.runtime:runtime-annotation",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.runtime:runtime-saveable",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui-geometry",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui-graphics",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui-text",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui-tooling-preview",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui-unit",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.compose.ui:ui-util",
          "version": "1.9.2",
          "cves": []
        },
        {
          "name": "androidx.coordinatorlayout:coordinatorlayout",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.core:core",
          "version": "1.17.0",
          "cves": []
        },
        {
          "name": "androidx.core:core-ktx",
          "version": "1.17.0",
          "cves": []
        },
        {
          "name": "androidx.core:core-viewtree",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.credentials:credentials",
          "version": "1.2.0-rc01",
          "cves": []
        },
        {
          "name": "androidx.credentials:credentials-play-services-auth",
          "version": "1.2.0-rc01",
          "cves": []
        },
        {
          "name": "androidx.cursoradapter:cursoradapter",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.customview:customview",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.customview:customview-poolingcontainer",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.datastore:datastore",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.datastore:datastore-core",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.datastore:datastore-preferences",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.datastore:datastore-preferences-core",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.documentfile:documentfile",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.drawerlayout:drawerlayout",
          "version": "1.1.1",
          "cves": []
        },
        {
          "name": "androidx.dynamicanimation:dynamicanimation",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.emoji2:emoji2",
          "version": "1.4.0",
          "cves": []
        },
        {
          "name": "androidx.emoji2:emoji2-views-helper",
          "version": "1.4.0",
          "cves": []
        },
        {
          "name": "androidx.exifinterface:exifinterface",
          "version": "1.4.2",
          "cves": []
        },
        {
          "name": "androidx.fragment:fragment",
          "version": "1.7.1",
          "cves": []
        },
        {
          "name": "androidx.fragment:fragment-ktx",
          "version": "1.7.1",
          "cves": []
        },
        {
          "name": "androidx.graphics:graphics-path",
          "version": "1.0.1",
          "cves": []
        },
        {
          "name": "androidx.heifwriter:heifwriter",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.interpolator:interpolator",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.javascriptengine:javascriptengine",
          "version": "1.0.0-beta01",
          "cves": []
        },
        {
          "name": "androidx.legacy:legacy-support-core-ui",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.legacy:legacy-support-core-utils",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.legacy:legacy-support-v4",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-livedata",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-livedata-core",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-livedata-core-ktx",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-process",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-runtime",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-runtime-compose",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-runtime-ktx",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-service",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-viewmodel",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-viewmodel-ktx",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.lifecycle:lifecycle-viewmodel-savedstate",
          "version": "2.9.4",
          "cves": []
        },
        {
          "name": "androidx.loader:loader",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.localbroadcastmanager:localbroadcastmanager",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.media:media",
          "version": "1.7.0",
          "cves": []
        },
        {
          "name": "androidx.navigationevent:navigationevent",
          "version": "1.0.1",
          "cves": []
        },
        {
          "name": "androidx.navigationevent:navigationevent-compose",
          "version": "1.0.1",
          "cves": []
        },
        {
          "name": "androidx.preference:preference",
          "version": "1.2.1",
          "cves": []
        },
        {
          "name": "androidx.print:print",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.privacysandbox.ads:ads-adservices",
          "version": "1.1.0-beta11",
          "cves": []
        },
        {
          "name": "androidx.privacysandbox.ads:ads-adservices-java",
          "version": "1.1.0-beta11",
          "cves": []
        },
        {
          "name": "androidx.profileinstaller:profileinstaller",
          "version": "1.4.0",
          "cves": []
        },
        {
          "name": "androidx.recyclerview:recyclerview",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.room:room-ktx",
          "version": "2.6.1",
          "cves": []
        },
        {
          "name": "androidx.room:room-runtime",
          "version": "2.6.1",
          "cves": []
        },
        {
          "name": "androidx.savedstate:savedstate",
          "version": "1.3.3",
          "cves": []
        },
        {
          "name": "androidx.savedstate:savedstate-compose",
          "version": "1.3.3",
          "cves": []
        },
        {
          "name": "androidx.savedstate:savedstate-ktx",
          "version": "1.3.3",
          "cves": []
        },
        {
          "name": "androidx.security:security-crypto",
          "version": "1.1.0-alpha06",
          "cves": []
        },
        {
          "name": "androidx.slidingpanelayout:slidingpanelayout",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.sqlite:sqlite",
          "version": "2.4.0",
          "cves": []
        },
        {
          "name": "androidx.sqlite:sqlite-framework",
          "version": "2.4.0",
          "cves": []
        },
        {
          "name": "androidx.startup:startup-runtime",
          "version": "1.1.1",
          "cves": []
        },
        {
          "name": "androidx.swiperefreshlayout:swiperefreshlayout",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.tracing:tracing",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.tracing:tracing-ktx",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.transition:transition",
          "version": "1.5.0",
          "cves": []
        },
        {
          "name": "androidx.vectordrawable:vectordrawable",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.vectordrawable:vectordrawable-animated",
          "version": "1.1.0",
          "cves": []
        },
        {
          "name": "androidx.versionedparcelable:versionedparcelable",
          "version": "1.1.1",
          "cves": []
        },
        {
          "name": "androidx.viewpager2:viewpager2",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.viewpager:viewpager",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.window.extensions.core:core",
          "version": "1.0.0",
          "cves": []
        },
        {
          "name": "androidx.window:window",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.window:window-java",
          "version": "1.2.0",
          "cves": []
        },
        {
          "name": "androidx.work:work-runtime",
          "version": "2.9.0",
          "cves": []
        },
        {
          "name": "androidx.work:work-runtime-ktx",
          "version": "2.9.0",
          "cves": []
        },
        {
          "name": "com.google.android.material:material",
          "version": "1.12.0",
          "cves": []
        },
        {
          "name": "kotlinx:coroutines_android",
          "version": "1.10.2",
          "cves": []
        },
        {
          "name": "kotlinx:coroutines_core",
          "version": "1.10.2",
          "cves": []
        },
        {
          "name": "kotlinx:coroutines_guava",
          "version": "1.10.2",
          "cves": []
        },
        {
          "name": "kotlinx:coroutines_play_services",
          "version": "1.10.2",
          "cves": []
        }
      ]
    },
    "control_coverage": {
      "schema": "apk-scanner.coverage/v1",
      "framework": "OWASP MASVS v2",
      "disclaimer": "Static, metadata-only analysis. Each control is scored evidence-for / gap-signal / requires-manual-testing. This is evidence toward a MASVS assessment, NOT a certification — apk-scanner.com is not an authorized assessment lab. Absence of a static finding does not prove a control passes.",
      "rows": [
        {
          "control": "MASVS-STORAGE-1",
          "category": "STORAGE",
          "title": "The app securely stores sensitive data.",
          "static": "partial",
          "status": "gap-detected",
          "count": 3,
          "findings": [
            {
              "finding_type": 67,
              "key": "db_uri_creds",
              "title": "Database connection string with credentials",
              "severity": "high",
              "verified": false,
              "relationship": "gap-confirmed",
              "cwe": [
                798,
                312
              ]
            },
            {
              "finding_type": 37,
              "key": "allow_backup",
              "title": "Application data is backup-enabled",
              "severity": "info",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                530,
                312
              ]
            },
            {
              "finding_type": 20,
              "key": "google_api_key",
              "title": "Google API key (client-shipped; restriction unverified)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                798
              ]
            }
          ]
        },
        {
          "control": "MASVS-STORAGE-2",
          "category": "STORAGE",
          "title": "The app prevents leakage of sensitive data.",
          "static": "partial",
          "status": "gap-detected",
          "count": 26,
          "findings": [
            {
              "finding_type": 37,
              "key": "allow_backup",
              "title": "Application data is backup-enabled",
              "severity": "info",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                530,
                312
              ]
            },
            {
              "finding_type": 2,
              "key": "firebase_rtdb",
              "title": "Firebase Realtime Database reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 72,
              "key": "sentry_dsn",
              "title": "Sentry DSN",
              "severity": "low",
              "verified": false,
              "relationship": "informational",
              "cwe": [
                200
              ]
            }
          ]
        },
        {
          "control": "MASVS-CRYPTO-1",
          "category": "CRYPTO",
          "title": "The app employs current strong cryptography and uses it according to best practices.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CRYPTO-2",
          "category": "CRYPTO",
          "title": "The app performs key management according to best practices.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-1",
          "category": "AUTH",
          "title": "The app uses secure authentication and authorization protocols.",
          "static": "manual",
          "status": "gap-detected",
          "count": 1,
          "findings": [
            {
              "finding_type": 67,
              "key": "db_uri_creds",
              "title": "Database connection string with credentials",
              "severity": "high",
              "verified": false,
              "relationship": "gap-confirmed",
              "cwe": [
                798,
                312
              ]
            }
          ]
        },
        {
          "control": "MASVS-AUTH-2",
          "category": "AUTH",
          "title": "The app performs local authentication securely.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-3",
          "category": "AUTH",
          "title": "The app secures sensitive operations with additional authentication.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-NETWORK-1",
          "category": "NETWORK",
          "title": "The app secures all network traffic according to current best practices.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-NETWORK-2",
          "category": "NETWORK",
          "title": "The app verifies the identity of the remote endpoint (e.g. certificate pinning).",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-1",
          "category": "PLATFORM",
          "title": "The app uses IPC mechanisms securely.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-2",
          "category": "PLATFORM",
          "title": "The app uses WebViews securely.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-3",
          "category": "PLATFORM",
          "title": "The app uses the user interface securely.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-1",
          "category": "CODE",
          "title": "The app requires an up-to-date platform version.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-2",
          "category": "CODE",
          "title": "The app has a mechanism for enforcing updates.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-3",
          "category": "CODE",
          "title": "The app only uses software components without known vulnerabilities.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-4",
          "category": "CODE",
          "title": "The app validates and sanitizes all untrusted inputs and follows secure-coding practice.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-1",
          "category": "RESILIENCE",
          "title": "The app validates the integrity of the platform.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-2",
          "category": "RESILIENCE",
          "title": "The app implements anti-tampering mechanisms.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-3",
          "category": "RESILIENCE",
          "title": "The app implements anti-static-analysis mechanisms.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-4",
          "category": "RESILIENCE",
          "title": "The app implements anti-dynamic-analysis techniques.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-1",
          "category": "PRIVACY",
          "title": "The app minimizes access to sensitive data and resources.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-2",
          "category": "PRIVACY",
          "title": "The app prevents identification of the user.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-3",
          "category": "PRIVACY",
          "title": "The app is transparent about data collection and usage.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-4",
          "category": "PRIVACY",
          "title": "The app offers user control over their data.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        }
      ],
      "categories": [
        {
          "category": "STORAGE",
          "controls": 2,
          "gaps": 2,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "CRYPTO",
          "controls": 2,
          "gaps": 0,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "AUTH",
          "controls": 3,
          "gaps": 1,
          "verified": 0,
          "manual": 2
        },
        {
          "category": "NETWORK",
          "controls": 2,
          "gaps": 0,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "PLATFORM",
          "controls": 3,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        },
        {
          "category": "CODE",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        },
        {
          "category": "RESILIENCE",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 4
        },
        {
          "category": "PRIVACY",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        }
      ]
    }
  },
  "proof": {
    "alg": "ed25519",
    "key_id": "IE6LeZNX4dAAPLGr",
    "digest_sha256": "b702f48e6c04d12fa703da3e08ccd2c78f8fe9c0c9c47cf1808b4e87db68779b",
    "signature": "86QPuPDbuJvFVNlTKTMrHg72oCEI3+btBIEVlKUmBN8iSsd8KMzItLnHatjdZpTjOnv1eilIKUCFLqG2pVIuCQ==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAwH2fYdYB5nD0CQslDtG3FgafcJBoOX2OGoT80Woksrk=\n-----END PUBLIC KEY-----\n",
    "verify_url": "https://apk-scanner.com/verify"
  }
}