Ap 5131 Firmware Update

This repository contains the firmware updater (chromeos-firmwareupdate) that will update firmware images related to verified boot, usually AP (also known as BIOS or MAIN) and EC.

  1. Ap-5131 Firmware Upgrade
  2. Ap-5131 Firmware Update
  3. Ap 5131 Firmware Update Software
  4. Motorola Ap-5131 Firmware Update

Introduction

The last AP5131 firmware release is v2.3.4.0-008R from 5/6/2013. This release is not publicly available on the Extreme Networks portal, but can be requested by reaching out to Extreme Networks GTAC Support via creating a case in the Extreme Portal or contact GTAC via the phone. Firmware on the H3, H2, M2, Hammer and Magnus can be updated wirelessly when new firmware releases are available. To enjoy the full capabilities of the smart trainers, including ongoing enhancements and Over-the-Air firmware updates you must download the Saris App from the Apple App Store or Android Play. Open the firmware folder that contains the 5 binaries with.tar.md5 extension. Click the BL button in Odin, navigate to the firmware folder, and add the file that has “BL” in its name. Then click the AP button and select the firmware binary with “AP” in its name The AP file will take a while to load in Odin because of its heavy size. Transitional firmware versions are fully supported in Avalanche. Transitional firmware refers to the rare cases when a particular firmware version is required when updating to a newer revision of firmware. For example, when updating the WS5100 v1.4+ to a WS5100 v3.0+, you must first be on the 2.1.1.0-006R firmware, and then update to 3.0.0.0-267R.

Auto update is one of the most important feature in Chrome OS. Updating firmware is one of the most complicated process, since all Chromebooks come with firmware that implemented verified boot and must be able to update in background silently.

Using Firmware Updater

Ap-5131 Firmware Upgrade

The firmware updater was made as a “shellball”, a self-executable file containing updater logic (shell scripts), utility programs, and firmware images.

In all modes, updater will try to preserve few firmware data, for example the VPD sections (RO_VPD, RW_VPD), HWID and GBB flags (in GBB section).

Update

Update manually

Usually you can find the updater in /usr/sbin/chromeos-firmwareupdate on a ChromeOS device (or the rootfs partition of a disk image).

To look at its contents (firmware images and versions):

Usually for people who wants to “update all my firmware to right states”, do:

The recovery mode will try to update RO+RW if your write protection is not enabled, otherwise only RW.

If your are not sure about write protection status but you only want RW to be updated, run:

The --wp argument will override you real write protection status.

Simulating ChromeOS Auto Update

The ChromeOS Auto Update (update_engine) runs updater in a different way - a two-step trial process.

If you want to simulate and test that, do:

Ap-5131 firmware update

Building Firmware Updater

The updater is provided by the virtual/chromeos-firmware package in Chromium OS source tree, which will be replaced and includes the chromeos-base/chromeos-firmware-${BOARD} package in private board overlays.

To build an updater locally, in chroot run:

If your board overlay has defined USE flags bootimage or cros_ec, chromeos-firwmare-${BOARD} package will add dependency to firmware and EC source packages (chromeos-bootimage and chromeos-ec), and have the firmware images in /build/${BOARD}/firmware/{image,ec}.bin. A “local” updater will be also generated in /build/${BOARD}/firmware/updater.sh so you can run it to test the locally built firmware images.

In other words, you can remove bootimage and cros_ec in branches that you don't need firmware from source, for example the factory branches or ToT, especially if there are external partners who only has access to particular board private overlays. To do that, find the make.conf in board overlay and add USE='-bootimage -cros_ec'.

Manipulating Firmware Updater Packages

The firmware updater packages lives in private board overlays: src/private-overlays/overlay-${BOARD}-private/chromeos-base/chromeos-firmware-${BOARD}/chromeos-firmware-${BOARD}-9999.ebuild. Find a template here in chromiumos-base/chromeos-firmware-null.

Usually there are few fields you have to fill:

CROS_FIRMWARE_MAIN_IMAGE

A reference to the Main (AP) firmware image, which usually comes from emerge-${BOARD} chromeos-booimage then /build/${BOARD}/firmware/image.bin.

