[SRU] synaptics-prometheus: Force the minor version from 0x02 to 0x01. fwupd

Bug #1880542 reported by Shengyao Xue
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OEM Priority Project
Fix Released
Medium
Shengyao Xue
fwupd (Ubuntu)
Fix Released
Medium
Brian Murray

Bug Description

[Impact]

synaptics-prometheus: Force the minor version from 0x02 to 0x01 to make sure the devices can be updated back to 0x01.

[Background]

Synaptics decide to skip 10.02.xxxxxx firmware, so they force the minor version from 0x02
to 0x01 to make the devices with 0x02 minor version firmware allow to be updated
back to minor version 0x01.

They make a simple patch about this:
https://github.com/fwupd/fwupd/commit/0a11350396df38b98ac3e0bc854fea3d4a1d7918

We should land this commit for synaptics-prometheus users.

[Regression Potential]
Since this commit comes from Synaptics and just one simple patch with clear object, it should be fairly low risk.

Changed in oem-priority:
assignee: nobody → Shengyao Xue (xueshengyao)
importance: Undecided → Critical
status: New → In Progress
Revision history for this message
Shengyao Xue (xueshengyao) wrote :

I built a testing package with this commit on my PPA:

https://launchpad.net/~xueshengyao/+archive/ubuntu/fwupd/+packages

Revision history for this message
Shengyao Xue (xueshengyao) wrote :

comment from the author(Vincent Huang) of this commit:

the patch is to help the users who have already updated 0x02 firmware, otherwise, they will no longer be able to update firmware via LVFS.

tags: added: oem-priority originate-from-1880537 sutton
Revision history for this message
Shengyao Xue (xueshengyao) wrote :

Tested the new package on my PPA on a Lenovo ThinkPad X1 Yoga Gen 5, which have a Synaptics fingerprint device(), it works fine:

$ dpkg -l|grep fwupd
ii fwupd 1.3.9-4sutton1 amd64 Firmware update daemon
ii libfwupd2:amd64 1.3.9-4sutton1 amd64 Firmware update daemon library
ii libfwupdplugin1:amd64 1.3.9-4sutton1 amd64 Firmware update daemon plugin library

Download the firmware(xxx.cab) from https://fwupd.org/lvfs/devices/com.synaptics.prometheus.firmware

$ sudo fwupdmgr install 5e92f5765cea1313ad0b8397ccc258b8ea5139b650b53a52c65256eea74d78f3-Synaptics-Prometheus-10.01.3158804.cab
Decompressing… [***************************************]
Authenticating… [***************************************]
Installing on Prometheus…[ - ]
Restarting device… [***************************************]
Successfully installed firmware

Revision history for this message
Shengyao Xue (xueshengyao) wrote :

Because the update of this package is just a trick and minor change, just force the 10.02.XXX firmware be treated as 10.01.XXX version, so it is not very easy to test this update, but I listed the details step below:

1. Find a machine have this type of Fingerpirnt reader. (Synaptics 06cb:00bd)
2. Install Ubuntu 20.04
3. Check the Fingerprint's firmware version:
$ sudo fwupdmgr get-devices | grep Fingerprint -A 8
Then we can see the "Current version" is 10.02.XXX, in my case the it is 10.02.3110269

NB. If you computer is not 10.02.XXX, you need manually updated to 10.02.XXX version to test this package.

4. $ sudo fwupdmrg enable-remote lvfs-testing
5. sudo fwupdmgr update
...
Prometheus has no available firmware updates.

So, we can see with the stock fwupd, we cannot update this firmware now.

6. Update the fwupd to my PPA's version
$ sudo apt-add-repository ppa:xueshengyao/fwupd
$ sudo apt install fwupd libfwupd2 libfwupdplugin1

7. With this new package, and run this command in step 5 again, we will get:

$ fwupdmgr update
• Thunderbolt Controller has no available firmware updates
Upgrade available for Prometheus from 10.01.3110269 to 10.01.3158804
Prometheus and all connected devices may not be usable while updating. Continue with update? [Y|n]: Y
Downloading 10.01.3158804 for Prometheus...
Fetching firmware https://fwupd.org/downloads/5e92f5765cea1313ad0b8397ccc258b8ea5139b650b53a52c65256eea74d78f3-Synaptics-Prometheus-10.01.3158804.cab
Downloading… [***************************************] Less than one minute remaining…
Decompressing… [***************************************]
Authenticating… [***************************************]
Updating Prometheus… [ - ]
Restarting device… [***************************************]
Successfully installed firmware

 So, the 10.02.3110269 was treated as 10.01.3110269 in this updated package, the user can update firmware according the Vendor's update policy.

8. We can confirm this by run fwupdmgr get-devices again:
$ fwupdmgr get-devices

Devices that have been updated successfully:

 • Prometheus (10.01.3110269 → 10.01.3158804)

Rex Tsai (chihchun)
Changed in oem-priority:
importance: Critical → Medium
Changed in fwupd (Ubuntu):
importance: Undecided → Medium
Changed in fwupd (Ubuntu):
status: New → In Progress
assignee: nobody → Brian Murray (brian-murray)
summary: - [SRU] synaptics-prometheus: Force the minor version from 0x02 to 0x01
+ [SRU] synaptics-prometheus: Force the minor version from 0x02 to 0x01.
+ fwupd
Revision history for this message
Yuan-Chen Cheng (ycheng-twn) wrote :

@Brian and Shengyao,

Mario request a version upgrade to 1.3.10 pint release SRU based on

   https://wiki.ubuntu.com/firmware-updates

Per my check, 1.3.10 also include the patch needed in this bug.
Shall we just go SRU 1.3.10 in LP: #1883568 ?

Revision history for this message
Brian Murray (brian-murray) wrote :

This fix is included with the version of the package in groovy, so I'm setting this bug to Fix Released and bug 1883568 will be used for tracking an SRU of fwupd which will include this fix.

Changed in fwupd (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Shengyao Xue (xueshengyao) wrote :

@YC and Brian, Thanks for the help, the we will use the bug #1883568 to track this issue.

Changed in oem-priority:
status: In Progress → Fix Committed
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.