esno / yoga-bios-unlock Goto Github PK
View Code? Open in Web Editor NEWunlock the advanced menu of Lenovo Yoga Slim 7 BIOS
Home Page: https://matthiashauber.de/Hardware/Lenovo%20Yoga%20Slim%207/BIOS%20unlock/
License: MIT License
unlock the advanced menu of Lenovo Yoga Slim 7 BIOS
Home Page: https://matthiashauber.de/Hardware/Lenovo%20Yoga%20Slim%207/BIOS%20unlock/
License: MIT License
I want to take my laptop to a service center. And if they see an unlocked BIOS, then the guarantee could be lost. How can you believe him in his original state?
It looks like I own one with a different board type.
$ sudo ./yoga-bios-unlock --read
Run in read-mode
Be aware that readmode temporarily changes value of port 0x72 to index 0xf7
board_version does not match (SDK0J40700 WIN )
Wrong device, aborting!
Here are some relevant information:
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: LENOVO
Product Name: 82A2
Version: Yoga Slim 7 14ARE05
Serial Number: XXXXXXXXXX
UUID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Wake-up Type: Power Switch
SKU Number: LENOVO_MT_82A2_BU_idea_FM_Yoga Slim 7 14ARE05
Family: Yoga Slim 7 14ARE05
BIOS Information
Vendor: LENOVO
Version: DMCN32WW
Release Date: 07/14/2020
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 15488 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
EDD is supported
Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
5.25"/360 kB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
8042 keyboard services are supported (int 9h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 1.32
Firmware Revision: 1.2
BIOS Language Information
Language Description Format: Long
Installable Languages: 4
en|US|iso8859-1
fr|FR|iso8859-1
ja|JP|unicode
zh|TW|unicode
Currently Installed Language: en|US|iso8859-1
What do you think: should I take the risk and try altering the default BOARD_VERSION definition?
I understand that this is probably not the right place for such a question, but:
Highly appreciate your work!
On the latest version, when running make I get the following error:
/yoga-bios-unlock$ make
cc -o ./yoga-bios-unlock ./src/yoga-bios-unlock.c -O2 -Wall -Wextra -Wfloat-equal -Wshadow -Wstrict-prototypes -Wstrict-overflow=5 -Wcast-qual -Wconversion -Wunreachable-code
./src/yoga-bios-unlock.c: In function ‘is_yoga’:
./src/yoga-bios-unlock.c:66:17: error: redefinition of ‘bios_version_34’
66 | dmi_strings_t bios_version_34 = { .string = __BIOS_VERSION_34, .next = &bios_version_36 };
| ^~~~~~~~~~~~~~~
./src/yoga-bios-unlock.c:65:17: note: previous definition of ‘bios_version_34’ was here
65 | dmi_strings_t bios_version_34 = { .string = __BIOS_VERSION_36, .next = &bios_version_38 };
| ^~~~~~~~~~~~~~~
./src/yoga-bios-unlock.c:66:75: error: ‘bios_version_36’ undeclared (first use in this function); did you mean ‘bios_version_34’?
66 | dmi_strings_t bios_version_34 = { .string = __BIOS_VERSION_34, .next = &bios_version_36 };
| ^~~~~~~~~~~~~~~
| bios_version_34
./src/yoga-bios-unlock.c:66:75: note: each undeclared identifier is reported only once for each function it appears in
make: *** [Makefile:4: yoga-bios-unlock] Error 1
Is it possible to use this method for bios version DMCN36WW ?
I ran the file and it ate my cat, and burned my house down :-)
No, the reason i'm making this ticket is if i can peruse you to take a look at the lenovo z490 based mainboard, where they have locked features as xmp in the advanced section.. Making installed custom ram running at 50%.. while xmp is on the board..
thxn
Latest bios version: https://download.lenovo.com/pccbbs/deskt...y12usa.exe
Files after extraction: https://www.dropbox.com/t/tsU5NUkumVdxDwJa
I got a message saying my board version did not match, even though it should.
My board version is SDK0J40709 WIN.
I suspect the row of question marks has something to do with it.
The unlock worked fine when I used --force.
Run in read mode
Be aware that readmode temporarily changes value of port 0x72 to index 0xf7
board_version does not match (SDK0J40709 WIN ��������������������������������)
Wrong device, aborting!
When I run the command ./yoga-bios-unlock --unlock
I get:
Run in unlock mode
board version does not match
Wrong device, aborting!
cat /sys/class/dmi/id/board_version
returns SDK0J40709 WIN
cat /sys/class/dmi/id/bios_version
returns DMCN27WW
So everything is supported and it should work (This is also the data that shows in the bios), but the check apparently fails. I've seen in other bug reports that the result that I get usually includes the detected board version, but mine for some reason doesn't, so I assume that it failed to get the value.
I don't exactly know how the program works, but would it make sense to set those values manually and then run the program with those manual values? And if yes, how would I go about doing this?
I read about a method here and here to achieve bios unlock that should work with other models of Lenovo notebooks. I'm yet to try it out on my Yoga Slim 7 14ARE05 but it is here for anyone who is brave enough to try it:
"1. Turn off OneKeyBattery mode in BIOS setup (this won't work with it enabled), save settings, power off
2. Type, with the laptop powered off: F1 1 Q A Z F2 2 W S X F3 3 E D C F4 4 R F V F5 5 T G B F6 6 Y H N. If you notice the pattern, it's just going down the column from F1 to the letter in the last keyboard row, from F1 to F6.
3. Boot the laptop with F2 pressed to get into BIOS as usual, you'll get into the BIOS but with a few options more unlocked."
Hello,
I'm trying to unlock the UEFI on my Slim 7 ProX, as there appears to be some issues running Xen, this could be related to some weird Microsoft thing Lenovo have enabled.
I have UEFITool working with a InsydeH20 .fd from here: https://pcsupport.lenovo.com/ch/en/products/laptops-and-netbooks/yoga-series/yoga-slim-7-prox-14arh7/downloads/driver-list/component?name=BIOS%2FUEFI
Is it possible to unlock more UEFI options for this laptop?
Cheers
Hi, do you think it is safe to roll back the bios to an earlier version?
From warranty service I got back the notebook with bios version 38. I want to go back to 32.
Just letting you know that it also works for my computer with the board version SDK0J40697 WIN
as reported by /sys/class/dmi/id/board_version
.
thank you very much!
My yoga sleeps properly now on ubuntu :)
DMCN29WW wasn't on your list yet
hardware bought this week in Germany if it's of any interest
Actually I published a version myself for Linux.
https://gist.github.com/FlyGoat/5f0dba5b5ccc1b6ab73023489e1e989a
But really appreciate that we have a much more elegant C version :-)
The title is self explanatory,
I have absolutely zero knowledge about accessing Extend CMOS Index/Data Port but I am guessing(From my basic understanding) it would be better to save the original value aka index port position and after reading 0x73 set the index port back to the original?
so if other software that accesses the 0x73 and doesn't make sure it accesses correct index port doesn't end up messing something up?
Just noting here for anyone who comes across this in the future -- I attempted to force unlock on a Lenovo Yoga Pro 9 16IRP8
with:
BIOS_VERSION: KVCB35WW
BOARD_VERSION: SDK0T76461 WIN
and it was unsuccessful.
Laptop is not bricked, seemingly nothing changed at all; regular bios is healthy, no boot issues. I thought risking the brick was worth it.
Thanks @esno for all your hard work.
Hi, I got this error message under ubuntu 20.04. It is my hw or some sw incompatibility?
sudo ./yoga-bios-unlock --read Run in read-mode Be aware that readmode temporarily changes value of port 0x72 to index 0xf7 WARNING: use at your own risk! Agree? (y/n) y Can't set I/O privilege level (Operation not permitted)
This version is published at 29 Sept. I will try to unlock it for disable S3 deep to solve sleep problem on linux. Should i try? or is there any files/instructions for downgrading bios version? I couldnt see it on lenovo support page.
This is great work, thank you.
Do you think it would be possible to do for the 15ITL05 BIOS as well?
Successfully tested
I have a Yoga Slim 7 14IIL05 (is an intel version)
Does it make it a difference that is DHCM instead of a DMCM
hey @esno thank's for this great tool!
When running ./yoga-bios-unlock --read
I get this output here (same when running with sudo)
Run in read-mode
Be aware that readmode temporarily changes value of port 0x72 to index 0xf7
board_version does not match (SDK0J40709 WIN ��������������������������������)
Wrong device, aborting!
This are my specs:
BIOS Information
Vendor: LENOVO
Version: DMCN34WW
Release Date: 08/17/2020
System Information
Manufacturer: LENOVO
Product Name: 82A2
Version: Yoga Slim 7 14ARE05
Thank you for nice piece of software.
I tuned the code and checked that it works also in bios version DMCN35WW.
Good day. Do people have any bios dump that can be uploaded through the programmer?
I've just tested this on DMCN27WW and it works.
Also, Agreed should be Y/N. Now it is: Agree? (y/Y)
Is it planned to support the bios DMCN43WW?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.