PilferShush Jammer blocks other apps attempting to utilise the microphone without your knowledge. Some apps use hidden processes to record tracking audio in the background that is either generated by nearby beacons, television commercials, streamed music services or websites. This tracking audio is transmitted between 18 kHz and 22 kHz (near ultra high frequency) which is beyond the range of typical human hearing but within the recording range of a typical Android phone.
To block unwanted use of the microphone by hidden app processes, PilferShush Jammer requests use of the hardware microphone from the Android system and holds it. This technique locks up the microphone from any other apps attempting to gain access to it. This technique has been tested only on user apps, not system apps. The Android system should halt PilferShush Jammer from blocking the microphone whenever a phone call is received or made.
When the jamming technique is running and the microphone is locked up, PilferShush Jammer posts a notification to keep the user informed that it is running. Tests have shown that it uses 0% CPU, 0% network and 43.6mb RAM when running for over an hour.
This is an experimental app made as part of research into audio counter-surveillance methods within the Android and IoT world.
It requires RECORD_AUDIO permission so that it may access and lock up the microphone.
It does NOT record or listen to any audio.
It does NOT connect to the internet.
Version 2.0 Active Jammer addition:
Tones can be emitted with a carrier frequency and a drift limit with rate all constrained to NUHF of 18 kHz to 24 kHz depending on the device capabilities. For instance 20000 Hz carrier, drift limit 1000 Hz and rate slow - will output random frequency between 19 kHz and 21 kHz approximately every second.
Version 3.0 Jammers run as a service:
Both the active and passive jammers now run as a (foreground) service that should accurately indicate whether they are running or not. This is dependent on both the Android OS (power management) and any App Managers that may destroy running services.
As this app seeks to block microphone use it is important to NOT dismiss or hide the notification otherwise you may forget it is running.
Also includes a scanner to check user installed apps for NUHF and Audio Content Recognition (ACR) SDKs as well as any services or receivers.
Version 4.0 Redesign
Major overhaul of the design to make information clearer and to simplify typical uses of the app
Android 10 (Q) concurrent audio update: audio capture policy that means other recording apps can bump a prior recording audio app from the microphone.
(see https://source.android.com/compatibility/android-cdd#5_4_5_concurrent_capture )
If another user app tries to take over the microphone from PilferShush Jammer, the latest build (4.4.1) will try to restart a running passive jammer service automatically so that it complies with "the one that started capture the most recently receives audio" (quote from Android API docs). Apps that try to record audio but do not have access to the microphone will be given zeroed audio data (silence) by the system even though they may still appear to be recording audio.
Notes:
White noise output may not be very effective at blocking and is a somewhat annoying sound.
The speaker output may not have enough amplitude to block unwanted NUHF signals - testing will determine.
Active Jammer code rewrite for version 4.5.0
Source code is available here: https://github.com/kaputnikGo/PilferShushJammer
Research and Project webpage : https://www.cityfreqs.com.au/pilfer.php