Code Monkey home page Code Monkey logo

funkymuse / vigilante Goto Github PK

View Code? Open in Web Editor NEW
772.0 15.0 67.0 3.71 MB

🛡️ 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.

License: GNU General Public License v3.0

Kotlin 100.00%
dagger2 hilt-android hilt-dependency-injection coroutines-android paging3 biometrics-android androidviewmodel androidanimation stateflow room-persistence-library

vigilante's Introduction

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+

vigilante's People

Contributors

amirhoseinsd avatar code-a1 avatar comradekingu avatar dependabot[bot] avatar dlvdls18 avatar eugentoptic44 avatar ferhadnecef avatar fnogcps avatar funkymuse avatar georgcantor avatar jcgoette avatar miguelcanosantana avatar nelinski avatar nhman482 avatar omoma avatar poipoipoipoipoipoipoipoipoi avatar porfik avatar poussinou avatar sharklava avatar sr093906 avatar subhamjena avatar theredspy15 avatar trukmuch avatar vladden4 avatar weblate avatar yarons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vigilante's Issues

Vibration pattern option

It will be a good option to add vibrations when camera/mic usage happens, maybe an option to pick custom patterns too.

App crashes when trying to set biometric authentication

Device: Samsung A50

Crash report
`----------- Stacktrace -----------

java.lang.SecurityException: Must have USE_BIOMETRIC permission: Neither user 10574 nor current process has android.permission.USE_BIOMETRIC.
at android.os.Parcel.createException(Parcel.java:2088)
at android.os.Parcel.readException(Parcel.java:2056)
at android.os.Parcel.readException(Parcel.java:2004)
at android.hardware.biometrics.IBiometricService$Stub$Proxy.authenticate(IBiometricService.java:383)
at android.hardware.biometrics.BiometricPrompt.authenticateInternal(BiometricPrompt.java:958)
at android.hardware.biometrics.BiometricPrompt.authenticate(BiometricPrompt.java:920)
at i.d.e.P0(:63)
at d.a.i.l.a.n.a(:33)
at d.a.i.x.e.a(:1)
at androidx.preference.Preference.b(Unknown Source:4)
at androidx.preference.TwoStatePreference.x(:2)
at androidx.preference.Preference.H(:3)
at androidx.preference.SwitchPreferenceCompat.H(Unknown Source:0)
at androidx.preference.Preference$a.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7870)
at android.view.View.performClickInternal(View.java:7839)
at android.view.View.access$3600(View.java:886)
at android.view.View$PerformClick.run(View.java:29363)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7814)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.ContextImpl.enforce(ContextImpl.java:2001)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2029)
at com.android.server.biometrics.BiometricService.checkPermission(BiometricService.java:1082)
at com.android.server.biometrics.BiometricService.access$1800(BiometricService.java:99)
at com.android.server.biometrics.BiometricService$BiometricServiceWrapper.authenticate(BiometricService.java:804)

----------- END of stacktrace -----------

Thread info

Name: main
ID: 2
State: RUNNABLE
Priority: 5
Thread group name: main
Thread group parent: system
Thread group active count: 18
Thread time: 0 hr 0 min, 9 sec

END of thread info

----------- Device info -----------

Report ID: d8b4dcd3-9619-4b0c-8c72-6f7ed1906d2a
Device ID: 38693c333c04063f
Application version: 4
Default launcher: com.sec.android.app.launcher
Timezone name: India Standard Time
Timezone ID: Asia/Kolkata
Version release: 10
Version incremental : A505FDDS5BTK3
Version SDK: 29
Board: exynos9610
Bootloader: A505FDDS5BTK3
Brand: samsung
CPU_ABIS_32: armeabi-v7a, armeabi
CPU_ABIS_64: arm64-v8a
Supported ABIS: arm64-v8a, armeabi-v7a, armeabi
Device: a50
Display: QP1A.190711.020.A505FDDS5BTK3
Fingerprint: samsung/a50dd/a50:10/QP1A.190711.020/A505FDDS5BTK3:user/release-keys
Hardware: exynos9610
Host: SWDH2809
ID: QP1A.190711.020
Manufacturer: samsung
Product: a50dd
Build time: 1605151837000
Build time formatted: 12-11-2020 09:00:37
Type: user
Radio: A505FXXS5BTIB,A505FXXS5BTIB
Tags: release-keys
User: dpi
User IDs: N/A
Is sustained performance mode supported: No
Is in power save mode: Yes
Is in interactive state: Yes
Is ignoring battery optimizations: Yes
Thermal status: STATUS_NONE
Location power save mode: MODE_GPS_DISABLED_WHEN_SCREEN_OFF
Is device idle: No
Battery percentage: 19
Battery remaining time: N/A
Is battery charging: No
Is device rooted: No
CPU Model: N/A

of CPU cores: 8

Up time with sleep: 167 hr 15 min, 44 sec
Up time without sleep: 114 hr 13 min, 11 sec

----------- END of Device info -----------

########### Exit reasons ###########
N/A
########### END of exit reasons ###########

*********** Application info ***********

App name: Vigilante
Version code: 4
Version name: 1.0.5
Package name: com.crazylegend.vigilante
Short package name: app
Flavor: N/A
Signatures: cBeZz38Z2v/AXmsKrs78iK04C74=
Is debuggable: No
First installed: 23-12-2020 02:45:51
Last updated: 23-12-2020 02:45:51
Requested permissions: android.permission.FOREGROUND_SERVICE, android.permission.RECEIVE_BOOT_COMPLETED, android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, android.permission.VIBRATE
Default prefs: pref_dot = true, Locale.Helper.Selected.Language = en, pref_language = en, pref_notifications = true, pref_date = dd.MM.yyyy HH:mm:ss, pref_biometric_auth = false

*********** END of Application info ***********

^^^^^^^^^^^ Currently running foreground/background processes ^^^^^^^^^^^

com.crazylegend.vigilante.service.VigilanteService

^^^^^^^^^^^ END of running foreground/background processes info ^^^^^^^^^^^`

