linux-surface / surface-uefi-firmware

UEFI firmware updates for surface using fwupd. WIP, be careful.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

is the new firmware 2022 downgradeable ?!

aramo9696 opened this issue · comments

my surface book 2 has updated to the latest firmware 392.72.768 i would like to downgrade to unlock undervolt since its been locked for whatever reason.

Theoretically yes (you can add a flag to skip the version checks), but I'd try to downgrade all firmware parts as I don't know whether there could be incompatibilities if you run firmware versions from different updates.

Theoretically yes (you can add a flag to skip the version checks), but I'd try to downgrade all firmware parts as I don't know whether there could be incompatibilities if you run firmware versions from different updates.

mate i am a noob when it comes to this especially Linux is there any way you can help me please

Theoretically yes (you can add a flag to skip the version checks), but I'd try to downgrade all firmware parts as I don't know whether there could be incompatibilities if you run firmware versions from different updates.

i dont mind downgrading all parts to be honest i just want to downgrade to able to undevolt this surface book 2

also getting this error when i try to downgrade ** (msiextract:18060): CRITICAL *: 23:12:19.283: libmsi_query_fetch: assertion 'LIBMSI_IS_QUERY (query)' failed
./repack.sh: 162: cd: can't cd to out/SurfaceBook2/

a@a-Surface-Book-2:~/Downloads/surface-uefi-firmware-master$ ./repack.sh -m cab -f ../SurfaceBook2_Win10_18362_21.101.14869.0.msi -o out
==> Found Model: SurfaceBook2
==> Unpacking driver package

** (msiextract:18075): WARNING **: 23:12:25.293: open file failed for ../SurfaceBook2_Win10_18362_21.101.14869.0.msi

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_new: assertion 'LIBMSI_IS_DATABASE (database)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_execute: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_fetch: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_new: assertion 'LIBMSI_IS_DATABASE (database)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_execute: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_fetch: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_new: assertion 'LIBMSI_IS_DATABASE (database)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_execute: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_fetch: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_new: assertion 'LIBMSI_IS_DATABASE (database)' failed

** (msiextract:18075): CRITICAL **: 23:12:25.293: libmsi_query_execute: assertion 'LIBMSI_IS_QUERY (query)' failed

** (msiextract:18075): CRITICAL *: 23:12:25.293: libmsi_query_fetch: assertion 'LIBMSI_IS_QUERY (query)' failed
./repack.sh: 162: cd: can't cd to out/SurfaceBook2/

a@a-Surface-Book-2:~/Downloads/surface-uefi-firmware-master$

Seems like msiextract fails for some reason... Seems like it has trouble opening the file. I assume the path is correct?

yup the path is right.. ive tried different type of firmware's nothing always giving me errors

a@a-Surface-Book-2:~/Downloads/surface-uefi-firmware-master$ fwupdmgr install'/home/a/Downloads/surface-uefi-firmware-master/out/SurfaceBook2/SurfaceBook2_SurfaceUEFI_390.3192.768.0.cab'
Command not found

Use fwupdmgr --help for help
a@a-Surface-Book-2:/Downloads/surface-uefi-firmware-master$ fwupdmgr install'/home/a/Downloads/surface-uefi-firmware-master/out/SurfaceBook2/SurfaceBook2_SurfaceUEFI_390.3192.768.0.cab'
Command not found
a@a-Surface-Book-2:
/Downloads/surface-uefi-firmware-master$ fwupdmgr install'/home/a/Downloads/surface-uefi-firmware-master/out/SurfaceBook2/SurfaceBook2_SurfaceUEFI_390.3192.768.0.cab'
Command not found

Use fwupdmgr --help for help
a@a-Surface-Book-2:~/Downloads/surface-uefi-firmware-master$ fwupdmgr install'/home/a/Downloads/surface-uefi-firmware-master/out/SurfaceBook2/SurfaceBook2_SurfaceUEFI_390.3192.768.0.cab'
Command not found

Use fwupdmgr --help for help
a@a-Surface-Book-2:~/Downloads/surface-uefi-firmware-master$

Use fwupdmgr --help for help
a@a-Surface-Book-2:~/Downloads/surface-uefi-firmware-master$

it doesnt even let me install the update ;(

I'm not sure if that's an artifact from pasting this here, but you might be missing a space between the command fwupdmgr install and the file.

So I just tried the repack script on Arch Linux and there it seems to work.

./repack.sh -m cab -f ./SurfaceBook2_Win10_18362_21.101.14869.0.msi -o out
 ==> Found Model: SurfaceBook2
 ==> Unpacking driver package
 ==> Repacking surfacesam firmware
 ==> Repacking surfaceuefi firmware
 ==> Repacking SurfaceTouch_0 firmware
 ==> Repacking surfaceme firmware
 ==> Repacking SurfaceTouch firmware
 ==> Repacking SurfaceISH firmware

Maybe it's related to a specific msiextract version...

Having the same issues mate done a fresh install of pop os to see if things change but nothing at all same results I’m giving up hope… do what do you recommend?

You could maybe try with a Docker container. No idea why msiextract fails...

You could maybe try with a Docker container. No idea why msiextract fails...
How do I that sorry I’m new to this whole Linux stuff

You could maybe try with a Docker container. No idea why msiextract fails...

sorry i dont want to confuse you but now im trying install the firmware via terminal with the command fwupdmgr install and it keeps giving me the error 'Use fwupdmgr --help for help'

sorry i dont want to confuse you but now im trying install the firmware via terminal with the command fwupdmgr install and it keeps giving me the error 'Use fwupdmgr --help for help'

Ah, that won't work via Docker... So

sudo fwupdmgr install '/home/a/Downloads/surface-uefi-firmware-master/out/SurfaceBook2/SurfaceBook2_SurfaceUEFI_390.3192.768.0.cab'

does not work?

In case you're still having issues with msiextract. The following should allow you to build the .cab files:

Install docker and copy everything you need into one directory (for example the one of the repack script). From that directory then run

docker run --name fedora --interactive -v "$PWD":/build --tty library/fedora bash

This will launch an interactive docker session where the directory you launched it from is mapped as /build. Therefore run

cd build

and make sure you have all the files you need in that directory (e.g. via ls -al). Now update and install dependencies via

dnf update
dnf install msitools gcab dos2unix

Then you're able to try things out via

./repack.sh -m cab -f ./SurfaceBook2_Win10_18362_21.101.14869.0.msi -o out

or whatever .msi file you want to use. You can't flash the result from the container, so you'll have to exit it via exit. After that you should be able to run

fwupdmgr install ./out/<whatever-file-here>

to flash the firmware.

You may then want to remove the container via docker rm fedora.

im doing it on ubuntu now fresh install. following this guide https://www.reddit.com/r/Surface/comments/ofbytw/guide_how_to_reenable_undervolting_on_your_sb2/ now just having the issue in installing the firmware which keeps giving me that message i sent on here. by the way thanks for the replies and the help

are you sure it can be downgraded from the latest firmware?

The error you get is

Command not found

Use fwupdmgr --help for help

right? That means that something with the subcommand you provided to fwupdmgr is wrong. According to https://manpages.ubuntu.com/manpages/impish/man1/fwupdmgr.1.html that should have the install command. So unless you get a different error there's no reason to think that downgrading isn't possible.