Skip to content
Light application to test microphone jamming techniques
Java
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
app
gradle/wrapper
images
metadata/android/en-AU
.gitignore
CHANGELOG.md
PRIVACY_POLICY.md
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

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.

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 a foreground service

Build update: compile API 28 (Pie, 9.0), Android Studio 3.4.2 stable

Note: On devices running Android 9 (API level 28) or higher, apps running in the background cannot access the microphone. Therefore, your app should record audio only when it's in the foreground or when you include an instance of MediaRecorder in a foreground service.

TODO:

  • Android 10 (Q) AudioManager.setAllowedCapturePolicy(ALLOW_CAPTURE_BY_NONE)
  • rebuild the active jammer (testing with Oboe)
  • consider user app summary include and print package name of NUHF/ACR if found
  • consider setCameraDisabled(ComponentName admin, boolean disabled) in menu, to run with passive
  • consider optional jammer state persistence over boot

Changes:

  • add scrollview to settings fragment for small screens

  • add to SDK names

  • rem AndroidStudio erroneous code help

    vers. 4.1.1

    • min API 18 (4.3)
    • target API 26 (8.x)
    • compiled API 28 (9.x)

    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)
    • LOW : s4 I9195 (deprecated) 4.3.1 (18)(CyanogenMod 10.2, F-Droid)
    • SLO : Mts 5045D (tainted) 6.0.1 (23) (CyanogenMod 13.0, GApps)
    • DEV : s5 G900I (tainted) 7.1.2 (25)(LineageOS 14.1, GApps)
    • PROD: s5 G900P 7.1.2 (25) (LineageOS 14.1, F-Droid)

App screenshots:

  • Home fragment

  • Inspector fragment

  • 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

2019 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.

You can’t perform that action at this time.