intent new phone checkings

ACTION_POWER_DISCONNECTED

ACTION_POWER_CONNECTED (check what kind of charging type)
ACTION_SHUTDOWN
ACTION_SCREEN_OFF
ACTION_SCREEN_ON

Crashed when trying to enable biometrics in settings

----------- Stacktrace -----------

java.lang.SecurityException: Must have USE_BIOMETRIC permission: Neither user 10635 nor current process has android.permission.USE_BIOMETRIC.
at android.os.Parcel.createException(Parcel.java:2071)
at android.os.Parcel.readException(Parcel.java:2039)
at android.os.Parcel.readException(Parcel.java:1987)
at android.hardware.biometrics.IBiometricService$Stub$Proxy.authenticate(IBiometricService.java:338)
at android.hardware.biometrics.BiometricPrompt.authenticateInternal(BiometricPrompt.java:652)
at android.hardware.biometrics.BiometricPrompt.authenticate(BiometricPrompt.java:619)
at i.d.e.P0(:63)
at d.a.i.l.a.n.a(:33)
at d.a.i.x.e.a(:1)
at androidx.preference.Preference.b(Unknown Source:4)
at androidx.preference.TwoStatePreference.x(:2)
at androidx.preference.Preference.H(:3)
at androidx.preference.SwitchPreferenceCompat.H(Unknown Source:0)
at androidx.preference.Preference$a.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7201)
at android.view.View.performClickInternal(View.java:7170)
at android.view.View.access$3500(View.java:806)
at android.view.View$PerformClick.run(View.java:27562)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.ContextImpl.enforce(ContextImpl.java:1930)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1958)
at com.android.server.biometrics.BiometricService.checkPermission(BiometricService.java:845)
at com.android.server.biometrics.BiometricService.access$1700(BiometricService.java:86)
at com.android.server.biometrics.BiometricService$BiometricServiceWrapper.authenticate(BiometricService.java:648)

----------- END of stacktrace -----------

Thread info

Name: main
ID: 2
State: RUNNABLE
Priority: 5
Thread group name: main
Thread group parent: system
Thread group active count: 13
Thread time: 0 hr 0 min, 6 sec

END of thread info

----------- Device info -----------

