Skip to content

Repository files navigation


RootlessBrennanDSP

High-performance, ultra-low-latency system-wide DSP audio engine for non-rooted Android devices

Release License

Fork Notice: RootlessBrennanDSP is a modernized, high-performance fork of RootlessJamesDSP by Tim Schneeberger (@ThePBone), powered by libjamesdsp by James Fung (@james34602).


⚑ What's Changed from the Original

1. Ultra-Low-Latency Audio Engine (FastMixer Integration)

  • FastMixer Kernel Pipeline: Configured AudioTrack with PERFORMANCE_MODE_LOW_LATENCY and AudioAttributes.FLAG_LOW_LATENCY, routing audio directly to Android's low-latency FastMixer hardware thread.
  • Latency Cut: Reduced default audio buffer from 8192 frames β†’ 2048 frames (~42 ms @ 48 kHz), cutting Bluetooth/AirPods audio lag by 4Γ—.
  • Real-Time Priority: Core recording and playback thread runs at THREAD_PRIORITY_URGENT_AUDIO.
  • Bypassed System Spatializer: Added SPATIALIZATION_BEHAVIOR_NEVER for Android 12+ to skip redundant processing stages.

2. Zero-Copy Direct ByteBuffer Processing

  • Native Direct Memory I/O: Implemented processDirectBuffer in C++ using GetDirectBufferAddress. Audio samples pass directly from hardware capture into C++ DSP without JVM array allocation or GC pauses.

3. Anti-Clipping Output Protection

  • Hard output clamp on all native DSP processing paths (float and int16). Prevents digital crackling/static when effects like bass boost, EQ, or tube drive push samples beyond the valid PCM range β€” regardless of whether the user has configured the built-in limiter.
  • 4Γ— hardware buffer sizing to absorb momentary processing stalls during effect reconfiguration.

4. Thread-Safe JNI & Crash-Free Memory Lifecycle

  • Global JavaVM* Management: Replaced thread-local JNIEnv* caching with dynamic thread attachment, resolving multi-thread race conditions.
  • Deterministic Teardown: Replaced the unsafe 100ms Timer deallocation with synchronized atomic state management.

5. Automatic Shizuku AudioPolicy Bypass

  • Automatic Capture Policy Unblocking: Integrated privileged IAudioPolicyService.setAllowedCapturePolicy(uid, ALLOW_CAPTURE_BY_ALL) through Shizuku. Apps that typically restrict audio capture (Spotify, YouTube Music, SoundCloud, Chrome) now work without requiring ReVanced or modified APKs.

6. Bluetooth LE Audio & Modern Device Routing

  • Detection and routing support for Bluetooth LE Audio (LC3), Auracast Broadcasts, and Hearing Aids.
  • Bluetooth Sample Rate (48 kHz max): Bluetooth audio processing operates at a maximum sample rate of 48 kHz (44.1 kHz / 48 kHz). Higher sample rates (such as 96 kHz LDAC / LHDC) are not supported by the real-time capture pipeline and will lead to audio stuttering or dropouts. If using high-res codecs, ensure Bluetooth sample rate is configured to 48 kHz in Developer Options.

7. Modern Toolchain & Build

  • Removed unconditional -DDEBUG in release builds; enabled -Ofast -ftree-vectorize with ARM NEON SIMD.
  • Modernized to targetSdk = 35 (Android 15/16/17 compatible), Shizuku API 13.1.5.
  • Migrated from kapt to KSP, updated Kotlin, Material Components 1.12.0.
  • Cleaned up repo: removed Fastlane, Crowdin, unused CI workflows.

🎧 Features

  • Graphic & Parametric Equalizer β€” Multi-band with smooth filter response
  • AutoEQ Integration β€” Thousands of headphone profiles (AirPods, Sony, Sennheiser, Bose, etc.)
  • Convolution Reverb β€” FIR impulse response processing (.irs / .wav)
  • Dynamic Bass Boost & ViPER Bass β€” Frequency-tailored analog-modeled bass enhancement
  • Stereo Widening & Vacuum Tube Modeling β€” Harmonic saturation and soundstage expansion
  • LiveProg (EEL VM) β€” Programmable DSP scripting in real-time
  • Dynamic Range Compander β€” Multi-band dynamics processing
  • DDC/ViPER DDC β€” Device-specific frequency response correction

πŸš€ Installation

Download

Get the latest APK from GitHub Releases.

