EDIT: It was pointed out below by u/lukmly013 that SDR++ supports RTL-SDR directly. I have removed the rtl_sdr driver app and it works.

So, it is as simple as downloading the SDR++ app and enabling the USB-C port. No need to mess around with the driver app and its security settings.


This is a PSA as I could not find online whether a GrapheneOS would be able to run an SDR dongle or not.

I was skeptical about this working because GrapheneOS has several hardened security features and does not allow root access. Since the RTL-SDR dongle is a USB device that requires coordination between a “driver” app and second SDR app I wasn’t sure if such a configuration would work.

Conclusion: It does work!

I am using a USB-C to USB 3.0 OTG adapter and the rtl-sdr blog v4 dongle with a generic antenna. My phone is a Pixel 7.

The SDR app I have used is SDR++: https://github.com/AlexandreRouma/SDRPlusPlus/

The driver required is “Rtl-sdr driver”, available via F-droid: https://f-droid.org/packages/marto.rtl_tcp_andro/

Both of these can be downloaded via Obtainium.

As for the phone settings:

Under “Security” settings, make sure the USB-C port is not set to “Off” or “Charging-Only”.

In that same menu, if you see the sub-menu “USB peripherals”, make sure that new USB peripherals are allowed. In my case I am almost sure that I had this sub-menu before, but I don’t see it anymore.

In the app info menu of the Rtl-sdr driver app (long-click on app icon), toggle to ON the “Exploit protection compatibilit mode”

You should now be able to open the SDR++, click play, and find some bands.

This was enough to get the RTL-SDR to work in my phone.

Hopefully someone else finds this useful.

    • Salamander@mander.xyzOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      I tried it out and it works well with only SDR++. I have edited my post to correct this, thanks!

    • Salamander@mander.xyzOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      Ah!! I over complicated things then. It wouldn’t work for me at first and I eventually converged to this apparently sub-optimal configuration. Tomorrow I will check and edit the post accordingly, thank you!