Update

The Update Service

  • downloads update_info.xml files
  • reads version information
  • starts the Update System if necessary

When activ, the phone checks for updates after every provisioning. It uses the URL from the configuration. The server must provide a file named update_info.xml on the configured URL. The update_info.xml contains information about the ROM files version, which is used to determine whether a download is necessary. The option Automatically install update allows a direct installation of new firmware.

The Update System

  • downloads firmware files
  • checks the ROMs signature and size
  • writes the ROM to the phones partitions

The following update_info.xml describes the ROM files version and location:

update_info.xml
<UpdateInfo>
    <Version name="1.2A-00000" url="http://172.17.2.86/image.rom"/>
</UpdateInfo>

The following XSD validates update_info.xml files:

update_info.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="UpdateInfo">
    <xsd:complexType>
      <xsd:all>
        <xsd:element name="Version">
          <xsd:complexType>
            <xsd:attribute name="name" type="nameType" use="required"/>
            <xsd:attribute name="url" type="xsd:anyURI" use="required"/>
          </xsd:complexType>
        </xsd:element>
      </xsd:all>
    </xsd:complexType>
  </xsd:element>
 
  <xsd:simpleType name="nameType">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d+\.\d+[A-Z]-\d{5}(-\d+-g[0-9a-f]{6,20})?"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

Sample for file-server:

Configuration:

HowTo update d-series' updater [EN]

Introduction

Sometimes it is neccessary to update a phone's updater so that bugs are fixed and new features are supported by it. For example is this the case with the D-600 devices already in field testing as they gain the feature of using WiFi as their network connection. To keep those phones up to date their updater needs to support a way to update the main image even if there is no ethernet cable plugged in.

Requirements

As the update-process of the updater doesn't differ from the update-mechanism used to update the main firwmare image, you'll need nearly the same things for that:

  • D-600 device connected to ethernet
  • the image of the new updater
  • http server serving the update image and an update.xml file

As this is the same as providing a main firmware we assume you know how to get the D-600 phone and how to setup your http server to function as an update server.

Where to get the updater's image

The image of the updater can be found at the same place the image of the main image lies, after it has been built on our gitlab server. E.g. the latest build of the updater-update-branch can be found here:

 https://git.gds.auernet/d-series/main/-/jobs/236094/artifacts/browse

Its name is - in this case - lobster-1.7A-00003-15-gf155109-update.img. Always use the one NOT ending with `.unsigned`. If you do not have access to our gitlab server, ask our service for the image.

Serving the image to your phone

There is no big difference in providing this image to your phone to doing the same with a main firwmare image. You have to put the image file where you usually put your main firmware images and edit the file update.xml at the same location.

 <UpdateInfo>
    <Version name="1.7A-00003" url="lobster-1.7A-00003-15-gf155109-update.img"/>
 </UpdateInfo>

Next time you trigger the update on your phone it will reboot, download the image and check if it's valid, install it and boot back into the main system. That's it. Don't be surprised - it takes a whole lot of less time to update the updater than to update the main system as it is much smaller.