Make Epsilon Great again - Project Mu UEFI Firmware for Surface Duo (First Generation) Devices

Overview

Project Mu UEFI Implementation for Surface Duo

Build

Quick notes for building:

  • Use Ubuntu 20.04 x64
  • Generate ACPI tables with IASL
  • Follow this quick draft
# Setup environment
./setup_env.sh

# Activate Workspace
python3 -m venv SurfaceDuo
source SurfaceDuo/bin/activate

# Build UEFI
pip install --upgrade -r pip-requirements.txt
./build_uefi.sh

# Generate ELF image
./build.sh

Acknowledgements

License

All code except drivers in GPLDriver directory are licensed under BSD 2-Clause. GPL Drivers are licensed under GPLv2 license.

Comments
  • Bump Silicon/ARM/TIANO from `a77257d` to `8b34290`

    Bump Silicon/ARM/TIANO from `a77257d` to `8b34290`

    Bumps Silicon/ARM/TIANO from a77257d to 8b34290.

    Commits
    • 8b34290 REBASE ArmPkg: ArmStdSmc: Added new PSCI index
    • c750403 REBASE ArmPkg: ArmGicLib: Added GIC v3 and v4 support to ArmGicSendSgiTo
    • 614dded REBASE ArmPkg: ArmGicLib: Added support to send SGI to NS G1 EL1
    • 6409446 changes to support setting OSC CTRL bits based on PCI config space info struc...
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    type:dependencies type:submodules do not merge 
    opened by dependabot[bot] 2
  • submodule: bump Common/MU_OEM_SAMPLE from `40d59e7` to `0124d6f`

    submodule: bump Common/MU_OEM_SAMPLE from `40d59e7` to `0124d6f`

    Bumps Common/MU_OEM_SAMPLE from 40d59e7 to 0124d6f.

    Commits
    • 0124d6f .azurepipelines: Use new Mu DevOps YAML Design (#12)
    • d5b10c9 Fix line endings (LF to CRLF) (#10)
    • 4d9cef8 Merged PR 3999: Added Implementation for Newly Introduced Interface in MsBoot...
    • 4ef8d70 Add HWH Menu to Frontpage
    • c429cdf REBASE: Restore the Mu process for working with pr_eval
    • 7652c1a Updates for Variable Policy (upstreamed to EDK2)
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    type:dependencies type:submodules 
    opened by dependabot[bot] 2
  • submodule: bump Common/MU from `5a5e32b` to `2d9eb12`

    submodule: bump Common/MU from `5a5e32b` to `2d9eb12`

    Bumps Common/MU from 5a5e32b to 2d9eb12.

    Commits
    • 2d9eb12 Fix unitialized variable found in clang compiler experiments (#108)
    • 55b9adf Fix MfciDxe Debug error print missing new line character (#97)
    • 1547cec pip-requirements.txt: Use exact match instead of compatible release
    • 2c2a7ce pip: update pytool-library to ~=0.12.1 pytool-extensions to ~= 0.20.0
    • f27c665 MfciPkg/MfciDxe: Fix GCC compilation issue in a test (#107)
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    type:dependencies type:submodules 
    opened by dependabot[bot] 2
  • submodule: bump Common/MU_TIANO from `fc72c03` to `a4b6d3b`

    submodule: bump Common/MU_TIANO from `fc72c03` to `a4b6d3b`

    Bumps Common/MU_TIANO from fc72c03 to a4b6d3b.

    Commits
    • a4b6d3b pip-requirements.txt: Use exact match instead of compatible release
    • 281d02f pip: update pytool-library to ~=0.12.1 pytool-extensions to ~=0.20.0 (#55)
    • fb82bb5 pip: bump regex from 2022.8.17 to 2022.10.31 (#56)
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    type:dependencies type:submodules 
    opened by dependabot[bot] 2
  • Bump Common/MU from `9d4e9e6` to `8ebc6f0`

    Bump Common/MU from `9d4e9e6` to `8ebc6f0`

    Bumps Common/MU from 9d4e9e6 to 8ebc6f0.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump MU_BASECORE from `ef57fa4` to `f34e20c`

    Bump MU_BASECORE from `ef57fa4` to `f34e20c`

    Bumps MU_BASECORE from ef57fa4 to f34e20c.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump Common/MU from `e041f07` to `9d4e9e6`

    Bump Common/MU from `e041f07` to `9d4e9e6`

    Bumps Common/MU from e041f07 to 9d4e9e6.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump MU_BASECORE from `b260bef` to `ef57fa4`

    Bump MU_BASECORE from `b260bef` to `ef57fa4`

    Bumps MU_BASECORE from b260bef to ef57fa4.

    Commits
    • ef57fa4 Add debug messages for DHCP state changes, Tftp progress, and PxeBc progress....
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump MU_BASECORE from `c653ff1` to `b260bef`

    Bump MU_BASECORE from `c653ff1` to `b260bef`

    Bumps MU_BASECORE from c653ff1 to b260bef.

    Commits
    • b260bef Update FillInMemoryMap() to Ignore Regions of GCD Memory Type Non-Existent (#...
    • aa511ab Fix missing logs from GenMake.py (#195)
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump Platforms/SurfaceDuoACPI from `a6898ef` to `9e5e21e`

    Bump Platforms/SurfaceDuoACPI from `a6898ef` to `9e5e21e`

    Bumps Platforms/SurfaceDuoACPI from a6898ef to 9e5e21e.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump Common/MU_OEM_SAMPLE from `88d4bf0` to `e458c57`

    Bump Common/MU_OEM_SAMPLE from `88d4bf0` to `e458c57`

    Bumps Common/MU_OEM_SAMPLE from 88d4bf0 to e458c57.

    Commits
    • e458c57 pip: update edk2-pytool-extensions requirement from ~=0.17.2 to ~=0.20.0 (#20)
    • fc23c10 pip: bump regex from 2022.8.17 to 2022.10.31 (#19)
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump MU_BASECORE from `877f781` to `92266c6`

    Bump MU_BASECORE from `877f781` to `92266c6`

    Bumps MU_BASECORE from 877f781 to 92266c6.

    Commits
    • 92266c6 Add a PCD to allow the AP wakeup buffer to be reserved (#209)
    • eaf94b7 HostUnitTestCompilerPlugin: enable single module build test execution (#219)
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    type:dependencies type:submodules 
    opened by dependabot[bot] 0
  • Bump Common/MU from `d8148e2` to `d669d8a`

    Bump Common/MU from `d8148e2` to `d669d8a`

    Bumps Common/MU from d8148e2 to d669d8a.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    type:dependencies type:submodules 
    opened by dependabot[bot] 0
  • Hangs on static screen when booting uefi.img

    Hangs on static screen when booting uefi.img

    WIN_20220621_14_35_30_Pro I went through the whole walkthrough, with no notable issues, but when I run uefi.img this is as far as I get. Widows never launches, it just hangs on a static screen.

    opened by zombieTrain 2
Releases(2212.12b)
  • 2212.12b(Dec 7, 2022)

    This update addresses specific reliability issues present in version 2212.12. For a complete list of changes present in this update please refer to the version 2212.12 changelog.

    This update must be paired with Surface Duo Drivers version 2212.12 (B).

    NB: This update may not work on Surface Duo 2 currently. If you want to check out Duo 2 right now refer to the 2211.43 update paired with the 2211.43 Drivers.

    NB: As always, in order to update you only need to run Driverupdater again as per changelog. You never need to reinstall Windows; Please make sure you use the latest driverupdater version (latest one released this week)

    NB: If you still want to reinstall windows regardless of above notice, you only need to format the Windows partition again within mass storage as NTFS (and only this one) and then re-apply the wim file, and run driverupdater. Nothing else is required.

    NB: As usual, observing graphical glitches during boot is both expected and normal currently, and only requires you to close the device and open it again (fold/unfold).

    NB: Windows Setup is a delicate operation, please do not force reboot the device even if you think it is hanging, (especially if you see such graphical glitch, just get rid of it). If it feels like it's taking some time, just please patiently wait. A moving spinner is a happy spinner, do not force reboot the device or you'll end up with a broken windows installation anyway

    Last NB: Some people may get a BSOD about the WMILIB.SYS driver (which is a Microsoft Windows Inbox Driver). While the root cause of this issue at the moment is not known, you may fix it by simply not having a cable plugged in, or, uninstalling the SurfaceBattery.inf driver using DISM (or using Driverupdater by simply removing such driver from the release zip beforehand)

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.52 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.23 MB)
  • 2212.12(Dec 4, 2022)

    NOTE: This Update has been pulled due to BSOD issues. A new update has been made available with some of the core issues fixed. Please use the newer version. (https://github.com/WOA-Project/SurfaceDuoPkg/releases/tag/2212.12b)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Surface Duo 1: General ACPI Updates related to the recent driver update (v2212.12)
    • Surface Duo 1: Resolves an issue where the right panel would be undervolted
    • Surface Duo 2: Adds support for Engineering Validation devices with different Memory Bank Configuration
    • Common: Fixes the previous workaround/issue with Memory Protection
    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2211.43...2212.12

    This update is compatible with every currently released Surface Duo 1 and Surface Duo 2 Models. Support for Engineering / Prototype devices cannot be guaranteed at the time. This update should be compatible with every currently released Android 10, Android 11 and Android 12 firmware released for both devices.

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
  • 2211.43(Nov 13, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Surface Duo 1: Updated ACPI APIC Table in order to help fix a crash issue during sleep
    • Surface Duo 2: Addresses an issue where the device would think the buttons are pressed and thus going to UEFI Settings or going to Universal Flashing Application if the user had pressed volume buttons before booting the UEFI using fastboot boot uefi.img
    • Surface Duo 2: Removes a deprecated Errata patched in ntoskrnl.exe. If you were affected by a build throwing the following bugcheck: MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED, please update to a newer OS build.
    • Common: Workarounds a new issue caused by Memory Protection code enablement in Project Mu
    • Common: Refactored the way the repository makes use of binaries. The main reason behind this change is for better transparency as to where binaries come from, as well as reproducibility. This way you can, if you choose to, reproduce the binary repository very easily with your own firmware, and assert the origin of the binaries. A new tool was also released for this purpose, UEFIReader. This tool can also be useful for people willing to port their own device over more easily.
    • New UEFI libraries were implemented, namely, user presence detection using side buttons, battery level checks to prevent booting into Windows if the battery level is too low to boot, or the error reporting storage library
    • Common: Add a new Management menu for DFCI
    • Common: Add generally missing DXEs commonly found on other Surface Devices, mainly Cryptography/Security dxes and Networking Dxes
    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2211.20...2211.43

    This update is compatible with every currently released Surface Duo 1 and Surface Duo 2 Models. Support for Engineering / Prototype devices cannot be guaranteed at the time. This update should be compatible with every currently released Android 10, Android 11 and Android 12 firmware released for both devices.

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.46 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.18 MB)
  • 2211.20(Nov 6, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Common: Resolves a recent regression where devices stopped booting
    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2211.16...2211.20

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.13 MB)
  • 2211.16(Nov 5, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Surface Duo 2: Official Initial Support. Please refer to https://github.com/WOA-Project/SurfaceDuo-Guides/blob/main/Status.md to know what works or not. Documentation will be updated later today.
    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2211.1...2211.16

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.39 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2211.1(Oct 31, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Surface Duo 2: More peripheral enablement in ACPI
    • Surface Duo 2: Remove deprecated code portions
    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.80...2211.1

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.80(Oct 25, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • ⚠️⚠️ IMPORTANT: This version of the UEFI needs to be paired with drivers version greater or equal to 2210.80. ⚠️⚠️

    • Surface Duo 1: Improves Secondary Display (Right screen) Startup, should appear way less glitchy than before

    • Surface Duo 1: Solves an issue where the Secondary Display may display constantly shifting noise on initial setup

    • Surface Duo 1: Addresses an issue where GPU clocks were not set correctly in firmware leading to instability issues

    • Surface Duo 1: Resolves an issue that could have made the device crash during sleep in Windows

    • Surface Duo 2: ¯\_(ツ)_/¯

    • Common: More UEFI code refactoring

    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.67...2210.80

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.67(Oct 20, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • ⚠️⚠️ IMPORTANT: This version of the UEFI needs to be paired with drivers version greater or equal to 2210.67. ⚠️⚠️

    Epsilon_RAM More ram is now available for Surface Duo 1 (Now 5.6GB!)

    Zeta_RAM More ram is now available for Surface Duo 2 (From under 7GB available for the OS to now 7.5GB!)

    • Surface Duo 1: Free'd 100MB extra memory for Operating System use

    • Surface Duo 2: Free'd 1GB extra memory for Operating System use

    • Surface Duo 1: Audio Codec Chip power bring up

    • Surface Duo 1: Audio Speaker Protection Chip power bring up

    • Surface Duo 1: Resolves an issue with broken Audio stack since the past 2 updates. Speakers won't work still yet.

    • Surface Duo 2: ACPI Improvements

    • Surface Duo 2: Enable MPSS to access the shared EFS region with the OS

    • Surface Duo 2: Add missing Compute DSP Subsystem Memory reservation

    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.58...2210.67

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.58(Oct 18, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • ⚠️⚠️ IMPORTANT: This version of the UEFI needs to be paired with drivers version greater or equal to 2210.58. ⚠️⚠️

    • Surface Duo 2: General ACPI update

    • Common: Updated Project Mu

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.51...2210.58

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.51(Oct 16, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • ⚠️⚠️ IMPORTANT: This version of the UEFI needs to be paired with drivers version greater or equal to 2210.51. ⚠️⚠️

    • Surface Duo 1: Addresses an issue where USB-C Detection stopped working with version 2210.48 (Regression)

    • Surface Duo 1: Adds missing Power resources package for the SDC Device (SD Controller)

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.48...2210.51

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.48(Oct 15, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • ⚠️⚠️ IMPORTANT: This version of the UEFI needs to be paired with drivers version greater or equal to 2210.48. ⚠️⚠️

    • Common: Updated Project Mu Submodules

    • Surface Duo 1: USB Fixes for Audio Dongles

    • Surface Duo 1: Enable Audio Orientation notifier device

    • Surface Duo 1: Updates all Qualcomm device identifiers to reserved, Snapdragon 855 specific ones, to prevent conflicts with genuine 8cx drivers

    • Surface Duo 1: Update the platform id in ACPI to 8150 to match the platform part number

    • Surface Duo 2: Addresses an issue with an invalid multi processor configuration in the MADT ACPI table (single core only still in Windows)

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.45...2210.48

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.45(Oct 14, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Common: Updated Project Mu Submodules
    • Common: Resolves an issue with builds 19045 or lower not booting up anymore
    • Common: Resolves a recent regression preventing booting anything but Windows
    • Surface Duo 2: Enables booting Windows on the Cortex-X1 single core cluster at 2.842Ghz

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.38..2210.45

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo 1 can be found here Guides for installing Windows on Surface Duo 2 can be found here

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.38(Oct 12, 2022)

    This update includes new features, bug fixes and improvements. Key changes include:

    • Common: Updated Project Mu Submodules
    • Surface Duo 2: Introducing a new UEFI driver designed to enable installing Windows OS builds older than version 25227 (rs_prerelease) by automatically patching critical system component in order to prevent an errata involving incorrect register reads and register writes to ACTLR_EL1, among multi processor cache coherency check being bogus. More to disclose at a later time.
    • Surface Duo 2: Introducing new GIC Early bring up code designed to smooth out GIC Initialization for the UEFI firmware and the Operating System
    • Surface Duo 1: Introducing a new UEFI driver designed to address a core operating system issue making the device bugcheck on reboot or during sleep when trying to protect uefi firmware memory and getting denied by the QHEE Hypervisor.
    • Common: Lots and lots of refactoring

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.29..2210.38

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 will be made available next week. (Work in progress,)

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.14 MB)
  • 2210.29(Oct 9, 2022)

    IMG_1426

    This update includes new features, bug fixes and improvements. Key changes include:

    • Common: Updated Project Mu
    • Surface Duo 2: Initial Windows OS Bring up. Currently limited to Single Core. Requires manual OS patching for now. (Details coming later)
    • Surface Duo 1: General firmware level bug fixes
    • Common: Lots and lots of refactoring

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2210.1..2210.29

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 will be made available next week. (Work in progress,)

    Source code(tar.gz)
    Source code(zip)
    SM8150.UEFI.Surface.Duo.1.zip(14.38 MB)
    SM8350.UEFI.Surface.Duo.2.zip(14.13 MB)
  • 2210.1(Oct 1, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    • Common: More code sharing between both devices
    • Common: Add HeartBeatDxe to help diagnose GIC/Timer issues
    • Documentation: Update build instructions in README.md
    • MU: Update to Project Mu release 202208

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2209.90..2210.1

    Surface Duo 2 Windows booting support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2209.90(Sep 27, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    image image image image

    • Surface Duo 2 is now fully functional under the UEFI. Everything works. Interrupt Controller, USB, timer, TZ, Scm, PIL, ADSP, Glink, Pmic, buttons, TSENS, Clocks, SPMI, you name it. Windows can be chainloaded using the UEFI, you can use WinDBG to debug the Windows Kernel, but Windows will not boot fine just yet. Some debugging is needed using the newly added support for KDNET over USB. Mass storage is now available as well using developermenu.

    Technical changes:

    • Common: Updated Project MU submodules
    • Surface Duo 2: Added full support for USB functionality under the UEFI
    • Surface Duo 2: Addresses an issue impacting the use of USB Debug transports for Windows Kernel debugging (KDNET over USB)
    • Surface Duo 2: Addresses an issue impacting the use of USB under other Operating Systems loaded by said UEFI
    • Surface Duo 2: Addresses an issue where the Device Recovery application (volume down) was crashing the device
    • Surface Duo 2: Addresses an issue with mass storage not working when using developermenu.efi

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2209.70...2209.90

    Surface Duo 2 Windows booting support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB
    • Surface Duo 2 AT&T 128GB
    • Surface Duo 2 Europe 128GB
    • Surface Duo 2 America 256GB
    • Surface Duo 2 AT&T 256GB
    • Surface Duo 2 Europe 256GB
    • Surface Duo 2 America 512GB
    • Surface Duo 2 AT&T 512GB
    • Surface Duo 2 Europe 512GB

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2209.70(Sep 22, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    • Common: Updated Project MU submodules
    • Surface Duo 2: Support for Engineering Unfused devices with Manufacturing unlock was fixed
    • Surface Duo 2: Addresses an issue where the Qualcomm Haven WatchDog Timer may not get successfully disabled on start due to multiple cores being active
    • Surface Duo 2: Added the correct regulatory asset for Surface Duo 2
    • Surface Duo 2: Enabled Driver for Qualcomm Demura Display Enhancement functionality
    • Surface Duo 2: Enabled Driver for Qualcomm MiniDump Trusted Applet
    • Surface Duo 2: Enabled Driver for Qualcomm Haven WatchDog
    • Surface Duo 2: Enabled Driver for Microsoft Surface D6 Digitizer Hid Mouse Absolute Reporting

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2209.63...2209.70

    Surface Duo 2 support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 512GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 512GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 512GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2209.63(Sep 19, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    • Surface Duo 1: Fixed an issue where the Platform type was incorrectly filled in DSDT
    • Surface Duo 1: Fixed an issue where the Chip Identifier String was incorrectly filled in DSDT
    • Surface Duo 2: DSDT is now dynamically updated just like on Surface Duo 1
    • Common: Updated MU
    • Common: Improved the logic to dynamically fill in hardware information in the DSDT ACPI Table
    • Common: Removed a lot of "hacks"/workarounds for getting some MsGraphicsPkg drivers to load
    • Common: ACPI tables are now unfilled by default, because the UEFI firmware dynamically fill them in
    • Common: Added the ability for the UEFI to detect USB devices that are bootable if enabled & present
    • Common: Improved UEFI loading speed during BDS phase
    • Common/Debug: Introduced debug prints for Chip information at boot

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2209.60...2209.63

    Surface Duo 2 support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2209.60(Sep 18, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    • Surface Duo 1: ACPI Table DSDT header is now almost all automatically patched at runtime, this means that if a Software Update happens, changing SMEM regions, or different chip variants exist on specific surface duos, or some surface duo devices exist with different Modem configuration exist they are now handled
    • Surface Duo 1: Temporarily workaround an issue with retrieving Chip Tier value due to custom silicon being in use on Surface Duo devices
    • Surface Duo 1: Temporarily workaround an issue with retrieving Platform System Type from CDT due to custom configuration and silicon being in use on Surface Duo devices
    • Surface Duo 1: Chip Serial number is now correctly embedded in ACPI
    • Surface Duo 1: [WIP] Charger IC bring up work, not yet finished
    • Surface Duo 1: Addresses an issue where the device would unexpectedly charge, overcharge, or report incorrect fuel gauge values
    • Surface Duo 1: Addresses an issue where some boot sessions would only have one battery pack connected at all times
    • Surface Duo 1: Addresses an issue where battery packs may not be shared when being used under Windows
    • Surface Duo 2: Updated HWIO Memory Map
    • Surface Duo 2: Fixes an issue with side buttons not being usable to go to the UEFI settings or Device Recovery
    • Surface Duo 2: NT Debug code hooks were added
    • Common: Addresses an issue with Logging over Serial for a few Qualcomm drivers
    • Common: PrePi Code Sharing/Refactoring
    • Common: Updated MU Submodules

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2209.46...2209.60

    Surface Duo 2 support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2209.46(Sep 14, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    • Surface Duo 1/2: Updated Project MU Submodules
    • Surface Duo 1/2: The Peripheral Image Loader has been added back into this release due to lock fixes from MU's side
    • Surface Duo 1/2: Refactored Boot process/PrePi phase
    • Surface Duo 2: Qualcomm Haven Virtual Generic Interrupt Controller Distributor v3 is now functional in this release
    • Surface Duo 2: Qualcomm Haven Virtual Generic Interrupt Controller Redistributors v3 are now functional in this release
    • Surface Duo 2: Qualcomm SCM is now functional in this release
    • Surface Duo 2: Qualcomm TZ Driver is now functional in this release
    • Surface Duo 2: Addresses an issue impacting RPMB access using the UFS UEFI Driver
    • Surface Duo 2: Addresses an issue impacting Subsystem loading using the UEFI Subsystem drivers
    • Surface Duo 2: Drops support for TrustZone Applet queries for MinidumpTA and FeatureEnablerTA
    • Surface Duo 2: Qualcomm Haven Virtual Generic Arch Timer v3 is now functional in this release
    • Surface Duo 2: Qualcomm Haven Virtual Watch Dog Timer is now functional in this release
    • Surface Duo 2: Resolves an issue impacting SMC call completion
    • Surface Duo 2: Resolves an issue where the vCPUs were asleep due to a previous firmware bug
    • Surface Duo 2: Addresses an issue impacting USB cable detection
    • Surface Duo 2: Addresses an issue impacting the UEFI Boot Device Services from enumerating USB devices connected to the system, leading to a deadlock

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2209.36...2209.46

    Surface Duo 2 support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 512GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 512GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 512GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2209.36(Sep 11, 2022)

    This update includes new bug fixes and improvements. Key changes include:

    • Surface Duo 1: Improves Boot reliability (BootShim)
    • Surface Duo 1: The UEFI now uses the right region for its memory pool, freeing 120MB of ram, previously reserved by firmware, for use in Windows
    • Surface Duo 1: Memory Management rework
    • Surface Duo 2: Improves Boot reliability (BootShim)
    • Surface Duo 2: The UEFI now uses the right region for its memory pool, freeing 120MB of ram, previously reserved by firmware, for use in Windows
    • Surface Duo 2: Memory Management rework
    • Surface Duo 2: An additional 1GB of ram has been free'd for HLOS usage
    • Common: New Versioning Scheme to align with the Drivers

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.39...2209.36

    Surface Duo 2 support is not yet available and is not yet working!

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(15.40 MB)
  • 2.39(Sep 10, 2022)

    This update includes new features and improvements. Key changes include:

    • Surface Duo 1: Fixes an issue where the UEFI would not start for some people
    • Surface Duo 1: Enables more ram to be used within Windows
    • Surface Duo 2: More hardware enablement
    • Common: Refactored the entire boot process for the UEFI. In case of issues please file an issue on github or drop a message on telegram

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.38...2.39

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(16.94 MB)
  • 2.38(Sep 7, 2022)

    This update includes new features and improvements. Key changes include:

    • Surface Duo 2: Added support for the Security Processor Subsystem in firmware
    • Surface Duo 2: Added support for the reset power on protocol in firmware
    • Surface Duo 2: Added support for the hexagon firmware loader in firmware
    • Surface Duo 2: Added support for the hexagon firmware proxy loader in firmware
    • Surface Duo 2: Added support for the display feature enabler in firmware
    • Surface Duo 2: Added support for the UEFI FV Parser in firmware
    • Surface Duo 2: Addresses an issue with GIC initialization using LittleKernel trampoline
    • Surface Duo 2: Addresses an issue where all secondary CPU cores may not be shutdown upon transitioning to the new UEFI firmware
    • Surface Duo 2: Improves boot reliability and speed
    • Surface Duo 2: Reduced the amount of colorbars shown on screen to the secure boot unlocked one.
    • Surface Duo 2: Enables firmware support for getting access to the LittleKernel Scheduling bootloader
    • Surface Duo 2: Enables firmware support for getting access to the UEFI Configuration block
    • Surface Duo 2: Addresses an issue with the Lid Hall Sensor gpio being inverted when being polled for
    • Surface Duo 2: Addresses an issue with the memory region for PSHOLD not being reserved properly impacting Windows' OSLoader ability to transition to the NT Kernel
    • Surface Duo 2: Addresses an issue with the memory region for TrustZone Applets not being reserved properly impacting Windows' OSLoader ability to transition to the NT Kernel
    • Surface Duo 2: General refactoring
    • Surface Duo 1: Improves boot reliability and speed
    • Surface Duo 1: Reduced the amount of colorbars shown on screen to the secure boot unlocked one.
    • Surface Duo 1: Enables firmware support for getting access to the UEFI Configuration block
    • Surface Duo 1: General refactoring
    • Project Mu/BaseCore: Update Buffer Calculation for SetAccessAttributesInMemoryMap() (https://github.com/microsoft/mu_basecore/commit/7770b572689d5dc4621345ae554ce080a4b6fa83)

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.37...2.38

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(16.94 MB)
  • 2.37(Sep 6, 2022)

    This update includes new features and improvements. Key changes include:

    • Surface Duo 2: Added support for UFS (Internal Storage) (All LUNs) in firmware
    • Surface Duo 2: Added support for Global Clock Controller in firmware
    • Surface Duo 2: Added support for Power Management ICs in firmware
    • Surface Duo 2: Added support for Generic Peripheral Interface in firmware
    • Surface Duo 2: Added support for Surface D6 Digitizer in firmware
    • Surface Duo 2: Added support for Side buttons in firmware
    • Surface Duo 2: Added preliminary support for USB in firmware
    • Surface Duo 2: Added preliminary support for Arch Timer in firmware
    • Surface Duo 2: Added preliminary support for Generic Interrupt Controller in firmware
    • Surface Duo 2: Added support for TSENS in firmware
    • Surface Duo 2: Added support for Booting Linux in firmware
    • Surface Duo 2: Added preliminary support for Booting Frontpage in firmware
    • Surface Duo 2: Added support for Booting UFP Device Recovery in firmware
    • Surface Duo 2: Added support for LID Status detection in firmware
    • Surface Duo 2: Added support for Disabling Qualcomm Haven Virtual WatchDog Timer during firmware initialization
    • Surface Duo 2: Added preliminary support for Resetting Qualcomm Haven Virtual Generic Interrupt Controller during firmware initialization
    • Surface Duo 2: PrePi phase code refactorings
    • Surface Duo 2: Added color bars on boot up to make it easier to debug UEFI boot issues with users
    • Surface Duo 2: General Updates
    • Surface Duo 2: Updated Project Mu BaseCore
    • Surface Duo 1: Added preliminary support for Resetting Qualcomm Architectural Generic Interrupt Controller during firmware initialization
    • Surface Duo 1: PrePi phase code refactorings
    • Surface Duo 1: Added color bars on boot up to make it easier to debug UEFI boot issues with users
    • Surface Duo 1: General Updates
    • Surface Duo 1: Updated Project Mu BaseCore

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.36...2.37

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(16.94 MB)
  • 2.36(Sep 3, 2022)

    This update includes new features and improvements. Key changes include:

    • Resolves Graphical glitches in Windows for Surface Duo 1 devices. This only solves glitches with tiling textures, not TSRs due to too high GPU clock speeds, nor reboot issues when in sleep.
    • More progress towards Zeta (Surface Duo 2) bring up, nothing else to share at the moment.
    • Refactored UEFI repository structure to maximize code sharing
    • Resolves an issue in regard to negative serial numbers in firmware
    • Resolves an issue regarding USB boot support making the firmware hang
    • Resolves an issue impacting Debug logging capabilities
    • Resolves an issue with TZ Apps not loading
    • Preliminary support for Android 12 firmware

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.35...2.36

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)
    • Android 12 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)
    • Android 12 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(16.94 MB)
  • 2.35(Aug 27, 2022)

    This update includes new improvements. Key changes include:

    • Added preliminary support for Surface Duo 2
    • Added preliminary ACPI support for Surface Duo 2
    • Refactored the codebase to enable code sharing between different devices
    • Resolved an issue impacting stability when having in memory logging enabled on self-built compiles of the UEFI
    • Updated Project Mu submodules
    • Updated Surface Duo firmware base
    • Updated Boot Image Generation script

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.34...2.35

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)

    This update is compatible with the following Surface Duo 2 Models:

    • Surface Duo 2 America 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 128GB (Work in progress, more to follow soon)
    • Surface Duo 2 America 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 AT&T 256GB (Work in progress, more to follow soon)
    • Surface Duo 2 Europe 256GB (Work in progress, more to follow soon)

    This update is compatible with the following installed software on Surface Duo 2:

    • Android 11 (any firmware) (Work in progress, more to follow soon)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows on Surface Duo can be found here Guides for installing Windows on Surface Duo 2 are not yet available. (Work in progress, more to follow soon)

    Source code(tar.gz)
    Source code(zip)
    surfaceduo1-uefi.img(18.31 MB)
    surfaceduo2-uefi.img(16.94 MB)
  • 2.34(Aug 21, 2022)

    This update includes new improvements. Key changes include:

    • Enable Cache Coherency for the UFS, should lead to faster IO performance in Windows
    • Resolve an issue with an IOMMU Context Bank being reserved at boot after loading the UEFI firmware
    • Update device configuration for Windows Platform compliance
    • Update Built in Linux Mainline device tree for EFI STUB Linux kernel boot

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.33b...2.34

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows can be found here

    Source code(tar.gz)
    Source code(zip)
    uefi.img(18.31 MB)
  • 2.33b(Aug 17, 2022)

    This update includes new improvements. Key changes include:

    • Add support for PCI initialization on devices with PCI available
    • Implement Device Configuration Map
    • Update Default Device UEFI configuration
    • Refactor RFS Protection code
    • Refactor Platform Hob code

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.33...2.33b

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows can be found here

    Source code(tar.gz)
    Source code(zip)
    uefi.img(18.31 MB)
  • 2.33(Aug 16, 2022)

    This update includes new features and improvements. Key changes include:

    • August ACPI Platform Update: Brings improvements to Camera Subsystem (Spectra 380/Titan 175), Audio Subsystem (ADSP/Aqstic), GPU Subsystem (Adreno)
    • August Project MU Platform Update

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.32...2.33

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows can be found here

    Source code(tar.gz)
    Source code(zip)
    uefi.img(18.31 MB)
  • 2.32(Aug 5, 2022)

    This update includes new features and improvements. Key changes include:

    • Resolved an issue preventing Windows automatic Activation if your previously bought a license for Windows on your device and you reinstalled.
    • Changed back the device type from tablet to phone
    • ACPI: Enabled one missing regulator for the Camera sensor
    • MU: Updated submodules
    • Capsules: Firmware Update capsule support now enabled for the Digitizer

    Full Changelog: https://github.com/WOA-Project/SurfaceDuoPkg/compare/2.31...2.32

    This update is compatible with the following Surface Duo Models:

    • Surface Duo America 128GB
    • Surface Duo AT&T 128GB
    • Surface Duo Europe 128GB
    • Surface Duo America 256GB
    • Surface Duo AT&T 256GB
    • Surface Duo Europe 256GB

    This update is compatible with the following installed software on Surface Duo:

    • Android 10 (any firmware)
    • Android 11 (any firmware)

    This update requires an unlocked bootloader (via fastboot flashing unlock) and can be started by using fastboot boot boot.img

    Guides for installing Windows can be found here

    Source code(tar.gz)
    Source code(zip)
    uefi.img(18.31 MB)
Owner
WOA Project
A place where tiles get a second life... https://woa-project.github.io/LumiaWOA/
WOA Project
The simple UEFI application to create a Windows Platform Binary Table (WPBT) from the UEFI shell.

WPBT Builder This is a simple UEFI application to create a Windows Platform Binary Table (WPBT) from the UEFI shell. Motivation WPBT is one of the Adv

Satoshi Tanda 70 Nov 23, 2022
UEFI Application for CPU Voltage/Frquency and Power Management adjustment. Great for undervolting.

Reduce CPU Power Waste and Gain Performance. Greener and Meaner! ______ ______ _ (_____ \

null 125 Dec 30, 2022
A simple DIY project that will make oldschool POCSAG pagers/beepers work again

Arduino POCSAG Transcoder Features Message types: Tone, Numeric, Alphanumeric 4 encodings: Latin, 2xLatin/Cyrillic, Cyrillic Data rates: 512, 1200, 24

SinuX 7 Nov 20, 2022
FluidNC - The next generation of motion control firmware

FluidNC (CNC Controller) For ESP32 Introduction FluidNC is the next generation of Grbl_ESP32. It has a lot of improvements over Grbl_ESP32 as listed b

null 683 Jan 3, 2023
Just getting started with Data Structure and Algorithms? Make your first contribution here and start the journey of learning DSA.

Getting Started ! ✨ If you are just beginning with open source then let's make your first contribution in this repository ! Contributing Tutorial ?? P

amega 3 Apr 18, 2022
You may learn how to make successful pull requests and get your first valid open source contribution by using this repository.

Your-First-Contribution You may learn how to make successful pull requests and get your first valid open source contribution by using this repository.

Veshraj Ghimire 24 Aug 23, 2022
Beginner-friendly repository to make your first Pull Request and contribute to the open-source.

HacktoberFest Repository ( ?? Star this repository! ?? ) This is a Hacktoberfest-Repository,feel free to make your contributions here this month to wi

Ajinkya Bodke 40 Nov 16, 2022
Make screenshot every few minutes to make your small history!

Screenlapse Fun CPP application (which isn't well-made, can be optimized) that automatically make screenshots of your screen every few minutes and sto

raywave's junk projects 3 Aug 18, 2021
🍦 Never use cout/printf to debug again

IceCream-Cpp IceCream-Cpp is a little (single header) library to help with the print debugging on C++11 and forward. Try it at godbolt! Contents Insta

Renato Garcia 423 Jan 4, 2023
Pretend it's 1955 all over again.

Emmett Just run your program, jump in your DMC-12 and pretend it's 1955 all over again. How does that work? This works by relying on seccomp-ebpf, whi

Arthur Gautier 4 Sep 15, 2021
SuperTux Milestone 1 ported to the Dreamcast (again)

- An introduction for SuperTux - http://super-tux.sf.net/ Last update: April 26, 2004 Dreamcast port by Headshotnoby Turns out this game was alread

Headshotnoby 3 Jun 7, 2022
Tutorials on how the UEFI works

Step by Step Tutorials on how to use the UEFI for OS Development from scratch THIS IS WINDOWS BASED TUTS, BUT CODE SHOULD WORK IN LINUX AND MAC. NOTE

ThatOSDev 7 Dec 28, 2022
⚡ Kernel written for NeticOS (UEFI bootloader)

AirKernel ⚡ Kernel written for NeticOS (UEFI bootloader) Report bug | Request a feature ❗️ Requirements Debian/Debian-based sudo apt install gcc g++ q

null 7 Dec 3, 2022
Very minimalistic UEFI boot menu / Stivale2 bootloader

Tosaithe Tosaithe is a minimalistic UEFI-firmware menu/bootloader. It can chain-load other EFI programs and loaders, including Linux kernels, and has

Davin McCall 12 Dec 8, 2022
Getting started with uefi

Hello UEFI 此项目是uefi入门实践指导,因为我也是一路踩坑踩过来,所以想要记录一下。 UEFI开发环境搭建非常的复杂。 linux和windows和其他操作系统上都可以编译,这里主要讲windows。 此项目完成的效果仅仅是使用我们开发的uefi模块,在vmware上测试,并在shell

0000000000 2 Nov 8, 2021
Avocado Bootloader is an Advanced X86 - X86_64 BIOS/UEFI multiprotocol bootloader.

Avocado Bootloader What is avocado? Avocado is a modern, advanced x86/x86_64 BIOS/UEFI multiprotocol bootloader used as the reference implementation f

Weida32 2 Jan 3, 2022
Identify I2C devices from a database of the most popular I2C sensors and other devices

I2C Detective Identify I2C devices from a database of the most popular I2C sensors and other devices. For more information see http://www.technoblogy.

David Johnson-Davies 21 Nov 29, 2022
A graphical interface to set options on devices with coreboot firmware

Corevantage A graphical interface to set options on devices with coreboot firmware. Introduction This is a utility that allows users to view and modif

null 31 Dec 20, 2022
Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim.

Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim. The goal of vimb is to build a completely keyboard-driven, efficient and pleasurable browsing-experience.

Daniel Carl 1.2k Dec 30, 2022