diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e75c428 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,53 @@ +# EditorConfig configuration for this repository -- https://EditorConfig.org + +# Top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file, utf-8 charset +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +# Ignore diffs/patches +[*.{diff,patch}] +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset + +# Prefer space-indent for.. +[*.{json,lock,md,pl,pm,py,rb,xml}] +indent_style = space + +# Prefer tab-indent for.. +[*.{nix,sh,bash}] +indent_style = tab + +[*.{json,lock,md,nix,rb,sh}] +indent_size = 2 + +[*.lock] +indent_size = unset + +[*.md] +trim_trailing_whitespace = true + +# binaries +[*.nib] +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +charset = unset + +[eggs.nix] +trim_trailing_whitespace = unset + +# You can add file-specific configuration using: +# +# [path/to/file] +# end_of_line = unset +# indent_style = unset +# insert_final_newline = unset +# trim_trailing_whitespace = unset +# other config.. diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3a0d709 --- /dev/null +++ b/.envrc @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +# shellcheck shell=sh # POSIX + +# This file is used to provide directory-oriented environment variables and integrations + +use flake . -v diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b42106 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.direnv/ diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 0000000..4453cf9 --- /dev/null +++ b/.shellcheckrc @@ -0,0 +1,28 @@ +shell=ksh # Enforce POSIX sh + +external-sources=true + +disable=SC2310 # False Positive, report to upstream + +# # Disabled this check as we are using busybox sh which can do these +# disable=SC3060 # In POSIX sh, string replacement is undefined. +# disable=SC3057 # In POSIX sh, string indexing is undefined. +# disable=SC3001 # In POSIX sh, process substitution is undefined. + +# name: avoid-nullary-conditions +# desc: Suggest explicitly using -n in `[ $var ]` +# example: [ "$var" ] +# fix: [ -n "$var" ] +enable=avoid-nullary-conditions + +# name: check-extra-masked-returns +# desc: Check for additional cases where exit codes are masked +# example: rm -r "$(get_chroot_dir)/home" +# fix: set -e; dir="$(get_chroot_dir)"; rm -r "$dir/home" +enable=check-extra-masked-returns + +# name: check-set-e-suppressed +# desc: Notify when set -e is suppressed during function invocation +# example: set -e; func() { cp *.txt ~/backup; rm *.txt; }; func && echo ok +# fix: set -e; func() { cp *.txt ~/backup; rm *.txt; }; func; echo ok +enable=check-set-e-suppressed diff --git a/README.md b/README.md index 5c46491..e98c57a 100644 --- a/README.md +++ b/README.md @@ -1 +1,40 @@ -There will be freedom.. +# FreeXR OS + +AOSP Pseudo-ROM for QFPROM-fused standalone XR devices to hijack the control over your device back to your hands. + +## Features + +Global: + * Debloater - Removes all software, but those needed for minimal UI functionality + * Liberator - Replaces proprietary applications with open-source alternatives + * Rebrander[WIP] - Replaces the vendor's branding with a custom one + +Device-Specific: + * Vendor/Meta: + * Disable Firmware Updates + * Disables Telemetry[WIP] + * Enables META Store with anonymization mitigations + * Eureka: + * Attempts permanently root of the Device via Event Horizon + * Force-Enables Hand Tracking + * Panther + * Attempts permanently root of the Device via Event Horizon + * Force-Enables Hand Tracking + +# Contributions + +The project is currently under heavy development code improvements are always welcome, but new features have to be brainstormed to be mergable. + +The nix daemon is recommended to interface with the repository. + +## Tree + +├── **docs** -- Various documents for the source code
+├── **src** -- The Source Code
+ |      ├── **lib** -- Shell Libraries used by the program
+ |      ├── **standalone** -- Standalone scripts that can be sourced as libraries
+├── **tasks** -- Routines to work with the project
+ |      ├── **docs** -- Tasks related to the project documentation
+ |       |      ├── **tree** -- Task used to generate this file hierarchy output
+ |      ├── **editors** -- Nix definition for repository-standardized editors
+├── **vendor** -- Files from 3rd party used in the project
diff --git a/default.code-workspace b/default.code-workspace new file mode 100644 index 0000000..500c64a --- /dev/null +++ b/default.code-workspace @@ -0,0 +1,196 @@ +{ + "folders": [ + { "path": "." }, + ], + + "settings": { + // Enable liguratures + "editor.fontLigatures": true, + "editor.fontFamily": "'Fira Code'", + "terminal.integrated.fontFamily": "'Fira Code'", + + "editor.renderWhitespace": "all", + "terminal.integrated.scrollback": 20000, + "nix.enableLanguageServer": true, + "nix.serverPath": "nil", + "nix.serverSettings": { + // settings for 'nil' Language Server + "nil": { + "formatting": { + "command": ["nixpkgs-fmt"] + } + } + }, + "editor.wordWrap": "on", // Enforce word-wrapped coding style + "terminal.integrated.defaultProfile.linux": "bash", // Use bash by default + "terminal.integrated.env.linux": { + "EDITOR": "nano", // To open git things in codium + }, + + // Pair colorization + "editor.bracketPairColorization.enabled": true, + "editor.guides.bracketPairs": "active", + "editor.guides.bracketPairsHorizontal": "active", + "editor.guides.highlightActiveIndentation": false, + + // Gtt + "git.autofetch": true, + + // Code-eol + "code-eol.highlightExtraWhitespace": true, + "code-eol.newlineCharacter": "↵", + "code-eol.crlfCharacter": "↓", + + // Task tree + "todo-tree.general.tags": [ + "FIXME", + "TODO", + "DOCS", + "HACK", + "REVIEW", + "DNM", // Do Not Merge + "DNC", // Do Not Contribute + "DNR" // Do Not Release + ], + "todo-tree.regex.regex": "($TAGS)((\\-.*|)\\(.*\\)):", // ($TAGS)((\\-.*|)\\(.*\\)): + "todo-tree.filtering.excludeGlobs": [ + "**/node_modules", + "**/README.md" + ], + "todo-tree.tree.groupedByTag": false, + "todo-tree.tree.groupedBySubTag": false, + "todo-tree.tree.flat": true, + // NOTE: Icons has to be valid octicon (https://primer.style/foundations/icons/) + "todo-tree.highlights.customHighlight": { + // FIXME(Krey): Test + "FIXME": { + "foreground": "#ff8000", + "icon": "tag", + "fontWeight": "bold" + }, + // TODO(Krey): Test + "TODO": { + "foreground": "#00ffea", + "icon": "tasklist", + "fontWeight": "bold" + }, + // DOCS(Krey): Test + "DOCS": { + "foreground": "#ffffff", + "background": "#2f00ff", + "icon": "repo", + "fontWeight": "bold" + }, + // HACK(Krey): Test + "HACK": { + "foreground": "#ffffff", + "background": "#ff4d00", + "icon": "repo", + "fontWeight": "bold" + }, + // REVIEW(Krey): Test + "REVIEW": { + "foreground": "#ffffff", + "background": "#b300ff", + "icon": "code-review", + "fontWeight": "bold" + }, + // DNM(Krey): Test + "DNM": { + "background": "#ff0000", + "foreground": "#ffffff", + "icon": "shield-x", + "fontWeight": "bold" + }, + // DNR(Krey): Test + "DNR": { + "background": "#ff0000", + "foreground": "#ffffff", + "icon": "shield-x", + "fontWeight": "bold" + }, + // DNC(Krey): Test + "DNC": { + "background": "#fffb00", + "foreground": "#000000", + "icon": "shield-x", + "fontWeight": "bold" + } + }, + + "better-comments.tags": [ + { + "tag": "!", + "color": "#FF0000", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + { + "tag": ":", + "color": "#FFAE00", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + { + "tag": "?", + "color": "#3498DB", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + { + "tag": "//", + "color": "#474747", + "strikethrough": true, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + { + "tag": "*", + "color": "#98C379", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + ], + + "dateTime.showSeconds": true, + + // GitLens + "gitlens.plusFeatures.enabled": false, // Disable the annoying pop-ups + "gitlens.launchpad.indicator.enabled": false, // Disable launchpad indicator as we are not using that functionality + "gitlens.statusBar.enabled": false, // Do not bloat the status bar + "gitlens.statusBar.pullRequests.enabled": false, + }, + + "extensions": { + "recommendations": [ + "jnoortheen.nix-ide", + "oderwat.indent-rainbow", + "arrterian.nix-env-selector", + "medo64.render-crlf", + "aaron-bond.better-comments", + "mkhl.direnv", + "editorconfig.editorconfig", + "pkief.material-icon-theme", + "markwylde.vscode-filesize", + "plorefice.devicetree", + "timonwong.shellcheck", + "eamodio.gitlens", + "anwar.resourcemonitor", + "gruntfuggly.todo-tree" + ] + } +} diff --git a/docs/.about b/docs/.about new file mode 100644 index 0000000..c53a188 --- /dev/null +++ b/docs/.about @@ -0,0 +1 @@ +Various documents for the source code diff --git a/docs/preferences.md b/docs/preferences.md new file mode 100644 index 0000000..f1c3cb6 --- /dev/null +++ b/docs/preferences.md @@ -0,0 +1,801 @@ +| OPTION | TYPE | DEFAULT\_VALUE | POSSIBLE\_VALUES | RECOMMENDED\_ROM\_VALUE | EXPLANATION | SOURCE | CONFIDENCE | FLAGS | OWNER\_PACKAGE | +| ---------------------------------- | ------- | -------------- | --------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ---------- | ----- | ------------------------- | +| adb\_enable | Boolean | false | true / false | false | Controls whether Android Debug Bridge (ADB) is enabled for developer access over USB/Wi-Fi. Enabling exposes debugging and sideloading capabilities. | Android developer docs / Oculus dev mode references | High | 🧪🔒 | system | +| adb\_over\_wifi | Boolean | false | true / false | false | Allows ADB connections over Wi-Fi instead of USB. Increases convenience but reduces security. | Android dev docs | High | 🧪🔒 | system | +| allow\_unknown\_sources | Boolean | false | true / false | true | Toggles ability to install apps not from the Oculus Store. Required for sideloading. | Oculus settings | High | 🧪 | com.oculus.vrshell | +| analytics\_enabled | Boolean | true | true / false | false | Controls whether headset usage analytics are sent to Meta servers. | Oculus privacy policy | Medium | 📉 | system | +| auto\_sleep\_timeout | Integer | 15 | 15 / 30 / 60 / never | 60 | Time (in seconds) before headset auto-sleeps when idle. | Android power management docs | High | | system | +| auto\_update\_enabled | Boolean | true | true / false | false | Controls automatic system updates download/install. | Oculus support | High | | com.oculus.updater | +| bluetooth\_enabled | Boolean | true | true / false | true | Toggles Bluetooth hardware for controller pairing and peripherals. | Android / Oculus device specs | High | | system | +| boundary\_system\_enabled | Boolean | true | true / false | true | Toggles Guardian/Boundary system for room-scale safety. Disabling removes boundary visuals. | Oculus Guardian docs | High | | com.oculus.guardian | +| camera\_access\_enabled | Boolean | true | true / false | false | Controls permission for apps/system to use passthrough cameras. | Android permission model | High | 🔒 | system | +| capture\_audio\_enabled | Boolean | true | true / false | false | Toggles audio capture in recordings and streams. | Oculus Capture API | Medium | 🔒 | com.oculus.captureservice | +| capture\_video\_enabled | Boolean | true | true / false | true | Toggles video recording capability. | Oculus Capture API | High | | com.oculus.captureservice | +| cloud\_backup\_enabled | Boolean | true | true / false | false | Enables automatic backup of app data to Meta’s cloud. | Oculus cloud backup docs | Medium | 📉🔒 | com.oculus.backupservice | +| companion\_link\_enabled | Boolean | true | true / false | false | Allows pairing/link with Oculus mobile companion app. | Meta pairing process docs | Medium | 🔒 | com.oculus.horizon | +| controller\_firmware\_auto\_update | Boolean | true | true / false | false | Automatically updates firmware on paired controllers. | Oculus controller docs | Medium | | com.oculus.updater | +| cpu\_gpu\_level | Integer | 2 | 0 / 1 / 2 / 3 | 2 | Performance level setting for CPU and GPU. Higher = more power usage. | Oculus Performance Tuning | Medium | 🧪 | system | +| crash\_reporting\_enabled | Boolean | true | true / false | false | Toggles sending of crash reports to Meta. | Oculus support | High | 📉🔒 | system | +| developer\_mode\_enabled | Boolean | false | true / false | true | Enables developer mode features (ADB, sideloading, debug overlays). | Oculus dev program | High | 🧪 | system | +| display\_brightness | Integer | 50 | 0–100 | 50 | Screen brightness percentage. | Hardware spec | High | | system | +| experimental\_multitasking | Boolean | false | true / false | true | Enables seamless multitasking for multiple app windows. May require extra system components. | Oculus release notes / leaks | Medium | 🧪 | com.oculus.systemux | +| factory\_reset\_protection | Boolean | true | true / false | true | Prevents unauthorized factory resets by requiring account login. | Android FRP docs | High | 🔒 | system | +| file\_transfer\_enabled | Boolean | true | true / false | false | Allows MTP file transfers over USB. | Android USB docs | Medium | 🔒 | system | +| guardian\_history\_enabled | Boolean | true | true / false | false | Stores previous Guardian boundaries for re-use. | Guardian docs | Medium | 📉 | com.oculus.guardian | +| hand\_tracking\_enabled | Boolean | false | true / false | true | Enables hand tracking instead of controllers. | Oculus hand tracking API | High | 🧪 | com.oculus.vrshell | +| high\_refresh\_rate\_enabled | Boolean | false | true / false | true | Enables 90/120Hz refresh rate mode if supported. | Oculus performance settings | Medium | 🧪 | system | +| location\_services\_enabled | Boolean | true | true / false | false | Allows location data collection. | Android location docs | Medium | 📉🔒 | system | +| logging\_level | String | info | debug / info / warn / error | error | Controls system log verbosity. | Android logging docs | Medium | 📉 | system | +| microphone\_access\_enabled | Boolean | true | true / false | false | Toggles microphone access for apps/system. | Android permission model | High | 🔒 | system | +| ota\_channel | String | release | release / beta / pvt | release | Determines OTA firmware update channel. | Meta firmware | Medium | | com.oculus.updater | +| passthrough\_enabled | Boolean | true | true / false | true | Enables passthrough view from cameras. | Oculus passthrough API | High | | com.oculus.systemux | +| power\_saving\_mode | Boolean | false | true / false | false | Reduces performance to save battery life. | Android power docs | High | | system | +| proximity\_sensor\_enabled | Boolean | true | true / false | true | Uses proximity sensor to wake/sleep headset automatically. | Hardware spec | High | | system | +| safe\_mode\_enabled | Boolean | false | true / false | false | Boots into safe mode for troubleshooting. | Android recovery docs | Medium | ⚠️ | system | +| send\_diagnostic\_data | Boolean | true | true / false | false | Sends diagnostic info to Meta for support. | Oculus privacy policy | High | 📉🔒 | system | +| spatial\_audio\_enabled | Boolean | true | true / false | true | Enables spatial audio processing. | Oculus audio docs | High | | com.oculus.systemux | +| telemetry\_upload\_enabled | Boolean | true | true / false | false | Allows telemetry data uploads to Meta servers. | Meta telemetry docs | High | 📉🔒 | system | +| usb\_debugging\_whitelist | String | | List of device IDs | | Whitelist of allowed USB debugging hosts. | Android adb docs | Medium | 🧪🔒 | system | +| user\_activity\_tracking | Boolean | true | true / false | false | Tracks user interactions for analytics. | Meta privacy docs | Medium | 📉🔒 | system | +| voice\_commands\_enabled | Boolean | true | true / false | true | Enables voice commands feature. | Oculus voice commands | High | | com.oculus.assistant | +| wifi\_enabled | Boolean | true | true / false | true | Enables Wi-Fi radio for network access. Required for store, updates, streaming. | Android network docs | High | | system | +| wifi\_auto\_connect | Boolean | true | true / false | false | Automatically connects to remembered Wi-Fi networks. Disabling avoids auto connections. | Android Wi-Fi settings | Medium | 📉 | system | +| wifi\_scan\_always | Boolean | false | true / false | false | Allows Wi-Fi scanning even when Wi-Fi is off (for location). | Android location services | Medium | 📉🔒 | system | +| developer\_logging\_enabled | Boolean | false | true / false | true | Enables verbose logging for development/debugging. | Android logging docs | Medium | 🧪 | system | +| app\_auto\_update\_enabled | Boolean | true | true / false | false | Enables automatic app updates from the Oculus Store. | Oculus Store docs | High | | com.oculus.store | +| background\_services\_enabled | Boolean | true | true / false | false | Allows background services to run when headset idle. | Android power management | Medium | 📉 | system | +| battery\_optimization\_enabled | Boolean | true | true / false | true | Enables battery saving optimizations for apps. | Android power management | Medium | | system | +| boundary\_color | String | blue | blue / red / green / custom | blue | Sets Guardian boundary color. | Oculus Guardian settings | Low | 🧪 | com.oculus.guardian | +| boundary\_height | Float | 1.0 | 0.5–2.5 | 1.0 | Sets height of boundary walls in meters. | Guardian API | Low | 🧪 | com.oculus.guardian | +| broadcast\_stream\_enabled | Boolean | false | true / false | false | Enables broadcasting gameplay to linked accounts or services. | Oculus streaming docs | Medium | 📉🔒 | com.oculus.socialplatform | +| cast\_to\_device\_enabled | Boolean | true | true / false | false | Allows casting view to Chromecast or phone. | Oculus casting docs | High | 📉 | com.oculus.cast | +| chromatic\_aberration\_correction | Boolean | true | true / false | true | Applies correction for lens distortion color fringing. | VR optics docs | Medium | | system | +| color\_correction\_mode | Integer | 0 | 0=off / 1=protanopia / 2=deuteranopia / 3=tritanopia | 0 | Accessibility color correction mode. | Android accessibility | High | | system | +| comfort\_mode\_enabled | Boolean | false | true / false | true | Reduces visual effects and increases comfort for sensitive users. | Oculus comfort settings | Medium | | com.oculus.systemux | +| controller\_vibration\_enabled | Boolean | true | true / false | true | Enables haptic feedback on controllers. | Oculus input docs | High | | com.oculus.input | +| data\_saver\_enabled | Boolean | false | true / false | false | Restricts background data usage. | Android data saver | High | | system | +| debug\_overlay\_enabled | Boolean | false | true / false | true | Shows performance/debug info overlay in VR. | Oculus dev tools | Medium | 🧪 | com.oculus.systemux | +| dev\_perf\_metrics\_enabled | Boolean | false | true / false | true | Collects detailed performance metrics for dev testing. | Oculus developer tools | Medium | 🧪 | system | +| device\_lock\_enabled | Boolean | true | true / false | true | Locks device with PIN/password. | Android security docs | High | 🔒 | system | +| display\_timeout | Integer | 15 | 5 / 15 / 30 / never | 30 | Time in seconds before display sleeps. | Android power settings | High | | system | +| dlna\_streaming\_enabled | Boolean | false | true / false | false | Allows DLNA-based media streaming. | DLNA docs | Low | 🧪 | com.oculus.media | +| do\_not\_disturb\_enabled | Boolean | false | true / false | false | Silences notifications in VR. | Android DND | High | | system | +| dynamic\_foveated\_rendering | Boolean | true | true / false | true | Enables dynamic foveated rendering for performance. | Oculus performance tuning | High | 🧪 | system | +| enable\_2d\_apps\_in\_vr | Boolean | false | true / false | true | Allows Android 2D apps to run in VR shell. | Quest multitasking | Medium | 🧪 | com.oculus.systemux | +| experimental\_passthrough\_mode | Boolean | false | true / false | true | Enables experimental full passthrough features. | Meta leak notes | Low | 🧪 | com.oculus.systemux | +| eye\_tracking\_enabled | Boolean | false | true / false | true | Enables eye tracking hardware if available. | Oculus experimental features | Low | 🧪 | system | +| face\_tracking\_enabled | Boolean | false | true / false | true | Enables face tracking hardware if available. | Oculus experimental features | Low | 🧪 | system | +| firmware\_update\_channel | String | release | release / beta / pvt | release | System firmware OTA channel. | Meta update docs | High | | com.oculus.updater | +| fps\_limit | Integer | 72 | 60 / 72 / 90 / 120 | 72 | Limits frames per second for VR apps. | Oculus perf settings | Medium | | system | +| gamepad\_enabled | Boolean | true | true / false | true | Allows use of standard gamepads. | Android input | High | | system | +| guardian\_reset\_on\_wake | Boolean | false | true / false | false | Forces Guardian re-setup after each wake. | Guardian docs | Low | 🧪 | com.oculus.guardian | +| hand\_tracking\_auto\_enable | Boolean | true | true / false | true | Automatically enables hand tracking when controllers removed. | Oculus hand tracking docs | Medium | | com.oculus.vrshell | +| hdr\_enabled | Boolean | false | true / false | true | Enables HDR rendering if display supports it. | VR display tech | Medium | | system | +| headset\_serial\_number | String | \[device-specific] | Any string | | Stores headset serial number. | Hardware | High | 🔒 | system | +| headset\_tracking\_enabled | Boolean | true | true / false | true | Enables 6DoF headset tracking. | Oculus tracking docs | High | | system | +| hmd\_ipd | Float | 63.5 | 55.0–72.0 | 63.5 | Interpupillary distance setting in mm. | VR optics | High | | system | +| home\_environment | String | default | default / custom | default | Selected home VR environment. | Oculus home settings | High | | com.oculus.home | +| host\_os\_version | String | \[version] | Any string | | Current OS build version. | Android | High | | system | +| immersive\_captures\_enabled | Boolean | true | true / false | true | Enables stereo/3D capture for recordings. | Oculus capture docs | Medium | | com.oculus.captureservice | +| ipd\_auto\_adjust | Boolean | false | true / false | false | Auto adjusts IPD via motorized lenses (if hardware supports). | VR hardware docs | Low | 🧪 | system | +| keep\_awake\_during\_cast | Boolean | true | true / false | false | Prevents headset from sleeping while casting. | Oculus casting | Medium | | com.oculus.cast | +| keyboard\_passthrough\_enabled | Boolean | false | true / false | true | Shows real keyboard in passthrough view. | Oculus passthrough keyboard | Medium | 🧪 | com.oculus.systemux | +| latency\_mode | String | normal | normal / low / ultra | normal | Sets render pipeline latency profile. | VR perf docs | Low | 🧪 | system | +| led\_indicator\_enabled | Boolean | true | true / false | true | Enables LED status indicators. | Hardware docs | High | | system | +| live\_overlay\_enabled | Boolean | false | true / false | false | Enables mixed reality capture overlay of player in VR. | Oculus MRC docs | Medium | 🧪 | com.oculus.mrcservice | +| local\_dimming\_enabled | Boolean | false | true / false | true | Enables local dimming for OLED displays. | Display hardware | Low | 🧪 | system | +| lockscreen\_enabled | Boolean | true | true / false | true | Enables lock screen security. | Android lockscreen | High | 🔒 | system | +| log\_upload\_enabled | Boolean | true | true / false | false | Allows uploading logs to Meta servers. | Meta diagnostics | High | 📉🔒 | system | +| low\_battery\_warning\_level | Integer | 15 | 5 / 10 / 15 / 20 | 15 | Battery % at which to show warning. | Hardware | High | | system | +| low\_power\_mode\_enabled | Boolean | false | true / false | true | Reduces performance to extend battery life. | Android power settings | High | 📉 | system | +| media\_volume\_level | Integer | 5 | 0–15 | 5 | Volume level for media playback. | Android audio docs | High | | system | +| microphone\_enabled | Boolean | true | true / false | false | Allows microphone access for apps. | Android permissions | High | 📉🔒 | system | +| mixed\_reality\_capture\_enabled | Boolean | false | true / false | false | Enables MRC with external camera. | Oculus MRC docs | Medium | 🧪 | com.oculus.mrcservice | +| motion\_smoothing\_enabled | Boolean | true | true / false | true | Enables ASW-like frame interpolation for smoother visuals. | Oculus performance docs | Medium | 🧪 | system | +| multi\_user\_enabled | Boolean | false | true / false | false | Enables multiple user profiles on the headset. | Oculus multi-user docs | High | | com.oculus.systemux | +| multitasking\_enabled | Boolean | false | true / false | true | Enables multiple 2D apps in VR (seamless multitasking). | Quest multitasking notes | High | 🧪 | com.oculus.systemux | +| nearby\_sharing\_enabled | Boolean | true | true / false | false | Allows sharing content with nearby devices. | Android Nearby Share | Medium | 📉 | system | +| network\_debug\_logging | Boolean | false | true / false | true | Logs all network requests for debugging. | Android dev docs | Low | 🧪 | system | +| night\_mode\_enabled | Boolean | false | true / false | true | Reduces blue light from display. | Android night mode | High | | system | +| notification\_popups\_enabled | Boolean | true | true / false | true | Shows popup notifications in VR. | Oculus notification docs | High | | com.oculus.notifications | +| oculus\_link\_enabled | Boolean | true | true / false | true | Allows PC VR via Oculus Link cable. | Meta PC VR docs | High | | com.oculus.pcvr | +| oculus\_airlink\_enabled | Boolean | true | true / false | true | Allows PC VR via wireless Air Link. | Meta PC VR docs | High | | com.oculus.pcvr | +| offline\_mode\_enabled | Boolean | false | true / false | true | Allows headset use without network connection. | Android airplane mode | Medium | | system | +| onboarding\_completed | Boolean | true | true / false | true | Indicates that initial setup has been completed. | System behavior | High | | system | +| passcode\_set | Boolean | false | true / false | false | Indicates whether a device passcode is configured. | Security settings | High | 🔒 | system | +| passthrough\_enabled | Boolean | false | true / false | true | Enables passthrough view. | Oculus passthrough docs | High | | com.oculus.systemux | +| passthrough\_color\_mode | String | grayscale | grayscale / color | grayscale | Sets passthrough color rendering. | Oculus passthrough docs | Medium | 🧪 | com.oculus.systemux | +| performance\_overlay\_enabled | Boolean | false | true / false | true | Shows FPS, CPU, GPU usage in VR. | Oculus dev tools | Medium | 🧪 | system | +| personal\_voice\_assistant\_enabled | Boolean | false | true / false | false | Enables voice commands with Meta assistant. | Meta voice docs | Medium | 📉 | com.oculus.assistant | +| phone\_notifications\_enabled | Boolean | true | true / false | false | Mirrors phone notifications into VR. | Meta notification docs | High | 📉 | com.oculus.notifications | +| power\_button\_double\_tap\_action | String | none | none / passthrough\_toggle / recenter | passthrough\_toggle | Sets double-tap power button shortcut. | Oculus quick actions | Medium | | system | +| power\_saving\_display\_mode | Boolean | false | true / false | true | Lowers brightness & refresh rate to save battery. | Display docs | Medium | 📉 | system | +| privacy\_guard\_enabled | Boolean | false | true / false | false | Restricts data sharing with Meta services. | Privacy notes | Low | 📉🔒 | system | +| proximity\_sensor\_enabled | Boolean | true | true / false | true | Uses proximity sensor to detect head presence. | Hardware | High | | system | +| quick\_actions\_menu\_enabled | Boolean | true | true / false | true | Enables VR quick actions menu. | Oculus UI docs | High | | com.oculus.systemux | +| recenter\_on\_wake | Boolean | true | true / false | true | Re-centers view when headset wakes. | Oculus tracking docs | High | | system | +| record\_audio\_in\_captures | Boolean | true | true / false | true | Captures microphone audio in recordings. | Oculus capture docs | High | | com.oculus.captureservice | +| render\_scale | Float | 1.0 | 0.5–2.0 | 1.0 | Scales render resolution. | VR perf tuning | Medium | | system | +| safe\_mode\_enabled | Boolean | false | true / false | false | Boots system with minimal services. | Android safe mode | Medium | 🔒 | system | +| save\_power\_during\_idle | Boolean | true | true / false | true | Reduces power when idle in VR menu. | Power management docs | High | | system | +| screen\_brightness | Integer | 75 | 0–100 | 75 | Display brightness percentage. | Hardware docs | High | | system | +| screenshot\_sound\_enabled | Boolean | true | true / false | false | Plays sound effect when screenshot taken. | Android UX | Medium | 📉 | system | +| secure\_boot\_enabled | Boolean | true | true / false | true | Ensures bootloader verifies OS integrity. | Security docs | High | 🔒 | system | +| sensor\_fusion\_enabled | Boolean | true | true / false | true | Uses IMU + camera data for tracking. | VR tracking docs | High | | system | +| side\_loading\_enabled | Boolean | false | true / false | true | Allows installation of APKs outside store. | Android sideloading | High | 🧪 | system | +| sleep\_after\_idle\_minutes | Integer | 15 | 1–60 | 15 | Minutes until headset sleeps when idle. | Android power settings | High | | system | +| social\_presence\_enabled | Boolean | true | true / false | false | Shares user’s VR presence status online. | Meta social docs | High | 📉 | com.oculus.socialplatform | +| spatial\_audio\_enabled | Boolean | true | true / false | true | Enables 3D spatial audio. | Oculus audio docs | High | | system | +| speech\_to\_text\_enabled | Boolean | false | true / false | false | Converts spoken words to text. | Accessibility docs | Medium | 📉 | system | +| storage\_encryption\_enabled | Boolean | true | true / false | true | Encrypts internal storage. | Android encryption | High | 🔒 | system | +| streaming\_mode\_enabled | Boolean | false | true / false | false | Enables low-latency streaming to PC or cloud. | Meta cloud VR docs | Low | 🧪 | system | +| system\_audio\_balance | Float | 0.0 | -1.0 (L) – 1.0 (R) | 0.0 | Adjusts stereo audio balance. | Audio settings | Medium | | system | +| system\_language | String | en-US | Locale codes | en-US | System UI language. | Android locale docs | High | | system | +| system\_theme | String | light | light / dark | dark | System UI theme mode. | Android theme docs | High | | system | +| telemetry\_enabled | Boolean | true | true / false | false | Sends telemetry data to Meta. | Privacy policy | High | 📉🔒 | system | +| tethering\_enabled | Boolean | false | true / false | false | Enables mobile hotspot tethering. | Android tethering docs | High | | system | +| thermal\_throttling\_enabled | Boolean | true | true / false | true | Reduces performance when overheating. | Hardware safety docs | High | | system | +| time\_format\_24h | Boolean | false | true / false | true | Displays time in 24-hour format. | Android time settings | High | | system | +| touchpad\_enabled | Boolean | true | true / false | true | Enables controller touchpad input. | Oculus input docs | High | | system | +| tracking\_permission\_granted | Boolean | true | true / false | true | Allows apps to access tracking data. | Privacy settings | High | | system | +| tracking\_sensitivity | Float | 1.0 | 0.5–2.0 | 1.0 | Sensitivity multiplier for tracking. | Oculus tracking | Low | 🧪 | system | +| ui\_animation\_speed | Float | 1.0 | 0.5–2.0 | 1.0 | Animation playback speed for UI. | Android dev settings | Medium | | system | +| unlock\_with\_phone\_enabled | Boolean | false | true / false | false | Allows unlocking headset via paired phone. | Meta phone unlock | Low | 📉 | com.oculus.companion | +| usb\_debugging\_enabled | Boolean | false | true / false | true | Enables ADB over USB. | Android developer docs | High | 🧪 | system | +| usb\_host\_mode\_enabled | Boolean | false | true / false | true | Enables headset as USB host. | Android USB docs | Medium | | system | +| user\_metrics\_collection\_enabled | Boolean | true | true / false | false | Collects usage metrics for analytics. | Privacy settings | High | 📉🔒 | system | +| video\_recording\_quality | String | high | low / medium / high | medium | Sets default recording resolution/bitrate. | Oculus capture docs | High | | com.oculus.captureservice | +| virtual\_desktop\_enabled | Boolean | false | true / false | true | Allows PC desktop streaming in VR. | Virtual Desktop app | Medium | 🧪 | com.virtualdesktop.streamer | +| voice\_chat\_enabled | Boolean | true | true / false | false | Enables in-game/in-app voice chat. | Oculus social docs | High | 📉 | com.oculus.socialplatform | +| voice\_commands\_enabled | Boolean | false | true / false | false | Enables Meta Assistant voice control. | Meta docs | Medium | 📉 | com.oculus.assistant | +| volume\_overlay\_enabled | Boolean | true | true / false | true | Shows volume adjustment overlay in VR. | UI docs | High | | system | +| vr\_shell\_version | String | \[version] | Any string | | Version of VR shell UI. | Oculus UI | High | | com.oculus.vrshell | +| wifi\_mac\_randomization | Boolean | true | true / false | true | Randomizes Wi-Fi MAC for privacy. | Android network docs | High | 🔒 | system | +| wifi\_metered | Boolean | false | true / false | false | Marks current Wi-Fi network as metered. | Android network settings | High | | system | +| wifi\_proxy\_enabled | Boolean | false | true / false | false | Enables HTTP proxy for Wi-Fi. | Android network docs | High | | system | +| windowed\_2d\_apps\_enabled | Boolean | false | true / false | true | Allows 2D apps to run in resizable windows in VR. | Quest multitasking | Medium | 🧪 | com.oculus.systemux | +| wireless\_debugging\_enabled | Boolean | false | true / false | true | Enables ADB over Wi-Fi. | Android developer docs | High | 🧪 | system | +| adb\_installation\_enabled | Boolean | false | true / false | true | Allows installing APKs via ADB. | Android developer docs | High | 🧪 | system | +| adb\_over\_network\_enabled | Boolean | false | true / false | true | Enables ADB connection over Wi-Fi. | Android developer docs | High | 🧪 | system | +| aggressive\_memory\_trim | Boolean | false | true / false | true | Frees unused RAM more aggressively to improve performance. | Android memory mgmt | Medium | | system | +| allow\_background\_services | Boolean | true | true / false | false | Lets apps run services in background. | Android services docs | Medium | 📉 | system | +| allow\_data\_collection | Boolean | true | true / false | false | Grants permission to collect usage data. | Privacy policy | High | 📉🔒 | system | +| allow\_developer\_mode | Boolean | false | true / false | true | Allows developer features (USB debugging, sideloading). | Oculus dev setup | High | 🧪 | system | +| allow\_overlay\_apps | Boolean | true | true / false | false | Allows apps to draw over other apps. | Android overlay docs | Medium | 📉 | system | +| always\_on\_display | Boolean | false | true / false | false | Keeps display on when idle. | Power settings | Medium | 📉 | system | +| analytics\_event\_logging | Boolean | true | true / false | false | Sends app usage analytics events. | Analytics docs | High | 📉🔒 | system | +| android\_debug\_keystore\_enabled | Boolean | false | true / false | false | Allows use of debug keystore for app signing. | Android dev docs | Medium | | system | +| app\_auto\_update\_enabled | Boolean | true | true / false | false | Automatically updates installed apps. | Meta store settings | High | 📉 | com.oculus.store | +| app\_install\_from\_unknown\_sources | Boolean | false | true / false | true | Allows APK install from outside store. | Android security docs | High | 🧪 | system | +| app\_usage\_tracking\_enabled | Boolean | true | true / false | false | Tracks app usage times for analytics. | Android usage stats | High | 📉 | system | +| application\_crash\_reporting | Boolean | true | true / false | false | Sends crash reports to Meta. | Privacy policy | High | 📉🔒 | system | +| auto\_brightness\_enabled | Boolean | true | true / false | false | Adjusts screen brightness automatically. | Display settings | High | | system | +| auto\_ipd\_adjustment | Boolean | false | true / false | false | Adjusts IPD automatically via eye tracking. | VR hardware docs | Medium | 🧪 | system | +| auto\_sleep\_enabled | Boolean | true | true / false | true | Automatically sleeps device after inactivity. | Power settings | High | | system | +| auto\_wake\_on\_headset\_put\_on | Boolean | true | true / false | true | Wakes device when headset is worn. | Oculus hardware docs | High | | system | +| automatic\_system\_updates | Boolean | true | true / false | false | Automatically updates firmware/OS. | Android update docs | High | 📉 | system | +| avatar\_customization\_enabled | Boolean | true | true / false | true | Allows changing VR avatar appearance. | Oculus social docs | High | | com.oculus.socialplatform | +| background\_audio\_enabled | Boolean | false | true / false | false | Allows apps to play audio in background. | Android audio focus | Medium | 📉 | system | +| background\_blur\_enabled | Boolean | true | true / false | true | Blurs VR background in menus. | Oculus UI docs | Medium | | com.oculus.systemux | +| battery\_health\_monitoring | Boolean | true | true / false | true | Tracks battery temperature and wear. | Hardware safety docs | High | | system | +| battery\_saver\_enabled | Boolean | false | true / false | true | Limits performance to extend battery life. | Android battery saver | High | 📉 | system | +| bluetooth\_a2dp\_enabled | Boolean | true | true / false | true | Allows high-quality audio streaming over Bluetooth. | Bluetooth profiles | High | | system | +| bluetooth\_auto\_connect | Boolean | true | true / false | true | Automatically reconnects paired BT devices. | Android BT docs | High | | system | +| bluetooth\_debug\_logging | Boolean | false | true / false | false | Logs Bluetooth activity for debugging. | Android BT docs | Medium | 🧪 | system | +| bluetooth\_enabled | Boolean | true | true / false | true | Enables Bluetooth hardware. | Android settings | High | | system | +| bluetooth\_visibility | String | hidden | hidden / visible | hidden | Sets BT discoverability. | Android BT docs | High | 🔒 | system | +| borderless\_2d\_windows | Boolean | false | true / false | true | Removes borders from 2D VR windows. | Oculus multitasking | Medium | 🧪 | com.oculus.systemux | +| brightness\_slider\_enabled | Boolean | true | true / false | true | Shows brightness adjustment UI. | UI docs | High | | system | +| browser\_data\_collection | Boolean | true | true / false | false | Sends browsing telemetry to Meta. | Privacy policy | High | 📉🔒 | com.oculus.browser | +| browser\_javascript\_enabled | Boolean | true | true / false | true | Enables JavaScript execution in VR browser. | Web docs | High | | com.oculus.browser | +| browser\_popups\_enabled | Boolean | false | true / false | false | Allows pop-up windows in VR browser. | Browser settings | High | 📉 | com.oculus.browser | +| browser\_tracking\_protection | Boolean | false | true / false | true | Blocks third-party trackers in VR browser. | Privacy docs | Medium | 🔒 | com.oculus.browser | +| camera\_access\_enabled | Boolean | true | true / false | false | Allows apps to use the headset’s cameras. | Privacy settings | High | 📉 | system | +| camera\_passthrough\_shortcut | Boolean | true | true / false | true | Enables quick passthrough via shortcut. | Oculus passthrough | High | | com.oculus.systemux | +| camera\_recording\_enabled | Boolean | true | true / false | false | Allows video capture from headset cameras. | Privacy docs | Medium | 📉 | system | +| capture\_overlay\_enabled | Boolean | true | true / false | true | Shows overlay when recording in VR. | Oculus capture docs | High | | com.oculus.captureservice | +| cast\_to\_device\_enabled | Boolean | true | true / false | false | Allows casting VR view to phone/TV. | Oculus casting | High | 📉 | com.oculus.castingservice | +| charging\_led\_enabled | Boolean | true | true / false | true | LED indicator for charging status. | Hardware docs | High | | system | +| companion\_app\_linking\_enabled | Boolean | true | true / false | false | Links headset to Meta mobile companion app. | Oculus mobile link docs | High | 📉 | com.oculus.companion | +| controller\_battery\_display | Boolean | true | true / false | true | Shows controller battery levels in UI. | Oculus UI docs | High | | system | +| controller\_button\_remapping | Boolean | false | true / false | true | Allows custom mapping of controller buttons. | Input settings | Medium | 🧪 | system | +| controller\_firmware\_updates | Boolean | true | true / false | false | Automatically updates controller firmware. | Hardware docs | High | 📉 | system | +| controller\_haptics\_enabled | Boolean | true | true / false | true | Enables vibration feedback. | Oculus input docs | High | | system | +| controller\_tracking\_enabled | Boolean | true | true / false | true | Enables controller positional tracking. | VR tracking docs | High | | system | +| cpu\_boost\_mode\_enabled | Boolean | false | true / false | true | Temporarily boosts CPU speed for demanding apps. | Performance tuning | Medium | 🧪 | system | +| crash\_dump\_upload\_enabled | Boolean | true | true / false | false | Uploads crash dumps to Meta. | Privacy policy | High | 📉🔒 | system | +| cross\_app\_friends\_list | Boolean | true | true / false | false | Shares friends list across apps. | Oculus social docs | High | 📉 | com.oculus.socialplatform | +| custom\_guardian\_boundaries | Boolean | false | true / false | true | Allows manual guardian setup. | Oculus guardian docs | High | | com.oculus.guardian | +| data\_saver\_enabled | Boolean | false | true / false | false | Limits background data usage. | Android data saver | High | | system | +| debug\_hud\_enabled | Boolean | false | true / false | true | Shows developer debug HUD in VR. | Oculus dev tools | Medium | 🧪 | system | +| debug\_logcat\_enabled | Boolean | false | true / false | true | Enables persistent logcat logging. | Android dev docs | Medium | 🧪 | system | +| developer\_logging\_enabled | Boolean | false | true / false | true | Enables verbose developer logs. | Android dev docs | Medium | 🧪 | system | +| device\_discovery\_enabled | Boolean | true | true / false | false | Allows finding device via Meta services. | Privacy policy | High | 📉 | system | +| device\_lock\_enabled | Boolean | false | true / false | false | Locks headset behind passcode. | Android lock screen | High | 🔒 | system | +| device\_name | String | Quest | Any string | Custom | Sets device name. | Android settings | High | | system | +| disable\_app\_suspend | Boolean | false | true / false | true | Prevents apps from being paused in background. | Android activity mgmt | Medium | 🧪 | system | +| disable\_thermal\_throttling | Boolean | false | true / false | false | Prevents performance reduction from heat. | Hardware safety docs | Low | 🧪 | system | +| display\_refresh\_rate | Float | 72.0 | 60 / 72 / 90 / 120 | 72.0 | Sets display refresh rate. | Oculus display docs | High | | system | +| display\_timeout\_seconds | Integer | 300 | 30–1800 | 300 | Time before display sleeps. | Power settings | High | | system | +| dns\_over\_https\_enabled | Boolean | false | true / false | true | Routes DNS queries over HTTPS for privacy. | Privacy docs | Medium | 🔒 | system | +| double\_tap\_passthrough\_enabled | Boolean | true | true / false | true | Enables passthrough view via quick double-tap. | Oculus passthrough | High | | com.oculus.systemux | +| download\_over\_cellular\_enabled | Boolean | true | true / false | false | Allows downloading updates over mobile data. | Android settings | High | 📉 | system | +| dynamic\_foveated\_rendering | Boolean | true | true / false | true | Adjusts resolution based on gaze direction. | VR perf tuning | Medium | 🧪 | system | +| easy\_reach\_enabled | Boolean | false | true / false | false | Moves UI elements closer for accessibility. | Oculus accessibility | High | | com.oculus.systemux | +| edge\_trigger\_actions | Boolean | false | true / false | false | Maps controller edge touch to custom actions. | Input customization | Low | 🧪 | system | +| enable\_hand\_tracking | Boolean | false | true / false | true | Allows use of hands instead of controllers. | Oculus hand tracking | High | | com.oculus.handtracking | +| enable\_occlusion\_passthrough | Boolean | false | true / false | true | Allows mixed reality occlusion rendering. | Oculus MR docs | Low | 🧪 | com.oculus.systemux | +| enable\_vpn | Boolean | false | true / false | true | Enables VPN connections. | Android VPN docs | High | 🔒 | system | +| experimental\_spatial\_anchor\_sharing | Boolean | false | true / false | false | Shares spatial anchors across devices. | Oculus MR docs | Low | 🧪 | com.oculus.spatial | +| external\_storage\_access | Boolean | false | true / false | true | Allows apps to read/write to SD/USB storage. | Android storage docs | High | | system | +| face\_tracking\_enabled | Boolean | false | true / false | false | Enables face tracking sensors. | Oculus docs | Low | 🧪 | system | +| factory\_reset\_protection | Boolean | true | true / false | true | Prevents unauthorized factory resets. | Android FRP docs | High | 🔒 | system | +| fast\_boot\_enabled | Boolean | true | true / false | true | Reduces boot time by skipping full init. | Boot optimization | Medium | | system | +| file\_sharing\_over\_network | Boolean | false | true / false | true | Allows SMB/NFS/FTP sharing of files. | Network docs | Low | 🧪 | system | +| firmware\_update\_check | Boolean | true | true / false | false | Automatically checks for firmware updates. | Android update docs | High | 📉 | system | +| focus\_assist\_enabled | Boolean | false | true / false | false | Suppresses notifications during VR. | Android Do Not Disturb | High | | system | +| force\_4k\_recording | Boolean | false | true / false | true | Forces 4K resolution for recordings. | Capture settings | Medium | 🧪 | com.oculus.captureservice | +| force\_gpu\_rendering | Boolean | false | true / false | true | Forces GPU acceleration for 2D apps. | Android dev docs | Medium | 🧪 | system | +| force\_stop\_on\_app\_exit | Boolean | true | true / false | true | Kills app processes immediately on exit. | Android activity mgmt | High | | system | +| fps\_counter\_enabled | Boolean | false | true / false | true | Displays FPS overlay in VR. | Oculus dev tools | Medium | 🧪 | system | +| friend\_notifications\_enabled | Boolean | true | true / false | false | Shows online/offline notifications for friends. | Oculus social docs | High | 📉 | com.oculus.socialplatform | +| full\_disk\_encryption | Boolean | true | true / false | true | Encrypts all headset storage. | Android security docs | High | 🔒 | system | +| fullscreen\_mode\_for\_2d\_apps | Boolean | true | true / false | true | Forces 2D apps to run in fullscreen. | Android UI docs | High | | system | +| game\_mode\_enabled | Boolean | false | true / false | true | Optimizes performance for games. | Android perf mode docs | Medium | 🧪 | system | +| gamepad\_support\_enabled | Boolean | true | true / false | true | Enables support for gamepads. | Android input docs | High | | system | +| gesture\_navigation\_enabled | Boolean | false | true / false | true | Allows navigation via hand gestures. | Oculus hand tracking | Medium | 🧪 | com.oculus.systemux | +| global\_shortcuts\_enabled | Boolean | true | true / false | true | Enables OS-wide keyboard/controller shortcuts. | Android accessibility docs | High | | system | +| gpu\_debug\_mode | Boolean | false | true / false | false | Enables extra GPU logging. | Android GPU tools | Low | 🧪 | system | +| gpu\_overclocking\_enabled | Boolean | false | true / false | true | Runs GPU at higher frequency. | Performance tuning | Low | 🧪 | system | +| guardian\_enabled | Boolean | true | true / false | true | Enables VR boundary guardian system. | Oculus guardian docs | High | | com.oculus.guardian | +| guardian\_history\_storage | Boolean | true | true / false | false | Saves guardian boundaries persistently. | Privacy docs | Medium | 📉 | com.oculus.guardian | +| guardian\_notifications | Boolean | true | true / false | true | Shows warnings when near boundaries. | Oculus guardian docs | High | | com.oculus.guardian | +| guest\_mode\_enabled | Boolean | false | true / false | false | Allows temporary guest profiles. | Android multi-user docs | Medium | | system | +| hand\_mesh\_rendering | Boolean | false | true / false | true | Renders full 3D hand models in VR. | Oculus hand tracking | Medium | 🧪 | com.oculus.handtracking | +| hand\_tracking\_debug | Boolean | false | true / false | false | Logs hand tracking sensor data. | Oculus dev docs | Low | 🧪 | com.oculus.handtracking | +| hdmi\_output\_enabled | Boolean | false | true / false | true | Enables HDMI video output. | Hardware specs | Medium | | system | +| headset\_auto\_lock | Boolean | false | true / false | false | Locks headset after inactivity. | Android lock screen | High | 🔒 | system | +| headset\_tracking\_enabled | Boolean | true | true / false | true | Enables positional tracking of headset. | VR tracking docs | High | | system | +| high\_contrast\_mode | Boolean | false | true / false | false | Increases UI contrast for accessibility. | Android accessibility docs | High | | system | +| high\_quality\_audio | Boolean | true | true / false | true | Enables high bitrate audio output. | Audio settings | Medium | | system | +| home\_environment\_enabled | Boolean | true | true / false | true | Displays 3D VR home environment. | Oculus home docs | High | | com.oculus.home | +| home\_telemetry\_enabled | Boolean | true | true / false | false | Sends usage data from Home app. | Privacy docs | High | 📉🔒 | com.oculus.home | +| hotspot\_enabled | Boolean | false | true / false | false | Enables Wi-Fi hotspot. | Android tethering docs | High | | system | +| hrtf\_audio\_processing | Boolean | true | true / false | true | Enables binaural spatial audio processing. | Audio processing docs | High | | system | +| htc\_vive\_tracker\_support | Boolean | false | true / false | false | Enables HTC Vive tracker support. | VR tracking docs | Low | 🧪 | system | +| idle\_cpu\_throttle | Boolean | true | true / false | false | Lowers CPU speed when idle. | Android power mgmt | Medium | 📉 | system | +| immersive\_mode\_enabled | Boolean | true | true / false | true | Hides system UI in VR apps. | Android immersive mode | High | | system | +| imu\_sensor\_calibration | Boolean | true | true / false | true | Calibrates IMU sensors at boot. | Hardware docs | Medium | | system | +| in\_app\_purchase\_enabled | Boolean | true | true / false | false | Enables in-app purchases. | Oculus store docs | High | 📉 | com.oculus.store | +| in\_headset\_keyboard | Boolean | true | true / false | true | Enables VR keyboard. | Oculus input docs | High | | com.oculus.keyboard | +| incognito\_mode\_enabled | Boolean | false | true / false | true | Disables saving of browsing history. | Browser privacy docs | High | 🔒 | com.oculus.browser | +| input\_debug\_overlay | Boolean | false | true / false | false | Shows real-time controller/hand input overlay. | Oculus dev tools | Low | 🧪 | com.oculus.input | +| input\_method\_selection | Boolean | true | true / false | true | Allows switching between keyboard/input methods. | Android input docs | High | | system | +| input\_smoothing\_enabled | Boolean | true | true / false | true | Smooths controller movement data. | VR input docs | Medium | | system | +| instant\_apps\_enabled | Boolean | false | true / false | false | Allows running instant apps without install. | Android instant apps | High | 📉 | system | +| internet\_speed\_test | Boolean | true | true / false | true | Allows built-in speed test tool. | Network utilities | Medium | | system | +| ipd\_adjustment\_manual | Boolean | true | true / false | true | Allows manual interpupillary distance adjustment. | VR hardware docs | High | | system | +| ipv6\_support\_enabled | Boolean | true | true / false | true | Enables IPv6 networking. | Networking docs | High | | system | +| ir\_led\_tracking\_enabled | Boolean | true | true / false | true | Uses IR LEDs for tracking. | Hardware tracking docs | Medium | | system | +| is\_developer\_build | Boolean | false | true / false | false | Marks system as dev build. | Build system docs | Medium | 🧪 | system | +| jump\_start\_mode | Boolean | false | true / false | true | Reduces boot sequence for testing. | Boot optimization | Low | 🧪 | system | +| keep\_awake\_during\_charging | Boolean | false | true / false | false | Prevents sleep when charging. | Power settings | High | | system | +| keyboard\_auto\_correction | Boolean | true | true / false | true | Enables auto-correct on VR keyboard. | Android input docs | High | | com.oculus.keyboard | +| keyboard\_sound\_feedback | Boolean | true | true / false | false | Plays sound when typing. | Android input docs | Medium | 📉 | com.oculus.keyboard | +| keyboard\_vibration\_feedback | Boolean | true | true / false | true | Vibrates when typing. | Android input docs | Medium | | com.oculus.keyboard | +| lce\_enabled | Boolean | true | true / false | true | Enables Link Congestion Estimation for Wi-Fi. | Networking docs | Medium | | system | +| lens\_guard\_enabled | Boolean | false | true / false | false | Detects lens dirt/damage. | Hardware docs | Low | | system | +| lens\_distortion\_correction | Boolean | true | true / false | true | Corrects lens distortion in VR. | Oculus rendering docs | High | | system | +| link\_cable\_debug | Boolean | false | true / false | true | Enables debug logs for Link cable. | Oculus link docs | Medium | 🧪 | com.oculus.pcclient | +| link\_cable\_enabled | Boolean | true | true / false | true | Enables PC VR via Oculus Link. | Oculus link docs | High | | com.oculus.pcclient | +| location\_services\_enabled | Boolean | true | true / false | false | Allows apps to access location data. | Android location docs | High | 📉🔒 | system | +| location\_sharing\_enabled | Boolean | false | true / false | false | Shares location with friends. | Privacy docs | Medium | 📉 | com.oculus.socialplatform | +| lock\_screen\_notifications | Boolean | true | true / false | false | Shows notifications on lock screen. | Android lock screen | High | 📉 | system | +| logcat\_persistent | Boolean | false | true / false | false | Keeps logcat logs across reboots. | Android dev docs | Low | 🧪 | system | +| low\_latency\_mode | Boolean | false | true / false | true | Reduces input-to-photon latency. | VR performance docs | Medium | 🧪 | system | +| low\_power\_mode | Boolean | false | true / false | false | Limits performance to save battery. | Android power mgmt | High | 📉 | system | +| low\_persistence\_mode | Boolean | true | true / false | true | Reduces motion blur in VR. | VR display docs | High | | system | +| manual\_guardian\_reset | Boolean | true | true / false | true | Allows manual clearing of guardian. | Oculus guardian docs | High | | com.oculus.guardian | +| marker\_tracking\_enabled | Boolean | false | true / false | true | Enables AR marker tracking. | AR tracking docs | Low | 🧪 | com.oculus.spatial | +| media\_volume\_limit | Integer | 100 | 0–100 | 80 | Caps media volume. | Audio settings | Medium | | system | +| media\_projection\_enabled | Boolean | true | true / false | false | Allows screen recording/sharing via MediaProjection API. | Android docs | High | 📉 | system | +| microphone\_access\_enabled | Boolean | true | true / false | false | Allows apps to access microphone. | Android audio input | High | 📉🔒 | system | +| microphone\_privacy\_indicator | Boolean | false | true / false | true | Shows indicator when mic is active. | Privacy UI docs | High | 🔒 | system | +| mixed\_reality\_capture\_enabled | Boolean | false | true / false | true | Enables MRC recording. | Oculus MRC docs | Medium | 🧪 | com.oculus.mrcservice | +| mobile\_data\_enabled | Boolean | false | true / false | false | Enables mobile data connection. | Android networking docs | High | | system | +| mock\_location\_enabled | Boolean | false | true / false | false | Allows fake GPS data. | Android dev docs | Medium | 🧪 | system | +| motion\_smoothing\_enabled | Boolean | false | true / false | true | Smooths VR motion at lower framerates. | VR performance docs | Medium | 🧪 | system | +| motion\_tracking\_debug | Boolean | false | true / false | false | Logs motion tracking data. | Oculus tracking docs | Low | 🧪 | system | +| multi\_user\_support | Boolean | false | true / false | false | Enables multiple user profiles. | Android multi-user docs | Medium | | system | +| multicast\_dns\_enabled | Boolean | true | true / false | true | Enables mDNS for local device discovery. | Networking docs | High | | system | +| mute\_on\_remove | Boolean | true | true / false | true | Mutes audio when headset removed. | Oculus UI docs | High | | com.oculus.systemux | +| native\_wifi\_p2p | Boolean | true | true / false | true | Enables Wi-Fi Direct. | Android networking docs | High | | system | +| nearby\_share\_enabled | Boolean | false | true / false | false | Enables Nearby Share. | Android share docs | Medium | 📉 | system | +| network\_debug\_logging | Boolean | false | true / false | false | Logs network activity. | Android networking docs | Low | 🧪 | system | +| network\_location\_provider | Boolean | true | true / false | false | Uses Wi-Fi/cell for location. | Android location docs | High | 📉 | system | +| night\_light\_enabled | Boolean | false | true / false | true | Reduces blue light in display. | Android display settings | High | | system | +| notification\_access\_enabled | Boolean | true | true / false | false | Grants apps access to all notifications. | Android notification listener | High | 📉 | system | +| notification\_sound | Boolean | true | true / false | false | Plays sound for incoming notifications. | Android sound settings | High | 📉 | system | +| notification\_vibration | Boolean | true | true / false | false | Vibrates on incoming notifications. | Android vibration docs | High | 📉 | system | +| nv12\_capture\_enabled | Boolean | false | true / false | true | Enables NV12 video format capture. | Video encoding docs | Low | 🧪 | com.oculus.captureservice | +| oculus\_account\_linking | Boolean | true | true / false | false | Links device to Oculus account. | Privacy policy | High | 📉 | com.oculus.account | +| oculus\_airlink\_enabled | Boolean | false | true / false | true | Enables wireless PC VR via Air Link. | Oculus Air Link docs | High | | com.oculus.pcclient | +| oculus\_browser\_ad\_block | Boolean | false | true / false | true | Blocks ads in Oculus Browser. | Browser settings | Medium | | com.oculus.browser | +| oculus\_browser\_cookies | Boolean | true | true / false | false | Allows cookies in Oculus Browser. | Privacy docs | High | 📉 | com.oculus.browser | +| oculus\_browser\_incognito | Boolean | false | true / false | true | Enables incognito mode in Browser. | Privacy docs | High | 🔒 | com.oculus.browser | +| oculus\_browser\_javascript | Boolean | true | true / false | true | Allows JS execution in Browser. | Browser settings | High | | com.oculus.browser | +| oculus\_cloud\_backup | Boolean | true | true / false | false | Backs up app data to Oculus cloud. | Privacy docs | Medium | 📉 | com.oculus.backup | +| oculus\_cloud\_sync | Boolean | true | true / false | true | Syncs app data with cloud. | Oculus sync docs | Medium | | com.oculus.backup | +| oculus\_dev\_mode | Boolean | false | true / false | true | Enables developer mode features. | Oculus dev docs | Medium | 🧪 | com.oculus.systemux | +| oculus\_events\_enabled | Boolean | true | true / false | false | Sends event telemetry to Oculus. | Privacy docs | High | 📉 | com.oculus.systemux | +| oculus\_experimental\_features | Boolean | false | true / false | true | Enables beta/experimental settings. | Oculus dev docs | Medium | 🧪 | com.oculus.systemux | +| oculus\_facebook\_integration | Boolean | true | true / false | false | Integrates Facebook social features. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| oculus\_friends\_overlay | Boolean | true | true / false | false | Shows friend list overlay in VR. | Oculus social docs | Medium | 📉 | com.oculus.socialplatform | +| oculus\_game\_invites | Boolean | true | true / false | false | Allows friends to send game invites. | Oculus social docs | Medium | 📉 | com.oculus.socialplatform | +| oculus\_guardian\_backup | Boolean | true | true / false | false | Backs up Guardian boundaries. | Privacy docs | Medium | 📉 | com.oculus.guardian | +| oculus\_hand\_tracking\_v2 | Boolean | false | true / false | true | Enables improved hand tracking algorithm. | Oculus hand tracking docs | Medium | 🧪 | com.oculus.handtracking | +| oculus\_hands\_passthrough | Boolean | false | true / false | true | Shows passthrough video around hands. | Oculus dev docs | Medium | 🧪 | com.oculus.handtracking | +| oculus\_home\_customization | Boolean | true | true / false | true | Allows customizing VR Home. | Oculus home docs | High | | com.oculus.home | +| oculus\_home\_multiplayer | Boolean | false | true / false | true | Allows friends to join Home. | Oculus social docs | Medium | | com.oculus.home | +| oculus\_home\_themes | Boolean | true | true / false | true | Allows switching between Home themes. | Oculus home docs | High | | com.oculus.home | +| oculus\_insights\_logging | Boolean | false | true / false | false | Sends analytics to Oculus Insights. | Privacy docs | High | 📉 | com.oculus.analytics | +| oculus\_link\_usb\_only | Boolean | false | true / false | true | Forces Oculus Link via USB only. | Oculus link docs | Medium | 🧪 | com.oculus.pcclient | +| oculus\_link\_wireless\_only | Boolean | false | true / false | false | Disables USB Link, forces wireless. | Oculus link docs | Medium | 🧪 | com.oculus.pcclient | +| oculus\_microphone\_passthrough | Boolean | false | true / false | true | Passes mic audio to PC during Link. | Oculus link docs | Medium | | com.oculus.pcclient | +| oculus\_mobile\_notifications | Boolean | true | true / false | false | Shows phone notifications in VR. | Oculus mobile link docs | High | 📉 | com.oculus.systemux | +| oculus\_multiplayer\_block | Boolean | false | true / false | false | Blocks multiplayer features globally. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| oculus\_passthrough\_enabled | Boolean | true | true / false | true | Enables passthrough camera view. | Oculus passthrough docs | High | | com.oculus.guardian | +| oculus\_passthrough\_home | Boolean | false | true / false | true | Uses passthrough for VR Home background. | Oculus passthrough docs | Medium | | com.oculus.home | +| oculus\_passthrough\_keyboard | Boolean | false | true / false | true | Shows real keyboard in passthrough. | Oculus passthrough docs | Medium | | com.oculus.keyboard | +| oculus\_passthrough\_portal | Boolean | false | true / false | true | Creates passthrough “windows” in VR. | Oculus passthrough docs | Medium | 🧪 | com.oculus.systemux | +| oculus\_passthrough\_shortcuts | Boolean | false | true / false | true | Opens apps in passthrough mode. | Oculus passthrough docs | Medium | | com.oculus.systemux | +| oculus\_performance\_overlay | Boolean | false | true / false | true | Shows performance metrics overlay. | Oculus dev tools | Medium | 🧪 | com.oculus.systemux | +| oculus\_personalized\_ads | Boolean | true | true / false | false | Shows targeted ads. | Privacy policy | High | 📉 | com.oculus.adservices | +| oculus\_remote\_desktop | Boolean | false | true / false | true | Allows VR access to PC desktop. | Oculus remote desktop docs | Medium | | com.oculus.remotedesktop | +| oculus\_remote\_support | Boolean | false | true / false | false | Allows Oculus support remote control. | Privacy docs | High | 📉 | com.oculus.remotesupport | +| oculus\_safety\_center | Boolean | true | true / false | true | Enables VR safety guidance center. | Oculus safety docs | High | | com.oculus.systemux | +| oculus\_screenshot\_sound | Boolean | true | true / false | false | Plays shutter sound on screenshots. | Android camera docs | High | 📉 | com.oculus.captureservice | +| oculus\_secure\_boot | Boolean | true | true / false | true | Verifies firmware integrity at boot. | Security docs | High | 🔒 | system | +| oculus\_shared\_space | Boolean | false | true / false | true | Allows shared VR spaces. | Oculus social docs | Medium | | com.oculus.socialplatform | +| oculus\_social\_overlay | Boolean | true | true / false | true | Shows friend/social overlay in VR. | Oculus social docs | High | | com.oculus.socialplatform | +| oculus\_store\_auto\_updates | Boolean | true | true / false | true | Updates apps automatically from Oculus Store. | Oculus store docs | High | | com.oculus.store | +| oculus\_store\_purchases | Boolean | true | true / false | false | Allows purchasing apps from Oculus Store. | Privacy docs | High | 📉 | com.oculus.store | +| oculus\_system\_analytics | Boolean | true | true / false | false | Sends system analytics. | Privacy docs | High | 📉 | com.oculus.analytics | +| oculus\_test\_channel\_access | Boolean | false | true / false | true | Allows joining test channels for apps. | Oculus store docs | Medium | | com.oculus.store | +| oculus\_tracking\_loss\_recovery | Boolean | true | true / false | true | Attempts recovery after tracking loss. | Oculus tracking docs | High | | com.oculus.guardian | +| oculus\_two\_factor\_auth | Boolean | true | true / false | true | Requires 2FA on Oculus account. | Security docs | High | 🔒 | com.oculus.account | +| oculus\_unity\_development | Boolean | false | true / false | true | Enables Unity dev tools. | Unity VR docs | Medium | 🧪 | com.oculus.devtools | +| oculus\_user\_presence\_detection | Boolean | true | true / false | true | Detects if user is wearing headset. | Hardware presence sensor docs | High | | system | +| oculus\_vr\_casting | Boolean | true | true / false | true | Streams VR view to external device. | Oculus casting docs | High | | com.oculus.castservice | +| offline\_mode\_enabled | Boolean | false | true / false | true | Allows full use of headset offline. | Privacy docs | Medium | | system | +| one\_click\_guardian\_setup | Boolean | true | true / false | true | Speeds up guardian setup. | Oculus guardian docs | High | | com.oculus.guardian | +| openxr\_runtime\_selection | Boolean | true | true / false | true | Allows switching VR runtimes. | OpenXR docs | Medium | | system | +| os\_auto\_update\_enabled | Boolean | true | true / false | false | Automatically updates headset firmware. | Privacy docs | High | 📉 | system | +| overlay\_debug\_tools | Boolean | false | true / false | false | Enables debug overlay tools. | Oculus dev docs | Low | 🧪 | com.oculus.systemux | +| package\_installer\_enabled | Boolean | true | true / false | false | Allows installing new APKs. | Privacy docs | High | 📉 | system | +| parental\_controls\_enabled | Boolean | false | true / false | true | Enables parental restriction tools. | Android parental control docs | High | | system | +| passthrough\_calibration | Boolean | true | true / false | true | Runs calibration for passthrough cameras. | Oculus passthrough docs | Medium | | system | +| passthrough\_debug\_overlay | Boolean | false | true / false | false | Shows passthrough debug info. | Oculus dev docs | Low | 🧪 | system | +| passthrough\_environment\_blending | Boolean | false | true / false | true | Blends passthrough video into VR environment. | Oculus passthrough docs | Medium | | system | +| passthrough\_recording | Boolean | false | true / false | false | Allows recording passthrough feed. | Privacy docs | Medium | 📉 | com.oculus.captureservice | +| passthrough\_underlay | Boolean | false | true / false | true | Displays passthrough under VR content. | Oculus passthrough docs | Medium | 🧪 | system | +| pc\_link\_bandwidth\_limit | Integer | 2500 | 500–5000 | 3500 | Caps Oculus Link bandwidth (Mbps). | Oculus link docs | Medium | | com.oculus.pcclient | +| pc\_link\_compression | Boolean | true | true / false | true | Enables video compression for Link. | Oculus link docs | High | | com.oculus.pcclient | +| pc\_link\_debug | Boolean | false | true / false | false | Logs PC Link connection info. | Oculus dev docs | Low | 🧪 | com.oculus.pcclient | +| pc\_link\_quality | String | auto | auto / high / medium / low | high | Sets Link quality mode. | Oculus link docs | Medium | | com.oculus.pcclient | +| persistent\_notification\_permission | Boolean | true | true / false | false | Allows persistent background notifications. | Privacy docs | High | 📉 | system | +| phone\_link\_enabled | Boolean | true | true / false | true | Connects headset to Oculus mobile app. | Oculus mobile docs | High | | com.oculus.systemux | +| phone\_link\_notifications | Boolean | true | true / false | false | Forwards phone notifications to VR. | Privacy docs | High | 📉 | com.oculus.systemux | +| picture\_in\_picture\_enabled | Boolean | false | true / false | true | Allows PiP windows in VR. | Android PiP docs | Medium | | com.oculus.systemux | +| pin\_code\_required | Boolean | false | true / false | true | Requires PIN for unlock. | Security docs | High | 🔒 | system | +| platform\_account\_sync | Boolean | true | true / false | false | Syncs accounts across devices. | Privacy docs | High | 📉 | com.oculus.account | +| platform\_app\_logging | Boolean | true | true / false | false | Logs app usage for platform analytics. | Privacy docs | High | 📉 | com.oculus.analytics | +| platform\_bluetooth\_pairing | Boolean | true | true / false | true | Allows pairing Bluetooth devices. | Android BT docs | High | | system | +| platform\_crash\_reporting | Boolean | true | true / false | false | Sends crash reports to Oculus. | Privacy docs | High | 📉 | com.oculus.analytics | +| platform\_data\_collection | Boolean | true | true / false | false | Collects device usage data. | Privacy policy | High | 📉 | com.oculus.analytics | +| platform\_device\_linking | Boolean | true | true / false | false | Links headset to multiple devices. | Privacy docs | High | 📉 | com.oculus.account | +| platform\_diagnostics | Boolean | true | true / false | false | Sends diagnostic data. | Privacy docs | High | 📉 | com.oculus.analytics | +| platform\_firmware\_update | Boolean | true | true / false | false | Updates firmware automatically. | Privacy docs | High | 📉 | system | +| platform\_friend\_suggestions | Boolean | true | true / false | false | Suggests friends based on activity. | Privacy docs | Medium | 📉 | com.oculus.socialplatform | +| platform\_location\_access | Boolean | true | true / false | false | Grants location access to platform services. | Privacy docs | High | 📉 | system | +| platform\_logs\_upload | Boolean | true | true / false | false | Uploads logs for debugging. | Privacy docs | High | 📉 | com.oculus.analytics | +| platform\_metrics\_collection | Boolean | true | true / false | false | Collects performance metrics. | Privacy docs | High | 📉 | com.oculus.analytics | +| platform\_personalization | Boolean | true | true / false | false | Personalizes UI based on usage. | Privacy docs | Medium | 📉 | com.oculus.systemux | +| platform\_remote\_access | Boolean | false | true / false | false | Allows remote access to device. | Privacy docs | High | 📉 | com.oculus.remotesupport | +| platform\_test\_features | Boolean | false | true / false | true | Enables platform beta features. | Oculus dev docs | Medium | 🧪 | com.oculus.systemux | +| platform\_user\_activity\_logging | Boolean | true | true / false | false | Logs all user activity. | Privacy docs | High | 📉 | com.oculus.analytics | +| platform\_voice\_commands | Boolean | true | true / false | true | Enables OS voice control. | Oculus voice docs | High | | com.oculus.voiceinput | +| power\_button\_lock | Boolean | false | true / false | true | Requires PIN to power off device. | Security docs | High | 🔒 | system | +| power\_menu\_enabled | Boolean | true | true / false | true | Enables power menu. | Android system UI docs | High | | system | +| power\_saving\_mode | Boolean | false | true / false | true | Reduces performance to save battery. | Android power docs | High | | system | +| power\_saving\_timeout | Integer | 300 | 60–900 | 120 | Time before entering power save mode. | Android power docs | Medium | | system | +| prefetch\_app\_assets | Boolean | true | true / false | false | Downloads app assets before first launch. | Privacy docs | Medium | 📉 | com.oculus.store | +| privacy\_dashboard\_enabled | Boolean | true | true / false | true | Shows privacy control dashboard. | Android privacy docs | High | | system | +| privacy\_sandbox\_enabled | Boolean | true | true / false | true | Isolates data for privacy. | Android privacy sandbox docs | Medium | | system | +| proximity\_sensor\_enabled | Boolean | true | true / false | true | Uses sensor to detect face presence. | Hardware docs | High | | system | +| public\_test\_channel\_access | Boolean | false | true / false | true | Allows user to join public beta channels. | Oculus store docs | Medium | | com.oculus.store | +| quick\_actions\_enabled | Boolean | true | true / false | true | Enables quick action menu in VR. | Oculus UI docs | High | | com.oculus.systemux | +| quick\_resume\_enabled | Boolean | false | true / false | true | Resumes apps instantly after wake. | Android multitask docs | Medium | | system | +| quick\_settings\_customization | Boolean | true | true / false | true | Allows customizing quick settings panel. | Android system UI docs | High | | system | +| quick\_start\_apps | Boolean | true | true / false | false | Preloads frequently used apps at boot. | Privacy docs | Medium | 📉 | system | +| recenter\_button\_enabled | Boolean | true | true / false | true | Allows recentering VR view. | Oculus tracking docs | High | | com.oculus.guardian | +| record\_audio\_in\_background | Boolean | false | true / false | false | Allows background audio recording. | Privacy docs | High | 📉 | system | +| record\_screen\_in\_background | Boolean | false | true / false | false | Allows background screen recording. | Privacy docs | High | 📉 | com.oculus.captureservice | +| reduce\_motion\_enabled | Boolean | false | true / false | true | Reduces VR motion effects. | Accessibility docs | High | | system | +| refresh\_rate\_override | Integer | 72 | 60 / 72 / 90 / 120 | 90 | Overrides default display refresh rate. | Oculus display docs | Medium | 🧪 | system | +| remote\_assistance\_enabled | Boolean | false | true / false | false | Allows remote tech support sessions. | Privacy docs | High | 📉 | com.oculus.remotesupport | +| remote\_desktop\_quality | String | medium | low / medium / high | high | Sets quality for remote desktop streaming. | Oculus remote desktop docs | Medium | | com.oculus.remotedesktop | +| remote\_device\_management | Boolean | true | true / false | false | Allows Oculus to manage device remotely. | Privacy docs | High | 📉 | system | +| remove\_device\_limit | Boolean | false | true / false | true | Removes pairing device limit. | Oculus account docs | Low | 🧪 | com.oculus.account | +| render\_scale\_factor | Float | 1.0 | 0.5–2.0 | 1.25 | Adjusts VR rendering scale. | Oculus performance docs | Medium | 🧪 | system | +| report\_bug\_enabled | Boolean | true | true / false | true | Enables in-VR bug reporting. | Oculus dev docs | Medium | | com.oculus.systemux | +| require\_controller\_input | Boolean | true | true / false | false | Requires controllers to use device. | Accessibility docs | Medium | 📉 | system | +| reset\_guardian\_boundaries | Boolean | false | true / false | false | Resets stored guardian data. | Oculus guardian docs | High | 📉 | com.oculus.guardian | +| reset\_home\_environment | Boolean | false | true / false | false | Restores default VR Home. | Oculus home docs | High | 📉 | com.oculus.home | +| restrict\_data\_sharing | Boolean | false | true / false | true | Restricts sharing of data to third parties. | Privacy docs | High | 📉 | system | +| restricted\_mode\_enabled | Boolean | false | true / false | true | Hides sensitive content in VR. | Parental control docs | High | | system | +| resume\_from\_passthrough | Boolean | true | true / false | true | Resumes VR from passthrough view. | Oculus passthrough docs | Medium | | system | +| retail\_mode\_enabled | Boolean | false | true / false | false | Enables store demo mode. | Retail docs | High | 📉 | system | +| rtc\_debug\_logs | Boolean | false | true / false | false | Enables WebRTC debug logging. | Dev networking docs | Low | 🧪 | com.oculus.browser | +| rtc\_echo\_cancellation | Boolean | true | true / false | true | Reduces echo during calls. | WebRTC docs | High | | com.oculus.browser | +| rtc\_noise\_suppression | Boolean | true | true / false | true | Reduces background noise in calls. | WebRTC docs | High | | com.oculus.browser | +| rtc\_screen\_sharing | Boolean | false | true / false | true | Allows screen sharing via WebRTC. | Privacy docs | Medium | 📉 | com.oculus.browser | +| rtc\_video\_calls | Boolean | false | true / false | true | Allows video calls in VR. | Oculus social docs | Medium | | com.oculus.browser | +| safe\_mode\_enabled | Boolean | false | true / false | false | Boots system into safe mode. | Android recovery docs | High | | system | +| safety\_notifications | Boolean | true | true / false | true | Shows safety-related alerts in VR. | Oculus safety docs | High | | com.oculus.systemux | +| sandbox\_apps | Boolean | true | true / false | true | Runs apps in isolated sandboxes. | Security docs | High | 🔒 | system | +| save\_game\_state\_on\_exit | Boolean | true | true / false | true | Saves game state when quitting. | Game dev docs | High | | com.oculus.store | +| scan\_for\_updates\_on\_boot | Boolean | true | true / false | false | Checks for system updates at boot. | Privacy docs | Medium | 📉 | system | +| scrypt\_account\_encryption | Boolean | true | true / false | true | Encrypts account data with scrypt. | Security docs | High | 🔒 | com.oculus.account | +| screen\_brightness\_auto | Boolean | true | true / false | false | Adjusts screen brightness automatically. | Android display docs | High | 📉 | system | +| screen\_brightness\_override | Integer | 100 | 0–255 | 150 | Sets screen brightness manually. | Android display docs | Medium | | system | +| screen\_lock\_after\_sleep | Boolean | true | true / false | true | Locks device after sleep. | Security docs | High | 🔒 | system | +| screen\_timeout\_seconds | Integer | 300 | 30–900 | 120 | Time before screen turns off. | Android display docs | High | | system | +| screenshot\_shortcut\_enabled | Boolean | true | true / false | true | Enables controller shortcut for screenshots. | Oculus capture docs | High | | com.oculus.captureservice | +| search\_history\_enabled | Boolean | true | true / false | false | Saves search history in VR. | Privacy docs | High | 📉 | com.oculus.browser | +| secure\_boot\_state | Boolean | true | true / false | true | Displays secure boot status. | Security docs | High | 🔒 | system | +| secure\_mode\_app\_whitelist | Boolean | false | true / false | true | Only allows approved apps in secure mode. | Security docs | High | 🔒 | system | +| secure\_storage\_enabled | Boolean | true | true / false | true | Encrypts app data in secure storage. | Security docs | High | 🔒 | system | +| security\_logs\_enabled | Boolean | true | true / false | true | Records security events. | Security docs | High | 🔒 | system | +| select\_runtime\_api | String | OpenXR | OpenXR / OculusSDK | OpenXR | Sets VR runtime API. | VR runtime docs | Medium | | system | +| send\_device\_feedback | Boolean | true | true / false | false | Sends user feedback logs. | Privacy docs | Medium | 📉 | com.oculus.analytics | +| send\_diagnostic\_reports | Boolean | true | true / false | false | Sends diagnostic crash reports. | Privacy docs | High | 📉 | com.oculus.analytics | +| sensor\_fusion\_enabled | Boolean | true | true / false | true | Uses sensor fusion for tracking. | Hardware tracking docs | High | | system | +| sensor\_logging\_enabled | Boolean | true | true / false | false | Logs all sensor data. | Privacy docs | High | 📉 | system | +| sensors\_accelerometer | Boolean | true | true / false | true | Enables accelerometer sensor. | Hardware docs | High | | system | +| sensors\_gyroscope | Boolean | true | true / false | true | Enables gyroscope sensor. | Hardware docs | High | | system | +| sensors\_magnetometer | Boolean | true | true / false | true | Enables magnetometer sensor. | Hardware docs | High | | system | +| sensors\_proximity | Boolean | true | true / false | true | Enables proximity sensor. | Hardware docs | High | | system | +| sensors\_temperature | Boolean | true | true / false | true | Enables temperature monitoring. | Hardware docs | High | | system | +| service\_auto\_restart | Boolean | true | true / false | true | Restarts crashed services automatically. | Android service docs | High | | system | +| session\_continuity | Boolean | true | true / false | true | Continues sessions across reboots. | Android task docs | Medium | | system | +| session\_restore\_enabled | Boolean | false | true / false | true | Restores VR session after restart. | Oculus session docs | Medium | | system | +| share\_activity\_status | Boolean | true | true / false | false | Shares activity status with friends. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| share\_location | Boolean | true | true / false | false | Shares location with friends. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| share\_media | Boolean | true | true / false | true | Allows sharing media files. | Oculus social docs | High | | com.oculus.socialplatform | +| share\_purchase\_history | Boolean | true | true / false | false | Shares app purchases with friends. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| sharing\_hub\_enabled | Boolean | true | true / false | true | Enables VR sharing hub. | Oculus social docs | High | | com.oculus.systemux | +| shortcut\_double\_tap\_guardian | Boolean | false | true / false | true | Double-tap to toggle guardian. | Oculus guardian docs | Medium | | com.oculus.guardian | +| shortcut\_double\_tap\_passthrough | Boolean | true | true / false | true | Double-tap to enable passthrough. | Oculus guardian docs | High | | com.oculus.guardian | +| shortcut\_menu\_enabled | Boolean | true | true / false | true | Enables shortcut menu. | Oculus UI docs | High | | com.oculus.systemux | +| shutdown\_after\_inactivity | Boolean | false | true / false | true | Powers off after set inactivity. | Android power docs | High | | system | +| shutdown\_timeout\_minutes | Integer | 0 | 0–60 | 10 | Minutes before auto-shutdown. | Android power docs | Medium | | system | +| simple\_setup\_enabled | Boolean | true | true / false | true | Enables simplified device setup. | Android setup docs | High | | system | +| single\_app\_kiosk\_mode | Boolean | false | true / false | true | Locks headset to one app. | Kiosk mode docs | Medium | | system | +| sleep\_mode\_enabled | Boolean | true | true / false | true | Allows system to enter sleep mode. | Android power docs | High | | system | +| sleep\_timeout\_override | Integer | 0 | 0–600 | 120 | Overrides default sleep timeout. | Android power docs | Medium | | system | +| smart\_guardian\_adjustment | Boolean | false | true / false | true | Adjusts guardian boundaries automatically. | Oculus guardian docs | Medium | | com.oculus.guardian | +| social\_notifications | Boolean | true | true / false | false | Shows social notifications in VR. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| social\_platform\_link | Boolean | true | true / false | false | Links VR account to social networks. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| social\_presence\_broadcast | Boolean | true | true / false | false | Broadcasts current VR activity publicly. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| spatial\_audio\_enabled | Boolean | true | true / false | true | Enables spatial audio in VR. | Audio docs | High | | system | +| spatial\_anchor\_sharing | Boolean | false | true / false | true | Allows sharing spatial anchors with others. | Oculus AR docs | Medium | | com.oculus.spatialanchors | +| spatial\_memory\_enabled | Boolean | true | true / false | true | Stores spatial maps of environment. | Oculus AR docs | Medium | | com.oculus.spatialanchors | +| spatial\_passthrough\_blending | Boolean | false | true / false | true | Allows blending virtual objects into passthrough. | Oculus passthrough docs | Medium | 🧪 | com.oculus.guardian | +| spatial\_tracking\_enabled | Boolean | true | true / false | true | Enables headset spatial tracking. | Oculus tracking docs | High | | system | +| spatial\_tracking\_floor | Boolean | true | true / false | true | Uses floor reference for tracking. | Oculus guardian docs | High | | com.oculus.guardian | +| spatial\_tracking\_roomscale | Boolean | true | true / false | true | Enables room-scale VR tracking. | Oculus guardian docs | High | | com.oculus.guardian | +| spatial\_tracking\_seated | Boolean | false | true / false | true | Enables seated-only tracking mode. | Oculus guardian docs | High | | com.oculus.guardian | +| spatial\_tracking\_standing | Boolean | false | true / false | true | Enables standing-only tracking mode. | Oculus guardian docs | High | | com.oculus.guardian | +| spatial\_tracking\_with\_guardian | Boolean | true | true / false | true | Requires guardian for tracking. | Oculus guardian docs | Medium | | com.oculus.guardian | +| speech\_recognition\_enabled | Boolean | true | true / false | false | Enables microphone listening for commands. | Privacy docs | High | 📉 | com.oculus.voiceassistant | +| speech\_to\_text\_enabled | Boolean | true | true / false | false | Converts speech to text in VR. | Privacy docs | High | 📉 | com.oculus.voiceassistant | +| speed\_test\_enabled | Boolean | true | true / false | true | Enables internet speed test in VR. | Oculus network docs | Medium | | com.oculus.settings | +| ssao\_enabled | Boolean | true | true / false | true | Enables ambient occlusion in rendering. | Graphics docs | Medium | 🧪 | system | +| standalone\_mode | Boolean | true | true / false | true | Runs headset without PC connection. | Oculus device docs | High | | system | +| start\_in\_passthrough | Boolean | false | true / false | true | Boots directly into passthrough mode. | Oculus guardian docs | Medium | | com.oculus.guardian | +| startup\_animation\_enabled | Boolean | true | true / false | false | Plays animation when booting VR. | Privacy docs | Low | 📉 | system | +| startup\_sound\_enabled | Boolean | true | true / false | false | Plays sound when booting VR. | Privacy docs | Low | 📉 | system | +| startup\_tutorial\_enabled | Boolean | true | true / false | false | Shows tutorial at first boot. | Privacy docs | Low | 📉 | com.oculus.systemux | +| status\_bar\_enabled | Boolean | true | true / false | true | Displays VR status bar. | Oculus UI docs | High | | com.oculus.systemux | +| stereo\_audio\_enabled | Boolean | true | true / false | true | Enables stereo sound in VR. | Audio docs | High | | system | +| stereo\_video\_enabled | Boolean | true | true / false | true | Enables stereoscopic video playback. | Video docs | Medium | | com.oculus.video | +| stop\_tracking\_when\_idle | Boolean | false | true / false | true | Disables tracking when idle to save power. | Power docs | Medium | | system | +| store\_auto\_update\_apps | Boolean | true | true / false | false | Automatically updates VR apps. | Privacy docs | High | 📉 | com.oculus.store | +| store\_cache\_size\_limit\_mb | Integer | 500 | 100–5000 | 1000 | Maximum store cache size. | Oculus store docs | Medium | | com.oculus.store | +| store\_content\_recommendations | Boolean | true | true / false | false | Shows personalized store recommendations. | Privacy docs | High | 📉 | com.oculus.store | +| store\_download\_over\_cellular | Boolean | false | true / false | true | Allows downloads on mobile networks. | Oculus store docs | Medium | | com.oculus.store | +| store\_instant\_launch\_enabled | Boolean | true | true / false | true | Launches apps before full download. | Oculus store docs | Medium | | com.oculus.store | +| store\_notify\_on\_sale | Boolean | true | true / false | true | Notifies when wishlist item is on sale. | Oculus store docs | High | | com.oculus.store | +| store\_refund\_request\_enabled | Boolean | true | true / false | true | Allows requesting refunds via store. | Oculus store docs | High | | com.oculus.store | +| store\_show\_top\_charts | Boolean | true | true / false | true | Displays top-selling VR apps. | Oculus store docs | High | | com.oculus.store | +| store\_use\_fast\_download | Boolean | true | true / false | true | Uses accelerated servers for downloads. | Oculus store docs | Medium | | com.oculus.store | +| streaming\_bitrate\_limit | Integer | 15000 | 5000–50000 | 20000 | Sets VR streaming bitrate limit. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_buffer\_size\_mb | Integer | 50 | 10–200 | 100 | VR streaming buffer size. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_connection\_type | String | USB | USB / Wi-Fi | USB | Sets streaming connection type. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_debug\_logs | Boolean | false | true / false | false | Enables VR streaming debug logs. | Privacy docs | Low | 📉 | com.oculus.link | +| streaming\_dynamic\_bitrate | Boolean | true | true / false | true | Adjusts bitrate based on connection quality. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_foveated\_rendering | Boolean | true | true / false | true | Enables foveated rendering for streaming. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_latency\_mode | String | normal | low / normal / ultra-low | low | Sets VR streaming latency preference. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_quality\_mode | String | balanced | performance / balanced / quality | quality | Chooses VR streaming quality profile. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_refresh\_rate | Integer | 72 | 60 / 72 / 90 / 120 | 90 | Streaming refresh rate override. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_resolution | String | 1.0x | 0.7x / 1.0x / 1.2x | 1.2x | Resolution scale for streaming. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_reprojection | Boolean | true | true / false | true | Smooths VR frames during streaming. | Oculus link docs | Medium | | com.oculus.link | +| streaming\_usb\_priority | Boolean | true | true / false | true | Gives VR streaming priority over USB data. | Oculus link docs | Medium | | com.oculus.link | +| strict\_network\_security | Boolean | true | true / false | true | Enforces TLS and secure sockets. | Security docs | High | 🔒 | system | +| strong\_password\_required | Boolean | true | true / false | true | Enforces strong password policy. | Security docs | High | 🔒 | com.oculus.account | +| subscription\_auto\_renew | Boolean | true | true / false | false | Auto-renews VR subscriptions. | Privacy docs | High | 📉 | com.oculus.store | +| subtitle\_auto\_download | Boolean | true | true / false | false | Auto-downloads subtitles for videos. | Privacy docs | High | 📉 | com.oculus.video | +| subtitles\_enabled | Boolean | false | true / false | true | Shows subtitles in VR video. | Accessibility docs | High | | com.oculus.video | +| suggested\_friends\_enabled | Boolean | true | true / false | false | Shows friend suggestions in VR. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| super\_sampling\_factor | Float | 1.0 | 0.5–2.0 | 1.25 | Improves image quality at performance cost. | Oculus graphics docs | Medium | 🧪 | system | +| suspend\_apps\_when\_idle | Boolean | true | true / false | true | Suspends background apps to save battery. | Android multitask docs | Medium | | system | +| swap\_eyes | Boolean | false | true / false | false | Swaps left/right eye view for debugging. | Dev tools docs | Low | 🧪 | system | +| switch\_to\_passthrough\_on\_guardian\_exit | Boolean | true | true / false | true | Switches to passthrough when leaving guardian. | Oculus guardian docs | Medium | | com.oculus.guardian | +| sync\_app\_data\_cloud | Boolean | true | true / false | false | Syncs VR app data with cloud. | Privacy docs | High | 📉 | com.oculus.store | +| sync\_contacts | Boolean | true | true / false | false | Syncs contacts from linked accounts. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| sync\_device\_settings | Boolean | true | true / false | false | Syncs headset settings to cloud. | Privacy docs | High | 📉 | system | +| sync\_friends\_list | Boolean | true | true / false | false | Syncs VR friends list to cloud. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| system\_auto\_repair | Boolean | true | true / false | true | Repairs system files automatically. | Android system docs | High | | system | +| system\_backup\_enabled | Boolean | true | true / false | false | Creates cloud backup of system data. | Privacy docs | High | 📉 | system | +| system\_crash\_reports | Boolean | true | true / false | false | Sends crash reports automatically. | Privacy docs | High | 📉 | system | +| system\_dark\_mode | Boolean | false | true / false | true | Enables dark mode system-wide. | Android UI docs | High | | system | +| system\_debug\_logs | Boolean | false | true / false | false | Collects detailed debug logs. | Privacy docs | High | 📉 | system | +| system\_gesture\_navigation | Boolean | true | true / false | true | Enables gesture navigation in VR menus. | Oculus UI docs | Medium | | com.oculus.systemux | +| system\_locale | String | en\_US | Any locale code | en\_GB | Sets system language and region. | Android locale docs | High | | system | +| system\_log\_upload | Boolean | true | true / false | false | Uploads system logs automatically. | Privacy docs | High | 📉 | system | +| system\_maintenance\_mode | Boolean | false | true / false | false | Puts system into maintenance state. | Android system docs | Medium | | system | +| system\_performance\_mode | String | balanced | low / balanced / high | high | Sets system performance profile. | Android power docs | Medium | | system | +| system\_reboot\_on\_update | Boolean | true | true / false | true | Reboots after applying update. | Android update docs | High | | system | +| system\_report\_generation | Boolean | true | true / false | false | Generates periodic system reports. | Privacy docs | High | 📉 | system | +| system\_screenshot\_quality | String | high | low / medium / high | high | Sets quality for screenshots. | Oculus capture docs | Medium | | com.oculus.captureservice | +| system\_sound\_effects | Boolean | true | true / false | false | Plays UI sound effects. | Privacy docs | Low | 📉 | system | +| system\_storage\_alerts | Boolean | true | true / false | true | Alerts when storage is low. | Android storage docs | High | | system | +| system\_update\_channel | String | stable | stable / beta / dev | beta | Chooses update release channel. | Android update docs | Medium | 🧪 | system | +| system\_update\_notifications | Boolean | true | true / false | true | Shows update notifications. | Android update docs | High | | system | +| system\_wide\_search\_enabled | Boolean | true | true / false | false | Enables global search in VR. | Privacy docs | High | 📉 | com.oculus.search | +| tactile\_feedback\_enabled | Boolean | true | true / false | true | Enables controller haptics. | Oculus hardware docs | High | | system | +| tactile\_feedback\_intensity | String | medium | low / medium / high | high | Sets strength of haptics. | Oculus hardware docs | Medium | | system | +| telemetry\_collection\_enabled | Boolean | true | true / false | false | Collects system usage telemetry. | Privacy docs | High | 📉 | system | +| text\_size\_preference | String | medium | small / medium / large | large | Sets default VR text size. | Accessibility docs | High | | system | +| thermal\_alerts\_enabled | Boolean | true | true / false | true | Warns user about high device temp. | Hardware docs | High | | system | +| thermal\_throttling\_enabled | Boolean | true | true / false | true | Reduces performance to avoid overheating. | Hardware docs | High | | system | +| third\_party\_app\_installs | Boolean | true | true / false | false | Allows sideloading non-store apps. | Privacy docs | High | 📉 | system | +| third\_party\_tracking\_allowed | Boolean | true | true / false | false | Allows third-party analytics/tracking. | Privacy docs | High | 📉 | system | +| time\_format\_24h | Boolean | false | true / false | true | Uses 24-hour time format. | Android system docs | High | | system | +| timezone\_auto\_detect | Boolean | true | true / false | false | Detects timezone automatically. | Privacy docs | High | 📉 | system | +| timezone\_manual | String | UTC | Any timezone ID | UTC+1 | Sets timezone manually. | Android system docs | High | | system | +| toast\_notifications\_enabled | Boolean | true | true / false | false | Enables popup toasts in VR. | Privacy docs | High | 📉 | system | +| toggle\_guardian\_on\_passthrough | Boolean | false | true / false | true | Enables guardian automatically in passthrough. | Oculus guardian docs | Medium | | com.oculus.guardian | +| toggle\_mic\_mute | Boolean | false | true / false | true | Shortcut for muting microphone. | Oculus voice docs | Medium | | com.oculus.voiceassistant | +| touch\_controller\_calibration | Boolean | true | true / false | true | Calibrates controller sensors. | Oculus hardware docs | High | | system | +| touch\_controller\_deadzone | Float | 0.1 | 0.0–0.5 | 0.15 | Deadzone setting for sticks. | Oculus controller docs | Medium | | system | +| touch\_controller\_haptics | Boolean | true | true / false | true | Enables vibration feedback. | Oculus controller docs | High | | system | +| touch\_controller\_left\_handed | Boolean | false | true / false | false | Flips controls for left-hand mode. | Accessibility docs | Medium | | system | +| touch\_controller\_mapping | String | default | default / custom | custom | Custom button mapping profile. | Oculus controller docs | Medium | | system | +| touch\_controller\_pairing | Boolean | true | true / false | true | Allows pairing new controllers. | Oculus controller docs | High | | system | +| touch\_controller\_sensitivity | Float | 1.0 | 0.5–2.0 | 1.2 | Adjusts input sensitivity. | Oculus controller docs | Medium | | system | +| trackpad\_gesture\_enabled | Boolean | true | true / false | false | Enables trackpad gestures. | Privacy docs | High | 📉 | system | +| tracking\_boundary\_color | String | blue | Any RGB name or hex | green | Guardian boundary color. | Oculus guardian docs | Low | 🧪 | com.oculus.guardian | +| tracking\_boundary\_opacity | Float | 0.5 | 0.1–1.0 | 0.8 | Guardian boundary opacity. | Oculus guardian docs | Medium | | com.oculus.guardian | +| tracking\_boundary\_style | String | solid | solid / dashed | dashed | Guardian visual style. | Oculus guardian docs | Low | 🧪 | com.oculus.guardian | +| tracking\_calibration\_mode | String | auto | auto / manual | manual | Chooses tracking calibration method. | Oculus tracking docs | Medium | | com.oculus.guardian | +| tracking\_debug\_mode | Boolean | false | true / false | false | Enables tracking diagnostics. | Privacy docs | Low | 📉 | com.oculus.guardian | +| tracking\_firmware\_auto\_update | Boolean | true | true / false | true | Updates tracking sensor firmware. | Oculus tracking docs | High | | com.oculus.guardian | +| tracking\_frequency | String | auto | 50Hz / 60Hz / auto | 60Hz | Sets tracking frequency to match region. | Oculus tracking docs | Medium | | com.oculus.guardian | +| tracking\_guardian\_mode | String | standard | standard / experimental | experimental | Enables beta guardian tracking mode. | Oculus guardian docs | Low | 🧪 | com.oculus.guardian | +| tracking\_log\_collection | Boolean | true | true / false | false | Collects tracking logs. | Privacy docs | High | 📉 | com.oculus.guardian | +| tracking\_prediction | Boolean | true | true / false | true | Predicts object positions to reduce latency. | Oculus tracking docs | Medium | | com.oculus.guardian | +| tracking\_recenter\_hotkey | Boolean | true | true / false | true | Enables hotkey to recenter view. | Oculus guardian docs | High | | com.oculus.guardian | +| tracking\_sensitivity | Float | 1.0 | 0.5–2.0 | 1.1 | Adjusts tracking responsiveness. | Oculus tracking docs | Medium | | com.oculus.guardian | +| tracking\_system\_reset | Boolean | false | true / false | false | Resets entire tracking configuration. | Oculus tracking docs | High | | com.oculus.guardian | +| traffic\_shaping\_enabled | Boolean | true | true / false | true | Prioritizes VR network traffic. | Networking docs | Medium | | system | +| transparent\_background\_mode | Boolean | false | true / false | true | Allows transparency in VR overlays. | Oculus dev docs | Low | 🧪 | system | +| troubleshooting\_wizard\_enabled | Boolean | true | true / false | true | Enables troubleshooting assistant. | Oculus help docs | High | | com.oculus.support | +| trusted\_device\_list | String | empty | CSV of device IDs | none | List of trusted paired devices. | Security docs | High | 🔒 | system | +| turn\_off\_display\_when\_idle | Boolean | true | true / false | true | Saves power by turning off display when idle. | Power management docs | High | | system | +| two\_factor\_auth\_enabled | Boolean | true | true / false | true | Enables 2FA for Oculus account. | Security docs | High | 🔒 | com.oculus.account | +| ui\_animations\_enabled | Boolean | true | true / false | true | Enables animations in VR menus. | Oculus UI docs | Medium | | com.oculus.systemux | +| ui\_auto\_hide\_delay | Integer | 5 | 0–60 | 3 | Seconds before hiding UI automatically. | Oculus UI docs | Medium | | com.oculus.systemux | +| ui\_font\_scaling | Float | 1.0 | 0.5–2.0 | 1.2 | Scales VR interface text. | Accessibility docs | Medium | | com.oculus.systemux | +| ui\_high\_contrast\_mode | Boolean | false | true / false | true | Improves text contrast for readability. | Accessibility docs | High | | com.oculus.systemux | +| ui\_layout\_style | String | default | default / compact / expanded | compact | Changes layout of VR menus. | Oculus UI docs | Medium | | com.oculus.systemux | +| ui\_pointer\_enabled | Boolean | true | true / false | true | Enables VR pointer for selection. | Oculus UI docs | High | | com.oculus.systemux | +| ui\_scale\_factor | Float | 1.0 | 0.5–2.0 | 1.1 | Scales all UI elements. | Accessibility docs | Medium | | com.oculus.systemux | +| ui\_theme | String | light | light / dark | dark | Sets UI theme. | Oculus UI docs | High | | com.oculus.systemux | +| unlock\_developer\_mode | Boolean | false | true / false | true | Enables developer mode for sideloading. | Oculus dev docs | Medium | 🧪 | com.oculus.developer | +| unlock\_third\_party\_stores | Boolean | false | true / false | false | Allows access to non-Oculus stores. | Privacy docs | High | 📉 | com.oculus.store | +| update\_auto\_download | Boolean | true | true / false | true | Automatically downloads updates. | Android update docs | High | | system | +| update\_check\_interval\_hours | Integer | 24 | 1–168 | 12 | How often to check for updates. | Android update docs | Medium | | system | +| update\_install\_silently | Boolean | false | true / false | false | Installs updates without prompt. | Privacy docs | High | 📉 | system | +| update\_notify\_before\_install | Boolean | true | true / false | true | Notifies user before update installs. | Android update docs | High | | system | +| upload\_diagnostics | Boolean | true | true / false | false | Sends diagnostic info to Oculus. | Privacy docs | High | 📉 | system | +| usb\_audio\_enabled | Boolean | true | true / false | true | Enables USB audio devices. | Hardware docs | Medium | | system | +| usb\_debugging\_enabled | Boolean | false | true / false | false | Allows adb debugging over USB. | Security docs | High | 🔒 | system | +| usb\_file\_transfer | Boolean | true | true / false | true | Allows file transfers over USB. | Android storage docs | High | | system | +| usb\_power\_saving | Boolean | true | true / false | true | Reduces USB power draw when idle. | Power docs | Medium | | system | +| usb\_restrict\_data | Boolean | false | true / false | true | Disables USB data except charging. | Security docs | High | 🔒 | system | +| usb\_streaming\_enabled | Boolean | true | true / false | true | Allows VR streaming via USB. | Oculus link docs | Medium | | com.oculus.link | +| use\_adaptive\_audio | Boolean | true | true / false | true | Adjusts audio to environment. | Audio docs | Medium | | system | +| use\_adaptive\_brightness | Boolean | true | true / false | true | Adjusts screen brightness automatically. | Display docs | High | | system | +| use\_adaptive\_refresh\_rate | Boolean | true | true / false | true | Adjusts refresh rate for performance. | Display docs | Medium | | system | +| use\_auto\_ip\_assignment | Boolean | true | true / false | true | Uses DHCP for IP address. | Networking docs | High | | system | +| use\_custom\_dns | Boolean | false | true / false | true | Allows setting custom DNS servers. | Networking docs | Medium | | system | +| use\_developer\_logging | Boolean | false | true / false | false | Enables detailed developer logs. | Privacy docs | Low | 📉 | com.oculus.developer | +| use\_fixed\_foveated\_rendering | Boolean | true | true / false | true | Always uses fixed foveated rendering. | Oculus graphics docs | Medium | | system | +| use\_hardware\_decoding | Boolean | true | true / false | true | Uses GPU for video decode. | Video docs | High | | system | +| use\_low\_latency\_mode | Boolean | true | true / false | true | Minimizes VR latency. | Oculus link docs | Medium | | com.oculus.link | +| use\_manual\_ip\_assignment | Boolean | false | true / false | false | Sets IP manually. | Networking docs | High | | system | +| use\_motion\_reprojection | Boolean | true | true / false | true | Reprojects motion to smooth frames. | Oculus graphics docs | Medium | | system | +| use\_network\_time | Boolean | true | true / false | true | Syncs clock with internet time. | Android system docs | High | | system | +| use\_occlusion\_culling | Boolean | true | true / false | true | Renders only visible objects. | Graphics docs | Medium | | system | +| use\_passthrough\_camera | Boolean | true | true / false | true | Enables passthrough video feed. | Oculus guardian docs | High | | com.oculus.guardian | +| use\_secure\_startup | Boolean | true | true / false | true | Requires authentication on boot. | Security docs | High | 🔒 | system | +| use\_sensor\_fusion | Boolean | true | true / false | true | Combines multiple sensors for tracking. | Oculus tracking docs | High | | system | +| use\_server\_side\_auth | Boolean | true | true / false | true | Verifies login with Oculus servers. | Security docs | High | 🔒 | com.oculus.account | +| use\_system\_fonts | Boolean | true | true / false | true | Uses default Android fonts. | Android UI docs | High | | system | +| user\_activity\_monitoring | Boolean | true | true / false | false | Tracks user activity patterns. | Privacy docs | High | 📉 | system | +| user\_avatar\_enabled | Boolean | true | true / false | true | Shows avatar in VR apps. | Oculus social docs | High | | com.oculus.socialplatform | +| user\_block\_list | String | empty | CSV of user IDs | none | List of blocked users. | Oculus social docs | High | | com.oculus.socialplatform | +| user\_data\_download | Boolean | true | true / false | false | Allows export of user data. | Privacy docs | High | 📉 | com.oculus.account | +| user\_presence\_status | Boolean | true | true / false | false | Shows online status to friends. | Privacy docs | High | 📉 | com.oculus.socialplatform | +| user\_profile\_visibility | String | public | public / friends / private | private | Controls who can see your profile. | Privacy docs | High | 📉 | com.oculus.account | +| user\_search\_visibility | Boolean | true | true / false | false | Allows others to find you in search. | Privacy docs | High | 📉 | com.oculus.account | +| user\_statistics\_collection | Boolean | true | true / false | false | Collects user statistics for analytics. | Privacy docs | High | 📉 | system | +| user\_telemetry\_enabled | Boolean | true | true / false | false | Sends device telemetry to Oculus servers. | Privacy docs | High | 📉 | system | +| user\_terms\_acceptance | Boolean | true | true / false | true | Confirms acceptance of terms of service. | Legal docs | High | | system | +| user\_voice\_activity\_detection | Boolean | true | true / false | true | Enables automatic mic activation on speech. | Audio docs | Medium | | com.oculus.voiceassistant | +| v2\_guardian\_boundaries | Boolean | true | true / false | true | Uses updated Guardian boundary algorithm. | Oculus guardian docs | Medium | | com.oculus.guardian | +| v2\_passthrough\_features | Boolean | true | true / false | true | Unlocks advanced passthrough capabilities. | Oculus dev docs | Medium | 🧪 | com.oculus.guardian | +| v2\_tracking\_smoothing | Boolean | true | true / false | true | Improves tracking stability with smoothing. | Oculus tracking docs | Medium | | com.oculus.guardian | +| v2\_ui\_rendering\_pipeline | Boolean | true | true / false | true | Uses modern UI rendering engine. | Oculus UI docs | Medium | | com.oculus.systemux | +| v2\_video\_decoder | Boolean | true | true / false | true | Enables newer video decoding backend. | Oculus video docs | Medium | | system | +| v3\_audio\_engine | Boolean | false | true / false | true | Switches to next-gen audio engine. | Audio dev docs | Low | 🧪 | system | +| v3\_passthrough\_color | Boolean | false | true / false | true | Enables color passthrough. | Oculus guardian docs | Medium | 🧪 | com.oculus.guardian | +| v3\_tracking\_pipeline | Boolean | false | true / false | true | Uses experimental tracking system. | Oculus tracking docs | Low | 🧪 | com.oculus.guardian | +| v3\_ui\_framework | Boolean | false | true / false | true | Migrates UI to updated framework. | Oculus UI docs | Low | 🧪 | com.oculus.systemux | +| v3\_video\_rendering | Boolean | false | true / false | true | Enables advanced video rendering path. | Oculus graphics docs | Low | 🧪 | system | +| vrr\_mode\_enabled | Boolean | true | true / false | true | Enables variable refresh rate. | Display docs | High | | system | +| wallpaper\_panorama\_enabled | Boolean | true | true / false | false | Allows panoramic VR wallpapers. | Privacy docs | Medium | 📉 | com.oculus.horizon | +| warp\_frame\_debug | Boolean | false | true / false | false | Logs detailed warp frame rendering info. | Oculus dev docs | Low | 🧪 | system | +| warp\_frame\_smoothing | Boolean | true | true / false | true | Smooths warped frames for motion clarity. | Oculus graphics docs | Medium | | system | +| warp\_frame\_timeout\_ms | Integer | 50 | 10–200 | 40 | Timeout for warp frame rendering. | Oculus graphics docs | Medium | | system | +| warp\_reprojection\_enabled | Boolean | true | true / false | true | Reprojects warped frames for stability. | Oculus graphics docs | Medium | | system | +| warp\_scheduling\_mode | String | normal | normal / aggressive | aggressive | Adjusts warp scheduling priority. | Oculus graphics docs | Low | 🧪 | system | +| web\_ar\_support | Boolean | true | true / false | true | Enables WebAR features. | WebXR docs | Medium | | com.android.webview | +| web\_vr\_support | Boolean | true | true / false | true | Enables WebVR support in browser. | WebXR docs | Medium | | com.android.webview | +| wifi\_5ghz\_preferred | Boolean | true | true / false | true | Prefers 5GHz Wi-Fi networks. | Networking docs | High | | system | +| wifi\_6e\_enabled | Boolean | false | true / false | true | Enables Wi-Fi 6E support. | Networking docs | Medium | 🧪 | system | +| wifi\_auto\_connect | Boolean | true | true / false | true | Automatically connects to known networks. | Networking docs | High | | system | +| wifi\_auto\_disconnect\_idle | Boolean | true | true / false | true | Disconnects Wi-Fi when idle to save power. | Networking docs | Medium | | system | +| wifi\_connection\_priority | String | signal | signal / speed / custom | speed | Chooses Wi-Fi network based on speed. | Networking docs | Medium | | system | +| wifi\_direct\_enabled | Boolean | true | true / false | true | Enables Wi-Fi Direct peer connections. | Networking docs | Medium | | system | +| wifi\_hotspot\_enabled | Boolean | false | true / false | false | Allows device to be used as hotspot. | Privacy docs | High | 📉 | system | +| wifi\_ip\_address | String | dynamic | dynamic / static | static | Sets static IP for Wi-Fi. | Networking docs | High | | system | +| wifi\_keep\_alive | Boolean | true | true / false | true | Keeps Wi-Fi active during standby. | Networking docs | Medium | | system | +| wifi\_mac\_randomization | Boolean | true | true / false | true | Randomizes MAC address for privacy. | Privacy docs | High | | system | +| wifi\_network\_metered | Boolean | false | true / false | false | Marks Wi-Fi as metered. | Android network docs | Medium | | system | +| wifi\_passpoint\_enabled | Boolean | true | true / false | true | Enables Passpoint auto-connect. | Networking docs | Medium | | system | +| wifi\_qos\_priority | String | default | default / high | high | Sets QoS priority for VR traffic. | Networking docs | Medium | | system | +| wifi\_roaming\_enabled | Boolean | true | true / false | true | Allows roaming between access points. | Networking docs | High | | system | +| wifi\_security\_mode | String | WPA2 | WPA2 / WPA3 | WPA3 | Chooses Wi-Fi security protocol. | Security docs | High | 🔒 | system | +| wifi\_signal\_threshold | Integer | -70 | -90 – -30 | -65 | Minimum signal strength to connect. | Networking docs | Medium | | system | +| wifi\_ssid\_hidden | Boolean | false | true / false | false | Hides SSID from broadcasting. | Privacy docs | High | 📉 | system | +| wifi\_timeout\_minutes | Integer | 30 | 0–180 | 15 | Minutes before auto-disconnect. | Networking docs | Medium | | system | +| windowed\_mode\_enabled | Boolean | true | true / false | true | Allows VR apps to run in a window. | Oculus dev docs | Medium | | com.oculus.systemux | +| workspace\_mode | String | default | default / productivity | productivity | Optimizes VR for workspaces. | Oculus dev docs | Medium | | com.oculus.horizon | +| xr2\_cpu\_boost | Boolean | true | true / false | true | Boosts CPU for XR2 chipset performance. | Hardware docs | Medium | | system | +| xr2\_gpu\_boost | Boolean | true | true / false | true | Boosts GPU for XR2 chipset performance. | Hardware docs | Medium | | system | +| xr2\_power\_saving | Boolean | true | true / false | false | Reduces XR2 performance for power saving. | Hardware docs | Medium | | system | +| xr2\_thermal\_throttling | Boolean | true | true / false | true | Reduces XR2 performance to avoid overheating. | Hardware docs | High | | system | +| xr\_controller\_tracking\_mode | String | optical | optical / magnetic | optical | Chooses controller tracking tech. | Oculus hardware docs | Medium | | system | +| xr\_display\_mode | String | vr | vr / ar | vr | Chooses between VR and AR mode. | Oculus system docs | High | | system | +| xr\_display\_refresh | Integer | 72 | 60 / 72 / 90 / 120 | 90 | VR display refresh rate. | Display docs | High | | system | +| xr\_foveated\_rendering | Boolean | true | true / false | true | Enables foveated rendering for performance. | Oculus graphics docs | High | | system | +| xr\_hand\_tracking\_mode | String | v1 | v1 / v2 | v2 | Chooses hand tracking algorithm version. | Oculus hand tracking docs | Medium | 🧪 | com.oculus.handtracking | +| xr\_passthrough\_mode | String | mono | mono / stereo | stereo | Chooses passthrough camera mode. | Oculus guardian docs | Medium | | com.oculus.guardian | +| xr\_reprojection\_mode | String | async | async / synchronous | async | Adjusts frame reprojection method. | Oculus graphics docs | Medium | | system | +| xr\_render\_resolution\_scale | Float | 1.0 | 0.5–2.0 | 1.2 | Adjusts render resolution scale. | Oculus graphics docs | High | | system | +| xr\_sensor\_calibration | Boolean | true | true / false | true | Calibrates XR sensors. | Oculus tracking docs | High | | system | +| xr\_system\_runtime | String | default | default / custom | default | Chooses XR runtime environment. | Oculus dev docs | Medium | | system | +| xr\_tracking\_update\_rate | Integer | 60 | 30 / 60 / 90 / 120 | 90 | Updates per second for tracking data. | Oculus tracking docs | High | | system | +| xr\_usp\_feature\_flag | Boolean | false | true / false | false | Unknown system parameter (USP). | Reverse-engineering notes | Low | 🧪 | system | +| yuv\_color\_range | String | limited | limited / full | full | Adjusts YUV video color range. | Video docs | Medium | | system | +| zlib\_compression\_enabled | Boolean | true | true / false | true | Compresses assets using zlib. | System docs | High | | system | +| zoom\_feature\_enabled | Boolean | true | true / false | true | Enables zoom in VR display. | Accessibility docs | High | | system | +| zoom\_max\_factor | Float | 2.0 | 1.0–5.0 | 3.0 | Maximum zoom magnification. | Accessibility docs | Medium | | system | +| zoom\_min\_factor | Float | 1.0 | 0.5–1.0 | 1.0 | Minimum zoom magnification. | Accessibility docs | Medium | | system | +| zoom\_step\_increment | Float | 0.1 | 0.05–0.5 | 0.1 | Step size for zoom adjustments. | Accessibility docs | Medium | | system | +| zram\_enabled | Boolean | true | true / false | true | Uses zRAM for compressed memory swap. | Linux kernel docs | High | | system | +| zram\_size\_mb | Integer | 512 | 128–4096 | 1024 | zRAM disk size in MB. | Linux kernel docs | High | | system | +| zram\_swap\_priority | Integer | 5 | 0–10 | 5 | Priority level for zRAM swap usage. | Linux kernel docs | Medium | | system | +| adb\_over\_wifi | Boolean | false | true / false | false | Enables ADB connections over Wi-Fi. | Android dev docs | High | 📉 | system | +| adb\_root\_access | Boolean | false | true / false | false | Allows root ADB access. | Android dev docs | High | 📉 | system | +| adb\_tcp\_port | Integer | 5555 | 1024–65535 | 5555 | TCP port used for ADB over Wi-Fi. | Android dev docs | High | | system | +| allow\_background\_location | Boolean | true | true / false | false | Lets apps access location in background. | Privacy docs | High | 📉 | system | +| allow\_bluetooth\_debug | Boolean | false | true / false | false | Enables Bluetooth HCI snoop logging. | Android dev docs | High | 📉 | system | +| allow\_developer\_overlays | Boolean | false | true / false | true | Allows dev overlay rendering on top of apps. | Android dev docs | Medium | | system | +| allow\_install\_unknown\_sources | Boolean | false | true / false | true | Allows APK installs from non-store sources. | Android dev docs | High | | system | +| allow\_microphone\_background | Boolean | true | true / false | false | Allows apps to record audio in background. | Privacy docs | High | 📉 | system | +| allow\_screen\_recording | Boolean | true | true / false | true | Enables screen recording features. | Android dev docs | High | | system | +| allow\_usb\_debugging | Boolean | false | true / false | false | Enables USB debugging mode. | Android dev docs | High | 📉 | system | +| analytics\_crash\_reporting | Boolean | true | true / false | false | Sends crash reports to vendor. | Privacy docs | High | 📉 | system | +| analytics\_event\_logging | Boolean | true | true / false | false | Sends usage event logs to vendor. | Privacy docs | High | 📉 | system | +| analytics\_session\_tracking | Boolean | true | true / false | false | Tracks VR session metrics. | Privacy docs | High | 📉 | system | +| animation\_duration\_scale | Float | 1.0 | 0.0–10.0 | 0.5 | Adjusts system animation speed. | Android dev docs | High | | system | +| app\_auto\_update | Boolean | true | true / false | false | Automatically updates apps via store. | Privacy docs | High | 📉 | com.oculus.store | +| app\_background\_refresh | Boolean | true | true / false | false | Allows apps to refresh in background. | Privacy docs | High | 📉 | system | +| app\_crash\_dialog\_enabled | Boolean | true | true / false | true | Shows app crash pop-up dialogs. | Android docs | Medium | | system | +| app\_permission\_auto\_grant | Boolean | false | true / false | false | Automatically grants app permissions. | Android docs | High | | system | +| app\_permission\_logging | Boolean | true | true / false | false | Logs when apps request permissions. | Privacy docs | Medium | 📉 | system | +| auto\_brightness\_enabled | Boolean | true | true / false | false | Adjusts brightness automatically. | Display docs | High | | system | +| auto\_night\_mode | Boolean | true | true / false | true | Switches display to night mode automatically. | Display docs | High | | system | +| auto\_rotate\_display | Boolean | true | true / false | false | Rotates UI with device orientation. | Android docs | Medium | | system | +| battery\_charging\_limit | Integer | 100 | 50–100 | 85 | Caps charge level to prolong battery health. | Hardware docs | Medium | | system | +| battery\_saver\_mode | Boolean | false | true / false | false | Limits background activity to save battery. | Android docs | Medium | | system | +| biometric\_auth\_enabled | Boolean | true | true / false | true | Enables fingerprint/face authentication. | Android docs | High | 🔒 | system | +| bluetooth\_auto\_connect | Boolean | true | true / false | true | Automatically connects to paired devices. | Bluetooth docs | High | | system | +| bluetooth\_discoverable | Boolean | false | true / false | false | Makes device discoverable over Bluetooth. | Privacy docs | High | 📉 | system | +| bluetooth\_enabled | Boolean | true | true / false | false | Enables Bluetooth hardware. | Privacy docs | High | 📉 | system | +| bluetooth\_logging\_enabled | Boolean | false | true / false | false | Logs Bluetooth packet data. | Android dev docs | Medium | 📉 | system | +| camera\_access\_allowed | Boolean | true | true / false | false | Allows apps to use camera. | Privacy docs | High | 📉 | system | +| camera\_indicator\_enabled | Boolean | true | true / false | true | Shows indicator when camera is in use. | Privacy docs | High | | system | +| captive\_portal\_detection | Boolean | true | true / false | true | Detects captive portals on Wi-Fi. | Networking docs | High | | system | +| captive\_portal\_url | String | [http://connectivitycheck.gstatic.com](http://connectivitycheck.gstatic.com) | Any URL | [http://connectivitycheck.gstatic.com](http://connectivitycheck.gstatic.com) | URL used for captive portal check. | Android docs | High | | system | +| cell\_data\_enabled | Boolean | true | true / false | false | Enables mobile data usage. | Privacy docs | High | 📉 | system | +| clipboard\_access\_allowed | Boolean | true | true / false | false | Allows apps to read clipboard. | Privacy docs | High | 📉 | system | +| clipboard\_history\_enabled | Boolean | true | true / false | false | Saves clipboard history. | Privacy docs | Medium | 📉 | system | +| cpu\_governor | String | schedutil | schedutil / performance / powersave | performance | CPU frequency scaling policy. | Linux kernel docs | High | | system | +| crash\_log\_upload\_enabled | Boolean | true | true / false | false | Uploads crash logs to vendor. | Privacy docs | High | 📉 | system | +| dark\_mode\_enabled | Boolean | true | true / false | true | Enables system dark mode. | Android docs | High | | system | +| data\_saver\_enabled | Boolean | false | true / false | false | Restricts background data. | Android docs | Medium | | system | +| debugging\_overlay\_enabled | Boolean | false | true / false | false | Shows debug overlays in apps. | Android dev docs | Medium | | system | +| developer\_menu\_enabled | Boolean | false | true / false | true | Enables developer menu in settings. | Android dev docs | High | | system | +| device\_admin\_enabled | Boolean | false | true / false | false | Allows device admin apps. | Android docs | Medium | | system | +| device\_location\_services | Boolean | true | true / false | false | Enables location services. | Privacy docs | High | 📉 | system | +| device\_name | String | Quest | Any text | QuestCustom | Name shown for device on networks. | Android docs | High | | system | +| device\_telemetry\_enabled | Boolean | true | true / false | false | Sends device usage data to vendor. | Privacy docs | High | 📉 | system | +| display\_always\_on | Boolean | false | true / false | false | Keeps display active indefinitely. | Android docs | Medium | | system | +| display\_color\_mode | String | natural | natural / vivid / sRGB | sRGB | Adjusts display color profile. | Display docs | Medium | | system | +| display\_refresh\_rate | Integer | 72 | 60 / 72 / 90 / 120 | 90 | Sets display refresh rate. | Display docs | High | | system | +| doze\_mode\_enabled | Boolean | true | true / false | true | Enables doze battery saving mode. | Android docs | High | | system | +| download\_over\_metered | Boolean | false | true / false | false | Allows large downloads on metered networks. | Android docs | Medium | | system | +| factory\_reset\_protection | Boolean | true | true / false | true | Prevents unauthorized factory reset. | Security docs | High | 🔒 | system | +| file\_sharing\_enabled | Boolean | true | true / false | false | Enables file sharing between apps. | Privacy docs | High | 📉 | system | +| find\_my\_device\_enabled | Boolean | true | true / false | false | Allows device to be located remotely. | Privacy docs | High | 📉 | system | +| firewall\_enabled | Boolean | true | true / false | true | Enables built-in firewall. | Security docs | High | 🔒 | system | +| firmware\_auto\_update | Boolean | true | true / false | false | Updates firmware automatically. | Privacy docs | High | 📉 | system | +| gesture\_navigation\_enabled | Boolean | true | true / false | true | Enables Android gesture navigation. | Android docs | High | | system | +| gpu\_debug\_layers\_enabled | Boolean | false | true / false | false | Enables GPU debug layers. | Android dev docs | Medium | | system | +| graphics\_driver\_version | String | default | default / ANGLE / Vulkan | Vulkan | Chooses graphics driver stack. | Android graphics docs | Medium | | system | +| guest\_mode\_enabled | Boolean | false | true / false | false | Enables guest account mode. | Android docs | Medium | | system | +| gyroscope\_enabled | Boolean | true | true / false | true | Enables gyroscope sensor. | Hardware docs | High | | system | +| hdr\_video\_playback | Boolean | true | true / false | true | Enables HDR video decoding. | Video docs | Medium | | system | +| headset\_tracking\_enabled | Boolean | true | true / false | true | Enables headset position tracking. | Oculus docs | High | | system | +| hibernation\_timeout\_minutes | Integer | 15 | 1–60 | 5 | Time before device enters hibernation. | Android docs | Medium | | system | +| hotspot\_auto\_shutdown | Boolean | true | true / false | true | Turns off hotspot after inactivity. | Networking docs | Medium | | system | +| hotspot\_password | String | 12345678 | Any | StrongPass123! | Password for hotspot access. | Networking docs | High | | system | +| hrtf\_audio\_enabled | Boolean | true | true / false | true | Enables head-related transfer function audio. | Audio docs | Medium | | system | +| https\_only\_mode | Boolean | true | true / false | true | Forces HTTPS connections in browser. | Security docs | High | 🔒 | com.android.webview | +| ime\_auto\_correct | Boolean | true | true / false | false | Enables auto-correction in VR keyboard. | Android docs | Medium | | system | +| ime\_suggestions\_enabled | Boolean | true | true / false | false | Shows word suggestions in VR keyboard. | Android docs | Medium | | system | +| input\_method\_vibration | Boolean | true | true / false | false | Enables haptic feedback on typing. | Android docs | Medium | | system | +| ipv6\_enabled | Boolean | true | true / false | true | Enables IPv6 networking. | Networking docs | High | | system | +| ipv6\_privacy\_extensions | Boolean | true | true / false | true | Uses IPv6 privacy addresses. | Privacy docs | High | | system | +| joystick\_deadzone | Float | 0.15 | 0.0–1.0 | 0.1 | Deadzone threshold for joysticks. | Hardware docs | Medium | | system | +| keep\_screen\_on\_charging | Boolean | true | true / false | true | Keeps screen on while charging. | Android docs | Medium | | system | +| keyguard\_enabled | Boolean | true | true / false | true | Enables lockscreen. | Security docs | High | 🔒 | system | +| location\_accuracy\_mode | String | high | high / balanced / low | balanced | Adjusts location accuracy to save power. | Android docs | Medium | | system | +| location\_mocking\_enabled | Boolean | false | true / false | false | Allows mock location injection. | Android dev docs | High | | system | +| logcat\_buffer\_size\_kb | Integer | 256 | 64–2048 | 512 | Size of system log buffers. | Android dev docs | Medium | | system | + diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..972420f --- /dev/null +++ b/flake.lock @@ -0,0 +1,146 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-root": { + "locked": { + "lastModified": 1723604017, + "narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=", + "owner": "srid", + "repo": "flake-root", + "rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "flake-root", + "type": "github" + } + }, + "mission-control": { + "locked": { + "lastModified": 1733438716, + "narHash": "sha256-1tt43rwHk0N5fwEhbpsHWO4nBVFCQN0w1KM427DNycM=", + "owner": "Platonic-Systems", + "repo": "mission-control", + "rev": "65d04c4ab9db076eff09824d2936a5c215c21f36", + "type": "github" + }, + "original": { + "owner": "Platonic-Systems", + "repo": "mission-control", + "type": "github" + } + }, + "nixlib": { + "locked": { + "lastModified": 1736643958, + "narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixos-flake": { + "locked": { + "lastModified": 1754753812, + "narHash": "sha256-sYZLY+hsaMzz3gsYdwHA7conki3H8zSl43YH2xWnKBc=", + "owner": "srid", + "repo": "nixos-flake", + "rev": "4a5e3c33c6177237a27902d3fa4d845448d48e2b", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "nixos-flake", + "type": "github" + } + }, + "nixos-generators": { + "inputs": { + "nixlib": "nixlib", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1751903740, + "narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=", + "owner": "nix-community", + "repo": "nixos-generators", + "rev": "032decf9db65efed428afd2fa39d80f7089085eb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-generators", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1755922037, + "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "flake-root": "flake-root", + "mission-control": "mission-control", + "nixos-flake": "nixos-flake", + "nixos-generators": "nixos-generators", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..5b14763 --- /dev/null +++ b/flake.nix @@ -0,0 +1,70 @@ +{ + description = "FreeXR Hijack"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + + # Principle inputs + nixos-flake.url = "github:srid/nixos-flake"; + flake-parts.url = "github:hercules-ci/flake-parts"; + mission-control.url = "github:Platonic-Systems/mission-control"; + + flake-root.url = "github:srid/flake-root"; + + nixos-generators = { + url = "github:nix-community/nixos-generators"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = inputs @ { self, ... }: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + ./tasks # Include Tasks + + inputs.flake-root.flakeModule + inputs.mission-control.flakeModule + ]; + + # Set Supported Systems + systems = [ + "x86_64-linux" + "aarch64-linux" + "riscv64-linux" + "armv7l-linux" + ]; + + perSystem = { system, config, inputs', ... }: { + devShells.default = inputs.nixpkgs.legacyPackages.${system}.mkShell { + name = "FreeXR-devshell"; + nativeBuildInputs = [ + # Shell + inputs.nixpkgs.legacyPackages.${system}.ksh # Running scrips + inputs.nixpkgs.legacyPackages.${system}.bashInteractive # For terminal + inputs.nixpkgs.legacyPackages.${system}.shellcheck # Linting of shell files + + # Nix + inputs.nixpkgs.legacyPackages.${system}.nil # Needed for linting + inputs.nixpkgs.legacyPackages.${system}.nixpkgs-fmt # Nixpkgs formatter + + # Utilities + inputs.nixpkgs.legacyPackages.${system}.git # Working with the codebase + inputs.nixpkgs.legacyPackages.${system}.nano # Editor to work with the codebase in cli + inputs.nixpkgs.legacyPackages.${system}.fira-code # For liquratures in code editors + inputs.nixpkgs.legacyPackages.${system}.wget # Downloading + + inputs.nixos-generators.packages.${system}.nixos-generate + + ]; + inputsFrom = [ + config.mission-control.devShell + config.flake-root.devShell + ]; + # Environmental Variables + #VARIABLE = "value"; # Comment + }; + + formatter = inputs.nixpkgs.legacyPackages.${system}.nixpkgs-fmt; + }; + }; +} diff --git a/hosts.deny b/hosts.deny new file mode 100644 index 0000000..444fa77 --- /dev/null +++ b/hosts.deny @@ -0,0 +1,53 @@ +0.0.0.0 graph.oculus.com +0.0.0.0 portal.fb.com +0.0.0.0 gateway.facebook.com +0.0.0.0 graph.facebook.com +0.0.0.0 securecdn.oculus.com +0.0.0.0 edge-mqtt.facebook.com +0.0.0.0 graph.facebook-hardware.com +0.0.0.0 scontent-ams4-1.oculuscdn.com +0.0.0.0 www.facebook.com +0.0.0.0 mqtt-mini.facebook.com +0.0.0.0 meta.graph.meta.com +0.0.0.0 scontent-ams2-1.oculuscdn.com +0.0.0.0 scontent-ams4-1.xx.fbcdn.net +0.0.0.0 scontent-ams2-1.xx.fbcdn.net +0.0.0.0 rupload.facebook.com +0.0.0.0 facebook.com +0.0.0.0 b-www.facebook.com +0.0.0.0 beacons.gcp.gvt2.com +0.0.0.0 www.oculus.com +0.0.0.0 oculus.com +0.0.0.0 static.xx.fbcdn.net +0.0.0.0 beacons.gvt2.com +0.0.0.0 securecdn-ams4-1.oculus.com +0.0.0.0 lookaside.facebook.com +0.0.0.0 scontent.xx.fbcdn.net +0.0.0.0 realitylabs-graph.facebook.com +0.0.0.0 lookaside.fbsbx.com +0.0.0.0 www.msngr.com +0.0.0.0 www.m.me +0.0.0.0 www.messenger.com +0.0.0.0 ugc.oculuscdn.com +0.0.0.0 msngr.com +0.0.0.0 m.me +0.0.0.0 messenger.com +0.0.0.0 familycenter.messenger.com +0.0.0.0 www.meta.com +0.0.0.0 cdn.fbsbx.com +0.0.0.0 beacons5.gvt2.com +0.0.0.0 web.facebook.com +0.0.0.0 scontent-ord5-2.xx.fbcdn.net +0.0.0.0 scontent-ord5-1.xx.fbcdn.net +0.0.0.0 scontent-man2-1.xx.fbcdn.net +0.0.0.0 scontent-lhr6-2.xx.fbcdn.net +0.0.0.0 scontent-lga3-3.xx.fbcdn.net +0.0.0.0 scontent-lax3-1.xx.fbcdn.net +0.0.0.0 scontent.fluk1-1.fna.fbcdn.net +0.0.0.0 scontent.fcps3-1.fna.fbcdn.net +0.0.0.0 scontent.fagc3-2.fna.fbcdn.net +0.0.0.0 scontent.fagc3-1.fna.fbcdn.net +0.0.0.0 scontent-dfw5-3.xx.fbcdn.net +0.0.0.0 scontent-det1-1.xx.fbcdn.net +0.0.0.0 scontent-atl3-1.xx.fbcdn.net +0.0.0.0 horizon.meta.com diff --git a/src/.about b/src/.about new file mode 100644 index 0000000..ee02c76 --- /dev/null +++ b/src/.about @@ -0,0 +1 @@ +The Source Code diff --git a/src/lib/.about b/src/lib/.about new file mode 100644 index 0000000..da6b559 --- /dev/null +++ b/src/lib/.about @@ -0,0 +1 @@ +Shell Libraries used by the program diff --git a/src/lib/common.sh b/src/lib/common.sh new file mode 100644 index 0000000..3c199e2 --- /dev/null +++ b/src/lib/common.sh @@ -0,0 +1,199 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +set -e # Exit on False + +# --- Colors --- +## Reset to normal: \033[0m +NORM="\033[0m" + +# BLACK="\033[0;30m" +# GRAY="\033[1;30m" +RED="\033[0;31m" +# LRED="\033[1;31m" +GREEN="\033[0;32m" +# LGREEN="\033[1;32m" +YELLOW="\033[0;33m" +# LYELLOW="\033[1;33m" +BLUE="\033[0;34m" +# LBLUE="\033[1;34m" +# PURPLE="\033[0;35m" +PINK="\033[1;35m" +CYAN="\033[0;36m" +# LCYAN="\033[1;36m" +# LGRAY="\033[0;37m" +# WHITE="\033[1;37m" + +## Attributes: +# UNDERLINE="\033[4m" +# FIXME(Krey): No idea why is this not working +BOLD="\033[1m" +# INVERT="\033[7m" + +# --- Helpers --- +die() { printf "$BOLD${RED}FATAL: $NORM%s\n" "$2"; exit ;} +warn() { printf "$BOLD${YELLOW}WARN: $NORM%s\n" "$1" ;} +status() { printf "$BOLD${BLUE}STATUS: $NORM%s\n" "$1" ;} +fixme() { printf "$BOLD${PINK}FIXME: $NORM%s\n" "$1"; exit ;} +debug() { [ -z "$DEBUG" ] || printf "$BOLD${CYAN}DEBUG: $NORM%s\n" "$1" ;} +success() { printf "$BOLD${GREEN}OK: $NORM%s\n" "$1"; return 0 ;} + +[ -z "$DEBUG" ] || ( die 1 test ) +[ -z "$DEBUG" ] || ( success test ) +debug test +[ -z "$DEBUG" ] || status test +[ -z "$DEBUG" ] || warn test +[ -z "$DEBUG" ] || ( fixme test ) + +# --- Exports --- +projectName="FreeXR-Hijack" + +# --- Command Check --- +status "Checking for required dependencies" + command -v awk 1>/dev/null && awk --version | head -n1 | awk -v p="$(which awk || true) ::" '{print p, $0}' + command -v git 1>/dev/null && git --version | awk -v p="$(which git || true) ::" '{print p, $0}' + command -v adb 1>/dev/null && adb --version | awk -v p="$(which adb || true) ::" '{print p, $0}' + +# shellcheck disable=SC2034 # Optional Variable +gitRoot="$(git rev-parse --show-toplevel || true)" + +projectCacheDir="$HOME/.cache/$projectName" + +# --- Init --- +[ -d "$HOME" ] || die 1 "Your HOME Directory does not exist, exitting for safety" +[ -d "$HOME/.cache" ] || mkdir "$HOME/.cache" +[ -d "$HOME/.cache/$projectName" ] || mkdir "$HOME/.cache/$projectName" + +# --- Functions --- +isApkNameInstalled() { + [ "$(adb shell pm list packages -a | grep "$apkName" || true)" = "" ] || return 0 + return 1 +} + +# Disable Package +disableApp() { + adb shell pm list packages -a "$1" | grep -o "package:$1" >/dev/null || { warn "Package '$1' is not installed on this system, unable to disable"; return 0 ;} + + # shellcheck disable=SC2312 # Dunno how else to manage this + adb shell pm list packages -d | grep -o "package:$1" >/dev/null || { + status "Disabling apk '$1'" + adb shell pm disable-user --user 0 "$1" + return 0 + } + + debug "Apk '$1' is already disabled" +} + +# Enable Package +enableApp() { + adb shell pm list packages -a "$1" | grep -o "package:$1" >/dev/null || { warn "Package '$1' is not installed on this system, unable to enable"; return 0 ;} + + # shellcheck disable=SC2312 # Dunno how else to manage this + adb shell pm list packages -e | grep -o "package:$1" >/dev/null || { + status "Enabling apk '$1'" + adb shell pm enable --user 0 "$1" + return 0 + } + + debug "Apk '$1' is alread enabled" +} + +# Uninstall Package +uninstallApp() { + adb shell pm list packages -a "$1" | grep -o "package:$1" >/dev/null || { debug "Package '$1' is already not installed on this system"; return 0 ;} + + # shellcheck disable=SC2312 # Dunno how else to manage this + ! adb shell pm list packages -a | grep -o "package:$1" >/dev/null || { + status "Uninstalling apk '$1'" + adb shell pm clear "$1" + adb shell pm uninstall --user 0 "$1" + return 0 + } + + debug "Apk '$1' is already uninstalled" +} + +fdroidInstallApk() { + apkIdentifier="$1" # e.g. com.oculus.twilight + + [ "$(adb shell pm list packages -a | grep "${apkIdentifier//_*/}" || true)" = "" ] || { + debug "The '$apkIdentifier' is already installed, skipping.." + return 0 + } + + status "Downloading '$apkIdentifier' from F-droid" + [ -e "$HOME/.cache/$projectName/$apkIdentifier.apk" ] || wget "https://f-droid.org/repo/$apkIdentifier.apk" -O "$HOME/.cache/$projectName/$apkIdentifier.apk" + + status "Installing '$apkIdentifier'" + adb install "$HOME/.cache/$projectName/$apkIdentifier.apk" +} + +# Install Apk from Path +installApkPath() { + apkPath="$1" + apkName="${apkPath//*\/}" + if [ -n "$(adb shell pm list packages -a | grep "$apkName" || true)" ]; then + status "Installing '$apkName' from '$apkPath'" + adb install "$apkPath" + else + debug "The app '$apkName' is already installed, skipping.." + fi +} + +installApkFromURL() { + #* Installs Apk from provided URL + #* + #* Arguments: + #* 1. Name of the apk e.g. com.veygax.eventhorizon + #* 2. URL to download from (uses wget) + #* 3. sha256sum of the downloaded file + #* + #* Example use in code: + #* + #* installApkFromURL \ + #* com.veygax.eventhorizon \ + #* https://github.com/veygax/eventhorizon/releases/download/v1.2/eventhorizon.apk \ + #* 3c203087e3af677651fd78a00f42c5d4c7bd81e83292016a9b1427ca8e05d66a + + apkName="$1" # com.veygax.eventhorizon + apkURL="$2" # https://github.com/veygax/eventhorizon/releases/download/v1.2/eventhorizon.apk + sha256sum="$3" # 3c203087e3af677651fd78a00f42c5d4c7bd81e83292016a9b1427ca8e05d66a + + debug "Evaluating installation request for apk '$apkName'" + + # shellcheck disable=SC2310 # False positive, report to upstream + isApkNameInstalled "$apkName" || { + status "Downloading '$apkName' from '$apkURL' to '$projectCacheDir/$apkName.apk'" + [ -e "$projectCacheDir/$apkName.apk" ] || wget "$apkURL" -O "$projectCacheDir/$apkName.apk" + + status "Checking sha256sum of $apkName against $sha256sum" + # Checksum + echo "$sha256sum $projectCacheDir/$apkName.apk" | sha256sum -c - || { + rm "$projectCacheDir/$apkName.apk" + die 1 "sha256sum '$sha256sum' for file '$projectCacheDir/$apkName.apk' does not match!" + } + + status "Installing '$apkName' from '$projectCacheDir/$apkName.apk" + adb install "$projectCacheDir/$apkName.apk" + + return 0 + } + + debug "Apk '$apkName' is already installed, skipping.." +} + +deviceRootCheck() { + checkCmd="$(adb shell su -c "true" >/dev/null 2>&1; echo "$?")" + + case "$checkCmd" in + 0) + debug "Device is confirmed rooted" + return 0 ;; + 127) + debug "Device is not rooted" + return 1 ;; + *) die 127 "Root checking command returned unimplemented return: $checkCmd" + esac +} + +export commonsSourced=0 diff --git a/src/main.sh b/src/main.sh new file mode 100755 index 0000000..64ce5f3 --- /dev/null +++ b/src/main.sh @@ -0,0 +1,164 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +### DO NOT RUN THIS SCRIPT! EVALUATION AND DEVELOPMENT ONLY! ### + +# FreeXR Hijack Script of the META Quest 3 (Eureka) Device, replacing as many packages as possible with open-source alternativesi and removing META/Oculus apps until we figure out how to unlock the bootloader +# +# Tested on Eureka v76, use caution for other firmware versions +# +# Instructions: +# 0.0. Extract META Access Token, Oculus Access Token and deviceKey from horizon app using root on your android phone (no idea how rn) +# 0. Get an Android Phone or Emulator and install Private Quest App (https://xdaforums.com/t/app-5-0-private-quest-vr-headset-management-tool.4695491). We assume private quest 1.3 for this tutorial +# 0.1. Get an ADB-cabable system, ideally linux with adb package +# 1. On Eureka: POWER+VOL_DOWN until the device turns off and bootloader menu appears, then perform factory reset (WARNING: YOU WILL LOSE ALL YOUR DATA!) +# 2. Once eureka boots up, connect to it via private quest: +# 2.1. Private Quest -> Init -> Set DeviceKey +# 2.2. Private Quest -> Config -> Disable OTA -> Get, then turn the toggle to the OFF position. +# 2.3. Private Quest -> Control -> Developer mode -> Get, then turn to ON position +# 2.4. Private Quest -> Control -> ADB -> Get, then turn to ON position +# 2.5. Private Quest -> Init -> Set Oculus token +# 2.6. Private Quest -> Init -> Set Meta token +# 2.7. Private Quest -> Init -> Skip NUX +# 3. The device is now in de-META and de-oculed state as the Oculus and Meta tokens are not set. +# 4. Connect eureka to your computer with ADB and in eureka set always trust +# 5. Run this script +# +# Action plan: +# 0. Disable OTA +# 1. Remove all META/Oculus apps to the point where we have bare minimum device +# 2. Install alternatives +# 3. Sanitize Companion Server +# 4. Include neo store as replacement to meta store including sidequest repositories +# 5. Replace the Library app (launcher) with lightning launcher + +set -e # Exit on false return + +# shellcheck source=./lib/common.sh +. "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# shellcheck source=./standalone/adbPulseCheck.sh +. "$gitRoot/src/standalone/adbPulseCheck.sh" + +# shellcheck source=./standalone/disableUpdates.sh +. "$gitRoot/src/standalone/disableUpdates.sh" + +# shellcheck source=./standalone/enableHandTracking.sh +. "$gitRoot/src/standalone/enableHandTracking.sh" + +# shellcheck source=./standalone/removeStockApps.sh +. "$gitRoot/src/standalone/removeStockApps.sh" + +# shellcheck source=./standalone/hijack.sh +. "$gitRoot/src/standalone/hijack.sh" + +# shellcheck source=./standalone/identifyDevice.sh +. "$gitRoot/src/standalone/identifyDevice.sh" + +# shellcheck source=./standalone/rootDevice.sh +. "$gitRoot/src/standalone/rootDevice.sh" + +#! Command wrapper to run this on the headsets as standalone or on a host system as wired +w_call() { + # Wired -> adb shell cmd + # standalone -> cmd + # wired-multi -> adb -s .. shell cmd + # standalone-multi -> cmd + + # if multiple adb devices; then + # require selectedDevice to be set + + # if standalone; then + # set standalone flag? + + # By default: Assume no adb + + + + case "$wrapper" in + "wired"|"") + if [ -n "$selectedDevice" ]; then + adb -s "$selectedDevice" "$@" + else + adb "$@" + fi + ;; + "standalone") exec "$@" ;; + *) die 1 "The variable 'wrapper' stores unimplemented value '$wrapper' in w_cmd() function" + esac +} + +# Process Arguments +while [ "$#" -gt 0 ]; do case "$1" in + "--select") + case "$2" in + *.*.*.*:*) # Matching by IP for WireLESS ADB + true + ;; + [A-Z0-9]+) # By Seirla Number for wired ADB + true + ;; + *) die 1 "The value for 'select' argument does not pass sanity: $2" + esac + + selectedDevice="$2" + + shift + ;; + "--mode") + case "$2" in + "wired") true ;; + "standalone") true ;; + *) die 1 "Interface mode not implemented: $2" + esac + + export wrapper="$2" + ;; + "-d"|"--debug") export DEBUG=1 ;; + "--trace") set -x ;; + "--HIJACK") + adbPulseCheck + + identifyDevice + + disableUpdates + + deviceRootCheck || true + + rootDevice + + enableHandTracking + + removeStockApps + + hijack + + adb reboot + + success "Hijack Completed!" + ;; + "--debloat") + adbPulseCheck + + identifyDevice + + removeStockApps + ;; + "--enable-prox") + fixme "Argument '$1' is not implemented" + ;; + "--disable-prox") + identifyDevice + + status "Attempting to disable proximity sensor on the device" + + case "$productName" in + eureka) adb shell am broadcast -a com.oculus.vrpowermanager.prox_close ;; + *) die 1 "Device '$productName' is not implemented for disabling proximity sensor" + esac + ;; + "--poweroff") + adb shell reboot -p + ;; + *) die 3 "Argument not implemented: $1" +esac; shift; done diff --git a/src/standalone/.about b/src/standalone/.about new file mode 100644 index 0000000..453d734 --- /dev/null +++ b/src/standalone/.about @@ -0,0 +1 @@ +Standalone scripts that can be sourced as libraries diff --git a/src/standalone/adbPulseCheck.sh b/src/standalone/adbPulseCheck.sh new file mode 100755 index 0000000..46a50b1 --- /dev/null +++ b/src/standalone/adbPulseCheck.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! ADB Pulse Check + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +adbPulseCheck() { + adb shell return 0 || die 1 "Device is not connected and authentificated with adb server" +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# adbPulseCheck # Call The Function diff --git a/src/standalone/disableUpdates.sh b/src/standalone/disableUpdates.sh new file mode 100755 index 0000000..7689421 --- /dev/null +++ b/src/standalone/disableUpdates.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Script to disable automatic and forced updates + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +disableUpdates () { + status "Checking status of update feature" + + case "$productManufacturer" in + "Oculus") + case "$productName" in + "monterey") true ;; + "holywood") true ;; + "seacliff") true ;; + "eureka") true ;; + "panther") true ;; + *) die 1 "This device '$productName' is not yet implemented" + esac + + disableApp com.oculus.updater # Disable updates on META Quest Devices + + if deviceRootCheck; then + case "$(adb shell su -c 'stat -c "%a" /data/data/com.oculus.updater')" in + # Android quirks may remove the leading zeros + "000"|"0") true ;; + *) adb shell su -c 'chmod -vR 000 /data/data/com.oculus.updater' + esac + + adb shell test -d /data/data/ota || adb shell su -c 'mkdir -v /data/data/ota' + case "$(adb shell su -c 'stat -c "%a" /data/data/ota')" in + # Android quirks may remove the leading zeros + "000"|"0") true ;; + *) adb shell su -c 'chmod -vR 000 /data/data/ota' + esac + + adb shell test -d /data/data/ota_package || adb shell su -c 'mkdir -v /data/data/ota_package' + case "$(adb shell su -c 'stat -c "%a" /data/data/ota_package')" in + # Android quirks may remove the leading zeros + "000"|"0") true ;; + *) adb shell su -c 'chmod -vR 000 /data/data/ota_package' + esac + else + warn "Device is not rooted, unable to set chmod 000 on /data/data/{ota,ota_package,com.oculus.updater} for extra safety! Root your device and then re-run this script!" + fi + + return 0 + ;; + *) fixme "Device '$productName' of Manufacturer '$productManufacturer' is not yet implemented" + esac +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# disableUpdates "$@" # Run the Library if called as standalone Script diff --git a/src/standalone/enableHandTracking.sh b/src/standalone/enableHandTracking.sh new file mode 100755 index 0000000..2a34656 --- /dev/null +++ b/src/standalone/enableHandTracking.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Enables Hand Tracking +###! +###! ## Background +###! For META Quest devices using a de-metafied setup it's not possible to enable hand tracking via the User Interface as it's missing the `guidebook` app that showcases introduction and safety breafing with button to enable hand tracking. +###! +###! This can be bypassed via using (root required): +###! +###! oculussetting --set hand_tracking_opt_in 1 hand_tracking_enabled 1 +###! + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +enableHandTracking() { + case "$productManufacturer" in + "Oculus") + status "Evaluating request to enable hand-tracking" + + ! deviceRootCheck || { + status "Root detected, enabling hand-tracking via oculussetting" + # FIXME(Krey): Implement check for this so that we don't invoke it when we don't need to + adb shell su -c "oculussetting --set hand_tracking_opt_in 1 hand_tracking_enabled 1" + return 0 + } + + warn "Device is not rooted! Installing guidebook apk, hand-tracking MUST be enabled in settings by the user to be enabled" + installApkPath "$gitRoot/vendor/guidebook.apk" # Install guidebook (Needed to enable Hand-Tracking) + return 0 + ;; + *) fixme "The Manufacturer '$productManufacturer' is not yet implemented" + esac +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# enableHandTracking # Call The Function diff --git a/src/standalone/example.sh b/src/standalone/example.sh new file mode 100755 index 0000000..ccd92a2 --- /dev/null +++ b/src/standalone/example.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Example standalone script + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +sayHello() { + printf "%s\n" "Hello, World!" +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# sayHello # Call The Function diff --git a/src/standalone/hijack.sh b/src/standalone/hijack.sh new file mode 100755 index 0000000..7c249a3 --- /dev/null +++ b/src/standalone/hijack.sh @@ -0,0 +1,117 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Example standalone script + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +hijack() { + status "Performing Hijack in FreeXR Pseudo-ROM" + + # --- Invizible Pro --- (Networking Management) + fdroidInstallApk "pan.alexander.tordnscrypt.stable_25303" + # FIXME(Krey): Configure to use VPN Mode with Kill Switch + # FIXME(Krey): Configure to start Tor + DNSCrypt + I2P on boot + + # --- Store --- (META Store Alternative) + disableApp com.oculus.store # META store + # Neo Store + fdroidInstallApk "com.machiav3lli.fdroid_1104" + # FIXME(Krey): Configure Neo Store to use Tor + # FIXME(Krey): Configure Neo Store to use our f-droid repositories + # FIXME(Krey): Ask SideQuest to provide f-droid repository for their apps + # Itch.io (Mitch) + fdroidInstallApk "ua.gardenapple.itchupdater_20303" + # GPlay + fdroidInstallApk "com.aurora.store_70" + + # --- Lightning Launcher --- (Library Alternative) + # Install Lightning Launcher + installApkFromURL \ + com.threethan.launcher \ + https://github.com/threethan/LightningLauncher/releases/download/9.1.0/LightningLauncher.apk \ + b3567f68f34c11e6df5699292fde82493eb85135e3066363e7fd1ef945401f24 + # FIXME(Krey): Replace the menu button in systemux to launch lightning launcher + adb shell am start com.threethan.launcher + + # --- Tubular --- (YouTube Alternative) + fdroidInstallApk "org.polymorphicshade.tubular_1005" + + # --- Wivrn --- (Oculus Link Alternative) + disableApp com.meta.pclinkservice.server # Oculus Link + installApkFromURL \ + org.meumeu.wivrn.github \ + "https://github.com/WiVRn/WiVRn/releases/download/v25.8/WiVRn-standard-release.apk" \ + 9911a8f2aae92bddfe8f3bc3b70b24219105d0d0d5fe82e5206e9bb8f33d3cda + + # --- AI --- (META AI ALternative) + # Replace META AI with Ollama .. the irony + installApkFromURL \ + com.freakurl.apps.ollama \ + https://github.com/JHubi1/ollama-app/releases/download/1.2.0/ollama-android-v1.2.0.apk \ + 6573009c09e6f8284b91607ddc81b1a3860aaa55f6c2f167217d71c3af1adf87 + # FIXME(Krey): Remove META AI app + + # --- Mediabox --- + warn "Stremio have been disabled due to https://github.com/FreeXR/freexr-hijack/issues/2#issuecomment-3734164008, pending review.." + # installApkFromURL \ + # com.stremio.one \ + # https://dl.strem.io/android/v1.6.13-com.stremio.one/com.stremio.one-1.6.13-4208840-arm64-v8a.apk \ + # 4eae53f4c9680a8797f745c38a202489f488da9c2bb29087f3f35bf9b2c6655c + + # --- Maps --- + fdroidInstallApk "net.osmand.plus_510703" + + # --- App Manager --- + fdroidInstallApk "io.github.muntashirakon.AppManager_445" + + # --- Web Browser --- + fdroidInstallApk "org.mozilla.fennec_fdroid_1410220" + + # --- E-Mail --- + fdroidInstallApk "com.fsck.k9_39025" + + # --- File Browser --- + fdroidInstallApk "me.zhanghai.android.files_39" + + # --- Voice Assistant --- + fdroidInstallApk "org.stypox.dicio_16" + # FIXME(Krey): Once requested it turns the EmuShell into an infinite loading bar + installApkFromURL \ + org.futo.voiceinput \ + https://voiceinput.futo.org/VoiceInput/standalone.apk \ + a515fec7187188f66a789ee98ca0578bd86f5299f0e0b28d861d3de2ff97a975 + fdroidInstallApk "org.woheller69.ttsengine_24" + + # --- Video Player --- + fdroidInstallApk "dev.anilbeesetti.nextplayer_31" + + # --- Smart Phone Integration --- + fdroidInstallApk "org.kde.kdeconnect_tp_13304" + + # --- WhoBird --- + fdroidInstallApk "org.woheller69.whobird_46" + + # --- Calendar --- + fdroidInstallApk "ws.xsoh.etar_51" + + # --- Remote Desktop --- + fdroidInstallApk "com.carriez.flutter_hbb_104020002" + + # --- (Optional) META Apps + # FIXME(Krey): Figure out how to make META apps to work in this environment e.g. sandboxing them + + # --- Other changes --- + # FIXME(Krey): Remove META app pins from the bottom bar + # FIXME(Krey): Remove horizon app + # FIXME(Krey): Enable seamless multitasking + # FIXME(Krey): Install Stremio for META Quest as replacement for META TV and Theater anywhere + # FIXME(Krey): Make sure that META can't write killswitch in the required directory +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# sayHello # Call The Function diff --git a/src/standalone/identifyDevice.sh b/src/standalone/identifyDevice.sh new file mode 100755 index 0000000..887620a --- /dev/null +++ b/src/standalone/identifyDevice.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Script to Identify Device on ADB + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +identifyDevice() { + # shellcheck disable=SC2155 # Optional Variable + export productModel="$(adb shell getprop ro.product.model)" + status "Product Model Detected: $productModel" + + # shellcheck disable=SC2155 # Optional Variable + export productManufacturer="$(adb shell getprop ro.product.manufacturer)" + status "Product Manufacturer Detected: $productManufacturer" + + # shellcheck disable=SC2155 # Optional Variable + export productName="$(adb shell getprop ro.product.name)" + status "Product Name Detected: $productName" + + # shellcheck disable=SC2155 # Optional Variable + export productDevice="$(adb shell getprop ro.product.device)" + status "Product Device Detected: $productDevice" +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# identifyDevice # Call The Function diff --git a/src/standalone/minimalMeta.sh b/src/standalone/minimalMeta.sh new file mode 100755 index 0000000..e69cf1f --- /dev/null +++ b/src/standalone/minimalMeta.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! To Enable META Store with ability to download and use apps + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +minimalMeta() { + enableApp com.oculus.store # Enable META Store +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# minimalMeta # Call The Function diff --git a/src/standalone/removeStockApps.sh b/src/standalone/removeStockApps.sh new file mode 100755 index 0000000..fe82430 --- /dev/null +++ b/src/standalone/removeStockApps.sh @@ -0,0 +1,272 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Script to remove all vendor-supplied apps to debloat the device while maintaining minimal functionality + +set -e # Exit on False + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Attempts to remove all META applications, if we can't remove them then we disable +removeStockApps() { + debug "Attempting to debloat the device" + + case "$productManufacturer" in + "Oculus") + case "$productName" in + "eureka"|"panther") true ;; + *) die 1 "This device '$productName' is not yet implemented in '$0'" + esac + + # --- Essential Services for VR Shell (Keep enableAppd) --- + enableApp com.oculus.vrshell # VR Shell itself, essential for VR environment + enableApp com.oculus.os.vrlockscreen # VR lock screen functionality (important for secure navigation in VR) + + # --- Core System Services --- + enableApp com.android.settings # Basic settings for configuration + enableApp com.android.networkstack # Core networking stack (important for Wi-Fi, networking) + enableApp com.android.inputdevices # Input devices (touch, controllers) + enableApp com.android.keychain # Keychain for secure data management + enableApp com.android.providers.settings # Stores settings preferences (critical for system setup) + enableApp com.oculus.panelapp.settings # Quick Settings from bar + + # --- VR Camera Service --- + enableApp com.oculus.metacam # Required for camera access in VR environments (disabled otherwise) + + + # --- System Utilities and Miscellaneous --- + disableApp com.oculus.systemutilities # System utilities (opens files, unnecessary for minimal setup) + enableApp com.oculus.panelapp.library # Oculus library (might not be needed for minimal UI) + + # --- Disable Meta and Oculus Bloatware --- + disableApp com.oculus.avatareditor # Avatar editor (doesn’t load without Meta services, unnecessary) + disableApp com.oculus.identitymanagement.service # Identity management (bloat, not necessary) + disableApp com.oculus.firsttimenux # First-time setup (you’re skipping this for a minimal setup) + disableApp com.oculus.nux.ota + disableApp com.oculus.hzosgallery # VR gallery (not needed) + # FIXME(Krey): Protected Package + # disableApp com.oculus.q4b.mdm # Device management (disabled) + disableApp com.oculus.store # Oculus store (not needed for now) + disableApp com.oculus.assistant # Voice assistant (disabled) + disableApp com.oculus.socialplatform # Social services (disabled) + disableApp com.oculus.os.qrcodereader # QR Code reader (fixed package name) + + # --- Android Files (Not Required with 3rd Party System) --- + enableApp com.android.providers.contacts # Contact management (not needed) + enableApp com.android.providers.media.module # Media module (disabled) + enableApp com.android.providers.downloads # Download manager + enableApp com.android.providers.calendar # Calendar (not needed) + enableApp com.android.shell # Shell (disabled) + enableApp com.android.externalstorage # External storage (not needed) + enableApp com.android.captiveportallogin # Captive portal login (not needed) + + # --- Miscellaneous Android System Services --- + enableApp com.android.wifi.resources # Wi-Fi resources (handled by networkstack) + [ "$productName" != "eureka" ] || enableApp com.android.adservices.api # Ad services (disabled) + enableApp com.android.hotspot2.osulogin # Hotspot login + enableApp com.android.externalstorage # External storage + enableApp com.android.keychain # Keychain + enableApp com.android.permissioncontroller # Permission controller + + # --- Services Related to Meta Apps (To Be Disabled) --- + [ "$productName" != "eureka" ] || disableApp com.oculus.horizonmediaplayer # Horizon media player (not needed) + disableApp com.oculus.presence # Presence (disabled for minimal UI) + + # --- Other Non-Essential System Services --- + disableApp com.oculus.systemactivities # System activities tracking (disabled) + disableApp com.oculus.quickpromotionservice # Not required + [ "$productName" != "eureka" ] || disableApp com.oculus.externaldisplayservice # External display service (not needed) + disableApp com.oculus.magicislandcastingservice # VR casting (not needed) + disableApp com.oculus.os.clearactivity # No clear activity required + disableApp com.oculus.panelapp.kiosk # Kiosk mode (disabled) + disableApp com.oculus.deviceauthserver # Device authentication (disabled) + + # --- Additional Cleanup --- + disableApp com.oculus.linefrequencyservice # Line frequency (unnecessary) + disableApp com.oculus.tv # TV app (unnecessary) + uninstallApp com.facebook.orca # Messenger App + uninstallApp com.oculus.facebook # Facebook App + uninstallApp com.oculus.igvr # Instagram App + uninstallApp com.meta.curio.toybox # First Encounters + uninstallApp com.meta.curio.ruler # Layour App + uninstallApp com.facebook.arvr.quillplayer # Theater Elsewhere + enableApp com.android.documentsui # Files App + uninstallApp com.whatsapp # Whatsapp App + disableApp com.oculus.fitnesstracker # Oculus Move + # disableApp com.oculus.helpcenter + disableApp com.oculus.browser + disableApp com.oculus.magicislandcastingservice # "Casting" app + disableApp com.oculus.os.chargecontrol # Charge Control + disableApp com.oculus.extrapermissions # Extra Permissions + # enableApp com.android.federatedcompute.services # Federated Computing Service + disableApp com.meta.federatedcomputing.oculus # Federated Computing Service + disableApp com.oculus.guidebook # Guide Book (Needed To Enable Hand Tracking) + # disableApp com.meta.handseducationmodule # handseducationmodule + disableApp com.oculus.explore # Horizon Feed + disableApp com.facebook.horizon # Horizon Worlds + disableApp com.oculus.xrstreamingclient # Link + disableApp com.oculus.mrds # Meta Remote enableApp com.android Streaming Service + enableApp com.oculus.panelapp.settings # Configuration in panelapp, breaks WiFi if disabled + disableApp com.oculus.assistant # Oculus Assistant Service + disableApp com.oculus.systemutilities # Oculus System Utilities + disableApp com.oculus.os.qrcodereader # QR Code Reader + disableApp com.meta.rl.trust.service # RL Trust Service + disableApp com.oculus.panelapp.kiosk # Shared Mode + disableApp com.oculus.systemresource # System Resource + disableApp com.oculus.vrcast # VR casting service + disableApp com.oculus.vrprivacycheckup # VrPrivacyCheckup + + # --- Telemetry --- + disableApp com.oculus.notification_proxy # Notification proxy + disableApp com.oculus.ovrmonitormetricsservice # Oculus telemetry/metrics collection + disableApp com.oculus.bugreportuploader # Bug report uploader + # FIXME(Krey): Protected Package + # enableApp com.oculus.appsafety # App safety service + + # --- Not Preset In Android Settings App View --- + # FIXME(Krey): There is a lot of things that can be disable and should be disabled + enableApp com.android.modulemetadata # Android system metadata + enableApp com.android.connectivity.resources # Network connectivity services + enableApp com.oculus.vrbluetooth # VR Bluetooth management + enableApp com.meta.horizonadidservice # Ad ID service for Horizon + enableApp com.meta.AccountsCenter.pwa # Meta account management PWA + enableApp com.oculus.permissioncontroller.rro # Runtime permissions handler + enableApp com.oculus.horizon # Main Horizon VR social app + enableApp com.oculus.configuration # Oculus system configuration + enableApp com.android.providers.contacts # Contacts provider + enableApp com.android.companiondevicemanager # Companion device manager + enableApp com.android.cts.priv.ctsshim # CTS (test) shim + enableApp com.android.providers.downloads # Download manager + enableApp com.meta.systemui # System UI modifications + enableApp horizonos.platform # Horizon OS platform service + enableApp com.android.networkstack # Android network services + enableApp android.ext.shared # Shared Android extensions + enableApp com.android.networkstack.tethering # Tethering/network services + enableApp com.oculus.guardian # Guardian boundary system + enableApp com.android.keychain # Keychain (credentials) service + enableApp com.android.webview # WebView component + enableApp com.android.virtualmachine.res # VM resource service + enableApp com.android.shell # Android shell + enableApp com.oculus.bugreportservice # Bug reporting service + enableApp com.android.inputdevices # Input devices management + enableApp com.android.nearby.halfsheet # Nearby sharing UI + enableApp com.android.bookmarkprovider # Bookmark provider + enableApp com.oculus.userserver2 # User management server + enableApp com.android.sharedstoragebackup # Shared storage backup + enableApp com.oculus.settings.rro # Settings overlay + enableApp com.oculus.micservice # Microphone service + enableApp com.android.providers.media # Media storage provider + enableApp com.android.providers.calendar # Calendar provider + enableApp com.android.providers.blockednumber # Blocked numbers provider + enableApp com.android.statementservice # Android safety statements + enableApp com.meta.automation.pauldron.vr # Automation/VR service + enableApp com.oculus.backuptransportservice # Backup transport + enableApp com.oculus.oemconfig # OEM configuration + enableApp com.oculus.mrservice # Mixed reality service + enableApp com.android.proxyhandler # Proxy settings + enableApp com.android.safetycenter.resources # Safety Center resources + enableApp com.android.managedprovisioning # Device provisioning + enableApp com.android.healthconnect.controller # HealthConnect service + enableApp com.android.backupconfirm # Backup confirmation service + enableApp com.android.mtp # Media Transfer Protocol + # enableApp com.oculus.accountscenter # Oculus account center + enableApp com.oculus.maintenanceboot # Maintenance/boot service + enableApp com.android.appsearch.apk # AppSearch system service + enableApp com.oculus.cvp # CVP (VR runtime component) + enableApp com.oculus.websafety # Web safety service + enableApp com.oculus.labservice # Lab service for testing + enableApp com.android.ext.adservices.api # Android Ad Services API + enableApp com.oculus.os.voidactivity # Void activity (internal) + enableApp com.qualcomm.timeservice # Qualcomm time sync service + enableApp com.oculus.externalstorage # External storage management + enableApp com.qualcomm.wfd.service # Wi-Fi display service + enableApp com.oculus.integrity # System integrity service + enableApp com.oculus.ocms # Oculus content management + enableApp com.android.localtransport # Local transport service + enableApp android # Core Android package + enableApp com.android.rkpdapp # Unknown system app + enableApp com.android.permissioncontroller # Android permission controller + enableApp com.oculus.metacam # Metacam service + enableApp com.meta.frameworkpackagestubs # Framework stubs + enableApp com.android.pacprocessor # PAC processor for networks + enableApp com.oculus.captionservice # Captioning service + enableApp com.oculus.vralertservice # VR alert service + enableApp com.android.providers.media.module # Media module provider + enableApp horizon.platform.service # Horizon platform service + # enableApp com.oculus.helpcenter # Help Center + enableApp com.android.settings # Android settings + enableApp com.oculus.guardianresources # Guardian resources + enableApp com.oculus.os.vrusb # VR USB service + enableApp com.android.federatedcompute.services # Federated compute + # Apparently needed to get UI to work + enableApp com.oculus.systemdriver # System driver + enableApp com.oculus.statscollector # Stats collector + # FIXME(Krey): Protected Package + # enableApp com.android.devicelockcontroller # Device lock + enableApp com.android.documentsui # Document picker + enableApp com.android.adservices.api # Android ad services + enableApp com.android.providers.tv # TV provider + enableApp com.android.health.connect.backuprestore # Health Connect backup/restore + enableApp com.meta.android.rro # Meta overlay RRO + enableApp com.oculus.os.cm # Oculus CM service + enableApp com.facebook.wearable.system.location.proxy # Location proxy + enableApp com.android.intentresolver # Intent resolver + enableApp com.android.certinstaller # Certificate installer + enableApp com.oculus.os.vrlockscreen # VR lockscreen + enableApp android.ext.services # Android extension services + enableApp com.oculus.preloader # Preloader + enableApp com.android.wifi.resources # Wi-Fi resources + enableApp com.android.wifi.dialog # Wi-Fi dialog + enableApp com.android.captiveportallogin # Captive portal login + enableApp com.android.sdksandbox # SDK sandbox + enableApp com.meta.transport # Transport service + enableApp com.oculus.vrosconfigwriterdeprecated # VR OS config writer + enableApp com.android.providers.settings # Settings provider + enableApp com.oculus.preshutdowntaskservice # Pre-shutdown tasks + enableApp oculus.platform # Oculus platform + enableApp com.facebook.spatial_persistence_service # Spatial persistence service + enableApp com.android.location.fused # Fused location provider + enableApp com.android.vpndialogs # VPN dialog + enableApp com.android.uwb.resources # UWB (Ultra-wideband) resources + enableApp com.oculus.bodyapiservice # Body tracking APIs + # enableApp com.meta.handseducationmodule # Hand tracking education + enableApp com.android.ondevicepersonalization.services # On-device personalization + enableApp com.android.htmlviewer # HTML viewer + enableApp horizon.platform.service.notification # Horizon notification service + enableApp com.oculus.systemux # System UX + enableApp com.facebook.wearable.system.location.service # Wearable location service + enableApp com.android.providers.userdictionary # User dictionary + enableApp com.android.cts.ctsshim # CTS test shim + enableApp com.android.bluetooth # Bluetooth service + enableApp com.android.storagemanager # Storage manager + enableApp com.android.packageinstaller # Package installer + enableApp com.android.soundpicker # Sound picker + enableApp com.android.provision # Device provisioning + enableApp com.android.hotspot2.osulogin # Hotspot 2.0 login + enableApp com.android.externalstorage # External storage + enableApp com.oculus.appautomation # App automation + enableApp com.android.server.telecom # Telecom server + + # --- Link --- + disableApp com.meta.pclinkservice.server + + # --- UI --- + enableApp com.oculus.vrshell # Default User Environment + enableApp com.oculus.shellenv # Core VR shell environment + # FIXME(Krey): Might not be needed + enableApp com.oculus.vrshell.desktop # VR shell desktop support + + # --- Remote Desktop --- + # disableApp com.oculus.remotedesktop + + # --- Companion Server --- + # FIXME(Krey): Sanitize Companion Server so that META can't use it as backdoor, likely by decompiling it and replacing it with adjusted app + # disable com.oculus.companion.server # Companion server (protected package, cannot be disabled without root) + ;; + *) fixme "This Manufacturer '$productManufacturer' is not yet implemented!" + esac +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# removeStockApps diff --git a/src/standalone/rootDevice.sh b/src/standalone/rootDevice.sh new file mode 100755 index 0000000..6372f6b --- /dev/null +++ b/src/standalone/rootDevice.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env ksh +# shellcheck shell=ksh # POSIX + +###! Installs Event Horizon app which is implementing root methods for various devices with option to root on boot + +set -e # Exit on false return + +# shellcheck source=../lib/common.sh +[ -n "$commonsSourced" ] || . "${gitRoot:-"$(git rev-parse --show-toplevel || true)"}/src/lib/common.sh" # Source Common Libraries + +# Core +rootDevice() { + status "Attempting to root the device" + + # FIXME-QA(Krey): Something weird is goign on here.. it's keep continueing on return 0 ? + ! deviceRootCheck || { success "Device is already rooted, skipping setup"; return 0 ;} + + + case "$productManufacturer" in + "Oculus") + case "$productName" in + "eureka"|"panther") + installApkFromURL \ + com.veygax.eventhorizon \ + https://github.com/veygax/eventhorizon/releases/download/v2.3.0/eventhorizon.apk \ + b12f66f5ac3dc3162832f503e0154f1492eff971b4d232e2a19d85b0588b613e + + # Root the headset + status "Rooting the device" + adb shell am start -S -n com.veygax.eventhorizon/.ui.activities.MainActivity --ez auto_root true + + # # Wait for EH to finish rooting the device.. + # while [ "$(adb shell echo 0)" = 0 ]; do + # debug "Waiting for EventHorizon to finish rooting.." + # # FIXME(Krey): We are assuming that in 10 seconds it's gonna be finished which is BAD implementation + # sleep 10 + # done + + # # Wait for the device to come back up with root + # status "Waiting for the device to come back up" + # while [ "$(adb shell echo 0)" != 0 ]; do + # debug "Waiting for the device to come back up" + # sleep 1 + # done + + # # Check root + # status "Checking root" + # deviceRootCheck || die 1 "Rooting failed!" + # [ "$rootable" != 0 ] || success "Device was successfully rooted" + + die 1 "Please perform the root in the headset and then re-run the script, this is not yet automated FIXME" + ;; + *) die 1 "This device '$productName' is not yet implemented in '$0'" + esac + esac +} + +# FIXME(Krey): Figure out how to prevent this from being executed on `. path/to/this/file` +# rootDevice # Call The Function diff --git a/tasks/.about b/tasks/.about new file mode 100644 index 0000000..5e52b2c --- /dev/null +++ b/tasks/.about @@ -0,0 +1 @@ +Routines to work with the project diff --git a/tasks/README.md b/tasks/README.md new file mode 100644 index 0000000..c119571 --- /dev/null +++ b/tasks/README.md @@ -0,0 +1 @@ +Directory declaring internal tasks to use for managing the repository diff --git a/tasks/default.nix b/tasks/default.nix new file mode 100644 index 0000000..d7f62ea --- /dev/null +++ b/tasks/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./docs + ./editors + ./tools + ]; +} diff --git a/tasks/docs/.about b/tasks/docs/.about new file mode 100644 index 0000000..1cedd85 --- /dev/null +++ b/tasks/docs/.about @@ -0,0 +1 @@ +Tasks related to the project documentation diff --git a/tasks/docs/default.nix b/tasks/docs/default.nix new file mode 100644 index 0000000..434cabc --- /dev/null +++ b/tasks/docs/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./tree ]; +} diff --git a/tasks/docs/tree/.about b/tasks/docs/tree/.about new file mode 100644 index 0000000..bfc794f --- /dev/null +++ b/tasks/docs/tree/.about @@ -0,0 +1 @@ +Task used to generate this file hierarchy output diff --git a/tasks/docs/tree/default.nix b/tasks/docs/tree/default.nix new file mode 100644 index 0000000..eee6b4e --- /dev/null +++ b/tasks/docs/tree/default.nix @@ -0,0 +1,23 @@ +{ ... }: + +# The TREE Task + +{ + perSystem = { pkgs, ... }: { + mission-control.scripts = { + "tree" = { + description = "Process the file hierarchy and output user-friendly summary of it"; + category = "docs"; + + exec = pkgs.writeShellApplication { + name = "tasks-tree"; + + runtimeInputs = []; + + # FIXME(Krey): This should use flake-root to set absolute path + text = builtins.readFile ./tasks-tree.sh; + }; + }; + }; + }; +} diff --git a/tasks/docs/tree/tasks-tree.sh b/tasks/docs/tree/tasks-tree.sh new file mode 100644 index 0000000..2e9dbfc --- /dev/null +++ b/tasks/docs/tree/tasks-tree.sh @@ -0,0 +1,57 @@ +# shellcheck shell=sh # POSIX + +# Function to print the directory tree with .about descriptions +print_tree() { + dir="$1" + level="$2" + indent="" + + # Generate indentation based on the level + for _ in $(seq 1 "$level"); do + indent=" |      $indent" + done + + # Check if this directory contains a .about file + about_file="$dir/.about" + about_message="" + + if [ -f "$about_file" ]; then + about_message=" -- $(cat "$about_file")" + # Print the directory with its .about content if exists + echo "${indent}├── **$(basename "$dir")**$about_message
" + else + # Debugging: List all directories being processed + echo "DEBUG: Skipping $dir (no .about file)" + fi +} + +# Check if the user provided the FLAKE_ROOT as an argument or environment variable +if [ -z "$FLAKE_ROOT" ]; then + echo "Please set the FLAKE_ROOT environment variable to the root of the git repository." + exit 1 +fi + +# Finding all .about files and collecting directories +echo "Finding all .about files..." +about_dirs=$(find "$FLAKE_ROOT" -type f -name ".about" -exec dirname {} \; | sort) + +# Debug output: list of directories found +echo "Found .about files in the following directories:" +echo "$about_dirs" + +# Sort directories by their relative depth (count of slashes) +sorted_dirs=$(echo "$about_dirs" | sort -t/ -k1,1 -k2,2 -k3,3) + +# Now we will process each directory and print the tree +echo "FLAKE_ROOT is set to: $FLAKE_ROOT" +echo "Processing directories:" +for dir in $sorted_dirs; do + # Get the relative path from FLAKE_ROOT + relative_dir="${dir#"$FLAKE_ROOT/"}" + + # Calculate the level by counting slashes (depth of the directory) + level=$(echo "$relative_dir" | tr -cd '/' | wc -c) + + # Output the directory tree + print_tree "$dir" "$level" +done diff --git a/tasks/editors/.about b/tasks/editors/.about new file mode 100644 index 0000000..0ff6fdb --- /dev/null +++ b/tasks/editors/.about @@ -0,0 +1 @@ +Nix definition for repository-standardized editors diff --git a/tasks/editors/codium/default.nix b/tasks/editors/codium/default.nix new file mode 100644 index 0000000..6ab86df --- /dev/null +++ b/tasks/editors/codium/default.nix @@ -0,0 +1,13 @@ +{ ... }: + +{ + perSystem = { inputs', lib, pkgs, ... }: { + mission-control.scripts = { + codium = { + description = "Open repository-standardized VSCodium version with configuration"; + category = "Integrated Development Environments"; + exec = "${inputs'.nixpkgs.legacyPackages.vscodium}/bin/codium \"$FLAKE_ROOT/default.code-workspace\""; + }; + }; + }; +} diff --git a/tasks/editors/default.nix b/tasks/editors/default.nix new file mode 100644 index 0000000..c477d77 --- /dev/null +++ b/tasks/editors/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./codium ]; +} diff --git a/tasks/templates/hello/default.nix b/tasks/templates/hello/default.nix new file mode 100644 index 0000000..2f41fb6 --- /dev/null +++ b/tasks/templates/hello/default.nix @@ -0,0 +1,13 @@ +{ ... }: + +{ + perSystem = { inputs', pkgs, lib, ... }: { + mission-control.scripts = { + hello = { + description = "Hello"; + category = "Tests"; + exec = "echo hello"; + }; + }; + }; +} diff --git a/tasks/tools/default.nix b/tasks/tools/default.nix new file mode 100644 index 0000000..ec1508f --- /dev/null +++ b/tasks/tools/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./direnv-reload + ]; +} diff --git a/tasks/tools/direnv-reload/default.nix b/tasks/tools/direnv-reload/default.nix new file mode 100644 index 0000000..8882384 --- /dev/null +++ b/tasks/tools/direnv-reload/default.nix @@ -0,0 +1,25 @@ +{ ... }: + +# The BUILD Task + +{ + perSystem = { pkgs, ... }: { + mission-control.scripts = { + "r" = { + description = "Reload the development environment"; + category = "tools"; + + exec = pkgs.writeShellApplication { + name = "direnv-reload-build"; + + runtimeInputs = [ + pkgs.direnv + ]; + + # FIXME(Krey): This should use flake-root to set absolute path + text = builtins.readFile ./tasks-direnv-reload.sh; + }; + }; + }; + }; +} diff --git a/tasks/tools/direnv-reload/tasks-direnv-reload.sh b/tasks/tools/direnv-reload/tasks-direnv-reload.sh new file mode 100644 index 0000000..a5aeb18 --- /dev/null +++ b/tasks/tools/direnv-reload/tasks-direnv-reload.sh @@ -0,0 +1,9 @@ +# shellcheck shell=sh # POSIX +set +u # Do not fail on nounset as we use command-line arguments for logic + +direnv reload + +case "$?" in + 0) : ;; # Success + *) echo "reload exitted with an unknown exit code: $?" +esac diff --git a/vendor/.about b/vendor/.about new file mode 100644 index 0000000..d15ed91 --- /dev/null +++ b/vendor/.about @@ -0,0 +1 @@ +Files from 3rd party used in the project diff --git a/vendor/guidebook.apk b/vendor/guidebook.apk new file mode 100644 index 0000000..0d4eae0 Binary files /dev/null and b/vendor/guidebook.apk differ