MAVS Mathews Android field app package layout Install APK: https://professionalassessor.app/downloads/mavs-mathews-field.apk Verify APK checksum: https://professionalassessor.app/downloads/mavs-mathews-field.sha256 Current APK version: 2026.06.18.65 Release signer SHA-256 fingerprint: b08f7c01fde965733ed5adc2d717afaa1c3fdb4d8e81f496642698e84c19f4e3 Keep the android-field/keystore folder backed up. Android tablets can only upgrade this app in place when future APKs are signed by this same release key. Build or refresh the public APK/checksum from this repo with: powershell -ExecutionPolicy Bypass -File scripts\build-mathews-android-release.ps1 Place the county data package on the tablet internal storage or SD card at: MAVS/Mathews/ Before giving a tablet or SD card to a field tech, validate the assembled package from this repo: node scripts/validate-mathews-tablet-package.js --root X:\MAVS\Mathews Required folders and files: MAVS/Mathews/ offline/ mathews_va_51115_z14_z18_aerials.mbtiles manifest.json mathews_va_51115_z14_z18_aerials.sha256 original_pdfs/ 3141.pdf 3142.pdf ... full county property record card library required; readiness expects at least 10,000 original PDFs leading zeros accepted, e.g. 00003141.pdf can match parcel/LRSN 3141 templates/ new_construction.pdf mobile_home.pdf returned_work/ app creates this folder for marked PDFs, photos, forms, and sync queue config/ app creates parcels-cache.json after the first online parcel load optional preloaded parcels-package.json can ship parcel geometry with the SD-card package logs/ app creates sync-log.jsonl Hosted Mathews aerial MBTiles: https://fbjvyqpezcpdkcjexaqg.supabase.co/storage/v1/object/public/offline-map-packages/county/VA/115/z14-z18/aerials/mbtiles/mathews_va_51115_z14_z18_aerials.mbtiles Hosted manifest: https://fbjvyqpezcpdkcjexaqg.supabase.co/storage/v1/object/public/offline-map-packages/county/VA/115/z14-z18/aerials/mbtiles/manifest.json Hosted SHA256 checksum: https://fbjvyqpezcpdkcjexaqg.supabase.co/storage/v1/object/public/offline-map-packages/county/VA/115/z14-z18/aerials/mbtiles/mathews_va_51115_z14_z18_aerials.sha256 Startup readiness checks: - local package root found - MBTiles found - original PDFs found - at least 10,000 original PDFs found - empty/bad original PDFs are reported as warnings; they do not block the whole tablet, but the affected parcel remains blocked until its PDF is fixed - every parcel_id in parcels-package.json has a matching original PDF; leading zero PDF names are accepted - new construction template found - mobile home template found - local write test passes - enough free storage remains - GPS and camera permissions are visible Packaged parcel dataset: - Optional file: MAVS/Mathews/config/parcels-package.json - Build it from Supabase with: node scripts/export-mathews-parcel-package.js --project-id PROJECT_UUID --out downloads/parcels-package.json - Copy the exported file to the tablet as: MAVS/Mathews/config/parcels-package.json - Use the same JSON structure as parcels-cache.json: { "cached_at": "2026-06-14T00:00:00Z", "project": {"id":"...","name":"...","county":"Mathews"}, "parcels": [ {"id":"...","parcel_id":"3141","address":"...","owner":"...","centroid_lat":37.0,"centroid_lng":-76.0,"geometry":{"type":"MultiPolygon","coordinates":[...]}} ], "user_regions": [] } - If parcels-cache.json exists, the app uses it first because it reflects the latest Supabase load. - If no cache exists, the app can open the map from parcels-package.json without a first online parcel load. The app never deletes local returned work until Supabase confirms the submission.