Enabling GrapheneOS protections causes Tor Browser for Android to break

I was and am using GrapheneOS 2026042101.

Release notes: https://grapheneos.org/releases#2026042100

Current Tor Browser version (not the one I was using at the time)

Version 15.0.11 (140.10.1esr)

org.torproject.torbrowser
versionCode 2016157706

targetSdk 35
minSdk 21

Installed: 6 Feb 2023; 5:17 pm
Updated: 1 May 2026; 1:00 am

Security level 3 (safest).

I enabled the following protections:

  • Native code debugging: blocked
  • Webview JIT: disabled
  • DCL via memory: restricted
  • DCL via storage: restricted

I then got notifications that Tor Browser was accessing DCL via memory as it crashed. This is probably a Firefox property as it also happened with other Firefox-based browsers such as Fennec F-Droid. Presumably it needs it to run JavaScript? If so, I don’t see why Tor Browser needs it on the highest security level.

After enabling DCL via memory, the app started but couldn’t connect to Tor. Logs here:

2026-04-27 19:39:52.776 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2026-04-27 19:39:52.790 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2026-04-27 19:39:52.797 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2026-04-27 19:39:52.851 [NOTICE] Opening Socks listener on /data/user/10/org.torproject.torbrowser/files/tor-ipc/socks-ipc
2026-04-27 19:39:52.852 [NOTICE] Opened Socks listener connection (ready) on /data/user/10/org.torproject.torbrowser/files/tor-ipc/socks-ipc
2026-04-27 19:40:22.911 [NOTICE] Failed to find node for hop #1 of our path. Discarding this circuit.
2026-04-27 19:40:22.920 [NOTICE] Our circuit 0 (id: 61) died due to an invalid selected path, purpose General-purpose client. This may be a torrc configuration issue, or a bug.

After disabling all security protections that I enabled, it was able to connect to Tor, but had some problems. Logs here:

2026-04-29 16:09:23.282 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2026-04-29 16:09:24.449 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2026-04-29 16:09:24.454 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2026-04-29 16:09:24.525 [NOTICE] Opening Socks listener on /data/user/10/org.torproject.torbrowser/files/tor-ipc/socks-ipc
2026-04-29 16:09:24.525 [NOTICE] Opened Socks listener connection (ready) on /data/user/10/org.torproject.torbrowser/files/tor-ipc/socks-ipc
2026-04-29 16:09:25.364 [NOTICE] Bootstrapped 5% (conn): Connecting to a relay
2026-04-29 16:09:25.365 [NOTICE] Bootstrapped 10% (conn_done): Connected to a relay
2026-04-29 16:09:25.804 [NOTICE] Bootstrapped 14% (handshake): Handshaking with a relay
2026-04-29 16:09:25.953 [NOTICE] Bootstrapped 15% (handshake_done): Handshake with a relay done
2026-04-29 16:09:25.955 [NOTICE] Bootstrapped 75% (enough_dirinfo): Loaded enough directory info to build circuits
2026-04-29 16:09:25.956 [NOTICE] Bootstrapped 90% (ap_handshake_done): Handshake finished with a relay to build circuits
2026-04-29 16:09:25.957 [NOTICE] Bootstrapped 95% (circuit_create): Establishing a Tor circuit
2026-04-29 16:09:26.166 [WARN] Guard LOLlolLOL ($E52A6796CFC28A793521963505C0C5C5CA3FFA4A) is failing an extremely large amount of circuits. This could indicate a route manipulation attack, extreme network overload, or a bug. Success counts are 77/287. Use counts are 14/14. 281 circuits completed, 0 were unusable, 204 collapsed, and 167 timed out. For reference, your timeout cutoff is 60 seconds.
2026-04-29 16:09:26.606 [NOTICE] Bootstrapped 100% (done): Done
2026-04-29 16:09:29.804 [WARN] Guard prsv ($3577EB69937FB5CFD2C550DCEB693DED4C7D0117) is failing a very large amount of circuits. Most likely this means the Tor network is overloaded, but it could also mean an attack against you or potentially the guard itself. Success counts are 83/169. Use counts are 17/17. 164 circuits completed, 0 were unusable, 81 collapsed, and 45 timed out. For reference, your timeout cutoff is 60 seconds.

Tried to connect to the same two guards each time I started it up.

I tried a different instance of the app on a different profile and everything was normal.

I think I am remembering everything correctly.

A similar problem did not happen with Orbot.

I would like to know which security protections I can enable and why not the others.

Thank you.

I would also like to know what are these features of Android used for in Tor Browser and why Orbot works fine without them.

Well for one orbot is like networking app like the tor dameon on linux but in a VPN format for mobile devices to use the tor dameon. The browser is the browser plus the tor daemon. I can’t help you here on this one as I know nothing about the implementation of the mobile tor browser version.

You mentioned using the safe level in other thread but only safest disables JIT, though this shouldn’t matter unless this “Webview JIT: disabled” somehow changes the JIT handling in the browser. On desktop linux version disabling JIT (net.core.bpf_jit_enable=0) doesn’t change the behavior of JIT in the browser only about:config does.

What I do know is that Apple version of Orbot has direct issues with memory running out and usage. I’m not aware of the android version having such issue though certain settings in orbot can increase memory usage of the app.