Skip to content

sarvasana/yoga-bios-unlock

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yoga-bios-unlock

Based on FlyGoat's work to unlock the BIOS advanced menu documented here, I wrote that tool to unlock my yoga laptop without using a proprietary software which is only available on Windows.

I'd like to thank FlyGoat a lot for giving me the right direction on how to translate his guide into low-level functions provided by glibc.

This tool will unlock the advanced menu in your Lenovo Yoga Slim 7 14ARE05.

To unlock the advanced menu it's necessary to change the data field on port 0x73 at index 0xf7. Port 0x72 is the index port that defines which value at 0x73 will be accessed.

                            \/
     | 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
  ---+------------------------------------------------
  00 | 21 bc 21 63 00 00 5a a5 18 70 f6 7c 00 f5 19 00
  10 | 80 00 a6 20 00 44 00 02 00 00 94 80 89 00 e0 49
  20 | 00 0d 04 30 21 00 24 00 00 10 00 04 00 00 04 ec
  30 | 55 55 55 55 ff 07 00 20 29 00 8c 00 0a a8 00 08
  40 | f4 00 00 00 01 20 01 01 08 00 00 00 10 11 00 00
  50 | 00 00 80 00 00 00 41 00 00 00 00 00 ff 07 00 00
  60 | 00 00 00 00 00 10 00 20 02 00 00 00 00 00 00 00
  70 | 00 00 00 00 08 01 08 00 00 00 00 00 86 22 00 00
  80 | c0 0c 00 80 09 52 00 00 00 00 00 00 00 00 00 00
  90 | 00 00 00 00 08 00 00 80 00 00 04 40 00 80 00 00
  a0 | 00 00 00 00 00 00 00 00 20 40 00 00 20 00 01 00
  b0 | 00 00 08 20 00 00 40 00 00 00 00 00 00 42 00 00
  c0 | 02 02 00 00 00 40 00 00 00 00 80 80 00 00 00 40
  d0 | 00 40 14 00 02 00 82 00 00 00 00 80 81 08 00 80
  e0 | 00 02 00 01 00 00 00 00 00 00 00 00 00 00 01 00
> f0 | 29 a4 a7 a7 00 00 00 77 e0 00 24 04 00 10 10 00
                            ^^

Disclaimer

This tool may eat your cat, burn your house or do anything else beside the expected task. So use it at your own risk and be aware that you're playing around with your BIOS which may end in a bricked device.

Usage

BIOS version DMCN34WW is supported but hides some menus. Using DMCN32WW is recommended.

git clone https://github.com/esno/yoga-bios-unlock.git
cd ./yoga-bios-unlock
make

# ./yoga-bios-unlock --dry-run
Enabled dry-run
WARNING: use at your own risk!
Agree? (y/Y) y
Port 0x72 is 0xf4 and would be set to 0xf7
Port 0x73 is 0x00 and would be set to 0x77

# ./yoga-bios-unlock          
WARNING: use at your own risk!
Agree? (y/Y) y

Releases

No releases published

Packages

No packages published

Languages

  • C 94.8%
  • Makefile 5.2%