Report ID: e7d3f058-589d-4825-8448-6512243740ff
Device ID: ce549d75996a3cf5
Application version: 5
Default launcher: com.teslacoilsw.launcher
Timezone name: Greenwich Mean Time
Timezone ID: Europe/London
Version release: 10
Version incremental : 2011161919
Version SDK: 29
Board: sdm845
Bootloader: unknown
Brand: OnePlus
CPU_ABIS_32: armeabi-v7a, armeabi
CPU_ABIS_64: arm64-v8a
Supported ABIS: arm64-v8a, armeabi-v7a, armeabi
Device: OnePlus6
Display: ONEPLUS A6003_22_201116
Fingerprint: OnePlus/OnePlus6/OnePlus6:10/QKQ1.190716.003/2011161919:user/release-keys
Hardware: qcom
Host: rd-build-72
ID: QKQ1.190716.003
Manufacturer: OnePlus
Product: OnePlus6
Build time: 1605526159000
Build time formatted: 16-11-2020 11:29:19
Type: user
Radio: 845_GEN_PACK-1.276740.1.331501.2
Tags: release-keys
User: jenkins
User IDs: N/A
Is sustained performance mode supported: Yes
Is in power save mode: No
Is in interactive state: Yes
Is ignoring battery optimizations: Yes
Thermal status: STATUS_NONE
Location power save mode: MODE_NO_CHANGE
Is device idle: No
Battery percentage: 93
Battery remaining time: 01-01-1970 01:09:34
Is battery charging: Yes
Is device rooted: No
CPU Model: Qualcomm Technologies, Inc SDM845

of CPU cores: 8

Up time with sleep: 322 hr 49 min, 56 sec
Up time without sleep: 202 hr 2 min, 43 sec

----------- END of Device info -----------

########### Exit reasons ###########
N/A
########### END of exit reasons ###########

*********** Application info ***********

App name: Vigilante
Version code: 5
Version name: 1.0.6
Package name: com.crazylegend.vigilante
Short package name: app
Flavor: N/A
Signatures: 80TIH8ebytS8JEoC2hG/5fpUBHo=
Is debuggable: No
First installed: 19-12-2020 21:50:27
Last updated: 19-12-2020 21:50:27
Requested permissions: android.permission.FOREGROUND_SERVICE, android.permission.RECEIVE_BOOT_COMPLETED, android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, android.permission.VIBRATE
Default prefs: pref_dot = true, Locale.Helper.Selected.Language = en, pref_language = en, pref_notifications = true, pref_date = dd.MM.yyyy HH:mm:ss, pref_biometric_auth = false

*********** END of Application info ***********

^^^^^^^^^^^ Currently running foreground/background processes ^^^^^^^^^^^

N/A

^^^^^^^^^^^ END of running foreground/background processes info ^^^^^^^^^^^

Microsoft Teams

When using Microsoft Teams it shows the microphone is on all the time during a call. This is even though I am muted. I guess this is a Microsoft issue? but I wanted to contact you first :)

Dot obscured by screen corner

When I enable dots for camera, the dot is partially hidden when in fullscreen. Screenshot doesn't seem to reflect this.

Camera and Microphone access history are missing

The app has several history lists, but does not log access history for camera and microphone, yet it throws notifications whenever the app detects camera and mic are accessed. I cannot understand why?

Also, when I tap on the notifications, it does not show which app that triggered it, so little use of it.

Notification preview

In notification history every line has empty space. Maybe add there simple preview? For example, title and text
Screenshot.jpg
Screenshot2.jpg

How does this app reads notification?

Ah sorry idk if it's ok to ask this in issues or not, I'm very new to GitHub. But I want to know how is this app can read notifications? Because I noticed many apps need notification access permission to do so.

app usage access feature?

<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
    tools:ignore="ProtectedPermissions" />

Camera and microphone access log?

The app has several history lists, but does not log access history for camera and microphone, yet it throws notifications whenever the app detects camera and mic are accessed. I cannot understand why?

Also, when I tap on the notifications, it does not show which app that triggered it, so little use of it.

App crash when enabling biometrics lock

Edit,: closed it because someone else seems already added this problem.

The app is closing itself when using biometrics lock on my poco m2 pro miui 12 android 10. Here's the log

----------- Stacktrace -----------

