Giter Club home page Giter Club logo

pilfershushjammer's Introduction

PilferShush Jammer

Research and project page : https://www.cityfreqs.com.au/pilfer.php

Android microphone checker and jamming application built for AOSP LineageOS.

Application for low battery requirement microphone passive jamming.

Calls audioRecord.startRecording() but DOES NOT READ THE AUDIO BUFFER.

Holds microphone access and should block user apps from gaining focus of microphone.

System telephone calls will override and bump the Jammer from the microphone.

Adds a notification as a reminder for running while in background.

Tested and blocks Google Voice search (user) app. Currently testing Chrome/Omnibox/Assistant app voice blocking.

Active jammer - tone and white noise versions, boost EQ for higher amplitude.

Scan user installed apps for key features, possible NUHF/ACR SDK package name matches and services/receivers running.

Jammers run as an instance of MediaRecorder in a foreground service

Note: Android 11 (API 30) changes to foreground services access to microphone - "while-in-use access" only. see https://developer.android.com/about/versions/11/privacy/foreground-services

Note: Android 12 (API 31) has new concurrent audio capture policy see https://source.android.com/compatibility/12/android-12-cdd#54_audio_recording

Note: APK app bundle will be necessary thing for Google Play Store, apk maintained here for FDroid

Note: Microphone source switch setting from VOICE_COMM to DEFAULT will cause passive jammer to lose concurrent audio focus and stop blocking the microphone

Notes: For Android 12 (https://source.android.com/compatibility/12/android-12-cdd?hl=sr#54_audio_recording) 5.4.5. Concurrent Capture C-1-1 MUST allow concurrent access to microphone by an accessibility service capturing with AudioSource.VOICE_RECOGNITION also: C-1-3 ... another app can capture the voice call if it is a privileged (pre-installed) app with permission CAPTURE_AUDIO_OUTPUT.

TODO:

  • Android Dev Partner Outreach complaining about their app(s) crashing from RecognitionService calls

  • API 24 (7.0) minimum: add Quick Settings tile service for passive (req: android.permission.BIND_QUICK_SETTINGS_TILE)

  • add sdk name print (link to exodus?) to Inspector dialog if nuhf/acr sdk found

  • Assistant jammer requires min API 23 (M) for supportsAssist in xml

  • background autostart activity for concurrent audio fight via SYSTEM_ALERT_WINDOW permission

  • vs AccessibilityService misuse, in Android 10 (does not work in Go version)

  • see : https://developer.android.com/guide/components/activities/background-starts

  • Android 11/12 changes to concurrent audio

  • inconsistent behaviour with widget and jammer service state

  • use NotificationCompat classes in services, check for use

  • Android 12(S, API31) adds SensorPrivacyManager for device checks as to addition of MIC toggle

Build:

  • min API 21 (5.0)
  • target API 31 (12.0)
  • compiled API 31 (12.0)
  • Android Studio 2021.2.1 Patch 1
  • Gradle 7.2.1

Changes:

  • 4.6.2 (released June 22, 2022)

  • bugfix for API 31 notification change

  • fdroid metadata folder

  • TR syntax fixes

    testing devices

    • EMU : Galaxy Nexus 4.3 (18) (Android Studio AVD, no GApps)
    • EMU : Nexus 4 5.1 (22) (Android Studio AVD, no GApps)
    • EMU : Nexus 5X 7.0 (24) (Android Studio AVD, GApps)
    • EMU : Galaxy Nexus Oreo (27) (Android Studio AVD, GApps)
    • EMU : Pixel 3a 10.0 (29) (Android Studio AVD, GApps)
    • EMU : Pixel 4a 12.0 (31) (Android Studio AVD, GApps)
    • LOW : s4 I9195 (antique) 7.1.2 (25)( /e/ 0.13, Cleanapk)
    • SLO : Mts 5045D (tainted) 7.1.2 (25) (LineageOS 14.1, GApps)
    • MID : Galaxy Tab 2 GT-P5110 (minimal) 7.1.2 (25) (LineageOS 14.1, F-Droid)
    • DEV : s5 G900I (tainted) 10.0 (29)(LineageOS 17.1, GApps)
    • DEV : s5 G900P (useful) 7.1.2 (25) (LineageOS 14.1, F-Droid)
    • PROD: s10 SM-G977B (nominal) 11.0 (30) (LineageOS 18.0, F-Droid)

App screenshots:

  • Home fragment

  • Inspector fragment

  • App Entry Info dialog

  • Settings fragment

Active Jammer frequency analysis:

  • Active tone, full NUHF range with random scatter drift test

  • Active tone, slow speed, limited drift test

  • Active tone, carrier and drift limited, fast

  • Active jammer (19 kHz carrier, 1000 Hz limit, EQ on) versus ramp-up audio beacon-like signal : scatter jamming demo

2022 Kaputnik Go

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

pilfershushjammer's People

Contributors

c-4-m avatar fabriei avatar kaputnikgo avatar rudloff avatar sguinetti 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pilfershushjammer's Issues

High Battery Usage HTC U12+

Hi, I really like the concept of this app. I don't trust my phone, nor do I trust a lot of apps! I want to use this app but I can't because of the excessive battery usage with your claim of 0% processor usage. If you could advise on app settings (if any) or provide an update to resolve this I'd be very appreciative.

As mentioned my device is an HTC U12+ which runs Android v9.0

https://www.htc.com/us/smartphones/htc-u12-plus-spec/

Issues With Signal, Was Working Fine

I use Signal for a lot of my calls (There's no way to set it as the default dialer), but it used to work fine no issues for months. Pilfer was kept in passive mode, and when I called someone or someone called me through Signal (or default phone) they could hear me no problems.
But lately (past like 2 days maybe) not sure what changed, haven't seen any updates or anything but they can't seem to hear me through Signal unless I disable PilferShush and call them back, Not sure what's going on.

Add toggle in notification

The notification should contain a quick toggle to activate/deactivate the jammer to allow toggling quickly before an event where the mic use is needed suddenly and urgently, like answering a call

No scolling

Using android 7 with a small screen the record lock does not show under the settings tab. Verify it is presented out of visible range of small screens then add scrolling.

App Crashing on both Active and Passive Start

After I updated to the latest build on F-Droid the app now crashes whenever I try to enable passive or active jamming. I tried reinstalling the app but the result was the same.
App Version: 4.6.1.42
Android Version: 12
Battery Optimization is turned off.

Jammer gets disabled or turns off randomly

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.

(Feature) Please add Integration with Tasker

First of all want to sat thank you for this awesome app. I locking a long time for app like that.

About Tasker. If your app will be Integrate with Tasker, a lot of things can be reach:

We could add quick settings for toggles Passive/Active.
We could start the service after reboot.
We could start/end the service when we open any app (like singal).
We could start/end the service in specific time or date... and so on.

Integrate your app with Tasker make the options endless, and the app then will be more awesome than it today.
I’m very very hope you decide to make it. (I use note 8 with pie)

Audio Of Streamed Music Increases When Passive Jammer Active

I recently noticed that when I am streaming music, namely from Radio Droid, that the volume of the media increases markedly when the passive jammer is activated.

If the music is streaming before the jammer is employed, Radio Droid stops.

To replicate issue:

Open RadioDroid, and select music source (I recommend La Grosse Radio Métal :) )

Open PilferShush, and activate passive jammer

(RadioDroid stops)

Open PilferShush, and activate passive jammer

Open RadioDroid, and select music source (I recommend La Grosse Radio Métal :) )

