Few months ago I bought a Lenovo YogaBook for my university notes. It is an awesome device, light, fast, with a decent battery life and a great pen.
It is available in two versions, one comes with Android and the other one with Windows 10.
I choose the Android version as I was curios to see how it performed being confident that I could install Windows in case I needed.
Unfortunately most of the apps on Android are thought to be used only in foreground, like the Youtube app where you can’t listen to music if it is in background, and this limits the potential of the device. So I decided to try Windows on it.
At first it turned out to be not so simple, an ACPI BIOS ERROR comes out if you try to install it but I managed to fix the issue and while I am still working to have all the devices working properly I am very close to have a fully working Windows install.
Right now these devices still don’t work:
- Holo keyboard
- The camera on the keyboard panel
If you want to try to install Windows on your Android YogaBook (or similar CherryTrail devices I suppose) these are the steps to follow.
My advice is to read all the post before doing anything and keep in mind that this procedure will invalidate your warranty and ruin you Android installation
(it will probably refuse to boot). You should be able to reflash the stock firmware using the DNX mode but I have not tried it yet so I can’t provide help.
IF YOU CONTINUE YOU WILL END UP WITH A YOGABOOK WITHOUT INPUT DEVICES!!!
(EXTERNAL KEYBOARD WILL BE NEEDED) AND NO ANDROID INSTALL!!!
Keep also in mind that we are going to play with BIOS pieces so you have to be extremely careful about what you do and how.
I am not responsible for damages/bricks or similar unfortunate events, it is a long and risky operation so think twice if you really are willing to do it!
- YogaBook with all the last OTA updates (some of them contain BIOS updates)
- Unlocked bootloader
- External usb keyboard
- Usb memory with the Windows Install
- Usb memory with Ubuntu Live
- USB hub with external power
- MicroUSB to usb cable [OTG]
- Another PC to modify some files (Windows / Linux/ MacOS)
- These files 🙂
BOOTING INTO BIOS
The most interesting part of the YogaBook is the Bios:
For some reason still unkwnon to me (lazyness?) Lenovo people used two different bioses: the Android version uses a very simple TianoCore image, with
almost no customizations (no resolutions, drivers for the keyboard or touch) while the Windows one comes with an image from InydeH2O and is a little more user friendly (landscape mode and touch support).
Maybe it is possible to port the driver for the touchscreen and even the one of the keyboard to the bios but this is another chapter 😉
Anyway to enter the bios from Android we have to write this command in a terminal (Termux app from the play store works really well if you don’t have one already)
printf "\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
CHANGING THE VITAL SETTINGS
Once we’ve entered the bios we have to change some settings, to navigate the bios you can use the volume rocker au up and down and the power button to select.
If you want to back, keep pressed the volume up button.
Device manager -> System setup -> South cluster configuration -> Usb configuration
Default DRD CONFIG -> HostMode
Usb VBUS -> On
Then go back to the “System setup” menu and go to “Boot”
Fast Boot -> Disable
Secure Boot -> Disable
Plug the Ubuntu live key and the keyboard into the hub and connect it to the YogaBook
Now go back to the previuos menu and choose “Commit changes and Exit”.
The yoga book will now reboot and by pressing F7 we can access the boot menu.
If you try to boot directly the Windows key as you would normally do, you will be presented with an ACPI BIOS ERROR bsod.
In the boot menu choose the Ubuntu USB key. If you are presented with many SQUASHFS errors don’t worry, restart yoru device and
in the GRUB2 bootloader press “e” to edit the boot parameters: add “acpi=noirq” to the “linux” line.
One you’re inside Ubuntu use the following command in the terminal to extract the ACPI DSDT table:
sudo cat /sys/firmware/acpi/tables/DSDT > DSDTDroid.aml
Copy this file on another usb key (you can use the Windows one).
On your main pc downlod iasl and decompile the DSDT file that you’ve previously extracted:
iasl -d DSDTDroid.aml
You will receive a warning about two missing methods, don’t worry it’s not important.
Open the DSDTDroid.dsl that has been generated and look for something similar to:
OperationRegion (GNVS, SystemMemory, 0x7B3D3000, 0x0369)
Field (GNVS, AnyAcc, Lock, Preserve)
Copy this portion and replace the corresponding one the DSDTWin.dsl file that I provided (this is the DSDT found in the last version of the Windows Bios) and save your changes.
Rebuild the DSDT table with iasl:
iasl -ta DSDTWin.dsl
It will create a DSDTWin.aml file.
BOOTING THE WINDOWS INSTALL
Once we have our patched DSDT we need to add it to the Windows usb key in order to allow it to boot:
Open the Windows install key and go to Efi -> Boot
Rename BootX64.efi to WinX64.efi
Then copy these files in the same folder:
In KEY:\ -> Boot copy the “grub” folder and your DSDTWin.aml file.
Finally copy the Shell.efi file in the root folder of the key.
Now you can try to boot this key, the Grub bootloader will inject the patched DSDT into the Windows Installer and it should boot fine.
If everything has gone well you should be able to perform the setup as always.
Tip: if you want to eliminate all the android partitions at once you can press shift + F10 to open the command pronmpt and use DiskPart:
select disk X (where X is the disk of the YogaBook)
Once the setup is completed it will automatically reboot, it will probably either show you a BSOD with the previous ACPI error or get stuck with the windows logo.
This is due to the fact that the Windows Setup had added some parameters in the Bios and the DSDT memory region address changed.
To fix this we have to reextract the DSDT and repatch it (go back to DSDT EXTRACTION). When you have done, put the new patched DSDT on the Windows Install key.
INSTALLING THE BOOTLOADER
Now in order to boot the Windows Installation we need to install Grub also on the Yoga HD.
Go to the Bios and select “Boot Manteinance Manager”. Here choose “Boot from File” and select the Windows usb disk.
We should have the Shell.efi file in the root, select it.
You will see a very little shell, once it has completede the partitions enumerations type:
mv Bootx64.efi winx64.efi
mv /boot/grub/grubWin.cfg /boot/grub/grub.cfg
//Press y to confirm the overwrite
cp -r /boot/grub FS0:/Boot/
cp -r DSDTWin.sml FS0:/Boot/
cp /efi/boot/bootx64.efi FS0:/EFI/Boot
cp /efi/boot/grubx64.efi FS0:/EFI/Boot
You will get back to the Bios. now you can reboot and if you have done everything correctly Windows should boot normally and complete the installation.
Now you only need to install the drivers from Windows Update and from the Lenovo website. Remember that right now these devices still don’t work:
- Holo keyboard
- The camera on the keyboard panel