Usually this implies both RO and RW. See CROS_FIRMWARE_MAIN_RW_IMAGE below for more information.

You have to run ebuild-${BOARD} chromeos-firmware-${BOARD}.ebuild manifest whenever you've changed the image files (CROS_FIRMWARE_*_IMAGE).

CROS_FIRMWARE_MAIN_RW_IMAGE

A reference to the Main (AP) firmware image and only used for RW sections.

If this value is set, CROS_FIRMWARE_MAIN_IMAGE will be used for RO and this will be used for RW.

CROS_FIRMWARE_EC_IMAGE

Ap-5131 Firmware Update

A reference to the Embedded Controller (EC) firmware image, which usually comes from emerge-${BOARD} chromeos-ec then /build/${BOARD}/firmware/ec.bin.

Technical Details

CROS_FIRMWARE_SCRIPT and packaging

The firmware updater is built by running pack_firmware.py, which collects firmware image and extra files, all files under pack_dist folder, archived by running shar, with a special bootstrap stub pack_stub.

Since the verified boot has been evolved with so much differences, we put the updating logic in different files according to the generation of firmware: pack_dist/updater*.sh. Most Chromebooks today should use updater4.sh.

Usually we will increase a “logic version” when the verified boot has been changed so much that the updater code for previous versions would almost won't work. Currently we have defined these versions (Use Developer Info page to find the mapping from board names to product names):

  • Version 1: (EOL) mario (CR48), using H2C BIOS.
  • Version 2: (EOL) alex and zgb.
  • Version 3: lumpy, stumpy, butterfly, stout, parrot.
  • Version 4: Everything after version 3 until now.
  • Version 5: Was created for vboot2, but now it's merged back to Version 4.

This will be mapped to what you should set in the CROS_FIRMWARE_SCRIPT value in ebuild files.

Updater logic

Ap 5131 Firmware Update Software

Here's a detailed list of how each updater mode works:

  • --mode=autoupdate: Invoked by update_engine when a payload is installed.

    1. Check if WP is enabled.
    2. If WP is enabled, update RW / inactive and exit. After system reboot. The update_engine will invoke chromeos-setgoodfirmware after 60 secs, which will update or mark booted RW firmware to active.
    3. If WP is disabled, check if the RO section is same as CROS_FIRMWARE_MAIN_IMAGE. If yes, go 2. Otherwise, do --mode=recovery.
  • --mode=recovery: Invoked by recovery shim after installed.

    1. Check if WP is enabled.
    2. If WP is enabled, update both RW/A, RW/B and exit.
    3. If WP is disabled, update whole image except reserved sections (GBB, VPD). This includes RO, RW/A, and RW/B.
  • --mode=factory_install: Used for factory initial imaging.

    1. Check if WP is enabled, and exit with failure if enabled.
    2. Update whole image except reserved sections (GBB, VPD). This includes RO, RW/A, and RW/B.

Motorola Ap-5131 Firmware Update

  1. Download to your PC: Odin 3 latest version.
  2. Next extract the firmware file.
  3. You should get 1 (if 1 file, choose it here) or 5 (if 5 file, choose it here) file:
    • AP: 'System & Recovery'
    • CP: 'Modem & Radio'
    • CSC_***: 'Country & Region & Operator'
    • HOME_CSC_***: 'Country & Region & Operator'
  4. Add all files to Odin 3.
  5. If you want to do a clean flash, use CSC_*** either use HOME_CSC_*** to keep your data and apps.
  6. Now turn off your phone and enter the Download mode. How to do all methods:
    • Press and hold the Power key , the Volume UP button and the Bixby key.
    • Press and hold the Volume Up and Down keys and then connect a USB cable.
    • Press and hold the Power key ,the Volume down button and the Home key.
    • Connect a USB cable, then press and hold the Bixby button and the Volume down key.
    • Press and hold the Power key and the Volume UP button.
  7. Then connect your device to PC, Odin should detect your phone and COM port number will appear on the screen.
  8. Please specify only the F.Reset time and Auto-Reboot.
  9. Finally press the Start key. Your phone will now restart and disconnect from the PC.