Note increase in volume from before

I am using a ZTE 558VL running 7.1.1 with a set of powered external speakers.

Also noted that sound enhancement software doesn't function when the passive jammer is active.

As any increase in volume output is usually desireable, I decided to try to utilize this as a feature.

I attempted to use Noozxoide EIZO-rewire PRO at this time, but it will not function if the passive jammer is running.

I am thinking that these issues stem from the way sound and music enhancement apps can interfere with each other, and so generally only one will run at a time.

This did not occur in previous versions of the app.

(Help+ Issue? ) Guide for settings

(If There is a guide, I didn’t find it so sorry. If this is not the place to ask this, please delete it).

There is a few things in settings that I do not have idea what they are and help will be appreciated.

  1. What is AudioRecord buffer read lock? After close the app it back to disable. An issue?
  2. What the difference between VoIP and default, and what should I choose?
  3. What the difference between TEST and NUHF and what should I choose?
  4. There is a possibility to choose between NOISE, TONES, SHADOWS and sine, square, sawtooth.

Thanks again.

volume goes to maximum when 'passive' jamming is active

I dont know if this is a requirement of function, but when the passive jammer is activated, the volume of the device immediately goes to max.

I understand why this is needed for the active jammer to operate, but not the passive.

please fix error

your app contains an implicit internal intent
passivejammerService.notifyFragment

非常好的app,如何实现开机就启动而不是每次都按下按钮

Turn off every night, turn on the app and press the passive button every time you turn it on. Can you turn on automatically without pressing the passive button?
每天晚上关机,开机后每次都要开启这个app并且按下被动按钮。能不能实现开机就自动运行,而不需要按下那个被动按钮

Hebrew translation

Hi, I would love to translate the app into Hebrew, how can I do that?

Active protection, working?

