Open 9mido opened 3 years ago
The passive jammer will run in the background for as long as the android OS will allow. There are many reasons for the OS to shutdown an app running in the background such as battery management, processor use, memory management, etc. Depending on your phone hardware, version of Android and any other 3rd party apps installed either as user apps or system apps - this will all impact how long any background user app can run before some part of the OS may shut it down.
There may be some things you can do at the system settings level to help, for instance in the PilferShush app in the menu section there is a popup called "Power" that will take you (if available) to the battery optimisation section in Android Settings where you can check that PilferShush is set to "Not optimised"
The jammer may turn off with headphone connection/disconnection as the app is checking for audio state changes, and it may mean a handset microphone is being switched to a headset microphone by the Android OS.
That is really unfortunate. Is there a way we could get a third button just to turn on/off the microphone whenever we feel like where it would ignore the OS based on your actions? Was hoping that this app would have been a software alternative to a hardware microphone on/off switch.
PilferShush Jammer only works as far as the Android OS allows it to, and sometimes it feels like a losing battle :( Technically its not a on/off switch, the jammer works by keeping the mic on for this app and, as per source code, you know that it is not reading the mic data. This method exploits the Android API and as such will work only for as long as Android maintains it. The Android 10 + concurrent audio changes is an example of this being degraded.
There is a native code method of rerouting audio, a few apps do this to allow you to record phone conversation audio which is illegal in some countries as it is wire tapping, but this is complex and beyond what I intend for this app.
Bypassing the OS and getting root access to the audio firmware for your particular device could be another software alternative, but again is complex and device specific.
A hardware kill switch is ultimately the only reliable way to allow the user to have control over the microphone (be sure to check the specific method though, as some don't "kill" the mic as such : pinephone WiFi/BT RTL8723CS has kill switch connected to chip enable, which is a "reduced-power standby mode").
If you're worried about unwanted mic use then the only suggestions are (from easy to harder): install only minimal apps you need, prefer web browser website access over any app, install adblocker(s), check apps with Record Audio and Internet permissions, flash device with LineageOS (or equiv AOSP) OS with no GApps but only FDroid.
Another trick may be to keep a headset plugged in to device (OS auto switches mic from handset to headset) and then to either cover with glue/tape or break the actual microphone part in the headset. But again this method is reliable only as far as no other apps deliberately selecting handset mic (overriding the OS auto switch), and trust that the OS is actually doing what is advertised in the API docs.
And then become a Luddite - "They protested against manufacturers who used machines in what they called "a fraudulent and deceitful manner"" https://en.wikipedia.org/wiki/Luddite
Wow thanks for the very detailed responses and the advice. Appreciate everything you have done even though it seems like an uphill battle.
On this topic, Sony Headphones are an example of an app that makes this issue arise. Thank you for the information, kaputnikGO!
same problem with battery optimization enabled. The app is kept in the background but after some time the options are changed. Not only the passive but also the noise types, the nufh... A good improvement would be if the options could be saved inside a file to be checked every x time to reload them. It would minimize the time lapses in case the app is not working like expected. Even with more battery cost some option like this would be really good.
It would be nice to have the jammer on all of the time. Somehow without doing anything, the passive jammer gets disabled or turned off. It is as if the passive jammer is on a timer and not permanent where it would be better to have control of how long it lasts. It is a pain because users need to have to keep turning it on again. Not sure if it occurs with the active jammer but it may be that it behaves the same way.
One way to test it is to plug in headphones into your headphone jack, turn on the passive jammer, then unplug the headphones again. But in regular device use, it just turns off somehow on its own and not sure what the cause is. Maybe force quitting apps, going into sleep mode, turning off the screen, not sure.