java.lang.SecurityException: Must have USE_BIOMETRIC permission: Neither user 10493 nor current process has android.permission.USE_BIOMETRIC.
at android.os.Parcel.createException(Parcel.java:2074)
at android.os.Parcel.readException(Parcel.java:2042)
at android.os.Parcel.readException(Parcel.java:1990)
at android.hardware.biometrics.IBiometricService$Stub$Proxy.authenticate(IBiometricService.java:356)
at android.hardware.biometrics.BiometricPrompt.authenticateInternal(BiometricPrompt.java:652)
at android.hardware.biometrics.BiometricPrompt.authenticate(BiometricPrompt.java:619)
at i.d.e.P0(:63)
at d.a.i.l.a.n.a(:33)
at d.a.i.x.e.a(:1)
at androidx.preference.Preference.b(Unknown Source:4)
at androidx.preference.TwoStatePreference.x(:2)
at androidx.preference.Preference.H(:3)
at androidx.preference.SwitchPreferenceCompat.H(Unknown Source:0)
at androidx.preference.Preference$a.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7184)
at android.view.View.performClickInternal(View.java:7161)
at android.view.View.access$3500(View.java:818)
at android.view.View$PerformClick.run(View.java:27683)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7562)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.ContextImpl.enforce(ContextImpl.java:1906)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1934)
at com.android.server.biometrics.BiometricService.checkPermission(BiometricService.java:859)
at com.android.server.biometrics.BiometricService.access$1700(BiometricService.java:86)
at com.android.server.biometrics.BiometricService$BiometricServiceWrapper.authenticate(BiometricService.java:648)

----------- END of stacktrace -----------

Thread info

Name: main
ID: 2
State: RUNNABLE
Priority: 5
Thread group name: main
Thread group parent: system
Thread group active count: 10
Thread time: 0 hr 0 min, 0 sec

END of thread info

----------- Device info -----------

Report ID: ae43bf6d-1e53-487f-bfa1-571172394e6d
Device ID: 280e33e987eac5f3
Application version: 5
Default launcher: ch.deletescape.lawnchair.plah
Timezone name: India Standard Time
Timezone ID: Asia/Kolkata
Version release: 10
Version incremental : V12.0.1.0.QJPINXM
Version SDK: 29
Board: gram
Bootloader: unknown
Brand: POCO
CPU_ABIS_32: armeabi-v7a, armeabi
CPU_ABIS_64: arm64-v8a
Supported ABIS: arm64-v8a, armeabi-v7a, armeabi
Device: gram
Display: QKQ1.191215.002 test-keys
Fingerprint: POCO/gram_in/gram:10/QKQ1.191215.002/V12.0.1.0.QJPINXM:user/release-keys
Hardware: qcom
Host: c3-miui-ota-bd132.bj
ID: QKQ1.191215.002
Manufacturer: Xiaomi
Product: gram_in
Build time: 1600699296000
Build time formatted: 21-09-2020 20:11:36
Type: user
Radio: MPSS.AT.4.4.c2-00009-RENNELL_GEN_PACK-2,MPSS.AT.4.4.c2-00009-RENNELL_GEN_PACK-2
Tags: release-keys
User: builder
User IDs: N/A
Is sustained performance mode supported: No
Is in power save mode: No
Is in interactive state: Yes
Is ignoring battery optimizations: Yes
Thermal status: STATUS_NONE
Location power save mode: MODE_NO_CHANGE
Is device idle: No
Battery percentage: 78
Battery remaining time: N/A
Is battery charging: No
Is device rooted: No
CPU Model: Qualcomm Technologies, Inc SM7125

of CPU cores: 8

Up time with sleep: 136 hr 49 min, 52 sec
Up time without sleep: 72 hr 6 min, 12 sec

----------- END of Device info -----------

########### Exit reasons ###########
N/A
########### END of exit reasons ###########

*********** Application info ***********

