{"id":24057772,"url":"https://github.com/esno/yoga-bios-unlock","last_synced_at":"2025-04-23T02:27:02.896Z","repository":{"id":39904013,"uuid":"327040541","full_name":"esno/yoga-bios-unlock","owner":"esno","description":"unlock the advanced menu of Lenovo Yoga Slim 7 BIOS","archived":false,"fork":false,"pushed_at":"2023-10-08T09:43:15.000Z","size":33,"stargazers_count":109,"open_issues_count":3,"forks_count":12,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-29T21:11:22.645Z","etag":null,"topics":["advanced-menu","backdoor","bios","lenovo","yoga-bios-unlock","yoga-slim-7"],"latest_commit_sha":null,"homepage":"https://matthiashauber.de/Hardware/Lenovo%20Yoga%20Slim%207/BIOS%20unlock/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["esno"],"ko_fi":"crito"}},"created_at":"2021-01-05T15:29:47.000Z","updated_at":"2025-03-14T17:26:31.000Z","dependencies_parsed_at":"2025-01-10T07:31:23.776Z","dependency_job_id":null,"html_url":"https://github.com/esno/yoga-bios-unlock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esno%2Fyoga-bios-unlock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esno%2Fyoga-bios-unlock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esno%2Fyoga-bios-unlock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esno%2Fyoga-bios-unlock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esno","download_url":"https://codeload.github.com/esno/yoga-bios-unlock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250356563,"owners_count":21417108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advanced-menu","backdoor","bios","lenovo","yoga-bios-unlock","yoga-slim-7"],"created_at":"2025-01-09T05:50:53.378Z","updated_at":"2025-04-23T02:27:02.875Z","avatar_url":"https://github.com/esno.png","language":"C","funding_links":["https://github.com/sponsors/esno","https://ko-fi.com/crito"],"categories":[],"sub_categories":[],"readme":"# yoga-bios-unlock\n\nBased on FlyGoat's work to unlock the BIOS advanced menu documented [here](https://zhuanlan.zhihu.com/p/184982689),\nI wrote that tool to unlock my yoga laptop without using a proprietary software which is only available on Windows.\n\nI'd like to thank FlyGoat a lot for giving me the right direction on how to translate his guide into low-level functions\nprovided by glibc (see also [FlyGoats gist](https://gist.github.com/FlyGoat/5f0dba5b5ccc1b6ab73023489e1e989a)).\n\nThis tool will unlock the advanced menu in your Lenovo Yoga Slim 7 14ARE05.\n\nTo unlock the advanced menu it's necessary to change the data field on port `0x73` at index `0xf7`.\nPort `0x72` is the index port that defines which value at `0x73` will be accessed.\n\n                                \\/\n         | 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f\n      ---+------------------------------------------------\n      00 | 21 bc 21 63 00 00 5a a5 18 70 f6 7c 00 f5 19 00\n      10 | 80 00 a6 20 00 44 00 02 00 00 94 80 89 00 e0 49\n      20 | 00 0d 04 30 21 00 24 00 00 10 00 04 00 00 04 ec\n      30 | 55 55 55 55 ff 07 00 20 29 00 8c 00 0a a8 00 08\n      40 | f4 00 00 00 01 20 01 01 08 00 00 00 10 11 00 00\n      50 | 00 00 80 00 00 00 41 00 00 00 00 00 ff 07 00 00\n      60 | 00 00 00 00 00 10 00 20 02 00 00 00 00 00 00 00\n      70 | 00 00 00 00 08 01 08 00 00 00 00 00 86 22 00 00\n      80 | c0 0c 00 80 09 52 00 00 00 00 00 00 00 00 00 00\n      90 | 00 00 00 00 08 00 00 80 00 00 04 40 00 80 00 00\n      a0 | 00 00 00 00 00 00 00 00 20 40 00 00 20 00 01 00\n      b0 | 00 00 08 20 00 00 40 00 00 00 00 00 00 42 00 00\n      c0 | 02 02 00 00 00 40 00 00 00 00 80 80 00 00 00 40\n      d0 | 00 40 14 00 02 00 82 00 00 00 00 80 81 08 00 80\n      e0 | 00 02 00 01 00 00 00 00 00 00 00 00 00 00 01 00\n    \u003e f0 | 29 a4 a7 a7 00 00 00 77 e0 00 24 04 00 10 10 00\n                                /\\\n\n## Disclaimer\n\n\u003e This tool may eat your cat, burn your house or do anything else beside the expected task.\n\u003e 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.\n\n## Compatibility\n\n    | Version  | Missing features    |\n    | -------- | ------------------- |\n    | DMCN27WW |                     |\n    | DMCN29WW |                     |\n    | DMCN32WW |                     |\n    | DMCN34WW | no XFR enhancements |\n    | DMCN35WW | no XFR enhancements |\n    | DMCN36WW | no XFR enhancements |\n    | DMCN38WW | no XFR enhancements |\n    | DMCN39WW | no XFR enhancements |\n    | DMCN41WW | no XFR enhancements |\n    | DMCN44WW | no XFR enhancements |\n\nIf you're aware of any further differences in BIOS version please raise a [ticket](https://github.com/esno/yoga-bios-unlock/issues/new)\nor open a pull request.\n\n### BIOS downgrade\n\nBoot into BIOS and go to `Configuration` tab.\nThere is an option called `BIOS Back Flash` which is disabled by default.\n\nThe product page of [lenovo's Yoga Slim 7](https://pcsupport.lenovo.com/de/de/products/laptops-and-netbooks/ideapad-s-series-netbooks/slim-7-14are05/downloads/driver-list/component?name=BIOS)\nprovides the latest BIOS version. Thanks to lenovo they do not obfuscate their download links therefore\nit's quiet easy to estimate former versions and download them.\n\nFormer BIOS versions are available at lenovo servers (Readme and installation instructions are also available):\n\n* [DMCN27WW](https://download.lenovo.com/consumer/mobiles/dmcn27ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn27ww.txt))\n* [DMCN29WW](https://download.lenovo.com/consumer/mobiles/dmcn29ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn29ww.txt))\n* [DMCN32WW](https://download.lenovo.com/consumer/mobiles/dmcn32ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn32ww.txt))\n* [DMCN34WW](https://download.lenovo.com/consumer/mobiles/dmcn34ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn34ww.txt))\n* [DMCN35WW](https://download.lenovo.com/consumer/mobiles/dmcn35ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn35ww.txt))\n* [DMCN36WW](https://download.lenovo.com/consumer/mobiles/dmcn36ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn36ww.txt))\n* [DMCN38WW](https://download.lenovo.com/consumer/mobiles/dmcn38ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn38ww.txt))\n* [DMCN39WW](https://download.lenovo.com/consumer/mobiles/dmcn39ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn39ww.txt))\n* [DMCN41WW](https://download.lenovo.com/consumer/mobiles/dmcn41ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn41ww.txt))\n* [DMCN44WW](https://download.lenovo.com/consumer/mobiles/dmcn44ww.exe) ([ReadMe](https://download.lenovo.com/consumer/mobiles/dmcn44ww.txt))\n\n## Known Issues\n\nIf you hit the following issue please disable secure boot first and try again:\n\n    Can't set I/O privilege level (Operation not permitted)\n\n## Usage\n\n\u003e BIOS versions greater or equal to `DMCN34WW` are supported but hiding some menus.\n\u003e Using `DMCN32WW` is recommended.\n\n### Build from source\n\n    git clone https://github.com/esno/yoga-bios-unlock.git\n    cd ./yoga-bios-unlock\n    make\n\n#### Add new bios/board versions\n\nNew supported bios and board versions can be added by appending the version string either to [bios-versions.txt](https://github.com/esno/yoga-bios-unlock/blob/master/bios-versions.txt)\nor to [board-versions.txt](https://github.com/esno/yoga-bios-unlock/blob/master/board-versions.txt).\nAfterwards the headers needs to be regenerated with\n\n    make headers\n\n### Verify current value of data port\n\n    # ./yoga-bios-unlock --read\n    Run in read mode\n    Be aware that readmode temporarily changes value of port 0x72 to index 0xf7\n    WARNING: use at your own risk!\n    Agree? (y/n) y\n    Port 0x72 is 0xf4 and will be set to 0xf7\n    Port 0x73 is 0x00 and would be set to 0x77\n\n### Unlock your BIOS\n\n    # ./yoga-bios-unlock --unlock\n    Run in unlock mode\n    WARNING: use at your own risk!\n    Agree? (y/n) y\n    Port 0x72 is 0xf4 and will be set to 0xf7\n\n### Lock your BIOS\n\n    # ./yoga-bios-unlock --lock\n    Run in lock mode\n    WARNING: use at your own risk!\n    Agree? (y/n) y\n    Port 0x72 is 0xf4 and will be set to 0xf7\n\n### Ignore platform check results\n\nIf you know that you're on Lenovo Yoga Slim 7 (14ARE05) but either board version might differ\nor BIOS version is currently not supported by this tool you can enforce an unlock.\nIf you do please open a ticket/PR to notify me that your current BIOS version/board version works well.\n\n#### Enforce unlock your BIOS\n\n    # ./yoga-bios-unlock --unlock --force\n    Run in unlock mode\n    Platform checks are disabled - hopefully you know what you do\n    WARNING: use at your own risk!\n    Agree? (y/n) y\n    Port 0x72 is 0xf4 and will be set to 0xf7\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesno%2Fyoga-bios-unlock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesno%2Fyoga-bios-unlock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesno%2Fyoga-bios-unlock/lists"}