Develop

Requiring Minimum OS Versions

Updated: Sep 3, 2026
Applications may require a minimum version of the Horizon Operating System (Horizon OS) to launch. This restriction can be added:
  • Implicitly, by using a feature available only in a newer Horizon OS version. For example, if your application supports Quest 3, it requires a minimum Horizon OS version of v56, the first version that supports Quest 3.
  • Explicitly, by defining a minimum Horizon OS version in your app’s uses-horizonos-sdk manifest element. This is useful if your app has implicit dependencies on a specific Horizon OS version, such as attempting to launch a system package with an intent supported only in a newer Horizon OS version, or for multiplayer applications that want to ensure all players have the latest security updates.

Determining the Horizon OS versions used by your app’s users

In your app’s Developer Dashboard, access your App analytics pages. These pages contain dashboards, such as Performance analytics, which you can break down by the Horizon OS versions of your app’s users.
Your app can also determine the Horizon OS version of the currently running device by calling the following code in a Java plugin built with your app:

Context context = UnityPlayer.currentActivity;

PackageManager pm = context.getPackageManager();
try {
	return pm.getPackageInfo("com.oculus.systemdriver", PackageManager.GET_META_DATA).versionName;
} catch (Exception e) { return e.toString(); }

Requiring a minimum Horizon OS version to use your app

To explicitly define a minimum Horizon OS version, add the following line to your AndroidManifest.xml file, as a child of your root <manifest> element. Replace [version] with your preferred Horizon OS version number, such as “83” or “205”.
<horizonos:uses-horizonos-sdk horizonos:minSdkVersion="[version]" horizonos:targetSdkVersion="[version]" />
Some settings and features in your app implicitly require a minimum Horizon OS version. For example:
  • In your app’s AndroidManifest.xml file, setting android:minSdkVersion on the uses-sdk element sets the minimum Android SDK API level that your app is compatible with. Your app cannot be distributed or installed onto devices running an Android SDK API level lower than this. See the android:minSdkVersion attribute in the Android documentation for details.
  • Adding a device to com.oculus.supportedDevices sets the minimum Horizon OS version to the first version that supports that device.
  • Using Unity’s OpenXR loader from the com.unity.xr.openxr package sets the minimum Horizon OS version to v65.
  • Using the Android Camera2 API for direct access to camera frames sets the minimum Horizon OS version to v74.
When multiple features apply, your app requires the highest minimum Horizon OS version among all relevant features. For example:
  • Using both the OpenXR loader from the com.unity.xr.openxr package and the Android Camera2 API sets the minimum Horizon OS version to v74.
When you declare a minSdkVersion:
  • The Meta Horizon Store will only show your app to users on compatible devices
  • Users on older devices won’t be able to install or update to this version
  • You can safely call the APIs without error handling for version compatibility

Checking the minimum Horizon OS version for your app

To check the minimum Horizon OS version for your app, upload a build to the Developer Dashboard and view the build details in the Distribution > Build page for your app. See Uploading a build to your Developer Dashboard.
The Developer Dashboard shows the reason it selected a specific Minimum OS version for your app as shown in the following screenshots.
A minimum OS version of v74 is required by the "horizonos.permission.HEADSET_CAMERA" permissionA minimum OS version of v81 is required by the "uses-horizon-sdk" tag