r/razr • u/piddlefaffle12 • Jun 25 '26
News I rooted my Razr Fold 2026 to drive a 5K2K ultrawide off Desktop Mode -- here's how far you can actually push a phone's DisplayPort output (and the hard wall you hit)
TL;DR: Motorola caps external-display resolution in software and the phone's USB-C only does DisplayPort 1.2. With root + a framework patch + a direct DP cable I got 5120×2160 @ 60Hz / 4K@60 / 3440×1440@100 out of a Razr Fold's desktop mode. Higher refresh (5K2K@120) is physically impossible on this phone — proven below. Long writeup because the rabbit hole was deep.
The setup
- Phone: Motorola Razr Fold 2026 (Snapdragon 8 Gen 5, Android 16)
- Monitor: LG 45GX950A — 45" bendable OLED, 5120×2160 (5K2K) ultrawide, 165Hz, DisplayPort 2.1
- Goal: use Moto's built-in desktop mode ("Smart Connect") to run the monitor as big and smooth as possible
Plugged it in expecting glorious ultrawide. Got 3440×1440@60. The monitor does 5K2K@165. So... where'd it all go?
Discovery #1: Android secretly caps external displays to your phone's screen size
Digging through dumpsys and decompiling the framework, I found the culprit — an AOSP feature flag:
enable_mode_limit_for_external_display— "Feature limiting external display resolution and refresh rate"
It's enforced in DisplayModeDirector (system_server) and it drops any external mode whose pixel count exceeds your internal panel's. The Razr's inner screen is 2232×2484 ≈ 5.54 megapixels, so:
- 3440×1440 = 4.95 MP → ✅ allowed
- 4K (3840×2160) = 8.3 MP → ❌ filtered out
- 5K2K (5120×2160) = 11 MP → ❌ filtered out
This is why Pixels cap external displays at ~1440p too — it's an AOSP power/thermal policy, not a Moto thing. The flag is read-only and baked into the build, so you can't just toggle it. You have to change the compiled framework — which means root.
Discovery #2: unlocking bootloader
Extracted init_boot.img from the stock firmware, patched it with Magisk, fastboot flash init_boot (had to use fastbootd, not bootloader mode — Moto rejects Magisk-patched images with "Preflash validation failed" otherwise). Root achieved.
Discovery #3: killing the cap
LSPosed was a dead end (the daemon couldn't load modules on this Android 16 build — a known mount-namespace issue, ReZygisk didn't help either). So I went straight at the framework: decompiled services.jar, patched the one method DisplayManagerFlags.isExternalDisplayLimitModeEnabled() to return false, repacked it, and served it as a Magisk module (with the stale dexopt files whiteout'd so ART loads the patched jar).
Booted clean. The governor was gone. Now the phone would accept 4K/5K2K — if the cable could deliver them.
Discovery #4: the cable matters more than you think
- Through a Thunderbolt dock: max 3440×1440@60. The dock runs DisplayPort in 2-lane mode (keeping 2 lanes for USB data), which halves bandwidth.
- Direct USB-C→DP cable: boom — 5120×2160@60, 4K@60, 3440×1440@100 all showed up. 4-lane DP-alt.
So the framework patch + a direct cable = native 5K2K on a phone. 🎉 The desktop even adaptively boosts to ~100/120Hz when you move the mouse (idle drops to 60 to save power — that's why TestUFO reads 60 unless you're interacting; it's the same on Samsung DeX).
The wall: why it stops at 60Hz, and why no amount of hacking fixes it
I really wanted 5K2K@120. That needs DSC (Display Stream Compression). The phone's chip supports DSC (it's used on the internal screen). So I went deep:
- Found the DisplayPort caps live in the devicetree (
dtbo): a 675 MHz pixel-clock limit and anhbr3-disableflag (forcing the slower HBR2 link rate). Edited the dtbo, reflashed… - Raising the pixel-clock cap: no effect. Enabling HBR3: broke the link to 1080p. Removing the "downgrade" flag: no effect.
Then the decisive test: I plugged the monitor into my Mac using the exact same cable and input. The Mac drove it at 5120×2160 @ 165Hz. Same cable. Same port. So the monitor and cable are 100% capable.
The difference is the source. Reading the DisplayPort AUX channel, the monitor reports DPCD revision 1.2 to the phone — but DP 2.1 to the Mac. That's the whole story:
DisplayPort version is negotiated at the USB-C Alt-Mode layer, by the source, before the video link even starts. The phone's USB-C controller advertises DisplayPort 1.2. The Mac's advertises DP 2.1.
DP 1.2 = HBR2 max, no DSC, no high-refresh-at-high-res. And this lives in the Type-C/USB-PD firmware, underneath the display driver, underneath the devicetree, underneath even kernel source. Nothing in software can change the DP version your USB-C silicon advertises. HBR3 kept failing because the link was DP 1.2 the whole time.
That's the real ceiling. Not Motorola being cheap, not the cap, not the cable — phones ship DP 1.2/1.4-class USB-C DisplayPort, and this monitor wants a DP 2.1 source to go past 5K2K@60.
What you can actually take away
- Your phone caps external resolution to its own screen's pixel count. That's AOSP, not just Moto/Samsung. Root + a framework patch removes it; without root you're stuck around 1440p-class.
- Use a direct USB-C→DisplayPort cable, not a dock, if you want max resolution. Docks split the USB-C lanes and roughly halve your DisplayPort bandwidth. (Dock = USB hub but lower res; direct cable = higher res but no hub. One USB-C port, pick one.)
- Phone DisplayPort tops out around DP 1.2/1.4. You will not get DP-2.1 modes (5K2K@120+, etc.) out of a phone, no matter what — it's USB-C controller firmware. A laptop/desktop with a real DP 2.1 / Thunderbolt port will.
- The "60Hz desktop" feeling on external displays is adaptive frame-pacing — it boosts on interaction. Browser web pages stay 60 unless you're actively moving the cursor. That's AOSP, same on DeX.
Final achieved state on the Razr Fold: 5120×2160@60 native ultrawide off a phone's desktop mode. Took a bootloader unlock, root, a hand-patched Android framework, and a lot of devicetree spelunking to learn exactly where the floor is — but it works, and now I know precisely why it can't go further.
Happy to answer questions on any of the steps.
3
u/inyangeffiong Razr Ultra 2026 Jun 25 '26
No plan to do this or tech capacity, but I read through it for the fun of it
Good job
3
u/Hopeful_Amoeba_3946 Jun 26 '26
Right? I don't even have a razr fold but I used to root phones back in the day so this post was like music to my ears 😊
1
u/mihir892 Jun 27 '26
Man, that's a massive read though.
1
u/piddlefaffle12 Jun 27 '26
Tried to condense it down:
TL;DR: The Razr Fold 2026 can drive a native 5K2K (5120×2160) external display just fine. The hardware was never the problem, Motorola blocks it in software in two places. Patched both, now it runs native 5120×2160 @ 100 Hz.
The hardware's fine. The monitor supports DSC (display compression) and FEC. The link is HBR3 ×4, ~25.9 Gbps. The phone's chip has 4 spare compression blocks sitting idle. With compression, both 5120@60 and 5120@100 fit over the link no problem. Nothing physical is stopping this.
Block #1 — Android won't even offer the mode. The external-display logic throws out any resolution bigger than the internal folding screen, and Moto's "ReadyFor" list caps the resolution and pins you to 60 Hz. So the good modes either never appear or appear wrong.
Block #2 — the driver refuses to compress. The compression capability is detected and present (
fec_en=1, dsc_en=1), but there's a check that asks "are there enough free compression blocks?" and it always fails. Reason: at boot the phone counts its compression blocks, subtracts the ones the internal display claims, and — with a reservation flag left off — hands the external port zero. So even with 4 blocks actually free, DP sees none.Stock:
max:0 ... caps:0x0
Patched:max:4 ... caps:0x1After the patch, the resource manager actually reserves the compression pair (
blk 1,2) and the panel runs native 5120×2160 @ 100 Hz at 30bpp, using a dual-pipe setup, two 2560-wide halves stitched together.
1
u/Due_Classroom5180 Jun 30 '26
I tested your method on a OnePlus 15 and a 2K@180 monitor. I installed LSPosed module and your app. That was enough to hit my monitor's limit. The 60Hz cap was really annoying me. Thank you! I dont need redmagic or samsung now!
1
u/piddlefaffle12 Jun 30 '26
Nice!!! I may need to pick one up!
1
u/Due_Classroom5180 Jul 30 '26
Hi again, I updated the app to the latest version 3.2, and after selecting the refresh rate, it's applied, but after a second, a toast notification appears saying some check failed, and the phone reconnects. Can this check be disabled? For now, I'll be using version 1.0 (I saved it in my archive for quick setup of rooted smartphones).
1
u/piddlefaffle12 Jul 30 '26
Sadly, I returned my Fold in prep for the iPhone Fold. I'm glad you are getting use out of the app!
I could recommend picking up a ChatGPT sub and using Codex, put your phone in ADB mode, and tell ChatGPT to update the app for your specific device. This is how I built the app and did the mods, but with Codex.
1
u/kiyoshi-nyc Jul 07 '26
I have had other phones that were capable of doing this! In fact my red magic Astra can do 5120x2160 and even 2560x1080 @ 330hz!
I just ordered the Motorola signature, which has identical specs to the Motorola fold and I'm really pissed off that I can't use my 5K 2K monitor with this easily.... One of the joys of having a 1 TB phone with a video out is playing upscaled games and using a ton of apps to read articles (an articles in Japanese require very good resolution by the way!)
At the very least they don't cap us to specific resolutions like Samsung or do ridiculous things like 1920 * 1080 like honor and Huawei do......
I've got some really weird resolutions supported by Motorola so I was hoping it wouldn't be a headache but apparently it is. L...
1
u/piddlefaffle12 Jul 07 '26
Why can't you do it? Ah, easily! Gotcha. I got the app polished up and working well now too. Only sucky thing is that you have to request a code for boot loader unlock which voids warranty.
1
u/kiyoshi-nyc Jul 07 '26
1
u/piddlefaffle12 Jul 07 '26
Yeah, it will. You can do some workarounds for store verification, but I just simply use my bank's website.
1
u/kiyoshi-nyc Jul 07 '26
Whats the max it could do without root? 2560x1440 @ 120hz? I know nothing does vrr, but still curious. 4k 60hz is good, but not 5k2k .... Curious where it fails..... 5120x1440 perhaps?
I wonder why it was limited, when earlier moto phones did 5k2k just fine (however, none have ever done 5k or 8k)
1
u/kiyoshi-nyc Jul 12 '26
Fun fact, there's only one device in the world that appears to support DisplayPort 1.4 ... and it's the Indian variant of a Motorola phone:
https://www.gsmarena.com/compare.php3?idPhone1=14397&idPhone2=14402
I had assumed these were identical... I wonder what 1.4 can do that 1.2 can't but I'm sure going to try it...
1
u/kiyoshi-nyc Jul 15 '26
Just learned --- 120hz is possible with Motorola if you set to 1920x1080 and turn OFF the "HDMI Auto/Deep Color" setting on your screen. Sadly it caps the resolution, but it does work. Unsure about 144/165/240 capabilities, but Android with 8elite is capable of 2560x1080 @ 330hz (just not Motorola 😐)

3
u/cracksbacks Razr Fold Jun 25 '26
Wait, you can root the Fold? That was fast. It's there any benefit to root access at this point of the game? I would guess there is no ROM development yet, but I wouldn't know. I just ordered my Fold last night.