Ice Cream Sandwich – from source code release to software upgrade

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.

Ice Cream Sandwich upgrade process

Illustration showing activities from source code release, to software upgrade.

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.

Android architecture showing position of the HAL.

Illustration showing simplified Android architecture.

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.

More information:

Comments 208

Sort by: Newest | Oldest | Most popular

  1. Pingback #1

    […] And now, Sony has expelled a beta ICS ROM for their Playstation approved Xperia PLAY smartphone for developers to exam as good as to accumulate feedback from those that try a beta on their phones. The beta is usually endorsed to be flashed by modernized users, and needs an unbarred bootloader that will unfortunately forestall we from updating to a central ICS refurbish whenever it gets released. Also, a ROM comes but Wi-Fi or support for Google services like a Market, Gmail, etc, as those are still undergoing certification. […]

  2. Pingback #2

    […] to get the latest software release from Google working on our Xperia™ smartphones in the article Ice Cream Sandwich – from source code release to software upgrade. Then we released ICS alpha and ICS beta versions of the coming software […]

  3. Pingback #4

    […] and Wi-Fi™ are not included in the beta release due to that they are still waiting for the certification and type approvalto be finalised. Also ich habe ja das Xperia Play und gerootet ist es auch, aber noch nicht […]

  4. Pingback #5

    […] Unlock) and Wi-Fi™ are not included in the beta release due to that they are still waiting for the certification and type approval to be […]

  5. By Nelu Rosca


    Does the Sony take in consideration the option of “On-Screen Virtual Buttons” for Arc S on next Andriud 4.0 upgrade?
    As everybody knows all 3 physical buttons are the weak point in Arc and Arc S. “back button” is so hard to be pushed…
    Anyhow, since in the original Android 4.0 ICS there is “On-Screen Virtual Buttons” function I hope that Sony will take in consideration to offer this function for all users which are not happy with the physical buttons on Arc S.

    I hope that Sony will not to disappoint me again the same as they did with the last generation of theirs Vaio Laptops and also I hope that somebody from Sony will read my comment, will reply with a good news about the biggest issue of those telephone – disastrous “back button”…



    pls give atleast 2.2 upgrade to xperia x8…….we dont want ur ICS…..pls give 2.2 update…..pls pls pls



    it is already the end of march 2012…when it will come???? all othr brands including samsung have already given ice cream sandwich to its customers. then why sony treating their customers like this? all sony customers say something about this…….

    • By Anna Aleryd



      We have no information to share about the ICS update right now, but please stay tuned to the Sony Xperia Product Blog for general product information.


  8. By Mirza Zeeshan


    How has bluetooth stack improved in ICS? What about MW600 ID3 tag compatibility issue with xperia arc?? AVRCP 1.3 upgrade?? (Trying to post this in different news sections related to ICS to get the developers attention)

  9. By Mirza Zeeshan


    How has bluetooth stack improved in ICS? What about MW600 ID3 tag compatibility issue with xperia arc?? AVRCP 1.3 upgrade??

  10. By Gabriel Lara de Souza


    I have a Neo V, and I like the Sony firmware, but I really think some native apps like telephone, contacts and messenging should be improved. They are intuitive, good-looking, but slow, sometimes it takes too long to dial after you press the call button. I do like Sony Ericsson cell phones, it’s my third and I intend to keep now with Sony phones, great work.



    Hi, i just came to know that none of xperia support native video call over 3g network like some samsung android phones. I recently owned xperia ray and get disappointed. It should taken in account while adopting andy 4.0 upgrad in our xperia so that after that upgrad we can use native video call over 3G… Thousends of xperia lovers like me will be happy if such will be possible

  12. By Rakesh Tanwar





    I, my father, my 4-5 friends and my younger brother are using Sony Ericsson from last 5 years and used W700i, P990i, W200, J230i, W810i, Z550i, W550 and so many. Each year i and my brother have changed SE high end mobiles. Just recently bought Xperia x10i and Xperia arc S. These are excellent phones.
    But when i got news from some internet sources, i come to know that X10 is not going to get ICS (ice cream sandwich or Android 4.0). I am very upset that my X10 is not going to get ICS. Whereas others like samsung, htc are launching ICS for their old version phones. My friends are annoying me that SE phones are costlier than samsung and htc and SE overlooks after sales of phones. How this can be possible? X10 has less specification than samsung galaxy s2 and other. On the contrary, X10 is costlier than samsung galaxy high specification phones. If ICS will not be released for X10, i will never come back to SE.

    • By Ian Krauss


      I totally agree with you, really disappointed, i’ve bought my ArcS at the begining of the year, and five month later there was Jelly Bean 4.1, and now 4.2 and we are still fighting for ICS! they forget about us and our phones, next year, the so beloved Xperia T will be left on 4.2, and then they’ll forget of it, and so on… You disappointed me Sony. Next phone: Nexus!

  14. Pingback #17

    […] turned on – Since we published the ICS alpha ROM, the GSM modem and FM radio have passed thecertification and type approval, and they are therefore turned on in this ICS beta release. Updated email client – The UI has […]