## A behaviour of Android that should be understood.

Again, on the subject of The Linux Guest System, installed on my Google Pixel C Tablet

A standard behaviour which Android has, is to serve the request by apps to “Share” documents with other apps, but in a way that non-computing experts may not understand. When the user of an Android app taps on ‘Share’, a list of other apps normally displays, that are registered as being able to open the type of document that’s to be shared. From there, the user can select an app to share it with.

What is usually done behind the scenes is, that the app from which the document is to be shared creates a copy of the document which will be accessible to other apps, and then sends a URI to the app that the document is finally to be shared with. This URI tells the targeted app, which document is to be shared.

In certain cases, these URIs consist of URLs, but in such a way that Android can distinguish between different categories of URLs.

If what is to be shared is a VNC session, again, it’s a URI that specifies the local IP address (127.0.0.1), as well as the port number to connect to.

What I do not know is, when there is only one installed Android app, registered to be able to open a certain category of URI, whether Android nevertheless displays a list of available apps – which in this case would contain only one – so that the user can select the one available app. And this applied to VNC Viewers. What ‘UserLAnd’ was doing, was creating a VNC Session via Linux software, and then allowing a VNC Viewer to connect to that session, but not displaying the fact to me, that it was handing over the Android screen – not the VNC Session – to another app. Two possible things could have been happening:

1. UserLAnd may just prefer the VNC Viewer that I had installed. It was the recommended viewer. Or,
2. That VNC Viewer could simply be the only Android app I have installed, that can act as a VNC Viewer, for which reason the dialogue would be redundant, from Android, to ask me which VNC Viewer to use.

Either way, the transfer of the tablet’s screen was seamless, and led me directly into the VNC Session – that is, after I had entered my password for doing so.

Dirk

## Major Problem when Upgrading a UserLAnd Linux Guest System via ‘apt-get’.

A fact which I had blogged about before was, that I had installed a Debian 10 Linux Guest System on the Android, Google Pixel C Tablet, using the Android app ‘UserLAnd’. This Debian 10 version was compiled by the package maintainers to run on an ARM-64 CPU.

Well, along with major updates to Debian 9 / Stretch, the Debian maintainers have just issued an update to Debian 10 / Buster, from version 10.0 to version 10.1 . The problem? When trying to perform the upgrade via ‘sudo apt-get’, the process hangs over the attempt to update or install ‘systemd’, and then configure it. Apparently, doing this requires full root privileges, because ‘systemd’ would normally control how services run in the background with ‘root’, but UserLAnd does not allow any part of its Guest System to run as ‘root’.

This could become a stumbling-block, in any future updates.

The ‘solution’ which I attempted to apply was, to remove everything that depends on ‘systemd’, and to re-apply the upgrade in total. But the net effect of that is, to remove many more packages than I intended to remove, including all things related to ‘Gtk 3′, ‘LXTerminal’, as well as key components that allow ‘LXDE’, the Lightweight Desktop Manager, to function at all.

Caution: This would have been a completely unsafe thing to do on a real computer, and was only plausible because the setup in question was virtual in some way, and also expendable. This would normally brick the computer…

When the makers of UserLAnd provided easy screen-shortcuts to install Debian and LXDE, they knew how to modify the installation script, to ignore whatever problems result from installing LXDE and its dependencies in a ‘proot’ed environment. But I don’t know those tricks. (:1) So at one point I had a partially gutted system, without LXDE really installed.

But the (Android) devs behind UserLAnd also provided a quick workaround for that problem. The next time I exited the corrupted session, and re-launched LXDE from the UserLAnd menu, this Android app recognized that LXDE was no longer installed, and simply reinstalled it for me, after which I could access it again.

Once I had done this, my wallpaper was a black background, and quite a few of the installed applications were no longer installed. And so what I needed to do next was, to run the equivalent of the following command:


$sudo apt-get install gnome-backgrounds clipit evince wxmaxima gcl firefox-esr libpam-cracklib   After having done this, I was able to select a wallpaper again, from the file chooser, and to regain most of the abilities I already had before. I might still be missing some of the applications I once had. But what all this suggests is, that the Linux Guest System should only consist of a vest-pocket system, with a small number of applications, because in reality any and all Linux applications may simply need to be reinstalled at some point in time. But, there is a way in which users are not ‘hosed’ if this happens: Linux still segregates its data into a system directory, and a user home directory. Even though we have no form of access control within a ‘proot’ed system, even if certain applications are removed from the system directory, and then reinstalled there, our home directory will remember all our personal settings and data. So the solution can be as quick as the initial disaster was. My Linux Guest System is now down to taking up 4.86GB of Android application-data. (Updated 9/09/2019, 16h15 … ) (As of 9/07/2019, 20h00 : ) I think I’ve gotten closer to finding out, what went wrong… ## I now have Linux installed on my Google Pixel C tablet. As the title of this posting suggests. I used the Android app “UserLAnd“, which does not require root. The most recent versions of this app offer a VNC Server, which emulates an X-Server within the Linux system. And the implementation of VNC is ‘TightVNC’. Plus, the latest versions of this app offer a built-in VNC Viewer, that I find makes the most, out of the tiny icons that display on the high-res screen, as well as out of the fact that often, users will want to operate the GUI with their fingers, along with the physical keyboard that my Pixel C pairs with (:7) … The setup of this Linux Guest System is much easier than my earlier experience was because the basic Linux distribution, the desktop manager, and certain apps can all be installed just by tapping on a few icons. And then, using the ‘sudo apt-get’ command-line, additional Debian packages can be installed. There is an interesting side effect to this project: When I give the command:$ cat /etc/debian_version

I obtain the result ‘10.0‘. This would mean that the Linux version which I’m getting, is the new Debian / Buster, which none of my PCs nor my Laptop are even running. However, the repositories that I’m subscribed to are labelled ‘stable’. The CPU is an ‘arm64′. And the desktop manager I chose was ‘LXDE’. I installed a full productivity suite, including LaTeX. But, I found that three Linux applications did not run:

• LyX – The graphical, WYSIWYM LaTeX Editor (:2).
• Synaptic – A GUI for apt-get that makes it particularly easy to browse package-repositories, before selecting which packages to install.
• Latexdraw‘ (:1) (:6).

Everything else I tried seems to work, including “LibreOffice”, “GIMP”, “InkScape”, “Firefox ESR”. On my own, without the aid of simple GUI-buttons, I was also able to install and run “Texmaker”, “Dia”, “Xfig”, “OpenClipArt”, “Maxima” and “wxMaxima”, the Computer Algebra System and its Graphics Front-End. Getting that last item to work properly actually required that I install the package ‘fonts-jsmath’.

The Linux Guest System is currently taking up 5.37GB of my internal storage, and I finally also found out how to share files between the Guest System and the Host System. Within the Guest System, if on the Host System the root of the user folders is ‘/root/<sdcard>’, then this Host System root is mounted at ‘/host-rootfs/<sdcard>’ (within the Guest System). This means that I can open a path directly to this folder in the file-manager ‘PCManFM’, and bookmark it. (:3)

(Updated 9/07/2019, 17h40 … )