[Google Daydream VR] Retrete:
If anyone is still (trying) to use daydream on normal devices, I'm going to share my experiences with getting it to "work" in a redmi note 4 (sd625 variant), along some other problems I do still face.

First of all, you need to know that daydream is designed to have always reprojection on, if you don't know what that is, take a look at this. This means that unless you have an oled display, with their inherit characteristics (low persistence), or an lcd that's capable of doing 90hz or more, you're going to experience a lot of motion blur with fast head movements or circular movements. That's not a bug, it's how it's supposed to work, that's why if you go check the list of official compatible daydream phones all have oled displays. The benefit of that blur is the buttery smooth head tracking, use it for 5 min, and you won't be able go back.

Once you have prepared your stomach for the ride;

1st: You need a rooted device (easiest method is flashing with a custom recovery the latest magisk version). You might be able to avoid rooting if somehow you manage to modify the files in the next steps, but at least for me, to access those files I needed root permissions.

2nd: Go to the play store and just search for daydream (do not install it), if you're able to see the app, you could jump to the next step. If you don't, download a file explorer with root capabilities (I personally like fx explorer) and paste the "android.hardware.vr.high_performance" file attached to the following route;

/system/vendor/etc/permissions

.

In this same folder you'll find the handheld_core_hardware that's mentioned in other guides, you might be also capable of getting it working by editing handheld_core_hardware, just like the old tutorial said

3rd: In order to get most of the daydream apps to render in SBS mode or even open, you need to spoof the id of your device to one of the certified ones. This is exactly the same step contained in the tutorial above, but at least in my case, once I opened the build.prop in the /System folder, I didn't saw a "ro.product.device", but a "ro.product.system.device". What I did was modify the latter by changing "mido" (the name of my device) to "walleye" (pixel 2) and adding a new line with "ro.product.device=walleye"

4th: Restart your phone and install Daydream, google vr services, and daydream keyboard all three from version 1.13. Daydream

Google vr services

Daydream keyboard

This version, along with 1.14 are the last ones that at least in my phone don't distort the aspect ratio, making it all squezzed. Version 1.14 has some handy implementations but worse performance and the lack of a developer option that I find really interesting for our unsupported phones that I will mention later.

5th: Now that's all installed, open the app and it will tell you that it need some permisions to work, press cancel and it will exit itself. go press it again and this time you'll see the daydream menu, swipe to the right to open the side menu, go to settings, VR settings, and if you don't have developer options, press compilation version several times to make them appear. Once you're inside those developer options, check the "skip VR entry screens". This is essential for all of us that don't have nfc, otherwise we wouldn't be able to run any app.

6th: Go to to visor and select your daydream version, bare in mind that if want to use a controller, you'll need to chose between gen1 and gen2, as cardboard custom profiles gray out the controller.

7th: Go to the controller tab and press and new controller, you'll be asked to fix the permissions, by enabling bluetooth, gps, and location you should be good to go, but considering we are using google play and google already knows all about us, I would say go ahead and try go give all permissions, just in case some specific app requires them.

Now follow the tutorial and the controller should pair... or maybe not. This is one of the problems that I don't know how to fix. The controller appears to be paired, as the light no longer blinks, but the daydream app doesn't detect it. At least for me, I couldn't get it to work in android 7 or 9, android 8 I (think?) I managed to get it working, and all android 10 roms I tried worked fine. I suspect it has something to do with the bluetooth settings, as it's a low energy device.

8th: You're good to go. Depending on your display and calibration, you might want to download an app called sa2ration that allows you to boost the intensity to get a more vivid image, I personally use 1.25 and it works wonderfully. Bare in mind that this works system wide, you could toggle it on and off whenever you want, and the settings don't reset with phone restarts.

---------------------------------------------------------------------------------------------------------------------------------------

Now that everything is "working", If you want to avoid the blur, and the app you're going to use is capable of holding a steady 60fps, you could go to developer setttings, and tick the "Force undistorted rendering". This will supress most of the motion blur at the cost of smoothness. This for me also reveals another problem, the resolution/dpi settings, as the image "bleeds" outside the supposed rendering area.