xserver-xsdl icon indicating copy to clipboard operation
xserver-xsdl copied to clipboard

make xserver-xsdl work with isolated network namespace containers

Open zanfix opened this issue 1 year ago • 0 comments

Hi,

I noticed that xserver-xsdl sets the -nolisten unix X server option by default. I suppose this is done because the X server (any X server) hardcodes the unix domain socket to /tmp/.X11-unix/X<n>, and by default on android /tmp is not available + / is mounted read-only + a non rooted device has no write permission outside it's app folder. "local" connections are still available through the abstract domain socket @/tmp/.X11-unix/X<n> (that is the "-listen local" X server option which is on by default)

I have a rooted device so to workaround the issue I did the following:

  • added "-listen unix" from the app configuration
  • before starting xserver-xsdl from my scripts, i temporarily mount / as rw, symlink /data/data/x.org.server/files/tmp to /tmp
  • once xserver-xsdl is up i bind mount /data/data/x.org.server/files/tmp/.X11-unix to the container's /tmp

Wouldn't it be convenient to allow xserver-xsdl to create the unix domain socket in /data/data/x.org.server/files/tmp instead? A rooted device is still needed but at least it would not require somewhat dangerous tricks to make it work

Bye

zanfix avatar Feb 03 '24 02:02 zanfix