Fork Notice: RootlessBrennanDSP is a modernized, high-performance fork of RootlessJamesDSP by Tim Schneeberger (@ThePBone), powered by libjamesdsp by James Fung (@james34602).
- FastMixer Kernel Pipeline: Configured
AudioTrackwithPERFORMANCE_MODE_LOW_LATENCYandAudioAttributes.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_NEVERfor Android 12+ to skip redundant processing stages.
- Native Direct Memory I/O: Implemented
processDirectBufferin C++ usingGetDirectBufferAddress. Audio samples pass directly from hardware capture into C++ DSP without JVM array allocation or GC pauses.
- 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.
- Global
JavaVM*Management: Replaced thread-localJNIEnv*caching with dynamic thread attachment, resolving multi-thread race conditions. - Deterministic Teardown: Replaced the unsafe 100ms
Timerdeallocation with synchronized atomic state management.
- 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.
- 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.
- Removed unconditional
-DDEBUGin release builds; enabled-Ofast -ftree-vectorizewith ARM NEON SIMD. - Modernized to
targetSdk = 35(Android 15/16/17 compatible), Shizuku API13.1.5. - Migrated from
kaptto KSP, updated Kotlin, Material Components 1.12.0. - Cleaned up repo: removed Fastlane, Crowdin, unused CI workflows.
- 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
Get the latest APK from GitHub Releases.
- Install the APK on your device.
- 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
- Launch RootlessBrennanDSP and enable your desired sound profiles.
Install the new APK over the old version β your settings and profiles are preserved automatically.
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:
- Install the JamesDSP Magisk module.
- Uninstall the original JamesDSP app.
- Install this APK.
- 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.
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.
- JamesDSP β James Fung (@james34602)
- RootlessJamesDSP β Tim Schneeberger (@ThePBone)
- Theming system & backup system based on Tachiyomi
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.