Background

Remix OS is a fork of the Android-x86 project, done by Jide Technology, a company made of a few ex-Google employees (three listed on their website). The company also had hired the cofounder of Android-x86 to work on Remix OS, but he left the company at the end of 2016. The whole point of Remix OS is to bring an Android-powered OS to PCs and PC-like devices. It is done by building upon Android-x86 (so it’s a fork in the git sense, since it gets rebased upon new Android-x86 releases), replacing the default shell with a proprietary, Windows-like UI. This allows running Android apps in windowed mode, with a taskbar and a start menu.

There may be other changes done to the system, but it’s hard to know due to the proprietary nature of the OS. The kernel sources are published on GitHub, but that’s about it.

Trying it out

Remix OS system tray, showing the memory applet

Just like the base Android-x86, Remix OS comes in LiveCD form. I was not expecting much, given my experience with Android-x86, but Remix OS surprised me. It booted and ran fine! No crashes or lockups. Fascinating, and hard to say why there’s such a difference. It could be a kernel option, or something else that got changed. Perhaps it may be a good idea to try launching Android-x86 with the Remix OS kernel. GRUB on the LiveCD is customised to have the entries for resident mode (which means that changes done are saved) and guest mode (classic LiveCD without any changes being saved).

From features that the kernel provides, the vast majority works out of the box. Display, brightness adjustment, wireless internet (iwlwifi), keyboard, camera all work fine. The main things that are still missing are battery level indication and audio. The kernel bug tracker already has a patch for audio, and I have submitted a bug report for the battery. Suspend and resume support is a bit confusing: if I choose to suspend, the screen goes dark, and if I press buttons on the keyboard it resumes after a while, but I’m not yet sure if it actually suspends in the mean while. It seems that it suspends and then resumes automatically in a loop. I’ll need to do more tests to figure that out.

When starting for the first time, Remix OS presents a list of languages, which for the time being is a pretty short one, as it has English and two varieties of Chinese (no wonder, since all of the Jide developers are Chinese). On the other hand, Remix OS includes a pretty much vanilla Android settings app, which allows selecting from all of the languages supported by Android, so the startup language option only applies to the Remix OS addon apps/settings.

One thing I find rather confusing is that there is a very large ⊕ (cross-in-a-circle) widget on screen, which seems like some sort of debugging tool to me. It’s constrained into an area around the size of a regular app window and can be dragged around, but bounces to the left side of the screen when released and is always on top. Except for the taskbar, which is why I just drag it beneath it so that it gets hidden.

Remix OS notification tray, accessed through the three-lines tray icon

Installation

Interestingly enough, installation is the hard part, of all things. The problem is that the official way to install Remix OS is to run an installer from Windows… which is something I wouldn’t do out of principle, a standalone OS should never demand an existing Windows installation!

Thankfully, Jide only hid the Android-x86 installer, but it’s still there on the LiveCD. What is needed to launch it is to edit the GRUB options of the resident entry. I removed the SRC= DATA= USB_DATA_PARTITION= entries, and added INSTALL=1. Note the 1 to start the interactive installer; reportedly, a value of 2 automatically installs it on the first partition, which can potentially wipe your data!

The installer is the exact same Android-x86 installer, with the same caveat of not being able to install into F2FS partitions and requiring a keyboard. Once the installation is done, EFI system partition gets a EFI/Boot/grubx64.efi file that, when booted by the UEFI, brings you to the GRUB options of the installed Remix OS. Like Android-x86, there are two options: regular boot and boot in debug mode. Unlike Android-x86, there was no need to use debug mode.

Touch friendliness

As Remix OS is based on Android, the touch-friendliness is excellent. Apps are all optimised for touch input, whereas the Remix OS shell is good enough with that as well. It has a taskbar and system tray, also a notification area that is accessible by pressing a tray icon. That is all very reminiscent of Windows 8/10. It also has a start menu that lists all of the installed apps in an Android-style grid list.

Remix OS start menu

One thing that is still not great for touch is window management. Remix OS adds window decorations to each running app, with buttons to close, minimise, maximise and fullscreen. They are somewhat difficult to press, since they are smaller than most of the other elements. And in that regard, Sailfish OS (and to some extent Windows) nailed it: the solution should be gesture support for all that functionality, not window decorations.

It is curious that there are separate fullscreen and maximise buttons. Despite the name, the fullscreen button doesn’t actually make an app fullscreen, but rather it maximises it hiding the window decoration; the taskbar remains visible unless you set it to auto-hide. Oddly enough, that also has an effect on app appearance; for instance, the app store displays two items per row when maximised, and three items per row when fullscreened. It might have something to do with rotation detection. Generally maximised apps behave nicer, but of course can’t be tiled. But then I’d consider it a better idea to allow fullscreen and windowed mode only, skipping the maximised state. There might be a technical reason preventing that, though, since I noticed that putting an app in and out of fullscreen mode restarts it, which may cause the app to forget all your input (such is the case with Termux, the terminal app).