App name: Vigilante
Version code: 5
Version name: 1.0.6
Package name: com.crazylegend.vigilante
Short package name: app
Flavor: N/A
Signatures: 80TIH8ebytS8JEoC2hG/5fpUBHo=
Is debuggable: No
First installed: 08-12-2020 00:10:27
Last updated: 20-12-2020 10:21:04
Requested permissions: android.permission.FOREGROUND_SERVICE, android.permission.RECEIVE_BOOT_COMPLETED, android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, android.permission.VIBRATE
Default prefs: pref_dot = true, pref_exclude_vigilante_from_notifications = true, Locale.Helper.Selected.Language = en, pref_language = en, pref_notifications = true, pref_date = dd.MM.yyyy HH:mm:ss, pref_biometric_auth = false

*********** END of Application info ***********

^^^^^^^^^^^ Currently running foreground/background processes ^^^^^^^^^^^

com.crazylegend.vigilante.service.VigilanteService

^^^^^^^^^^^ END of running foreground/background processes info ^^^^^^^^^^^

Dot doesn't show on screen despite open "Show dot usage"

This is my first time submit issue on GitHub so not sure if I do it right or not. Feel free to tell me if you need more information.

Device info

  • POCO F2 Pro
  • Xiaomi.eu rom (V12.2.1.0.RJKCNXM)
  • Rooted with Magisk + Enable MagiskHide (Dot still doesn't show in non-root)

Already try

  • Disable and enable show dot usage again
  • Disable and enable app again
  • Restart app
  • Reinstall app

This seem to work fine on my Mi A1 with LOS.

Incorrect app name in Camera & Microphone history.

All the camera and microphone usage is immediately detected, but some app's name is not recorded correctly, for example wechat is recorded as Vigilante for some reason.

Device : Xiaomi mi 9, Android 10 (Derpfest, not MIUI)

App version: 1.0.2

photo_2020-11-17_18-17-58

Spanish translation needs improvement

I've translated the app, and made little mistakes, like duplicating camera and microphone dot names and ending bad the sentence at usage notifications advice text.
download_file
download_file (2)

I'll open a pull request with improved translations in a while.

Unable to uninstall

Tried uninstaller, app manager and cleaner master but to no avail. The app can't be uninstall.

Phone:Huawei y6p

Permissions wrong information

I tried testing this app by removing camera permission to my stock camera app and for some reason it registered as
Settings got removed camera permission.
And when I opened camera app and it asked for permission, I accepted the permission and the app registered it as
Lawn chair (my phone launcher) got camera permission.
Screenshot_2020-12-08-12-41-37-885_com crazylegend vigilante

LED notification option

I think it would be a good option for the phones that have LED notification blinkers/dots to customize their color of choice and appearance and disappearance times when camera/mic usage happens

App fails to request biometric permission

Just installed the app, seems awesome. However, the option to enable biometric lock makes the app crash. Error log included below.

----------- Stacktrace -----------

java.lang.SecurityException: Must have USE_BIOMETRIC permission: Neither user 10749 nor current process has android.permission.USE_BIOMETRIC.
at android.os.Parcel.createException(Parcel.java:2071)
at android.os.Parcel.readException(Parcel.java:2039)
at android.os.Parcel.readException(Parcel.java:1987)
at android.hardware.biometrics.IBiometricService$Stub$Proxy.authenticate(IBiometricService.java:338)
at android.hardware.biometrics.BiometricPrompt.authenticateInternal(BiometricPrompt.java:652)
at android.hardware.biometrics.BiometricPrompt.authenticate(BiometricPrompt.java:619)
at i.d.e.P0(:63)
at d.a.i.l.a.n.a(:33)
at d.a.i.x.e.a(:1)
at androidx.preference.Preference.b(Unknown Source:4)
at androidx.preference.TwoStatePreference.x(:2)
at androidx.preference.Preference.H(:3)
at androidx.preference.SwitchPreferenceCompat.H(Unknown Source:0)
at androidx.preference.Preference$a.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7201)
at android.view.View.performClickInternal(View.java:7170)
at android.view.View.access$3500(View.java:806)
at android.view.View$PerformClick.run(View.java:27562)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7697)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.ContextImpl.enforce(ContextImpl.java:1930)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1958)
at com.android.server.biometrics.BiometricService.checkPermission(BiometricService.java:845)
at com.android.server.biometrics.BiometricService.access$1700(BiometricService.java:86)
at com.android.server.biometrics.BiometricService$BiometricServiceWrapper.authenticate(BiometricService.java:648)

