Oculus Quest Update - controllers broken

As per this Reddit thread:

https://www.reddit.com/r/OculusQuest…deloaded_apps/

‘be aware that the latest Oculus firmware broke the sideloaded games. You can now only use one controller at the time and activate them by pressing the trigger button.’

which I came across after spending most of the day trying to track down a weird controller bug in my new project. Eventually I did a sanity check of trying an old project in case the controllers themselves had packed up and that was broken too.

UPDATE for Engine 4.23 onwards - you now need to specify Oculus Quest in the Advanced APK packaging section. Add an array element to ‘Package for Oculus mobile devices’ and change the drop-down to Oculus Quest - see screengrab.

oculus-packaging.PNG

Hey there,

We had the same issue this morning. We haven’t found a nice way of fixing it in the project settings. However we found a workaround.

  1. Create a txt file called "ManifestRequirementsOverride’ in the directory Game\Build\Android.
  2. Navigate to Game\Intermediate\Android\APK and open the file called AndroidManifest.XML
  3. Copy all the text in the <!–Requirements–> section and paste it into the “ManifestRequirementsOverride” file.
  4. There should be a line that says something to the effect of “<uses-feature android:glEsVersion=“0x00020000” android:required=“true” />”. Change this line to read "<uses-feature android:name=“android.hardware.vr.headtracking” android:required=“true” android:version=“1” /> "

New builds should now work correctly with Oculus input.

!WARNING!
This is a temporary fix that overrides settings that are defined in the Android settings of your project. This should only be used until a real fix is added to either UE4 or Oculus.

NOTE
The new file will most likely not be in a repository, so each PC with your project will likely have to go through this process.

Many thanks, . I had been trying some old hack where you could do an XML injection via the permissions tags section of the Project Settings but it looks like they insert escape characters now to stop that working (which is fair enough).

Here’s what worked for my Quest project in case anyone is unsure what to put in ManifestRequirementsOverride.txt:


    <uses-sdk
        android:minSdkVersion="25"
        android:targetSdkVersion="25" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.android.vending.CHECK_LICENSE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- Supported texture compression formats (cooked) -->
    <supports-gl-texture android:name="GL_KHR_texture_compression_astc_ldr" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" />
    <!-- Required by older versions of Google Play services to create GCM registration tokens -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

@-beyond thanks for posting this fix.

Million thanx for the temp fix :slight_smile:

As far as I understand it, the controllers being in “Oculus Go mode” is intentional without the correct ManifestRequirements settings.
As silly and annoying as it may be.
So this is something Epic Games should have / will have to fix in an engine update, right?
Because I would certainly prefer if Oculus just fixed it in a second firmware update, but I guess that’s not going to happen, if it is intentional behavior from their point of view.

@**XilenceX **Looks like it’s covered in 4.23 preview. There’s a new option in the advanced APK section that allows you to explicitly package for the Quest or the Go/GearVR, rather than just ‘Oculus devices’

No need to mess with ManifestRequirementsOverride.txt: it can be fixed by using the following manifest settings:

2 Likes

Hi @Proteus ,

What version of Unreal are you running here?
The current version (4.22) does not have the “Package for Oculus Mobile Devices” dropdown.

This is introduced with the 4.23 Preview versions.

@-beyond @TFandrich This is present in 4.22 version, if you use the Oculus branch https://github.com/Oculus-VR/UnrealEngine

thanks bro :slight_smile:

That link that you posted says the page is not found for me…

You need to link up your Unreal Account with your GitHub account to view the source.

Fix worked for me, mostly. My game has the player moving forward on the X axis and when I look behind me I can see a doppelganger of the capsule and motion controllers behind me. Really strange, I guess I’m stuck somewhere between 3dof and 6dof? Also getting double overlap events as a result in my game but it’s fine, 4.23 should be out soon and will probably erase this issue. Just figured I’d share in case anyone else was seeing what I was seeing and was confused.

Thanks,

Only one controller was tracking at a time for me in a new project and in the UE4 VR example. Uusing the Oculus version of UE4 was able to add ‘‘Oculus Quest’’ to the option “Package for Oculus Mobile Device”. This resolved the issue of one one controller tracking, but also resolved other issues like headset height relative to in game floor + tracking origin.

I was having this issue with the launcher version of 4.22 but it seems to be fixed in the final release of 4.23. I just downloaded 4.23 and tested it and both controllers are tracking perfectly. The frame rate seems better as well for some reason. :cool: