Skip to content

feat: v1.1.0 advanced privacy and security suite#2

Merged
AdiyogX merged 1 commit into
masterfrom
feature/v1.1.0-advanced-security
May 31, 2026
Merged

feat: v1.1.0 advanced privacy and security suite#2
AdiyogX merged 1 commit into
masterfrom
feature/v1.1.0-advanced-security

Conversation

@AdiyogX
Copy link
Copy Markdown
Member

@AdiyogX AdiyogX commented May 31, 2026

Summary

Introduces the v1.1.0 advanced privacy & security suite, built on top of the existing architecture (no package rename, no Hilt/Room/clean-architecture rewrite — features adapt to the current SharedPreferences + activity-overlay design and add no new dependencies).

What's included

New features

  • Hidden vault — KeyStore-backed AES-256-GCM streaming encryption with import / export / secure-delete (core/security/VaultCipher.kt, features/vault/*).
  • Scheduled locking — overnight-aware time/day evaluator + exact-alarm compatibility (core/schedule/*).
  • Intruder detection — silent front-camera capture after repeated failed unlocks, encrypted on-device only (features/intruder/*).
  • Location & Wi-Fi rules — Haversine geofence + trusted-SSID checks (core/location/*, features/location/*).
  • Notification privacy — redacts locked-app notifications via a listener service (features/notifications/*).
  • Usage statistics — 7-day per-app insights with a Compose chart (features/stats/*).
  • Profiles & child mode — per-profile hashed PIN, whitelist mode (features/profiles/*).
  • Encrypted backup/restore — password-based PBKDF2 + AES-256-GCM (features/backup/*).
  • Quick Settings tile, home widget, shake-to-lock (features/quicktile/*, features/widget/*, features/shake/*).

Security hardening

  • Brute-force cooldown (3 → 30s, 5 → 2m, 10 → 10m), wired into PIN + pattern unlock.
  • Scrambled PIN keypad, wrong-PIN shake animation, configurable minimum PIN length.

Docs & website

  • README.md, CHANGELOG.md, RELEASE_NOTES.md.
  • web-app/changelog.html, web-app/updates.html, web-app/features.html (marked Upcoming).

Tests

Added unit tests for the pure logic: brute-force tiers, schedule evaluator (incl. overnight wrap), geofence math, profile lock decision, and backup encrypt/decrypt round-trip + wrong-password rejection.

Reviewer notes / not-yet-done

  • Not build-verified in this environment (offline; Gradle distribution unavailable). Please run ./gradlew :app:testDebugUnitTest :app:assembleDebug in CI.
  • The schedule, location/Wi-Fi, and profile engines are implemented and tested but not yet wired into the live foreground lock decision — follow-up work.
  • The spec's intruder email/SMS auto-send was intentionally omitted; captures never leave the device.
  • New permissions (CAMERA, location, Wi-Fi state) and components (notification listener, QS tile, widget) increase Play review surface — worth a policy pass before release.
  • Marked Upcoming on the public site until a verified build ships.

Implements the v1.1.0 feature set on top of the existing architecture (no package or DI rewrite):

- Hidden vault: KeyStore-backed AES-256-GCM streaming encryption with import/export/secure-delete

- Scheduled locking with an overnight-aware evaluator and exact-alarm compatibility

- Intruder detection: silent front-camera capture, encrypted on-device only (no off-device upload)

- Location and trusted Wi-Fi rules; notification privacy via a listener service

- Usage statistics with a Compose chart; lock profiles and child (whitelist) mode

- Encrypted backup/restore (PBKDF2 + AES-256-GCM); Quick Settings tile, widget, shake-to-lock

- Security hardening: brute-force cooldown, scrambled keypad, wrong-PIN shake, configurable PIN length

Adds unit tests (brute-force tiers, schedule evaluator, geofence, profile logic, backup round-trip) and updates README, CHANGELOG, RELEASE_NOTES, and the website changelog/updates/features pages.

Note: marked Upcoming; not yet build-verified in CI, and the schedule/location/profile engines are not yet wired into the live lock decision.
@AdiyogX AdiyogX merged commit a33d9f8 into master May 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant