This Repo Is Based On SurfaceDuoPkg
Thanks for Gustave's instructions!
Project Mu UEFI Implementation for Devices with Snapdragon™ inside.
You can download the latest UEFI build by clicking here.
This package demonstrates an AArch64 UEFI implementation for hacked devices with qcom silicons. Currently it is able to boot Windows 10 ARM64 as well as Windows 11 ARM64. Please be aware that devices with no dsdt support have limited support.
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: side-band buttons (TLMM GPIO and PMIC GPIO), USB
- Display FrameBuffer
Please see https://woa-msmnile.github.io for some tutorials.
- 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, ggc-aarch64-linux-gnu
- Exported CLANG38_BIN environment variable pointing to LLVM 10 binary folder
- Exported CLANG38_AARCH64_PREFIX variable equalling to aarch64-linux-gnu-
- 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:
- Setup Base environment
./setup_env.sh
pip install --upgrade -r pip-requirements.txt
Alternatively, use docker if you don't have Ubuntu 22.04 environment
sudo docker build -t mu:v1 .
sudo docker run -v $(pwd):/build/ -it mu:v1
Then finish the following process in docker environment
You can also use docker-compose if you know how to use
docker-compose up
- Build UEFI & Generate Android Boot Image
Usage: build_uefi.py -d <target-device>
-
Exmaple:
./build_uefi.py -d <target-name>
-
Tips:
- use
-s all
to build all devices. - use
-d all -s <target-silicon>
to build all devices in same platform.
- use
-
You will find Build/xxxxPkg/<target-device>.img after successfully building.
Comming soon...
Device | Target name | DSDT Support | Maintainers |
---|---|---|---|
HDK 845 | qcom-hdk845 | ✅ | NONE |
Xiaomi Mix 2s | xiaomi-polaris | ❌ | NONE |
Device | Target name | DSDT Support | Maintainers |
---|---|---|---|
ASUS ROG2 | asus-I001DC | ✅ | Ww |
Axon Stage 5G | kakao-pine | ❌ | AKA |
BlackShark 2 | blackshark-skywalker | ❌ | NONE |
BlackShark 2 Pro | blackshark-darklighter | ❌ | NONE |
HTC 5G Hub | htc-rtx | ❌ | NONE |
LG G8 | lg-alphaplus | ✅ | Yanhua |
LG G8S | lg-betalm | ✅ | J0SH1X |
LG G8X | lg-mh2lm | ✅ | Molly Sophia |
LG V50 | lg-flashlmdd | ✅ | AKA |
LG V50S | lg-mh2lm5g | ✅ | AKA |
Meizu 16T | meizu-m928q | ❌ | NONE |
Meizu 16s | meizu-m971q | ❌ | NONE |
Nubia RedMagic 3 | nubia-nx629j | ❌ | NONE |
Nubia RedMagic 3S | nubia-nx629jv1s | ❌ | NONE |
Nubia Mini 5G | nubia-tp1803 | ✅ | Alula |
OnePlus 7 | oneplus-guacamoleb | ✅ | NetuserPRO |
OnePlus 7 Pro | oneplus-guacamole | ✅ | Waseem Alkurdi |
OnePlus 7T Pro | oneplus-hotdog | ✅ | Morc |
OnePlus 7T Pro 5G | oneplus-hotdogg | ✅ | NONE |
OPPO Reno 10X | oppo-op46c3 | ❌ | NONE |
OPPO Reno ACE | oppo-pclm10 | ✅ | sunflower2333 |
QTI QRD 855 | qcom-msmnile | ✅ | sunflower2333 |
Realme X3 | realme-rmx2086 | ❌ | NONE |
Samsung Galaxy S10 | samsung-beyond1qlte | ✅ | Ww |
Samsung Galaxy Fold | samsung-winner | ✅ | Ost268 |
Smartisan Pro 3 | smartisan-aries | ❌ | NONE |
Xiaomi 9 | xiaomi-cepheus | ✅ | qaz6750 |
Xiaomi Hercules | xiaomi-hercules | ✅ | Ww |
Xiaomi K20 Pro | xiaomi-raphael | ✅ | sunflower2333 |
Xiaomi Mix3 5G | xiaomi-andromeda | ✅ | sunflower2333 |
Xiaomi Mix Alpha u2 | xiaomi-avenger | ❌ | NONE |
Xiaomi Pad 5 | xiaomi-nabu | ✅ | Map220v |
Xiaomi Poco X3 Pro | xiaomi-vayu | ✅ | Degdag |
Device | Target name | DSDT Support | Maintainers |
---|---|---|---|
QTI QRD 720 | qcom-atoll | ✅ | sunflower2333 |
Xiaomi Note 9S | xiaomi-miatoll | ❌ | Icesito |
Xiaomi Note 10 Pro | xiaomi-sweet | ❌ | dopaemon |
Device | Target name | DSDT Support | Maintainers |
---|---|---|---|
QTI QRD 778 | qcom-kodiak | ✅ | Ayu&sunflower2333 |
Comming soon...
Device | Target name | DSDT Support | Maintainers |
---|---|---|---|
QTI QRD 888 | qcom-lahaina | ❌ | None |
Device | Target name | DSDT Support | Maintainers |
---|---|---|---|
QTI QRD 8550 | qcom-kailua | ❌ | None |
Nubia RedMagic 8 Pro | nubia-nx729j | ❌ | None |
Xiaomi 13 | xiaomi-fuxi | ❌ | None |
Xiaomi 13 Pro | xiaomi-nuwa | ❌ | None |
- Gustave Monce and his SurfaceDuoPkg
- EFIDroid Project
- Andrei Warkentin and his RaspberryPiPkg
- Sarah Purohit
- Googulator
- Ben (Bingxing) Wang
- Samuel Tulach and his Rainbow Patcher
- BigfootACA and his SimpleInit
- Developers in Renegade Project
- Lemon ICE
All code except drivers in GPLDriver
directory are licensed under BSD 2-Clause.
GPL Drivers are licensed under GPLv2 license.