Resizing windows works, but is rather awkward since there is little indication of where to drag to resize. It’s just “vaguely around the corner of the window”. There is also no support for automatic alignment (“sticking” to other windows) yet, something which is ubiquitous in Linux DEs.

Interface scaling

Since Android is designed with touch in mind, scaling up is needed less; but still nice to have. In the Android settings app, an additional entry called “Experimental features” is added in Remix OS, which has an option “Set zoom level” that allows choosing a scaling level from 1x to 2x in 0.25 increments. 1.5x would match the screen DPI exactly. Would; but the section is called “Experimental features” for a reason, apparently, as that setting causes the taskbar to bug out and only display the start button on the right as if it was a vertical taskbar in and of itself. As such, I had to use the 1.25x setting, which is overall quite good for Android.

Scaling is done perfectly: I can see no problems with it, as all fonts and icons appear sharp, just scaled up. This is partially due to Android having been designed with a variety of form factors in mind and HiDPI being a very common technology in the mobile space. And partially it must be thanks to Jide developers, since the Remix OS-specific UI items are scaled up just as nicely.

IRSSI, command-line IRC client, running on Termux

App selection

Remix OS allows for running apps from the Google Play store directly, although it is not enabled by default. There is a built-in Google Play service activator that comes with a warning that Jide is not responsible for any breakage that may occur when using it. And initially, breakage there was: the activator makes the Google Play Store, YouTube and GMail apps appear, but they all crashed when trying to render any web content. However, after they were updated from the Jide app store and after a restart, the apps work properly now. Mostly, anyway; YouTube still can’t really play videos, but that might very well be due to missing codecs. Not that videos without audio support are that useful anyway.

The preinstalled browser is Google Chrome. Curiously, there is also a Chrome mode selector app, which changes whether Chrome requests mobile or desktop versions of websites by default. The default is the desktop version, but at this scaling and for touch input I actually prefer mobile sites instead, especially since Chrome settings include a “Request desktop version of this website” option for blacklisting misbehaving websites.

The Some other noteworthy preinstalled apps are the file manager (though it is basic and user mode, so another file manager from the app store is better used) and Termux, a terminal emulator app. It goes without saying that you get full control over the system by using su; and root permissions are also managed by Android in that you get a question of whether to allow root access to an app if it’s requested. Android 6.0 Marshmallow also provides fine-grained on-demand app permissions, for instance, on first boot it lists what capabilites an app requests and allows blocking the access if wanted. That is in fact more fine-grained than Windows programs, and is in line with what polkit provides on Linux (the caveat being that polkit is for the most part underutilised by Linux distributions and there is little program support for it too).

I was surprised to see that Google Play has Microsft Office Mobile apps, just like Windows Store does. However, unlike the Windows Store equivalents, these apps require an Office 365 subscription always (on Windows, that is only required for tablets larger than 10.1 inches in size… which is exactly the size of this tablet!). Now technically I do have an Office 365 subscription courtesy of my university, but that would for one be cheating, and for another you don’t want to keep your documents on the cloud that expires as soon as you leave your current university… So while it’s intersting that Office Mobile runs on Android, and allows viewing OOXML files, it’s pretty useless otherwise.

I’ll do a deeper comparison of productivity apps later on. For now I’ll just say that all of the Google Play store should at least in theory be available for use.

Settings menu and Chrome in YouTube

Resource consumption

The boot time of RemixOS is pretty high at 29 seconds total (not counting GRUB). The boot process first goes through the Android-x86 boot logo phase, then the A N D R O I D console phase, then after modesetting it shows the Remix OS logo, then an Android popup saying that apps are loading, and finally boots to the Remix OS desktop.

The RAM consumption on the desktop with the Termux terminal open and Google services activated is 495 MiB, with 2.1 GiB cached. This is much more reasonable compared to the Windows statistics. Likewise, the whole installation takes up 2.5 GiB disk space, much more reasonable compared to Windows.

Conclusion

Overall I’m pleasantly surprised by Remix OS, and could see it as a viable main OS to use on the device. The main make-or-break argument will be productivity apps, which I’ll review later on.

The good:

  • Touch-friendliness
  • Google Play store working out of the box
  • Light on resources

The bad:

  • Lack of proper installer
  • Some obvious bugs
  • Relatively slow boot

The ugly:

  • Mostly proprietary (though built on Android-x86, so it’s mainly proprietary UI)