• Stars
    star
    156
  • Rank 238,231 (Top 5 %)
  • Language
    C
  • License
    BSD 2-Clause "Sim...
  • Created over 2 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Project Mu UEFI Firmware for Surface Duo Devices

Project Mu UEFI Implementation for Surface Duo Platforms

Surface Duo Dual Screen Windows

For users

You can download the latest UEFI build by clicking here.

Build Status (Visual Studio Team Services)

What's this?

This package demonstrates an AArch64 UEFI implementation for hacked Surface Duo 1 and Surface Duo 2 devices. Currently it is able to boot Windows 10 ARM64 as well as Windows 11 ARM64. Please be aware that SM8350 devices have limited support.

Support Status

Applicable to all supported targets unless noted.

  • Low-speed I/O: I2C, SPI, GPIO, SPMI and Pinmux (TLMM).
  • Power Management: PMIC and Resource Power Manager (RPM).
  • High-speed I/O for firmware and HLOS: UFS 3.1
  • Peripherals: Touchscreen (HID SPI), side-band buttons (TLMM GPIO and PMIC GPIO)
  • Display FrameBuffer

What can you do?

Please see https://github.com/WOA-Project/SurfaceDuo-Guides for some tutorials.

Compatibility

Device Name Device Generation/Year Codenames/Internal Names UEFI Port Status Windows Bootability Status
Surface Duo First generation 2020 Epsilon, OEMB1, OEMA0 (Bogus?), oema0 oema0 b1 (Bogus?), Andromeda (Bogus?) βœ… βœ…
Surface Duo 2 Second generation 2021 Zeta, OEMC1, oemc1 sf c1, Andromeda (Bogus?) βœ… ⚠️*

*Only a single core will work in Windows currently with the current ACPI tables on Surface Duo 2.

It is not going to work on any other device even if they use the same SoC as is. You may risk breaking your other device if you even try it. It is only for Surface Duo devices, and there is no interest in adding support for other devices in this repository.

Build

Minimum System Requirements

  • At least 2 cores x86_64 processor running at 2Ghz or higher implementing the X86 ISA with 64 bit AMD extensions (AMD64) (Currently, building on any other ISA is not supported. In other words, do. not. build. this. on. a. phone. running. android. please.)
  • SSD
  • A linux environment capable of running below tool stack:
    • Bash
    • Python 3.10 or higher (python3.10, python3.10-venv, python3.10-pip)
    • mono-devel
    • git-core, git
    • build-essential
    • clang38 (or higher), llvm, gcc-aarch64-linux-gnu
  • Exported CLANG38_BIN environment variable pointing to LLVM 10 binary folder
  • Exported CLANG38_AARCH64_PREFIX variable equalling to aarch64-linux-gnu-

Build Instructions

  • Clone this repository to a reasonable location on your disk (There is absolutely no need to initialize submodules, stuart will do it for you later on)
  • Run the following commands in order, with 0 typo, and without copy pasting all of them blindly all at once:
# Build UEFI
pip install --upgrade -r pip-requirements.txt
./build_uefi_epsilon.sh
./build_uefi_zeta.sh

# Generate ELF image
./build_bootshim.sh
./build_boot_images.sh

Acknowledgements

License

All code is licensed under BSD 2-Clause.

More Repositories

1

WOA-Deployer-Rpi

WOA Deployer for Raspberry Pi
C#
965
star
2

WoA-Installer-Rpi

This repository was deprecated, use:
C#
850
star
3

WOA-Deployer-Lumia

Making your Lumias great again!
C#
477
star
4

Lumia950XLPkg

Non-EOL (yes!) AArch64 UEFI firmware for Lumia 950 / Lumia 950 XL
C
364
star
5

SurfaceDuo-Guides

Guides for the Surface Duo
Python
271
star
6

Lumia-Drivers

Collection of driver binaries for Lumia devices
C#
184
star
7

SurfaceDuo-Drivers

Collection of driver binaries for Surface Duo devices
Roff
153
star
8

MSM8994-8992-NT-ARM64-Drivers

Desktop Windows (ARM64) driver collection for MSM8992/8994 SoCs.
136
star
9

guides

Guides relevant to WOA
108
star
10

WOA-Deployer

WOA Deployer
C#
90
star
11

woadialer

A dialer based on UWP and .NET for the WoA on Lumia Project.
C#
79
star
12

Qualcomm-Reference-Drivers

Reference Drivers for Select Qualcomm Reference Platforms found on Windows Update
56
star
13

Chat

Send text messages using your device builtin phone modem.
C#
38
star
14

img2ffu

Converts raw image (img) files into full flash update (FFU) files
C#
37
star
15

DriverUpdater

Utility to update drivers on Lumia 950 and Surface Duo family of devices
C#
30
star
16

LumiaUSBC

USB-C controller driver for the Nokia Lumia 950 and 950XL
C
26
star
17

AndroidDebugBridge

The Android Debug Bridge Protocol, implemented in C# / .NET
C#
25
star
18

LumiaWOA

The github site for LumiaWOA
HTML
25
star
19

WOA-Device-Manager

WOA Device Manager helps you install, update and manage Windows on your Android device.
C#
20
star
20

FastBoot

The FastBoot USB protocol, implemented in C# / .NET
C#
18
star
21

LumiaApp

The Windows Settings app for LumiaWOA
C#
13
star
22

UEFIReader

Tool to generate .inf payloads for use in various other UEFI projects out of an existing UEFI volume
C#
13
star
23

USBFunctionModeSwitcher

Switch USB port roles on phones running Windows Desktop
C++
12
star
24