Setup

  1. Install the APK on your device.
  2. Start Shizuku and grant the requested permissions, or run via ADB:
    adb shell pm grant me.timschneeberger.rootlessjamesdsp android.permission.DUMP
    adb shell appops set me.timschneeberger.rootlessjamesdsp PROJECT_MEDIA allow
    adb shell appops set me.timschneeberger.rootlessjamesdsp SYSTEM_ALERT_WINDOW allow
  3. Launch RootlessBrennanDSP and enable your desired sound profiles.

Updating

Install the new APK over the old version β€” your settings and profiles are preserved automatically.


πŸ”§ How It Works

Regular rootless audio effect apps on the Play Store are restricted to Android's built-in audio effects, which limits them to basic EQ and bass boost.

RootlessBrennanDSP uses Android's internal audio capture to gain full access to the audio stream of other apps, allowing it to apply custom DSP effects directly. This is done without root access, using only standard Android APIs + Shizuku for privileged operations.

DRM Note: Some apps (Spotify, YouTube Music) block internal audio capture. With Shizuku's AudioPolicy bypass enabled, RootlessBrennanDSP automatically unblocks these apps. If that doesn't work for a specific app, the ReVanced Remove screen capture restriction patch can be applied to the problematic app's APK.


πŸ”‘ Root Usage (Magisk)

This app focuses on rootless operation, but can work with the JamesDSP Magisk module:

  1. Install the JamesDSP Magisk module.
  2. Uninstall the original JamesDSP app.
  3. Install this APK.
  4. Restart any active music apps (or reboot).

Differences from original root app:

  • Different preset format (.tar) β€” old presets can't be imported directly.
  • Uses /sdcard/Android/data/james.dsp/ instead of /sdcard/JamesDSP (scoped storage). Files are deleted on uninstall β€” use the auto-backup feature.

Updating: Install over the old version. Root builds include a self-updater.


πŸ“ About

RootlessBrennanDSP v1.0

A modernized fork focused on eliminating audio latency (especially for Bluetooth/AirPods), preventing audio artifacts, and providing automatic DRM bypass via Shizuku β€” all without requiring root or modified app APKs.

Built and maintained by @bshea-1.


πŸ“œ Credits


πŸ“„ License

This project is licensed under the GNU General Public License v3.0 β€” see the LICENSE file for details.

This is a fork of GPL v3 licensed software. All modifications are distributed under the same license.

Translators

logo
Tim Schneeberger (ThePBone)

~22396 words
logo
Oleksandr Tkachenko (netrunner-exe)

~13732 words
logo
Hanifz99 (hanifz99)

~4192 words
logo
Rex_sa (rex07)

~3543 words
logo
FrameXX

~3518 words
logo
Ivan Pesic (eevan78)

~3471 words
logo
Add000

~3469 words
logo
FlavioPonte

~3455 words
logo
Choi Jun Hyeong (Gokwu)

~3438 words
logo
narpatosian

~3431 words
logo
Abiram Kanagaratnam (AeroShark333)

~3373 words
logo
fankesyooni

~3316 words
logo
Vjekoslav Buric (vjburic1)

~3237 words
logo
Beruanglaut (beruanglaut)

~3168 words
logo
Federico D. (fred199542)

~2903 words
logo
IsmaΓ«l GUERET (ismaeloi1)

~2844 words
logo
HasanDgn37 (MajorCanel)

~2679 words
logo
Marcin Petrusiewicz (marcin.petrusiewicz)

~2360 words
logo
zhiq liu (liziq)

~1950 words
logo
Tim Li (timli103117)

~1886 words
logo
Alondra MΓ‘rquez (TecitoDeMenta)

~1847 words
logo
Phan Nhanh (phannhanh)

~1842 words
logo
MES-mitutti (MES-INARI)

~1750 words
logo
jontix

~1731 words
logo
Miko Nurmi (LePom_)

~1464 words
logo
SkyAfterRain_tw

~1419 words
logo
Đăng Nguyα»…n (dang15082006)

~1307 words
logo
Alessandro Belfiore (AXEN.dev)

~1228 words
logo
Gary Bonilla (TheGary)

~1030 words
logo
kyunairi

~888 words
logo
Lucky Mehra (LuckyMehra776)

~819 words
logo
Gyuri Gergely (roccovantechno)

~714 words
Translate in Crowdin πŸš€

About

High-performance, ultra-low-latency system-wide DSP audio engine for non-rooted Android devices

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages