• Stars
    star
    798
  • Rank 56,722 (Top 2 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 2 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An implementation of the system-wide JamesDSP audio processing engine for non-rooted Android devices

Icon
RootlessJamesDSP

System-wide JamesDSP implementation for non-rooted Android devices

Google play release F-Droid release License GitHub Workflow Status

Limitations β€’ Spotify patch β€’ Downloads β€’ Credits

Get it on Google Play

This app uses libjamesdsp which is written by James Fung (@james34602).

This app has several limitations that may be deal-breaking to some people; please read this whole document before using the app.

Screenshot Screenshot

Limitations

  • Apps blocking internal audio capture remain unprocessed (e.g., Spotify, Google Chrome)
  • Cannot coexist with (some) other audio effect apps (e.g., Wavelet and other apps that make use of the DynamicsProcessing Android API)
  • Increased audio latency

Apps confirmed working:

  • YouTube
  • YouTube Music
  • Amazon Music
  • Deezer
  • Poweramp
  • Substreamer
  • Twitch
  • Spotify ReVanced (Patch required)
  • Apple Music
  • ...

Unsupported apps include:

  • Spotify (patch for Spotify exists)
  • Google Chrome
  • SoundCloud
  • ...

Tested on:

  • Samsung Galaxy S20+ (Android 12; OneUI 4.0)
  • Stock AOSP emulator (Android 10-13)
  • Google Pixel 6 Pro (Android 13)

Spotify support patch

Note This patch is universal and may also work with other apps than Spotify.

You can only use Spotify with this application if you patch the Spotify app. The setup is very easy:

  1. Download and install the ReVanced manager APK
  2. Install the unpatched Spotify app
  3. Open ReVanced Manager, select Spotify and enable the remove-screen-capture-restriction patch.
  4. Start the patching process and install the patched APK once it is done.
  5. You can now use Spotify with RootlessJamesDSP.

Patching other unsupported apps

The remove-screen-capture-restriction patch is universal and can also be used with custom APKs other than Spotify. The patch cannot remove capture restrictions for apps that use the native AAudio C++ API for playback.

  1. Download and install the ReVanced manager APK
  2. Open ReVanced Manager, tap on 'Select an application' and press the 'Storage' action button in the bottom-right corner.
  3. Select your APK using the file picker.
  4. Enable the remove-screen-capture-restriction patch.
  5. Start the patching process and install the patched APK once it is done. Make sure to uninstall the unpatched app if it is installed, otherwise you will run into a signature conflict during installtion.

Warning If the patched app crashes on startup (or refuses to work properly), it is likely that the app uses signature checks or other protections against tampering. In that case, additional patches that disable these anti-tampering checks would need to be created by hand.

Differences to other rootless FX apps

Regular rootless audio effect apps on the Play Store all essentially work the same way: Android has several default audio effects built into its operating system that these apps can use without any special permissions. Here's a list of those: https://developer.android.com/reference/android/media/audiofx/AudioEffect.

Being restricted to these default built-in audio effects is problematic if you want to implement any advanced custom effects such as Viper or JDSP, because Android does not allow apps to access & modify the audio stream directly.

To work around this problem, RootlessJamesDSP uses a bunch of tricks to gain full access to the audio stream of other apps. This is done via Android's internal audio capture. This allows RootlessJamesDSP to apply its custom audio effects directly without relying on Android's built-in effects.

Unfortunately, these tricks are not 100% reliable and introduce some limitations. Apps such as Spotify block internal audio capture (they don't want people to record their songs), and because of that, RootlessJamesDSP cannot directly access the audio stream of that app. This is the reason why a special patch is required to disable this DRM restriction inside Spotify's app. Patches for other apps with these DRM restrictions do not exist, but are possible to do.

Translations

This application can be translated via Crowdin: https://crowdin.com/project/rootlessjamesdsp

Not all languages are enabled at the moment in Crowdin. To request a new language, please open an issue here on GitHub.

Downloads

This app is available for free on Google Play: https://play.google.com/store/apps/details?id=me.timschneeberger.rootlessjamesdsp

Also available on F-Droid: https://f-droid.org/packages/me.timschneeberger.rootlessjamesdsp/

Get it on F-Droid Get it on Google Play

Using Root

This app focuses on a rootless implementation, but it can be made to work with the magisk module too. See here for details.

All the limitations mentioned above are not relevant for the magisk/root version.

Credits

Translators

logo
Tim Schneeberger (ThePBone)

22239 words
logo
Oleksandr Tkachenko (netrunner-exe)

13556 words
logo
FrameXX

3493 words
logo
Rex_sa (rex07)

3449 words
logo
Add000

3420 words
logo
fankesyooni

3291 words
logo
Beruanglaut (beruanglaut)

3168 words
logo
Federico Di Lorenzo (federico.dilo)

2749 words
logo
MajorCanel (hasandgn37)

2679 words
logo
Marcin Petrusiewicz (marcin.petrusiewicz)

2360 words
logo
zhiq liu (liziq)

1950 words
logo
Alondra MΓ‘rquez (TecitoDeMenta)

1796 words
logo
Jontix (jont4)

1730 words
logo
Alessandro Belfiore (SerAX3L)

1228 words
logo
Gary Bonilla (TheGary)

1030 words
logo
kyunairi

888 words
logo
Gyuri Gergely (roccovantechno)

714 words
logo
Nlntendq

684 words
logo
Ali Yuruk (pizzawithdirt)

639 words
logo
Loui's (Louis_Unnoficial)

513 words
logo
Criss Santiesteban (ianpok17)

470 words
logo
Mr-Ojii

457 words
logo
tomechio

358 words
logo
IrepY

310 words
logo
Na7M

306 words
logo
MES-mitutti (MES-INARI)

288 words
logo
adrian_ek

268 words
logo
medi421

268 words
logo
Alessandro (Alebello10)

250 words
logo
Andy-Dunne

224 words
logo
Tymwitko

210 words
logo
rabaimor

183 words
Translate in Crowdin πŸš€

More Repositories

1

GalaxyBudsClient

Unofficial Galaxy Buds Manager for Windows, macOS, Linux, and Android
C#
3,434
star
2

awesome-shizuku

Curated list of awesome Android apps making use of Shizuku
2,741
star
3

tachiyomi-extensions-revived

Revival of removed source extensions for the Tachiyomi app.
Kotlin
1,373
star
4

DDCToolbox

Create and edit DDC headset correction files
C++
124
star
5

BudsPro-Headtracking

Stream head-tracking data from the Samsung Galaxy Buds Pro in real-time
Python
75
star
6

KomootGPX

Download Komoot tracks and highlights as GPX files (including metadata). Supports bulk-download
Python
67
star
7

FlatTabWidget

Animated minimalist tab widget for Qt
C++
65
star
8

DDCToolbox-Android

Create and edit VDCs on Android
Kotlin
44
star
9

galaxy-buds-firmware-archive

An archive of firmware images for the Galaxy Buds family. Flashable with the GalaxyBudsClient application.
38
star
10

LiquidEqualizerWidget

Modern 15-band equalizer for C++/Qt
C++
37
star
11

SlidingStackedWidget

Animated stacked widget for Qt
C++
35
star
12

SamsungServiceModeOTP

Generate OTP tokens for Samsung Service Mode to activate hidden debug/dumping features. (*#9900#)
Java
32
star
13

XTimeMachine

Let apps travel back in time to circumvent timed app trials. Requires LSPatch (no root) or Xposed.
Kotlin
20
star
14

GalaxyBuds-BatteryLevel

Simple python script to read battery values from the Samsung Galaxy Buds
Python
20
star
15

BudsProAnalysis

Leak and disassembly of the unreleased Galaxy Buds Pro plugin app
Java
17
star
16

MsiEcRamEditor

Edit and dump the RAM of the EC chip of MSI laptops via ACPI-WMI
C#
14
star
17

AutoEqPackages

Minified and compressed AutoEQ packages
Python
14
star
18

AutoEqApi

API to cache and distribute equalization data from the AutoEQ project
C#
14
star
19

FirmwareProviderAPI

Unofficial distribution API of firmware for devices of the Galaxy Buds family
C#
14
star
20

GalaxyBudsFirmwareDownloader

Download firmware images for Buds(+) devices from Samsung's official servers
Python
13
star
21

GraphicEQWidget

GraphicEQ for Qt (based on EAPO)
C++
11
star
22

RootActivityLauncher

Launch all hidden, restricted and unexported activities in Android via Root
Kotlin
11
star
23

SamsungFumoClient

Advanced OMA-DM client with FUMO capabilities designed for retrieving firmware updates and their metadata from Samsung's official servers
C#
11
star
24

QAnimatedSlider

Extended slider widget with animation capabilities
C++
10
star
25

QEqualizerView

Simple equalizer widget for Qt
C++
10
star
26

SamsungFumoScraper

WebAssembly-based web application that is capable of download Samsung OTA firmware files directly from the browser via Samsung's OMA-DM FUMO service.
HTML
10
star
27

CscKeystringDecrypt

Decrypt encrypted Samsung OMR/CSC files (especially keystring.dat)
Java
8
star
28

PPA-Repository

PPA for various packages
Shell
7
star
29

QEditableListView

ListView for Qt with movable items
C++
7
star
30

msi-ec-modern

Fork of msi-ec with support for MSI Modern 15 A11M (Business series)
C
7
star
31

ThePBone

6
star
32

LiveprogIDE

Basic embeddable Liveprog IDE, currently supports EELang2 (JamesDSP for Linux)
C++
6
star
33

Mitsukeru

Rank and collect anime/manga recommendations based on your personal AniList.co profile
C#
6
star
34

JDSP4Linux-GUI

User Interface for JamesDSP on Linux
C++
6
star
35

ScreenCapture.NET

Low-level screen capturing library for .NET Core; supports only X11/Linux currently
C#
5
star
36

GalaxyBuds2-Leak

Data-mining write-up
5
star
37

jadx-type-diagram-plugin

Type diagram plugin for JADX decompiler
Java
5
star
38

GalaxyBudsFirmwareExtractor

Java
5
star
39

RobomasterCheatsheet

Robomaster Python API Cheatsheet
Python
4
star
40

Viper4Windows-GUI

Repainted Viper4Windows UI
C#
4
star
41

BudsPro-AcceleratorPolling

'Stream' accelerator sensor data from the Samsung Galaxy Buds Pro (slow)
Python
4
star
42

onboard-plasmoid

A KDE plasmoid that displays live local telemetry data about the train you're sitting in
C++
4
star
43

Ws2812LedController

Advanced LED controller software for the raspberry pi with a remote client application
C#
4
star
44

flatpak-repo

Personal flatpak repository
4
star
45

JDSP4Linux

Port of the opensource version of JamesDSP to Linux
Shell
4
star
46

linux-stuff

My personal dotfiles backup, utilities, tricks and other stuff
Shell
3
star
47

TVNow-Scraper

Download M3U HLS playlist stream files directly from the server of TVNow and WatchBox
C++
3
star
48

geq2imp

Create impulse responses from CSV frequency responses
C
3
star
49

ArduinoStuff

Some old arduino code (small OS for TFT display, onscreen-keyboard, rtc)
C
2
star
50

app-crawler

Python
2
star
51

Viper4Windows-Translation

German Translation for V4W
2
star
52

plasma6-default-dynamic-wallpaper

Config files for the plasma-wallpapers-dynamic wallpaper plugin
Shell
2
star
53

Viper4Linux-GUI-PPA

PPA repository for the Viper4Linux GUI
Shell
2
star
54

CrunchyrollDownloaderPy

Python version of my crunchyroll downloader (prototype)
Python
2
star
55

GalaxyBudsLive-Disassembly

Analysis of unreleased Galaxy Buds Live "neobeans" plugin app for Android
Java
2
star
56

AssemblyExamples

A small collection of assembler examples
Assembly
1
star
57

IRSerialSender

Converts serial commands to impulses, which will be sent to a color strip
C++
1
star
58

dotfiles

My dotfiles for Linux systems
Shell
1
star
59

PyMatrix

64x32 LED Matrix Controller
Python
1
star
60

LEDMatrixDashboardAVR

Simple Dashboard displaying time and temperature on a LED matrix using an Arduino Mega
C++
1
star
61

ThePBone.WbXml2

Managed wrapper around libwbxml2
C#
1
star
62

mkdlc-touhou-spellbubble

Generate DLC packages from scratch
Shell
1
star