SurfaceDuo-Releases

Released materials as part of the DuoWOA Project. Also contains release information and changelogs
11
star
25

reg2inf

Convert reg driver to an installable inf (beta) - For splitted BSP regs
C#
10
star
26

SurfaceDuo-XDE-Skin

Surface Duo Emulator Skin for Microsoft XDE Emulator
9
star
27

DisplayDockFlyout

A flyout for Microsoft HD-500 Display Dock
C#
9
star
28

FirmwareGen

Windows Desktop Firmware generation tool for Lumias. Builds Firmwares under 2 hours
C#
9
star
29

RKHReader

A tool to read the root key hash from most Qualcomm signed binaries/dsp firmwares/partitions (works on both last decade and modern day devices!)
C#
8
star
30

AdvancedInfo

Advanced Info application for LumiaWOA
C++
7
star
31

DuoWOA

TypeScript
6
star
32

GlanceScreen

Settings application for Glance Screen
C++
6
star
33

AeoBUtils

C#
5
star
34

PowerSupplyNotifier

Notifies the user when a power supply gets connected by playing a sound
C++
5
star
35

Community-Issues

A repository for hosting conversations and tracking issues related to anything about the project
5
star
36

ResignBSP

C#
5
star
37

SurfaceApp

The Windows Settings app for DuoWOA
C++
4
star
38

Ice5Lp2k

Driver for Lattice UC120 USB-C PD PHY Chip based on Lattice iCE5LP2K FPGA
C
4
star
39

Specifics-Cityman

Lumia 950 XL Specific Drivers
4
star
40

SurfaceDuoDualBootKernelImagePatcher

Utility to help patch kernel images with ease to support SurfaceDuoPkg Dual Boot / Untethered Boot method
C#
4
star
41

UnifiedFlashingPlatform

The Unified Flashing Platform Protocol, implemented in C# / .NET
C#
4
star
42

fsa4480

Driver for the ON Semi. FSA4480 USB-C Audio Analog Switch/DP AUX
C
3
star
43

Deployment-Scripts

Deployment scripts for use with WOA Deployer
3
star
44

SurfaceDuo2Pkg

ASL
3
star
45

SurfaceDuo-ACPI

Windows ACPI 5.0 Firmware for Surface Duo Devices
ASL
3
star
46

Support-Desktop-Drivers

Support drivers for NT Desktop
Batchfile
3
star
47

UserFirstLogonExperience

Work in progress UI for selecting one shell for the LumiaWOA project
C#
3
star
48

SurfaceDisplayConfiguratorService

Configures Display Topology and Settings on device first run.
C++
3
star
49

LumiaNull

Common nulled devices for Lumia devices
C
3
star
50

Andromeda-Sensors-Test-Client

Testing client for Andromeda Sensors (Fold, Flip, Posture...)
C++
3
star
51

RILServiceInit

Initializes a RIL on Windows systems
C
3
star
52

SurfaceMini-Stuff

A collection of random Surface Mini related things
ASL
3
star
53

Specifics-MMO-Drivers

MMO Specific drivers
Batchfile
2
star
54

DT2XmlPanelCmdConverter

An utility to convert Device Tree Panel Command sequences to Xml Command Sequences for Qualcomm Platforms
C#
2
star
55

SurfaceBattery

Fuel gauge drivers for Surface Duo
C
2
star
56

QCBSPRenamer

C#
2
star
57

SurfaceDuoBinaries

BitBake
2
star
58

WMRilShim

Shim for WMRil
C++
2
star
59

ColorProfile

Change the color profile of a Lumia display with windows native integration and night light support
C++
2
star
60

PhoneSvcPermissionUpdaterService

PhoneSvc Permission Updater Service
C++
2
star
61

SurfaceTouchPanelAlignment

C
2
star
62

SurfaceSOCPartitionFilter

C
2
star
63

SurfaceDuo-SensorSDK

2
star
64

TouchSettings

Settings application for the touch driver on Lumias
C++
1
star
65

SubExtInfUpdater

An utility to help update Qualcomm Subsystem Extension INFs with newer binaries or different binaries
C#
1
star
66

LumiaWoA.github.io

Site
1
star
67

Specifics-Talkman

Lumia 950 Specific Drivers
1
star
68

DataManagementSvc

Data Management Service (DataManagementSvc) - Enables data connection on multi sim devices
C
1
star
69

MobileBridge

Mobile Bridge Services & Tools so Lumias can be made great again! (on Desktop or WCOS)
C
1
star
70

Not-NPETSEC

Modem activation bootstrapper library for Nokia's APPerso
C++
1
star
71

VibrationSettings

Brings vibration settings for Windows ARM64 phone devices
C++
1
star
72

TouchPower

The Touch Power driver used by Lumias for gating P-States linked to the digitizer.
C
1
star
73

Tips

Tips application for the LumiaWOA project
C#
1
star
74

AutoRotate

Auto rotation tool for Phones
C++
1
star
75

NTrigConfigurationTools

C#
1
star
76

NTrig-Andromeda-Configurations

Repository holding the N-Trig Configuration Databases for the Surface Andromeda Family of devices
1
star
77

windows_kona_platforms

Platform drivers for Snapdragon 865 ("Kona") devices
1
star
78

windows_lahaina_platforms

Platform drivers for Snapdragon 888 ("Lahaina") devices
1
star
79

firmware_oem_surface_dual_screen_epsilon

Firmware files extracted from official OTA packages for Surface Duo (First Generation)
Roff
1
star
80

icaros_cam_esp_thermal

C
1
star
81

INFCleaner

Tool to help cleanup INF files
C#
1
star