Surface-Duo Dual Experience
The Surface Duo, Microsoft’s dual-screen Android device, aimed to redefine mobile productivity by offering a unique form factor that combined the versatility of two screens with the familiarity of the Android operating system. Launched in September 2020, the device garnered attention for its innovative design but faced criticism for its high price, software bugs, and lack of 5G support. Despite a subsequent release of the Surface Duo 2 in October 2021, which addressed some of these issues with improved hardware and features, the devices struggled to gain significant market traction. Microsoft officially ceased updates and support for the Surface Duo line in early 2023, marking the end of its interest in the dual-screen smartphone market. However, with AOSP GSI and the help of the opensource community, we are building the Surface Duo Dual Experience (DUO-DE) custom ROM with over-the-air (OTA) update support for both Surface Duo1 and Surface Duo2.
This is a Android 15 GSI build designed for Microsoft Surface Duo devices, offering a clean AOSP experience. This build combines gapps (Google Apps) variant and the vanilla variant of the GSI ROM from ponces with desktop mode enabled + various tweaks to make it nice and smooth with the help of thain tweaks. All credits go to respective developers. The latest version is stable and secure for daily usage.
Before you proceed, please take a moment to read this announcement regarding this project. By using this ROM, you are agreeing to the DISCLAIMER
.
Posture Engine and Dual Modes
With the Posture Processor Engine, both duo1 and duo2 react to various postures. Specifically, the touch configurations and display settings will toggle between left-screen phone mode, right-screen phone mode, and tablet mode based on the hinge position. The hinge gaps can be enabled/disabled through the treble app.
This ROM switches between tablet mode (first image) and phone mode (second image) when you change the postures. These modes are optimized (both visually and utility-wise) for each of the situations and the screen’s real state.
Note: In case your device does not react to tent or ramp mode (landscaped phone mode) by default, you have to enable it from the
Home settings
. When you are in Phone mode, click and hold on the desktop, clickHome settings
on the popup menu, and enable theAllow home screen rotation
feature. This will enable the launcher to serve the Tent mode and Ramp modes.
Floating Windows
Floating windowed mode can be enabled/disabled for tablet mode and phone mode separately. To do that, hold the desktop, click home settings
, and find the settings Tablet Mode Floating Windows
and Phone Mode Floating Windows
.
Split Windows
You can still launch apps in split window mode (similar to the Stock 12L) using two methods,
- Click and hold the application icon, and click the option
split
from the popup menu. - Launch the apps first, and use the gesture (or recent apps button on the navigation bar) to access the recent apps window and click
split
.
Both options will prompt you to open the second application to share the screen.
Benchmarks
These results are just for reference (for people who enjoy numbers) to compare the CPU and GPU performance of this ROM (latest build) with other operating system options. Best case numbers of each operating system are included in the graphs.
Flashing steps
Try this at your own risk and proceed with caution!
Please pay attention to commands, do not copy and execute the commands blindly, you may brick your device!!
Following are the steps to flash this image to your surface duo.
- Download the release.
wget https://github.com/Archfx/duo-de/releases/download/[[VERSION]]/aosp-arm64-ab-gapps-15.0-[[VERSION]].img.xz
- Extract the compressed
*.xz
file to obtain the*.img
. (Windows users can use something like 7-zip, Linux and Mac users can use either of following commands with respective commandline utilities).tar -xf aosp-arm64-ab-gapps-15.0-[[version]].img.xz #tar utility
gunzip aosp-arm64-ab-gapps-15.0-[[version]].img.xz #gunzip utility
- If you are migrating from Android 12L (stock) follow this step. You need to unlock the bootloader before proceeding.
adb reboot fastboot fastboot delete-logical-partition system_ext fastboot delete-logical-partition product #get the current slot fastboot getvar current-slot #if current slot is a, delete the system_b fastboot delete-logical-partition system_b #if current slot is b, delete the system_a fastboot delete-logical-partition system_a fastboot flash system aosp-arm64-ab-gapps-15.0-[[VERSION]].img fastboot reboot
- Migrating from 13/14 pixel experience, follow the below steps
adb reboot fastboot fastboot flash system aosp-arm64-ab-gapps-15.0-[[VERSION]].img fastboot reboot
- Enable the following settings from the developer options and perform a manual reboot.
- Force activities to be resizable
- Enable freeform windows
- Enable non-resizable in multi-window
- Once you flash a duo-de version using the above steps, subsequent updates will be received using OTA. You can check updates using
settings -> system -> system updates
.
Issues
Currently known issues: please check here
Any other issues, please open an issue with a detailed description.
Credits
These people have helped this project in some way or another, so they should be the ones who receive all the credit:
phhusson AndyYan eremitein kdrag0n Peter Cai haridhayal11 sooti Iceows ChonDoit ponces thai-ng Axel
Disclaimer
THIS REPOSITORY CONTAINS A CUSTOM ANDROID GENERIC SYSTEM IMAGE (GSI) ROM PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND. USE, DOWNLOAD, OR INSTALLATION OF THIS SOFTWARE IS AT YOUR OWN RISK. THE AUTHORS ARE NOT LIABLE FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO DEVICE DAMAGE, DATA LOSS, OR OTHER ISSUES RESULTING FROM THE USE OR INSTALLATION OF THIS ROM. INSTALLING CUSTOM ROMS MAY VOID YOUR DEVICE’S WARRANTY AND COULD BRICK YOUR DEVICE, RENDERING IT UNUSABLE. VERIFY COMPATIBILITY WITH YOUR DEVICE BEFORE INSTALLATION. NO GUARANTEE OF UPDATES, FIXES, OR SUPPORT IS PROVIDED. THIRD-PARTY SOFTWARE INCLUDED IS SUBJECT TO ITS OWN TERMS. MODIFICATION AND REDISTRIBUTION ARE PERMITTED UNDER THE PROVIDED LICENSE, BUT AUTHORS DISCLAIM LIABILITY FOR ISSUES ARISING FROM SUCH ACTIONS. BY PROCEEDING, YOU ACCEPT THESE TERMS. IF YOU DO NOT AGREE, DO NOT USE THIS FIRMWARE IMAGE.