Skip to content

u/debug: Use system property on Android platform

Jarvis Huang requested to merge quic_jarvhuan/monado:android-debug-options into main

setenv doesn't work with Android application unless it's done in the runtime process. Which means getenv would not be able to get correct value without rebuild. Replace it with system property (with additional prefix debug.xrt.) so debugging options can be enabled on devices.

For example, we can see entrypoints logs with following commands:

adb shell setprop debug.xrt.XRT_LOG trace
adb shell setprop debug.xrt.OXR_DEBUG_ENTRYPOINTS true
adb shell setprop debug.xrt.XRT_PRINT_OPTIONS true
04-18 03:56:36.890 20072 20095 D do_output: xrGetInstanceProcAddr
04-18 03:56:36.890 20072 20095 I debug_get_bool_option: OXR_NO_PRINTING_STDERR=FALSE (nil)
04-18 03:56:36.890 20072 20095 D do_output: oxr_xrInitializeLoaderKHR
04-18 03:56:36.890 20072 20095 I debug_get_bool_option: OXR_NO_PRINTING=FALSE (nil)
04-18 03:56:36.890 20072 20095 D do_output: LOG in oxr_xrInitializeLoaderKHR: Loader forwarded call to xrInitializeLoaderKHR.
04-18 03:56:36.891 20072 20095 D do_output: xrGetInstanceProcAddr
04-18 03:56:36.891 20072 20095 D do_output: xrEnumerateInstanceExtensionProperties
04-18 03:56:36.891 20072 20095 D do_output: xrEnumerateInstanceExtensionProperties
04-18 03:56:36.891 20072 20095 D do_output: xrGetInstanceProcAddr
04-18 03:56:36.891 20072 20095 D do_output: xrEnumerateInstanceExtensionProperties
04-18 03:56:36.891 20072 20095 D do_output: xrEnumerateInstanceExtensionProperties
04-18 03:56:36.891 20072 20095 D do_output: xrGetInstanceProcAddr
04-18 03:56:36.891 20072 20095 D do_output: xrEnumerateInstanceExtensionProperties
04-18 03:56:36.891 20072 20095 D do_output: xrEnumerateInstanceExtensionProperties
04-18 03:56:36.893 20072 20095 D do_output: xrGetInstanceProcAddr
04-18 03:56:36.893 20072 20095 D do_output: xrCreateInstance
...
04-18 03:56:37.584 20072 20095 D do_output: LOG in xrCreateInstance: Instance created
04-18 03:56:37.584 20072 20095 D do_output: 	createInfo->applicationInfo.applicationName: HelloXR
04-18 03:56:37.584 20072 20095 D do_output: 	createInfo->applicationInfo.applicationVersion: 0
04-18 03:56:37.584 20072 20095 D do_output: 	createInfo->applicationInfo.engineName: 
04-18 03:56:37.584 20072 20095 D do_output: 	createInfo->applicationInfo.engineVersion: 0
04-18 03:56:37.584 20072 20095 D do_output: 	appinfo.detected.engine.name: (null)
04-18 03:56:37.584 20072 20095 D do_output: 	appinfo.detected.engine.version: 0.0.0
04-18 03:56:37.584 20072 20095 D do_output: 	quirks.disable_vulkan_format_depth_stencil: false
04-18 03:56:37.584 20072 20095 D do_output: LOG in xrCreateInstance: Selected devices
04-18 03:56:37.584 20072 20095 D do_output: 	Head: 'Android Sensors'
04-18 03:56:37.584 20072 20095 D do_output: 	Left: '<none>'
04-18 03:56:37.584 20072 20095 D do_output: 	Right: '<none>'
04-18 03:56:37.584 20072 20095 D do_output: 	Hand-Tracking Left: '<none>'
04-18 03:56:37.584 20072 20095 D do_output: 	Hand-Tracking Right: '<none>'

Tested with helloxr on Pixel4 (Android T) and Motorola Edge + (Android S).

Edited by Jarvis Huang

Merge request reports