How to Force Daydream VR Compatibility on Unsupported Android Devices

How to Force Daydream VR Compatibility on Unsupported Android Devices

Google Daydream VR is Google’s virtual reality solution for mobile devices. Devices need to be officially cleared by Google to be labeled as Daydream compatible, and some of the requirements are fairly stringent. Most of the requirements simply guarantee good VR performance on the devices that are officially supported, but there are some devices, such as the OnePlus 3, OnePlus 3T, or OnePlus 5 that should be able to run Daydream VR just fine.

In order to support high performance virtual reality mode (required for official Daydream VR support), your device must have support for the Vulkan Graphics API with Open GL ES 3.2 and a screen resolution of at least 1080p at a refresh rate of 60Hz minimum with ideally 3ms or less display latency and 5mm or less persistence. The screen should also be between 4.7″ and 6″ in size and the device should support Bluetooth 4.2 LE and have temperature sensors to read the body temperature of the phone. You can look at the full list of technical requirements here.

If your existing, Daydream VR-unsupported devices, more or less meets the above requirements, then you should be able to enjoy the Daydream VR experience – so long as you have root access! This tutorial will show you how to enable Daydream VR both systemlessly with Magisk or by modifying /system.


Force Daydream VR Compatibility (System Mod)

Firstly as mentioned you will need root access on your device. You can get this by flashing either SuperSU or Magisk through a custom recovery such as TWRP if your device’s bootloader is already unlocked. Once you have that, install a file browsing application that will let you edit files in /system. I recommend MiXplorer or the popular Solid Explorer.

Step 1

Open MiXplorer, grant it root access and navigate to /system/etc/permissions and find the file named handheld_core_hardware.xml.

Note: I am using Solid Explorer here, but it’s the same steps involved with MiXplorer.

Step 2

Open the file named “handheld_core_hardware.xml” and before the final line which says </permissions> add the following:

<feature name="android.software.vr.mode" /> 
<feature name="android.hardware.vr.high_performance" />

Save the file.

Step 3

Next, you will need to open your build.prop file, located in /system. This file works to identify many system properties of your device. The line we are interested in is the ro.product.device entry, which defines your device’s product name. Replace the device listed to “sailfish“. This is the Google Pixel and it is recognized as a Daydream VR compatible phone. The line should then read:

ro.product.device=sailfish

Step 4

Reboot your phone and install the Daydream application, Google VR Services, and Daydream Keyboard from the Google Play Store. If you cannot see these in the Play Store, try installing them from APKMirror.com below.

You should now be able to use a Daydream VR headset with your Android device! If you don’t already have one, you can buy one here on Amazon.


Force Daydream VR Compatibility (Systemless Mod)

Following these steps will require MagiskSU installed instead of SuperSU, so make sure you have Magisk installed. It’s a bit more long winded as that file is device specific, so you will need to make your own Magisk module. This requires Linux as it uses a shell script. To begin, you firstly need to download this template and extract it. You will also need to use Vim or Nano.

Step 1

Firstly you’ll need to extract your own handheld_core_hardware.xml file, which you can do by simply copying it out from /system/etc/permissions. Copy this to your computer. Navigate to the Magisk module template folder and enter the folder named system. Delete the placeholder file, make a folder called “etc“, then enter that and create a folder called “permissions“. Inside your permissions folder is where you want to copy your handheld_core_hardware.xml file. The file hierarchy should look like this.

Step 2

Now open your handheld_core_hardware.xml file and add these lines before </permissions>

<feature name="android.software.vr.mode" /> 
<feature name="android.hardware.vr.high_performance" />

Save that and navigate back to the root of your Magisk module template folder.

Step 3

For the rest you can simply follow the instructions in the GitHub page for naming your module and making it unique! Once done, run the config.sh file, flash your newly created zip, and also flash this Magisk module which changes your build.prop, made by XDA member 4RK4N in this thread.

And that’s it! You’re good to go!


Explanation

This simply works by editing a preference file which lists what features your device supports. We edit it to trick apps into thinking it has support for Google Daydream VR. This isn’t enough for some apps however, as some Daydream apps check the device type first before launching against the list of officially supported devices. This is where our build.prop edit hopefully comes in, which tells apps that our device is actually a Google Pixel.

Now go out there and enjoy the world of VR on your phone! Here are some apps to get you started:

And check out the Daydream VR XDA forum for news and discussion related to the fledgling VR platform!

Discuss This Story

You might also like