A look at Android updates from a developer's perspective

There is no code without errors. Peter Norton said: "There is a place in the museum for the ideal code: all sorts of antiquities are valued there." And to fix errors - there are updates.



I would like to share my view on updates from the point of view of the Android runtime developer. Part of our large team is located in Russia, I am involved in the Java subsystem, optimizing the virtual machine and correcting minor issues. Our area of ​​responsibility is everything above the core and below applications. We want to achieve maximum application efficiency, including energy efficiency. This is a division of Samsung that is not visible to the user, but very important, because an error in this layer leads to the incorrect behavior of many applications.



Today we’ll talk about how the current Android system update works, what are the opinions of vendors on this subject, and what new trends are observed in the coming years. As well as tips for users: how often to update, what patches to install and how to help developers find bugs faster.





Source - xkcd



How to update



There is a problem, which is that a large number of users, as it turned out, do not update their phone at all after purchase. Many errors would not have happened if users had updated their phone on time. Several years ago, updates were not made so often, it was necessary to put a lot of checkmarks, periodically press the update button. Now in modern versions of Android everything is quite simple, just check the box when buying a phone, and it will be updated.



If you turn off the updates, then we do not receive the correction of critical errors. Yes, individual applications can be updated via Google Play, but serious errors, especially in safety, remain uncorrected, and some people who have not pressed this button or do not know how to do this continue to complain about application errors.



Also, the moment is quite interesting how the vendor can affect the use of only the latest OS images. For example, Samsung devices over the past few years have such a feature as Rollback Prevention: hardware fuses that encode the least acceptable version of the OS. Older versions may contain known vulnerabilities, so you just can’t download the old OSes to your phone.



Corporate Updates



The B2B market has its own characteristics. There you can update only on the recommendation and under the strict guidance of IT and IS departments. Corporate, users need to carefully listen to the recommendations of IT-services, and IT-services to use solutions to minimize risks. For example, Samsung Knox E-FOTA .





There the functionality is:



  1. Selectively update a specific list of devices
  2. Control the list of firmware used by the company
  3. Timing for updating according to the work schedule


What future updates will look like



Now there is a trend towards modularization of Android. In the long term, Google is developing a new Fuchsia operating system, it is still quite crude, but the principles laid down there are already slowly moving to Android. One of the things is modularization. Some components stand out from the monolithic operating system, which can be updated independently via Google Play, just like applications. Google took this step, because they are also not happy with the situation where people do not put updates, plus they try to reduce the fragmentation of their devices so that the component is less tied to the vendor and more to Google. The average user does not know what Android Runtime is, and saying “Would you like to download the new version of Android Runtime?” Looks a little silly. Therefore, Google is introducing an invisible update system. In principle, it has existed for a long time, for example, for GMS (Google Mobile Services), this system is based on plugins, and there the plugins are updated invisibly. Google is implementing the same principle for the basic Android components. That is, at some point we will get an operating system that will rarely update the kernel, but in fact it will be updated often in its subsystems. You won’t even need to restart the phone. Now is the transition period. The monolithic system has its pros and cons (we recall the controversy of Torvalds and Tanenbaum 27 years ago), but now Google has gone to the microkernel architecture and independent updating of components.



Application developers would like to have a stable system and less fragmentation. But this is not always a plus for phone manufacturers, since reducing fragmentation leads to less differentiation, since we can no longer implement new optimizations in this component if the update comes from Google Play. This is the other side of the coin. And the user will soon be freed from the need to think about whether he needs to update this or that component. In the future, Google will make the system such that if you buy a phone and connect Google Play, then you automatically subscribe to all updates.



How to help developers



Feedback from users is very important, you need to check the box to automatically send it. Some problems can be solved simply with a small update of the operating system. Based on the feedback, Samsung decides what exactly needs to be fixed and what users are unhappy with, for example, it tracks the start time of the application - of course, if the person agreed to send this data and ticked it.



So, to summarize, what we, as developers, expect from the user:





Posted by: Ivan Maidansky,

Expert Software Engineer

AI Compiler Lab

Samsung Research Center in Russia



All Articles