This time, Alfred, Marius and Dalton presented. Go to devices.ubuntu-touch.io for info about whether your device is supported.
Questions were taken first this time round.
Questions
The News section of our Forum is the best place to post questions for the Q&A. YouTube live chat, Telegram and Matrix are other places to post a question.
If you didn't know, the Forum questions get priority.
Pro1 (X) device
Richard commented that F(x)tec developers have received the specifications to work on for the Pro1 X. They claim that it will take UBports two months to port to this device. So what is the relationship between Fx and UBports and do they make a payment for the services provided by the core team? The first thing is that UBports doesn’t own the full intellectual property rights to UT. Much of that remains with Canonical, so any third party which wishes to sell a device with UT installed needs to have a licence agreement with Canonical. In order to make that easier, Canonical has been kind enough to allow UBports to sub-licence the core elements needed for UT. There is no payment required for this sub-licence. As with any commercial body, F(x)tec could sponsor UBports, either by means of a one-off donation or on a regular basis. All we can confirm at the moment is that we are working on the licensing arrangements with them. The contribution we have made to the porting effort for the Pro1-X device so far is very small. Our focus is elsewhere. If their device is Android 11 based rather than Android 9, any projection of how long porting would take is very open because we are not even close to Halium 11 yet.F(x)tec has their own team working on Ubuntu Touch for the Pro1-X device, and members of our community are in contact with them.
GPU acceleration
Domubpkm asked about GPU acceleration on Android 9 devices. Is that headed for OTA-17? There are issues not just with Android 9 devices but with all devices, including the PinePhone. There is quite a lot of work and testing needed still so OTA-17 is optimistic. If it works well for PinePhone for example but not for others we may consider a selective release. Not all devices have issues but on some there is for example a 128x128 pixel area of the screen which for some reason freezes.
Simplified architecture diagrams
Dad_and_alive commented about Mir, Wayland, Lomiri, HAL etc etc. that despite all the attempts to explain what these are about, they are still very difficult to understand. Are there any simplified architecture diagrams available to explain how they relate to each other, not just for lay people but for serious developers making a start with UT? There are bits and pieces available but they don’t reflect the structure very accurately. The problem is that to create a diagram, someone needs to have a detailed understanding of how they fit together but they also need to be quite skilled in graphic design, in order to be able to communicate that. There has been some discussion in the past about whether we could create Q&A shows on different levels, with some being highly technical and others more at beginner level. We do try to maintain a balance, so that everyone gets something from them.
Browser audio playback
Rik also asked whether any progress has been made with browser audio playback in the background? It was going to need ContentHub or MediaHub development? There is some integration needed between Qtwebengine and MediaHub. The element that is needed works to ensure that you don’t occupy all the cpu when doing that, so don’t drain your battery in the process. Doing that in practice is going to be quite difficult because Chromium (which is what Qtwebengine is based on) undergoes some dramatic changes with every update, so what works for one configuration may break at the next update. The same applies to getting video to work in the browser. Actually for video there is an alternative way to achieve the goal without doing it inside Chromium, using ‘video for Linux’ but that won’t give us audio, as the integration needed for that is likely to be tighter. So in summary we have not got beyond the exploratory phase.
UT devices recommendations
Rik in addition asked for suggestions for a fairly new and good quality UT device for around $150 US?
Alfred suggested Xperia X and Pixel 3a, which he uses on a daily basis. They are likely to have support for quite a long time and both have a wide user base, so they benefit from a lot of testing. It is still just possible to buy the X as ‘new’ which is a bonus. A phone with an Android 9 port is likely to suit you best at the moment because that is where we have our main focus. OnePlus5 is a great device and we will hopefully get that one working properly soon. Avoid devices that don’t have 4G. That should be regarded as a basic these days. Nexus 5 was a nice device but is really showing its age now. You are likely to see hardware failures with it but of course if you can get it for a very low price, it is okay as a temporary solution.
Camera progress
Dave wanted to know if there has been any progress with cameras? His Xperia X skips between working properly, not working and a half green screen. Flash and zoom has never worked. PinePhone’s camera doesn’t seem to work at all? On the PinePhone, get off the kernel upgrade branch, where there is no camera support at all. In rc and devel it still has no video recording but it can take stills. With Xperia X it seems to be a timing issue with initializing the camera. Sometimes the app needs a reboot but sometimes you can resolve it just by switching through resolutions. It seems to be some sort of race condition. Alfred has had a look but it is quite a difficult one and he really needs someone to step in and offer some help.
Cliff asked about the recent updates to the Camera app. Does it mean that the app now has a new maintainer who will be tackling the outstanding problems?
Sadly not. There were some updates that were essential when we undertook the upgrade to OTA-16 but we still need an official maintainer for that app,.
Firefox
There was a question in live chat from Vincent about why we don’t bring Firefox into UT? Servo or gecko would not easily integrate into our software, whereas Qt is a core part of it already. The Andoid app is a Java and Cotlin based front end for the gecko engine, so of no use as a basis for us. Firefox desktop is nearer but it has not been optimised for small screens. With Morph, the rendering engine is something we get from upstream so we are relieved of the burden of maintaining that. It also fits in naturally with the rest of our UI with little effort. It was noted in live chat that Sailfish OS uses Firefox. They were stuck on an old version and got no benefits from an upstream, as we do. Apparently they are now getting some updates through, so someone with the time could maybe take a look at the progress they are making and see if we can learn anything from it? There are issues in Morph and you can check those in the tracker. Even if we could somehow get Firefox working, it wouldn’t be immune to the same problems we experience with Morph. Sponsors were thanked.
OTA-16
OTA-16 is set for release on Monday 15 March. Finally we upgraded our version of Qt from 5.9 to 5.12! The work on that has been ongoing since July. A big shoutout to Rodney for all that he has done on this. Over 300 binary packages have been changed in the course of the upgrade. The team working on the transition this time round is much stronger than we had for the 5.4-5.9 transition and it was a much better experience overall. There are also fixes in Morph browser from Kugi, Chris and Daniel Kutka.There is a new recent downloads pane that appears for the current browsing session. The experience is now much better in desktop or tablet mode. There is a ‘re-open tab’ button and we see the return of custom user-agents. You can configure those for a particular site.
Xperia X has been given better battery life and better stability. Video recording now works on that and on the OnePlus3/3T.
Florian is getting close with the Nexus 6P. The fingerprint reader and selfie cam still need to be fixed.
The Oxide web engine has been removed. Anything which relied on that will now cease to function. If there is a real emergency you can bundle the old package with your app for a while but please don’t do that. We would much rather help you with the steps necessary to overcome the dependency.
The Anbox installer (not Anbox itself!) is now included by default, for OnePlusOne, Nexus 5 and Fairphone 2. With the BQ tablets and the MX Pro you still have to install a custom boot image, so the install is not persistent.
The Samsung Galaxy S3 Neo+ now has an image. But note this is only the Gti9301i!!!
Documentation improvements
Ari has been doing a fantastic job on improving the porting documentation. Some of the information has been taken from the porting notes wiki, so a big thanks to everyone who contributed to that. That work has been used, re-used and modified but there were lots of authors so it wasn’t possible to approach everyone individually for their permission. Although Ari is very skilled at the documentation side of things, he would still appreciate some more input from people with a detailed technical knowledge of porting, to check that the content is correct. Alfred and Nikita have already helped a great deal with that. Just to be clear, this is documentation to help you with the process of porting devices which are based on Android 9.
Development insight
Alfred has been modifying some of his apps. He has been working on a Nextcloud and Owncloud client called GhostCloud. It is a native application written in C++ with QML. It gained downloads in the background using downloads version 0.9.6. From this week the version is 0.9.8, which includes an ability to get account information other than from a locally held database, using the system settings page. You can add an online account there and then authorise the app, in order to browse through your instances. Further fixes are queued, with Kugi providing the fix for dark mode. He also fixed the ‘add new account’ button so that it points to the right part of Settings when that is already open in the background. It worked already where Settings was closed but not when it was open! By the time of the next Q&A the app will hopefully get version 1.0, with an ability to share public links. Soon after, there is a camera roll backup function which it would be nice to include. Backing up your photos automatically to your cloud would be great. The app already makes use of the DownloadManager.
Alfred and Marius have been chatting about the security aspects of UT. An issue which has been talked about since the early days is access control for binders. On Android phones, binders are used for two or more processes to communicate with each other. Those binders are not currently mediated via AppArmor, so there is no blocking mechanism available. It would be nice to have some way to prevent random applications having access. In conversation with the upstream AppArmor developers, it turned out that they already have something in the works that might be useful. It is still very early days on that but a first test target is the Xperia X with Mainline kernel. Version 5.12 of the kernel will be along soon and that will lay the basis for a potential upgrade. If we can get it working on a new kernel, the hope is that we can then start patching to make the same solution work with earlier kernel versions, such as 4.9 on the Pixel 3a. The end effect would be to allow us to use the settings in AppArmor to block apps from accessing services that they should not be using. This is not a short term project for sure but the way forward for it at least seems to be pretty clear and assured.
Finally, there was a brief discussion of the road towards 20.04. We know of course that 16.04 goes out of support next month. We will miss that deadline but good progress is being made. The aim is to make Lomiri run on an Android device. Ratchanan got Lomiri UI toolkit built and the gallery from that ran, using 20.04 on an Xperia X. He is working on fixing Lomiri App Launcher’s tests. This is the function which launches all parts of an app and then dismisses all parts of that app when it closes. A lot of fixes have come alongside the packaging of Qtmir into Debian. His next target is building System Settings.
Rodney started with libusermetrics, doing a similar thing, importing all the necessary dependencies. That in turn would have needed Click (our app building platform) to be modified to make the changes possible. However, Click relies on packagekit plugins and those no longer exist. The plugins provided a way for many different types of build (e.g. snaps, Flatpaks) to be managed from a single interface. So the solution was to remove the libusermetrics dependency on Click. The SD card manager is written in Go and that too has been successfully moved across. For context, this is a description of what has been happening in just the last two weeks. In other words, progress at this point is fast.
Special thanks
Dalton added in the end his special thanks:
"What this illustrates is that we are now in a position where we have an amazing group of very talented people working on UT and we are in a much better position than we have ever been before. It isn’t anymore just a matter of Marius, Dalton and Florian having to work on or review everything, which is a cause for celebration."