Skip to main content

Troubleshooting

By design, Meta Quest headsets are based on Android systems. Therefore, the headsets mimic the behavior of a typical Android smartphone, and most of the issues you encounter may stem from this.

Headsets Keep Disconnecting from Wi-Fi

By default, headsets probe new networks they connect to by sending a ping and trying to detect a captive portal if there is one.

In the SIMPLE project, we're using dedicated private Wi-Fi that is disconnected from the internet, which causes the probing system to fail and prevents auto-connection of the headsets to these networks.

Luckily for us, it's possible to disable this behavior with the following commands:

All in one command

You can use the following command in your terminal to apply all the settings simultaneously:

adb shell "settings put global captive_portal_detection_enabled 0" && adb shell "settings put global captive_portal_server localhost" && adb shell "settings put global captive_portal_https_url https://localhost" && adb shell "settings put global captive_portal_http_url http://localhost" && adb shell "settings put global captive_portal_mode 0" && adb shell "settings put global wifi_watchdog_on 0"  && adb shell "settings put global wifi_watchdog_poor_network_test_enabled 0" && adb shell "settings put global network_recommendations_enabled 0" && adb shell "settings put global network_avoid_bad_wifi 0" && adb shell "settings put global wifi_passpoint_enabled 0" && adb shell "settings put global wifi_sleep_policy 2"  && adb shell "settings put global stay_on_while_plugged_in 3" && adb shell "settings put global wifi_enhance_network_while_sleeping 0" && adb shell "settings put global ota_disable_automatic_update 1"

Probing



Disable captive portal probing

adb shell "settings put global captive_portal_detection_enabled 0" 

Set the probing URL to localhost to always get a positive response (in case it gets re-activated)

adb shell "settings put global captive_portal_server localhost"
adb shell "settings put global captive_portal_https_url https://localhost"
adb shell "settings put global captive_portal_http_url http://localhost"
tip

you can use this command to apply all of these at once:

adb shell "settings get global captive_portal_server" && adb shell "settings get global captive_portal_https_url" &&  adb shell "settings get global captive_portal_http_url" 

Disable captive portal mode

adb shell "settings put global captive_portal_mode 0"

Choosing WiFi


Increase WiFi RSSI polling interval (less aggressive)

adb shell "settings put global wifi_watchdog_on 0"

Disables the WiFi watchdog that monitors poor network quality

adb shell "settings put global wifi_watchdog_poor_network_test_enabled 0"

Disable network recommendations

adb shell "settings put global network_recommendations_enabled 0" 

Disable automatic network switching

adb shell "settings put global network_avoid_bad_wifi 0"

Disable hotspot 2.0 (Passpoint)

Disables automatic connection to Passpoint networks (carrier WiFi networks)

adb shell "settings put global wifi_passpoint_enabled 0"

Staying connected

Prevent WiFi from disconnecting when the screen is turned off

adb shell "settings put global wifi_sleep_policy 2" 

Keep the screen on while charging

adb shell "settings put global stay_on_while_plugged_in 3"

Disable background data restriction enforcement

adb shell "settings put global wifi_enhance_network_while_sleeping 0"

Verification of the settings

To check if the settings are correctly applied to the headset, use the following command:


adb shell "settings get global captive_portal_detection_enabled" && adb shell "settings get global captive_portal_server " && adb shell "settings get global captive_portal_https_url" && adb shell "settings get global captive_portal_http_url" && adb shell "settings get global captive_portal_mode" && adb shell "settings get global wifi_watchdog_on" && adb shell "settings get global wifi_watchdog_poor_network_test_enabled" && adb shell "settings get global network_recommendations_enabled" && adb shell "settings get global network_avoid_bad_wifi" && adb shell "settings get global wifi_passpoint_enabled" && adb shell "settings get global wifi_sleep_policy" && adb shell "settings get global stay_on_while_plugged_in" && adb shell "settings get global wifi_enhance_network_while_sleeping" && adb shell "settings get global ota_disable_automatic_update"

The output of this command must be:

0
localhost
https://localhost
http://localhost
0
0
0
0
0
0
2
3
0
1

Misc

Disable automatic system updates

adb shell "settings put global ota_disable_automatic_update 1"
adb reboot