A couple of weeks ago, the source code for Ice Cream Sandwich (Android™ 4.0) was released. This meant the start of an intensive period for the engineers at Sony Ericsson, in order to create a working, stable and certified software release of Ice Cream Sandwich for our 2011 Xperia™ phones.
In our pursuit for greater openness in the Android community, we would like to share some exclusive information of the different phases and activities of Sony Ericsson’s Android development, starting with the release of the Ice Cream Sandwich source code, and leading up to the release of a software upgrade for you to download on your phone. Find out more after the jump!
On the Sony Ericsson Product Blog, we have previously announced that all our 2011 Xperia™ phones will receive software upgrades to Ice Cream Sandwich (please check the Sony Ericsson Product Blog for upcoming announcements regarding the timing for these software upgrades). However, before we can roll out those software upgrades, there are a lot of activities to first of all get Ice Cream Sandwich to work and become stable on all Sony Ericsson phones. We call this the Bring up phase.
Secondly, and perhaps most important, we must certify and approve the new software release with all the different technologies, networks, and hardware that a modern smartphone should work with. We call this the Certification and approval phase.
The Bring up phase: Getting Ice Cream Sandwich to work on our phones
On November 14, the Ice Cream Sandwich source code was made available. This was also the day when our engineers started their work in order to get Ice Cream Sandwich to run on the 2011 Xperia™ phones, by starting the Bring up phase, as we didn’t have pre-access to the Ice Cream Sandwich source code.
The first thing we do is to integrate the latest available Android source code with the Sony Ericsson development branch, to make sure it compiles. This is done by our engineering teams, who in addition need to confirm that all test and debugging tools are in place. Since we will continue to build more on this basic set of code, the stability of the software is very important at this stage.
In the first Ice Cream Sandwich source code that was released, the Hardware Abstraction Layer (HAL) – the software layer giving applications direct access to the hardware components – was to some extent adapted for a Texas Instruments hardware platform. However, for all 2011 Xperia™ phones, we used a Qualcomm hardware platform. This means we have to replace the default HAL coming with first source code released for Ice Cream Sandwich, with our own HAL.
The HAL changes have impact on several features on a phone, including the camera, different sensors (such as proximity, light, accelerometer and compass), audio, Bluetooth™, Wi-Fi™, GPS, as well as multimedia and graphics components. Thus, we do not only have to modify and configure the HAL according to the Qualcomm hardware platform, but also all the other hardware components used in a phone.
Another layer of complexity to the adaption work is the fact that even though all the 2011 Xperia™ products are based on the same hardware platform and use the Qualcomm 8255 chipset, there are several variations in screen size, memory, peripheral components (such as the camera) and modem constellations. At this stage, we make sure to get all the legacy and basic functionalities (such as phone calls, SMS, MMS, SIM card and access to the SD card) to work.
Integrating Android patches
In the Bring up phase, another task is to integrate a number of patches, to improve and adapt the Android legacy code according to our needs. These are customised patches important to the phone, such as improved error handling. To avoid fragmentation, many of these customised patches are actually contributed back to the Android Open Source Project, so that they are included in the default Android source code for the next software release. This work has made Sony Ericsson one of the main contributors to Android. At this stage, we also integrate our own feature upgrades, such as customised graphics.
As we incorporate these customisations, we also do a basic quality check to confirm that all the integrated changes fulfill the required quality level. Here we run many tests cases, such as confirming the functionality of the music player, video streaming, USB and DRM. When we eventually merge all the functionalities in to one code branch, we run more tests to ensure that all our legacy user scenarios run without problems. This also includes that we ensure that apps installed from Android Market are working properly in general.
Getting the software stable and adding localisation
When all functionalities have been merged into one code branch, we start on the stability tests to make sure the software runs stable in all sorts of use cases. Besides pure lab testing, we rely on a number of live users for testing and reporting defects. And along with pure stability testing, we are continuing with the quality tests. For example, we are performing power consumption tests to improve the power consumption in different user scenarios.
Another important task in this stage is to integrate the localisation support in our applications. In most cases, we are adding more languages to the Android software itself. For example, in the software upgrade we rolled out to our 2011 Xperia™ phones in October, we added support for bi-directional languages such as Arabic.
Once all of these tasks are done, and the software is stable and tested, the software is ready to be submitted for certifications. However, the Bring up phase is overlapped by the Certification and approval phase, as some parts of the software are ready for certification earlier than others. As soon as a specific software module is ready, it’s sent for certification. So while one module can be in the Certification and approval phase, others are still in the Bring up phase.
The Certification and approval phase: Making sure the software and hardware is compliant
A phone comes with parts and software working with a number of different technologies, such as Bluetooth, Wi-Fi, modem and so on. To use these technologies, we have to certify that the new software is compliant with these technology standards. We therefore need to certify a new software release for all of these different technologies due to operator community requirements (GCF , PTCRB , CCF) and Intellectual Property Rights (IPRs), if we have modified the software module related to such technology.
To a great extent, we try to get global certifications, but in many cases specific countries demand specific tests. For a global, worldwide product, we need local certifications approvals in up to 80 countries. For all these external certifications we are either allowed to test ourselves, and submit evidence that we passed, or we can get external test houses, such as Cetecom, to perform the tests.
Besides the operator and IPR certifications, we must externally comply with certifications for regulatory requirements. For example, we must show evidence that we comply with spurious emissions, SAR, EMC, as well as other environmental and health compliances. But when it comes to software upgrades for existing phone models, not all of the regulatory certifications are needed as they have already been performed once.
On top of this, Sony Ericsson is doing internal self certifications in areas we have identified as extra important to deliver the highest possible quality.
All certifications are based on each phone model, and even if a phone model has been certified with a previous software release, the parts which have been changed must be recertified if we are doing a new software release. So if we, for example, have made changes to the Wi-Fi module in an existing phone model, we need to recertify it. When we are working with a new Android release, such as Ice Cream Sandwich, all the affected areas must be recertified.
Another example is if the Bluetooth stack is changed. Then we have to recertify the Bluetooth part of the new software release. There are many apps that needs to be recertified for each of our phones, if they are changed in a new Android software release, for example Bluetooth, MMS, Wi-Fi, HDMI, DLNA and Adobe FLASH. Besides this, we rerun the Android Compatibility Test Suite (CTS) to make sure that we are compliant.
Contrary to what people may think, it is not the Bring up phase, but the Certification and approval phase that is the most time consuming process when it comes to getting a new software release out on our phones. This is one of the major tasks that are legally required from us as phone manufacturer, but is a task that the custom ROM community doesn’t have to take into consideration. Furthermore, by putting all this efforts into testing and certification, we ensure that quality and conformance is at a top level, in benefit for all consumers worldwide.
Additional approvals might be needed
In some cases, the new and complete software release has to be approved to be used in all the different networks that our phones should work in. Many operators also want to customise the software according to their requirements, which in turn are based on their market, network, differentiation and business model. We implement all of these customisations and create a variety of software packages and releases for each operator.
When all of this is done, we are ready to roll out the software release variants as software upgrades to operators and consumers around the world. The software upgrade can then be downloaded and installed either in the operator’s own update tool (if they have one), from Sony Ericsson’s PC Companion tool, or by over the air updates (FOTA – Firmware Over the Air).
It should be pointed out that this summary of all the activities and phases is somewhat simplified and is meant to provide a general picture of what we do from the release of the first Ice Cream Sandwich source code, until it is released to our consumers. From Sony Ericsson, we hope it has shed some of light on the work being done for the software upgrades.
If you have any question on this topic, feel free to drop us a line below. We will try to respond as soon as possible. For general software announcements and product information, please check the Sony Ericsson Product Blog regularly.
- Check the Sony Ericsson Product Blog regularly for product information and software announcements.
- Read the 2011 Xperia™ phones Ice Cream Sandwich software upgrade announcement on the Product Blog.