X Server Now Available For Android
New submitter mkwan writes "The open-source X Server for Android has hit beta and is now available for download through the Android Market. On Australian networks at least, smartphones are assigned publicly-accessible IP addresses, so it should be possible to display many Linux applications on an Android smartphone simply by setting the DISPLAY environment variable to the phone's IP address followed by :0"
The source is available under the MIT license (or Apache; the project page and story disagree) over at Google Code. It doesn't support all of the X protocol and there's no Xlib implementation (i.e. no X11 apps on the device yet except via the NDK if you're lucky), but it is a reimplementation of the X server in Java for Android. You can run remote applications at least.
Why?
You can also install a Linux of your choice in a loopback file on your phone and chroot in. You could use x11vnc for graphics before, but as you can imagine it's a bit inefficient.
...and were suddenly silenced.
(captcha: intrude)
Doing what the article says requires you to use "xhost +" as the magic cookie requirements will not have been met.
Second, even with the magic cookie, all transmissions to/from the X server are unencrypted - which means your magic cookie (the password to the X server) is passed in cleartext for anyone to see.
Having an X server on android is usefull, but also get ssh. That will securely route the X protocol (with encryption) from a remote (to the android display) system and with proper display.
I hope that nobody would actually consider a remote X session without tunnelling over ssh...
Millions of androids were oblivious... ... and continued doing what they were previously doing.
It's a niche tool, but for those of us who are in that niche, it's nice to see it available.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
I suppose this should be interesting, but mostly it strikes me as dumb. Mostly as a result of Google having reinvented the wheel by creating an entirely new and no more efficient or effective rendering and windowing subsystem for Android, then having the rest of the open source community chase along behind them. I suppose that's not terribly surprising, seeing as how Android was proprietary out of the gate until Google bought them.
In other news, I'll hope that my N900 holds out and that another device, probably one from Samsung running Tizen, comes along before it fails.
Hopefully this will enable the implementation of the NX technology ( http://en.wikipedia.org/wiki/NX_technology ) on Android, since using the X protocol directly over the public Internet is terribly slow.
I already use my Android phone to do some light remote work. I use ConnectBot http://code.google.com/p/connectbot/ to SSH into a remote workstation. For graphical apps, I set up port forwarding for VNC (there's a menu option for it in connectbot) and use AndroidVNC http://code.google.com/p/android-vnc-viewer/
I have my VNC server set to only accept connections from localhost (and it's firewalled, too), so that only connections which are forwarded and encrypted via SSH wind up being accepted. This way I get secure remote access, the VNC protocol tends to be less bandwidth-intensive than raw X, and it preserves my session in case I get disconnected.
Don't get me wrong, an X server on Android is a cool technical achievement, but existing SSH and VNC clients for Android are a more practical and secure way of accessing your workstations/servers on the go.
Anonymous Luddite: "What do you think of the dehumanizing effects of the Internet?"
Andy Grove: "Not Much."
Not sure if the author is talking about running port 6000 on a public IP but that's scary if so.
Join the Slashcott! Feb 10 thru Feb 17!
Suppose these people had devoted their time to producing something useful.
I have been suffering with using androidVNC to do all of my x server duties on Android and it's been a long hard wrong but finally it would seem I have suffered long enought. THIS IS FUCKING AWESOOOOOOME!!!!
The soylentnews experiment has been a dismal failure.
Is like getting lots of free apps at once. I think lots of people don't know that you can just display the one application that you need to run a not the whole screen.
While pure, unadulterated X11 might not be the thing you'd want to run on your phone or tablet because of the chatty network protocol, there are some X11 derivatives which can make this fly. Have a look at the x2go project for an example of what I mean. Having X11 on Android means the x2go app is only a short development cycle away, and that is good news for those of us who like to move around while still needing access to something which only wants to run a gui.
--frank[at]unternet.org
What can you do with X that you can't do with ssh?
X Protocol does not use more bandwidth than VNC. If anything, the opposite is (typically) true.
However, there are more round trips when starting an application when using X Protocol as compared to VNC. Latency is the performance killer for X Protocol, not bandwidth. This means applications may/will launch faster on VNC. NX (based on dxpc) short-circuits some X protocol requests, avoiding the latency issue. Typically, NX (FreeNX) performs as well as VNC.
With the "usual" X Servers in use these days, typically the Window Manager is run locally. Also, font resources and other (eg cursor) resources are local.
This means that X Protocol is faster when the application is running. For example, text needs only send the code-point and not the bitmap. (though compression is typically used for both over a slow link -- but something like "dxpc" is aware of X11 protocol, and can compress more quickly and efficiently for that case)
Also, the "look and feel" is that of your local desktop -- using VNC means an entire desktop is being rendered over the wire, while with X11, only a single application is rendered. Using VNC means more load on the application server, because graphics are rendered and then shipped. With X11 the graphics are rendered locally. This means that the application server doesn't have to maintain a virtual display for each client. This can save 1 to 3 megabytes per client. Along with rendering time.
VNC also allows the connection to be dropped and then restarted. X11 can do this, but it requires a proxy X11 server.
VNC allows for more platforms.
Conclusion -
You are correct.
(1) VNC over SSH is a very good solution, and is preferred for many applications.
(2) If bandwidth is very limited, FreeNX may be preferred if compatible with the client and server platforms and the application.
(3) For the best "desktop experience", FreeNX or X is preferred. The application appears as if running "natively".
Just another "Cubible(sic) Joe" 2 17 3061
I'd like to say, congratulations! Android has very nearly caught up with where Maemo was when it was released in 2009. Also, suck it Wayland!
Nathan's blog
What can you accomplish with X11 that you can't do better with ssh?
If you want to run a full desktop linux stack on an android device, that's another thing (and it's been done), but why would I want to remote manage a machine over X?
Of course that assumes that everything is going via ssh, which is probably a fair assumption for nearly anything that isn't on the same local network. If the point is to get it on a phone/tablet then it's fair to assume that it's not on a local network and those ports that X uses directly are going to be firewalled off forcing ssh anyway. Ok, maybe not fair to assume that's allready in place, but certainly fair to assume that blocking it is going to be OK if it hasn't been done already.
So I think without xauth it's not the end of the world so long as you make sure nobody can exploit the lack of xauth and just block the ports. Anything that should be allowed can ask ssh nicely and let ssh decide if it is allowed in or not.
I'm curious - what does Android (and WebOS) use in place of X as their Windowing system? For desktops, I understand that X is the default, although there are ongoing attempts to bring Wayland into the picture. Also, for Plasma Active - the Spark tablet that was discussed here some weeks ago, does that sit on X, or something else?
The other thing about setting the phone's display to DISPLAY ____:0, are they now using IPv6 addresses? If not, what do they do if it is IPv4 and NATed? Do they do DISPLAY 10.1.2.3:0, or use the routable address there? There's also the question that if it uses the Home address under mobile IP, does that remain unchanged when the phone passes to foreign addresses on the network?
So I looked and I see two, x-servers: https://play.google.com/store/apps/details?id=com.theqvd.android.x# and https://play.google.com/store/apps/details?id=au.com.darkside.XServer#. Am I missing something? Is there a major difference?
I do security