/Vigilante

🛡️ Android security (camera/microphone dots indicators) app using Hilt, Animations, Coroutines, Material, StateFlow, Jetpack (Room, ViewModel, Paging, Security, Biometrics, Start-up) based on MVVM architecture.

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Vigilante [THIS PROJECT IS UNMAINTAINED DUE TO THIS FUNCTIONALITY ALREADY PRESENT IN THE OS INTEGRATION]

API GitHub release (including pre-releases)

An app that focuses on your privacy and alerts you when a third-party app uses your device camera or mic, plus few other goodies.

Features

  • Notifications when mic/camera is used
  • Screen dots when mic/camera is used
  • Screen dots customizations when mic/camera is used (size, color, screen position)
  • History when apps request permissions
  • History of when you disconnected/connected your charger
  • History of when you connected/disconnected your headphones
  • History of your notifications
  • Lockscreen history
  • Security sensible device info
  • No sneaky permissions
  • Does not connect to the Internet
  • All of your data is encrypted (database and preferences)
  • Dark mode/light mode
  • Built with many amazing libre libraries, such as (Kotlin extensions and helpers, Crashy, SQL Cipher, Color picker)
  • and many more…

Download

Get it on GitHub releases Get it on F-Droid

Screenshots

Light

Dark

Translations

Help translate the app at Hosted Weblate. Translation status

Pull requests are also possible, Crowdin was removed because it isn't good, and only worked 1 out of 12 times.

Known issues

Built With 🛠

Some of the popular libraries and MVVM clean architecture used with Room database as a source.

  • Kotlin - First class and official programming language for Android development.

  • Coroutines - Threads on steroids for Kotlin.

  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.

  • StateFlow - A live data replacement.

  • Android JetPack - Collection of libraries that help you design robust, testable, and maintainable apps.

    • Paging3 - Load and display small chunks of data at a time.
    • ViewModel - Stores UI-related data that isn't destroyed by UI changes.
    • ViewBinding - A robust replacement for findViewById, kotlin sytnhetics and DataBinding.
    • Navigation Components - Navigate fragments easier.
    • SavedStateHandle - A handle to saved state passed down to androidx.lifecycle.ViewModel.
    • Room - Persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
    • Biometrics - Authenticate with biometrics or device credentials, and perform cryptographic operations.
    • Security - Safely manage keys and encrypt files and shared preferences.
    • Start-up - Implement a straightforward, performant way to initialize components at app startup, such as our crash-reporting library Crashy.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

  • Dependency Injection -

    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android app.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • Architecture

    • Clean Architecture
    • MVVM
    • Offline with Room + SQL Cipher
  • Tests

Found this repository useful? ❤️

Support it by joining stargazers for this repository. 🌠

And follow me or check out my blog for my next creations! ⭐

Contributions

Feature requests and translations are always welcome.

License

GNU General Public License v3.0+