SamuKata
MishaalRahman
MishaalRahman

patreon


Confirmed: Pixel 8 supports display output. Here's a first look!

Y'all, it's real. The Pixel 8 series actually DOES support display output, and here's video proof that it does (thanks to Micha Lechner AKA @mile_freak07 for testing and sharing this video!)

How did Micha get it to work? He used the exact same method I suggested nearly two weeks ago; the same method that I later said didn't work (tested on both the UD1A.230803.041 and U1B2.230922.006 builds).

So why did it work for Micha and not for my two testers? I don't know for sure, but it could have something to do with the cable that was used. One of my testers only tried display output with a USB-C cable attached to a USB-C to HDMI adapter to connect to a TV, while my other tester also did the same but also tested with a USB-C to USB-C cable (claimed to be DisplayPort compatible) connected to a monitor. Micha also used a USB-C to USB-C cable that's claimed to be DisplayPort compatible (specifically this one) and it just worked for him!

Version 2.0 of USB Gadget HAL, introduced in Android 14, adds support for reporting whether a connected USB-C cable supports DisplayPort Alternate Mode. It may be the case that my tester's USB-C cable just wasn't being recognized as supporting DP Alt Mode while Micha's was, but I'm not entirely sure that's the reason.

Update: Almost immediately after I published this article, my second tester with a Pixel 8 Pro on the Android 14 QPR1 beta says they got display output to work for them after using a USB-C to HDMI adapter and a different monitor (see 'PXL_20231015_163025275' in the attachments for photo proof). The plot thickens!

In any case, display output works, and enabling it is as simple as running a shell command (after rooting the device):

su
setprop persist.vendor.usb.displayport.enabled 1

(Micha made a Magisk Module you can install if you'd rather do that instead of running a shell command.)

As I previously reported, this property is read by the init.zuma.usb.rc file, which is the USB configuration file for the Tensor G3-series devices (zuma). Since this property is set to 0 by default, then DisplayPort is disabled. Thus, if you root the phone and override this property, then that's enough for display output to work! (See the attached image file for the relevant snippet from the init.zuma.usb.rc file.)

I'm really happy this actually works. Google is promising 7 years of OS, security, and Feature Drop updates, so they intend for you to keep your Pixel 8 for that long. That the phones seemed to lack display output in light of that was a shame, since we know that Google is working on improving Android's desktop mode experience. That desktop mode experience is currently still a WIP, though I have reason to believe Google is continuing work on it in Android 15. Even without desktop mode enabled, you can at least mirror the screen of the Pixel 8 to an external monitor, which can be useful if you want to watch some content from your phone while at a hotel.

(I'm making this article available to everyone due to public interest in this topic! Thanks to Micha Lechner for reaching out to me about this! I had almost given up hope on this, but Micha said he decided to test this out of curiosity and, by pure luck, discovered that the cable he ordered worked! Give him a follow if you want to see more mods of the Pixel 8 series or for news on his custom kernel projects.)

Confirmed: Pixel 8 supports display output. Here's a first look! Confirmed: Pixel 8 supports display output. Here's a first look!

Comments

Yes, it should persist after unrooting so long as you don't factory reset. Factory resetting may wipe the persist partition where the value of the property is stored

Does using setprop on a persistent property mean it still works after unroot?

Great. Wish it worked with Shizuku. Bit as it needs to set a property, Shizuku won't help.


More Creators