Trying to get Daydream working on the MZP without root.

Search This thread

OrBy

Senior Member
Feb 22, 2008
166
56
Can some one please help me edit the Daydream related APK's to automatically pass the checks in /system/etc/permissions/handheld_core_hardware.xml for <feature name="android.software.vr.mode" /> and <feature name="android.hardware.vr.high_performance" /> ?

From my limited understanding, this would allow users without root and on unsupported phones like ours to try out/use the Daydream headset and controller as long as they are running the minimum OS version. (7.0, 7.1.1 etc...)

Right now if I just install the needed APK files I can open up Daydream and launch into VR mode (with a warning I can press OK on) but once in VR mode the controller will not sync, so you end up being stuck till you exit.

I would like to get back to shooting zombie chickens without root. ;)

I hope that only the Google VR Services APK (https://www.apkmirror.com/apk/google-inc/google-vr-services-daydream/) needs to be edited/patched but here are the links to the other related APK's needed for Daydream just in case:
Daydream https://www.apkmirror.com/apk/google-inc/daydream-daydream/
Daydream Keyboard https://www.apkmirror.com/apk/google-inc/daydream-keyboard-daydream/
(remember the Moto Z Play is ARM - so make sure your getting the APK's that are ARM or ARM+ARM64 - I hope that's right)

I have tried decompiling the Google VR Services APK and think I found the checks, but I don't really know how to edit it (tried just deleting the lines) and my re-compile did not result in a working product.

My decompile found in line 300 of AndroidNCompat.smali

Code:
    const-string v1, "android.software.vr.mode"

    invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_0

and in DaydreamUtils.smali around line 228

Code:
    const-string v1, "android.hardware.vr.high_performance"

    .line 7
    invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z

    move-result v0

    goto :goto_0

Witch I am assuming are the checks.

I have also created a VR headset profile that's based off the built in one for the Daydream View that better fits the Moto Z Play while in a thin case with a glass screen protector. Please see the attached QR code.
 

Attachments

  • qr_viewer_profile.png
    qr_viewer_profile.png
    2.1 KB · Views: 487

OrBy

Senior Member
Feb 22, 2008
166
56
Yay. Got the controller working without root - I was right about the VR services APK being the key, but needed to approach a few things differently.

I may need to mess with the Daydream APK next as it looks like a few features seem to be disabled while in VR mode (store and settings). But they may be checking device ID's and not permissions.
 
  • Like
Reactions: chris23445

OrBy

Senior Member
Feb 22, 2008
166
56
Looks like apktool is able to de-compile the Daydream apk but is unable to recompile it (errors out) so that's going to put a bit of a pause on messing with this for me for now.
Is there any interest in the modded Google VR Services APK?
 

Cptnodegard

Senior Member
Nov 24, 2011
484
178
Just checking in to voice interest. Have the Z Play, Z2 Play, Z, and daydream view, so would like to be able to use daydream on the two Plays
 

pearce29

Senior Member
Aug 15, 2014
211
49
Hi im really interested to get daydream to work on my phone and there exists no root for my phone. Could you please help me :crying:
 

Psychfox

New member
May 24, 2010
2
0
Yay. Got the controller working without root - I was right about the VR services APK being the key, but needed to approach a few things differently.

I may need to mess with the Daydream APK next as it looks like a few features seem to be disabled while in VR mode (store and settings). But they may be checking device ID's and not permissions.
How did you get the controller working, exactly? I've got it paired but it won't seem to connect / do anything, though I'm not rooted on my Moto Z Play yet.
 

m4f1050

Senior Member
Apr 20, 2007
1,989
206
Interested to know, I bought 2 Moto Z Play thinking they were going to work with Daydream, and I am now told It's the higher end. (BS)

Very frustrated.
 

tiPrans

Member
May 26, 2015
43
10
I gave up, bought 2 Moto Z (unlocked) 64gb for same price as Moto Z Play which is 32gb, but Play has a bigger battery... :D

Nice! If Lenovo carries on with the Z line, I may get the Z 3 later on.

But I am asking since OP mentioned that he managed to get the controllers to work without root :confused:
 

OrBy

Senior Member
Feb 22, 2008
166
56
***Disclaimer - I cant help you with this, it's buggy, it's a bad idea, it requires you to know what your doing and if you don't - you need to figure it out on your own. I am not responsible for anything that goes wrong (or right) if you choose to do anything listed below. I am really just putting this info up so that it's archived some where.

Ok so I did get it running without root, but barely works, expect crashing, incompatibility with just about everything, and no help - so here is how:

Allow install of unknown apps.
Download and install a compatible version of the com.google.android.vr.home apk.
Download and install a compatible version of the com.google.android.vr.inputmethod apk.
Download and decompile a compatible version of com.google.vr.vrcore (I used Apktool v2.2.4) and find any instance of android.software.vr.mode and android.hardware.vr.high_performance in AndroidNCompat.smali and DaydreamUtils.smali and replace them with android.hardware.touchscreen.
Recompile com.google.vr.vrcore and sign it (I used the GUI of Android Multitool 3.5.9).
Install com.google.vr.vrcore.
Profit.

The above instructions are what I did to the attached file - it didn't kill my phone so far.
 

Attachments

  • com.google.vr.vrcore_1.13.185188193-160732214_minAPI19(armeabi-v7a)(nodpi)_APKdot.com.apk
    7.2 MB · Views: 4,339

tiPrans

Member
May 26, 2015
43
10
***Disclaimer - I cant help you with this, it's buggy, it's a bad idea, it requires you to know what your doing and if you don't - you need to figure it out on your own. I am not responsible for anything that goes wrong (or right) if you choose to do anything listed below. I am really just putting this info up so that it's archived some where.

Ok so I did get it running without root, but barely works, expect crashing, incompatibility with just about everything, and no help - so here is how:

Allow install of unknown apps.
Download and install a compatible version of the com.google.android.vr.home apk.
Download and install a compatible version of the com.google.android.vr.inputmethod apk.
Download and decompile a compatible version of com.google.vr.vrcore (I used Apktool v2.2.4) and find any instance of android.software.vr.mode and android.hardware.vr.high_performance in AndroidNCompat.smali and DaydreamUtils.smali and replace them with android.hardware.touchscreen.
Recompile com.google.vr.vrcore and sign it (I used the GUI of Android Multitool 3.5.9).
Install com.google.vr.vrcore.
Profit.

The above instructions are what I did to the attached file - it didn't kill my phone so far.

Thanks a lot! Will try it and update here once I do :)
 

