/PilferShushJammer

Light application to test microphone jamming techniques

Primary LanguageJava

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:

  • 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:

  • removed onboardEQ settings of EQ as changes are not application specific

  • split determineAudio function to only check output if active jammer is engaged: due to AudioFocus loss conflicts

    vers. 4.0.6

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