It looked that it is a very good project but has things to improve, it does not block properly other apps, the protection (actually) is poor, but is the best I have tried. There's only one thing that does not seem to work, the active protection, I have tried to record audio with my phone and other dispositives and all record perfectly even speaking lowly.

Notification tray not showing

I've downloaded pilfershush from Fdroid. Running9n a Galaxy s9 a notification is not created when put on passive mode.
Are notifications supported in thelatest version?

Battery Usage 3.xx

In the description you mention how this app should not have any noticeable battery usage. That was true until release 3.0.1.

After upgrading to that release, I noticed the app that consistently used the most battery between charges was this one. I downgraded to a 2.xx release, which solved the issue. I only use the passive jammer.

Now that 3.xx has seen a few releases, 2.xx is no longer available on F-Droid. This is a huge problem for me as I cannot use any of the 3.xx versions.

I use LineageOS for MicroG if that makes a difference (I haven't seen any other similar issues, and this has been a problem for a while, so it must not be occurring for every user)

Issue with headphones

I have a weird Issue. When I connect headphones to my phone, the service (I use passive) stop, than after a few seconds it start again, and when I disconnects them, the service stop and never restart.
App Version: 4.6.1
Android Version: 9
Battery Optimization is turned off

Hope it can fix.
Thanks.

usb charging notification sound, possible conflict

(via email)
I just realised why my phone doesn't make a beep when I plug my USB charging cable in.
Once passive jamming is enabled it disables the beep sound that my phone used to make when I plugged my USB charging cable in which notifies me that it is charging.
If I disable passive jamming & plug the USB charging cable back in, it beeps again.
(note to self: check for existence of headphone socket, not usb port audio)

German Translation

Hi, I want to contribute to this great project by providing a german translation.

I have forked the current master branch and will send a pull request when I have something presentable.

Sadly I dont have much experience with android apps, so do I need to change anything other than creating a directory "values-de" with a translated strings.xml?

Best Regards

[Feature] Boot options - passive/active jammer

Hi @kaputnikGo
Thanks for making the feature #21.

I'm using the version 4.5.3, and since the feature was introduced I was hoping the app would turn on the passive jammer automatically. Is this something possible?
It is great that the app already starts on its own, so I never forget to turn it on now. Perhaps having boot options would help accommodate different use cases.

app will not turn off completely

After I turn both jammers off, the notification is still on, and telling me that the app is active.

Even when I clear the app from the app manager, the notification remains.

An 'off' button, in the app or part of the notification, or even just being able to use the app manager to cease all app functions would be great.

Notification is still active when app is not

I have found a bug, I believe.
ZTE 558VL Android 7.1.1
I turned the app on, and selected 'passive'.

The notification went up, and the dialog on the screen indicated that the passive jammer was activated.

The notifications, both on the status bar and the banner, were both active.

I later went into the app, and although the notification was still up, the app dialog stated that the passive jammer was not running.

I discovered that if the App Manager is cleared, then PilferShush stops working, but the notification remains unless the app is actually force stopped.

This means that the user could believe that the device is protected even when it is not.

If the jammer(s) get turned off, I would think that the notification(s) should also go off, allowing the user to know that the app is not running.

As it is now, the user has no clue unless the app dialog is checked regularly.

I have turned battery optimization off for the app, and so it should only occur when I manually touch 'clear' on the App Manager.

Just to be clear, the App Manager that I am referring to is the one built into the device (not some app I downloaded), accessible via the right hand button on the navigation bar.

After a bit more testing, I find that if the jammer(s) are turned off manually, then the App Manager is cleared, the notifications will turn off.

But the fact remains that if the app is turned off by another means, the noifications will still be active although the jammers will not be.

How to check if the app is working correctly? (Android 10 bug?)

I've installed the latest version of the app via F-droid. Activated the Passive ("Passive jammer running" is present in notifications bar). Then I do a short record via standard dictaphone app and i can hear myself on the record. Is that how it is supposed to be?
Xiaomi MI8, MIUI 11.

Better Documentation, Start on Reboot, Save Settings On Reboot

Pilfer doesn't start automatically on reboot, and it doesn't save settings on reboot.

Also I think clearer documentation on exactly what each setting does, the benefit or disadvantage of using one setting or one vs another, and how that feature protects you, what it protects you from, and what it doesn't protect you from-is highly needed.

Detect microphone blockers. Turn on passive jammer if it is detected.

Please read this first: Microphone blockers

Suggestion

Run PilferShushJammer as a background service that detects if a physical microphone blocker is connected:

  • Immediately detect when a microphone is connected.
  • Record a few seconds and save the audio to a file.
  • If the file size is to small no recordings occurred, which means that a physical microphone blocker has been connected. Turn on passive jammer as a complement to the microphone blocker. I think that could be useful if a malware detects the microphone blocker and activates the external microphone.

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.