brigantti

Senior Member
Jul 25, 2013
164
21
Calexico
I know this is an old threat but i got to ask any progress on getting this to work?i installed all apks including the modded vrcore apk and daydream load and connect the remote control but in daydream mode the controller wont work
i installed on lg g8.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    ***Disclaimer - I cant help you with this, it's buggy, it's a bad idea, it requires you to know what your doing and if you don't - you need to figure it out on your own. I am not responsible for anything that goes wrong (or right) if you choose to do anything listed below. I am really just putting this info up so that it's archived some where.

    Ok so I did get it running without root, but barely works, expect crashing, incompatibility with just about everything, and no help - so here is how:

    Allow install of unknown apps.
    Download and install a compatible version of the com.google.android.vr.home apk.
    Download and install a compatible version of the com.google.android.vr.inputmethod apk.
    Download and decompile a compatible version of com.google.vr.vrcore (I used Apktool v2.2.4) and find any instance of android.software.vr.mode and android.hardware.vr.high_performance in AndroidNCompat.smali and DaydreamUtils.smali and replace them with android.hardware.touchscreen.
    Recompile com.google.vr.vrcore and sign it (I used the GUI of Android Multitool 3.5.9).
    Install com.google.vr.vrcore.
    Profit.

    The above instructions are what I did to the attached file - it didn't kill my phone so far.
    3
    Can some one please help me edit the Daydream related APK's to automatically pass the checks in /system/etc/permissions/handheld_core_hardware.xml for <feature name="android.software.vr.mode" /> and <feature name="android.hardware.vr.high_performance" /> ?

    From my limited understanding, this would allow users without root and on unsupported phones like ours to try out/use the Daydream headset and controller as long as they are running the minimum OS version. (7.0, 7.1.1 etc...)

    Right now if I just install the needed APK files I can open up Daydream and launch into VR mode (with a warning I can press OK on) but once in VR mode the controller will not sync, so you end up being stuck till you exit.

    I would like to get back to shooting zombie chickens without root. ;)

    I hope that only the Google VR Services APK (https://www.apkmirror.com/apk/google-inc/google-vr-services-daydream/) needs to be edited/patched but here are the links to the other related APK's needed for Daydream just in case:
    Daydream https://www.apkmirror.com/apk/google-inc/daydream-daydream/
    Daydream Keyboard https://www.apkmirror.com/apk/google-inc/daydream-keyboard-daydream/
    (remember the Moto Z Play is ARM - so make sure your getting the APK's that are ARM or ARM+ARM64 - I hope that's right)

    I have tried decompiling the Google VR Services APK and think I found the checks, but I don't really know how to edit it (tried just deleting the lines) and my re-compile did not result in a working product.

    My decompile found in line 300 of AndroidNCompat.smali

    Code:
        const-string v1, "android.software.vr.mode"
    
        invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z
    
        move-result v0
    
        if-eqz v0, :cond_0

    and in DaydreamUtils.smali around line 228

    Code:
        const-string v1, "android.hardware.vr.high_performance"
    
        .line 7
        invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z
    
        move-result v0
    
        goto :goto_0

    Witch I am assuming are the checks.

    I have also created a VR headset profile that's based off the built in one for the Daydream View that better fits the Moto Z Play while in a thin case with a glass screen protector. Please see the attached QR code.
    1
    Yay. Got the controller working without root - I was right about the VR services APK being the key, but needed to approach a few things differently.

    I may need to mess with the Daydream APK next as it looks like a few features seem to be disabled while in VR mode (store and settings). But they may be checking device ID's and not permissions.
    1
    Any updates on this to get the controller to work without root, please?

    I gave up, bought 2 Moto Z (unlocked) 64gb for same price as Moto Z Play which is 32gb, but Play has a bigger battery... :D