Hi-Res on Android? UAPP integration?

Ok but even in Qobuz app (outside of Roon) everything is played in 24/192. Very confusing.

Some devices do just upsample, my Samsung tablet was 96/24 for some reason when I connected my Dragonfly. There is no hard fast rules it’s what they set the Andorid stack to on the device based on the DAC they use, this is why Android audio is such a mess. If they had done it properly to begin with it would be a different story.


Ok, so I guess lucky me with my 100€ Samsung M11. :slight_smile:

At least in Roon with good upsampling algorithm.

Depends if you like 90% of content upsampled or not. I would prefer down than up which is what mine does.

Yeah, I would prefer no up or down sampling.
So my cheap Samsung will be my mobile high res player. :slight_smile:

So here’s what I’ve seen tonight. Note that I only tested with my Galaxy S21 Ultra phone… If things were working really well, the thing that I’d selfishly most be interested in getting right would be my Galaxy Tab S6 tablet, but the S21 Ultra is a little newer, so if anything’s gonna work, I think it’s gonna be this?

  • Using the Qobuz app directly, without USB APP, everything on my Audioquest Dragonfly is either “Blue” (48 khz) or Magenta (96 khz). What I mean by that is, I tried “CD Quality” (16/44.1), and things that were natively HiRez 24/44.1 and 24/48, and all of them were “blue” meaning my Dragonfly was receiving a 48 khz signal… And anything I tried in both 24/88.2 and 24/96 glowed magenta (meaning my dragonfly was receiving a 96 khz signal.
  • When I switched over to USB Audio Player Pro and accessed Qobuz from inside USB APP, I could get a “green light” when listening to something that was 16/44.1 and 24/44.1, and I could get Amber when I played something that was 24/88.2.

I wasn’t exactly sure what you meant when you said “they did” so I re-tested just to re-confirm, and there was no way I could find to set custom sample-rate options for my phone as an endpoint, the way I can when I go to “DSP → Sample Rate Conversion” for other endpoints (like a chromecast audio). For my phone the only option was greyed out and said something like “for compatibility only”…

I guess, at the end of the day, if USB Audio Player Pro can get it to work for me, that means it’s possible, right? All that needs to happen now is it needs to become a priority for Roon, and it can be done? And that’s the point to this thread… users helping Roon gage how much this is or isn’t a desired feature/capability amongst their user base…

1 Like

My Huawei tablet does something similar. It only supports 48, 96 and 192 kHz for some odd reason natively. But Tidal, Neutron, UAPP, etc can use the 44.1 multiples in addition (USB). As I have said, it’s not Android that is the limitation, but hardware and implementation.

1 Like

As an aside, the lead dev at UAPP stated that they tried to contact Roon regarding RAAT support, however, Roon never replied:



Yeah, for reasons that are very unclear (given the large user base), Roon doesn’t seem to care about Android users.


So I’ve gone down quite a rabbit hole with the Hi-Res Audio on Android idea:
I have a Xiaomi Mi Note 10 Pro (Otherwise known as the CC9 Pro) which has a SnapDragon 730G processor. A quick Google reveals the audio capabilities.

I am running custom Xiaomi.eu firmware on it and have rooted it so I could mess around with the audio policies. YES, by default Android Mixer (AAudio in my case) resamples everything to 16/48. BUT that is only when the program trying to use the audio mixer simply outputs audio via the primary output. It gets complicated and you can see what the all the different sources and outputs are if you can find your audio_policy_configuration.xml and audio_io_policy.conf files. You can look at them without breaking your system using ADB. If you have no idea what that is then you probably shouldn’t look anyway. Digressing a bit. I have updated my policy files so by default all output is 24/96. Unfortunately it is still resampled for primary output but it sounds better.

What I’ve discovered is that what UAPP (and Poweramp and others incidentally) does is use the other “flags” that are defined in the policy files. In my case I have a whole bunch in my case it seems to use “Direct” mode which has PCM all the way up to to 24/384 and there’s even native DSD for my phone. Where all of this gets let down, though, is via the headphone amp. It is trash. So not much point TBH. But I’ve been able to get the bluetooth to send 24/96 which helps a bit if I feel like BT via LDAC to my Sony’s (Obviously not true Hi-Res because of the wireless compression etc but better than 16/48 resampling.

I have tried using a DAC plugged into my phone. It’s the one that came with my laptop (An Asus headphone adaptor that seems to be an ESS 9260 and supports 24/96). I plugged that into my phone, opened Tidal, let it use it natively and then did a dumpsys of the audio_flinger and the system log, and verified that it does in fact set the sample rate for each track that comes through. I saw it change for each track and show either 44100, 88200 or 96000, depending on what was being played. When I switched to playing in Roon, obviously it was only showing a green dot and was reporting that the stream was being upsampled from 44.1khz to 96khz. And this was coming down the pipe as a 96khz stream. What is really weird is that I couldn’t find anywhere in the logs that that was actually happening. Roon has also been misbehaving in that it doesn’t actually matter if I’ve selected MQA core decoding or not, or even whether capabilities are set at every option for MQA support, it only puts out a 44.1khz stream according to it. And regardless of what is playing it reports 44.1khz to 96khz upsampling. It even does this when playing out of the phone speaker, which isn’t even set to 96khz, it’s been left at 16/48. Before I played with audio policies it would do the same thing but just show 44.1 → 48khz upsampling, but still didn’t care what was set for MQA.

I don’t profess to be a developer of any kind, android or otherwise, but the android audio rendering is broken. Assuming someone at Roon just looks into sending audio directly on supported devices, I think it could be fixed without to much fuss.


Two possibilities: Roon never care about mobile and portable solution, or Roon only want Roon Ready Devices can stream without SRC, so far only A&K willing to do certification with custom Android OS in expense of without Google Store, this making a deadlock of mobile/portable market section never became a viable market for Roon, so no resources is sensible for Roon to allocate in this section.

I personally think that Roon could sell a lot subscriptions if the Android support was improved to allow bit-perfect and MQA. There are quite a few Android DAP enthusiasts out there, and they spend stupid money on the hobby…


Just performed some testing with my Samsung Note 20 Ultra on Android 12 connected to a Topping D50s via USB. With the standard Qobuz app I get the following sample rates reported on the D50s OSD:

Track Sample Rate → Reported Sample Rate on D50s
44.1kHz → 48kHz
48kHz → 48kHz
88.2kHz → 192kHz
96kHz → 192kHz
176.4kHz → 192kHz
192kHz → 192kHz

So, at least in my situation it looks as though the Note 20 Ultra does not natively support bit perfect playback - up sampling to 48kHz for sample rates up to 48kHz or up sampling to 192kHz for sample rates over 48kHz.

I get bit perfect via UAPP and when I was subscribed to Tidal I got bit perfect from their app after they updated in July of last year.


I sure hope this is implemented. I own a SP2000 but have been considering upgrading to a Cayin N8ii.

Unfortunately, it doesn’t have a Roon Ready certification and is a no go for that reason. People on the other side of the fence ie people with expensive Android DAPs are surely thinking that Roon is a no-go due to lack of support.

I think it is incredibly short-sighted to ignore this sizeable group of potential Roon subscribers…

HiBy Player on Andoid has its own USB Driver for DAC too. Sounds nice too imo.

How would one use a $45 Raspberry Pi when they’re listening to a high res DAP (or phone with portable dac/amp) with custom IEMs around their house?

+1 to this suggestion

I love Roon but the fact that they can’t implement something like this really makes it less worth it in my eyes. My library is currently small enough to fit on my phone’s internal storage, but as it expands in size, so does my frustration for Android Hi-res not being added.


A :muscle: layout for Android owners and existing or potential ROON subscribers. Kudos. :+1:

1 Like

You can use UAPP to play music from Roon with Squeeze2Upnp pretty easily

It’s not very reliable I found on my DAP tried it for a while but the UAPP UPnP renderer would stop being seen and it didn’t really sound that much better than using Roon app and it’s resampling.