----------- END of stacktrace -----------

Thread info

Name: main
ID: 2
State: RUNNABLE
Priority: 5
Thread group name: main
Thread group parent: system
Thread group active count: 8
Thread time: 0 hr 0 min, 0 sec

END of thread info

----------- Device info -----------

Report ID: 43a70d32-41d1-486a-83aa-2b70c7ab7170
Device ID: b6605dcd2303368e
Application version: 4
Default launcher: net.oneplus.launcher
Timezone name: Central European Standard Time
Timezone ID: Europe/Stockholm
Version release: 10
Version incremental : 2010292059
Version SDK: 29
Board: msm8998
Bootloader: unknown
Brand: OnePlus
CPU_ABIS_32: armeabi-v7a, armeabi
CPU_ABIS_64: arm64-v8a
Supported ABIS: arm64-v8a, armeabi-v7a, armeabi
Device: OnePlus5
Display: ONEPLUS A5000_23_201029
Fingerprint: OnePlus/OnePlus5/OnePlus5:10/QKQ1.191014.012/2010292059:user/release-keys
Hardware: qcom
Host: rd-build-104
ID: QKQ1.191014.012
Manufacturer: OnePlus
Product: OnePlus5
Build time: 1603977245000
Build time formatted: 29-10-2020 14:14:05
Type: user
Radio: MPSS.AT.2.0.c4.7-00070-8998_GEN_PACK-2.271073.1.277412.1
Tags: release-keys
User: jenkins
User IDs: N/A
Is sustained performance mode supported: No
Is in power save mode: No
Is in interactive state: Yes
Is ignoring battery optimizations: Yes
Thermal status: STATUS_NONE
Location power save mode: MODE_NO_CHANGE
Is device idle: No
Battery percentage: 86
Battery remaining time: N/A
Is battery charging: No
Is device rooted: No
CPU Model: Qualcomm Technologies, Inc MSM8998

of CPU cores: 8

Up time with sleep: 164 hr 8 min, 40 sec
Up time without sleep: 129 hr 9 min, 20 sec

----------- END of Device info -----------

########### Exit reasons ###########
N/A
########### END of exit reasons ###########

*********** Application info ***********

App name: Vigilante
Version code: 4
Version name: 1.0.5
Package name: com.crazylegend.vigilante
Short package name: app
Flavor: N/A
Signatures: cBeZz38Z2v/AXmsKrs78iK04C74=
Is debuggable: No
First installed: 22-12-2020 13:38:35
Last updated: 22-12-2020 13:38:35
Requested permissions: android.permission.FOREGROUND_SERVICE, android.permission.RECEIVE_BOOT_COMPLETED, android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, android.permission.VIBRATE
Default prefs: pref_dot = true, pref_exclude_vigilante_from_notifications = true, Locale.Helper.Selected.Language = en, pref_language = en, pref_notifications = true, pref_date = dd.MM.yyyy HH:mm:ss, pref_biometric_auth = false

*********** END of Application info ***********

^^^^^^^^^^^ Currently running foreground/background processes ^^^^^^^^^^^

N/A

^^^^^^^^^^^ END of running foreground/background processes info ^^^^^^^^^^^

[SOLVED] Phone going off every few seconds

I really like the concept of adding a dot letting you know if your camera is being accessed, and I thank you for adding it!

I have a Galaxy S8, and every few seconds while the screen is on, I get a notification that the camera is being used and my dot comes up for the camera as well. Usually, it comes up and disappears in under a second. Since the notification sound plays with the notification, I picked a custom sound just for Vigilante. The sound barely starts before stopping abruptly.

Is this an issue with Vigilante or is my camera being randomly accessed by an application? If the latter, how can I see what app is doing this?

Not sure if this is a bug or if I have some privacy issues.

EDIT: On the Galaxy S8, there's a feature called "Smart Stay." Basically, it will check the front camera about 10 seconds before the screen is set to turn off. If it sees your face, it keeps the screen on. If not, it dims the screen. I've noticed that around this 10-second mark, the notification appears, goes away, and the screen dims. This happens every time.

Is there any way I can filter this out?

Lack of languages

Language seems will be added in a certain future. I can provide spanish translations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.