summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-08-21 03:07:16 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-08-21 03:07:16 +0000
commit0b645503875bef15f4ef7bc55cf22fa9827da641 (patch)
treee69b31f47408a2f4aff568d89116fbc38a50945d
parenta92b959a9f68c2e8ba3595a218de67dff604eeb9 (diff)
parent29752274f790402c8a436f3295117ef9ff75e2aa (diff)
downloaddevice_google_vrservices-0b645503875bef15f4ef7bc55cf22fa9827da641.tar.gz
device_google_vrservices-0b645503875bef15f4ef7bc55cf22fa9827da641.tar.bz2
device_google_vrservices-0b645503875bef15f4ef7bc55cf22fa9827da641.zip
Snap for 5817336 from 29752274f790402c8a436f3295117ef9ff75e2aa to rvc-release
Change-Id: I465719938aac1de5a22b8464f931482b1ff4245c
-rw-r--r--xr/products/experimental_google_xr.mk4
-rwxr-xr-xxr/scripts/boot-to-vr.sh74
-rw-r--r--xr/sepolicy/platform_app.te1
-rw-r--r--xr/sepolicy/untrusted_app_27.te2
-rw-r--r--xr/sepolicy/vr_hwc.te1
5 files changed, 80 insertions, 2 deletions
diff --git a/xr/products/experimental_google_xr.mk b/xr/products/experimental_google_xr.mk
index 2f3c1a1..2aebc58 100644
--- a/xr/products/experimental_google_xr.mk
+++ b/xr/products/experimental_google_xr.mk
@@ -2,7 +2,7 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
ro.dvr.lens_metrics=/etc/hmd_config
# SELinux permissions
-BOARD_SEPOLICY_DIRS += device/google/vrservices/xr/sepolicy
+BOARD_PLAT_PRIVATE_SEPOLICY_DIR := device/google/vrservices/xr/sepolicy
# Remove non-critical and non-XR packages from PRODUCT_PACKAGES.
#
@@ -34,9 +34,9 @@ PRODUCT_PACKAGES += NonXrProductPackagesRemover
PRODUCT_COPY_FILES += \
device/google/vrservices/xr/init/init.xr.rc:$(TARGET_COPY_OUT_SYSTEM)/etc/init/init.xr.rc \
+ device/google/vrservices/xr/scripts/boot-to-vr.sh:$(TARGET_COPY_OUT_SYSTEM)/bin/boot-to-vr.sh \
frameworks/native/data/etc/android.hardware.vr.high_performance.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.hardware.vr.high_performance.xml \
vendor/unbundled_google/packages/PrebuiltGoogleVr/configs/daydream_viewer_config:$(TARGET_COPY_OUT_SYSTEM)/etc/hmd_config \
- vendor/unbundled_google/packages/PrebuiltGoogleVr/scripts/boot-to-vr.sh:$(TARGET_COPY_OUT_SYSTEM)/bin/boot-to-vr.sh \
# XR/VR prebuilt packages
PRODUCT_PACKAGES += \
diff --git a/xr/scripts/boot-to-vr.sh b/xr/scripts/boot-to-vr.sh
new file mode 100755
index 0000000..853efb9
--- /dev/null
+++ b/xr/scripts/boot-to-vr.sh
@@ -0,0 +1,74 @@
+#
+# This script finds the init.rc file for a certain Pixel XR device and updates
+# the value of ro.boot.vr being set during the init process.
+#
+PROP_RO_HARDWARE="$(getprop ro.hardware)"
+PROP_RO_BOOT_HARDWARE_PLATFORM="$(getprop ro.boot.hardware.platform)"
+PROP_RO_PRODUCT_NAME="$(getprop ro.product.name)"
+
+function print_usage {
+ echo "Update $(get_init_rc_file)"
+ echo "Usage:"
+ echo " boot-to-vr.sh (true|false))"
+ echo " Enable or disable whether the system should boot into VR."
+ exit 1
+}
+
+function get_hardware_name() {
+ case $PROP_RO_HARDWARE in
+ walleye) echo walleye ;;
+ taimen) echo taimen ;;
+ blueline) echo $PROP_RO_BOOT_HARDWARE_PLATFORM ;;
+ crosshatch) echo $PROP_RO_BOOT_HARDWARE_PLATFORM ;;
+ esac
+}
+
+function get_init_rc_file() {
+ echo "/vendor/etc/init/hw/init.$(get_hardware_name).rc"
+}
+
+function print_init_rc() {
+ cat $(get_init_rc_file) | grep -A10 -B10 ro.boot.vr
+}
+
+function fail_to_write_file() {
+ echo "Cannot modify $(get_init_rc_file). The following commands may help:
+ adb disable-verity
+ adb reboot
+ adb remount"
+ exit 1
+}
+
+function enable_boot_to_vr() {
+ sed -i "s/setprop ro.boot.vr 0/setprop ro.boot.vr 1/" $(get_init_rc_file)
+ rc=$?
+
+ if [[ $rc != 0 ]]; then
+ fail_to_write_file
+ else
+ print_init_rc
+ fi
+}
+
+function disable_boot_to_vr() {
+ sed -i "s/setprop ro.boot.vr 1/setprop ro.boot.vr 0/" $(get_init_rc_file)
+ rc=$?
+
+ if [[ $rc != 0 ]]; then
+ fail_to_write_file
+ else
+ print_init_rc
+ fi
+}
+
+WHOAMI=$(whoami)
+if ! [ "$WHOAMI" == "root" ]; then
+ echo "*** Root access required. Run 'adb root' first."
+ exit 1
+fi
+
+case "$1" in
+ true) enable_boot_to_vr ;;
+ false) disable_boot_to_vr ;;
+ *) print_usage ;;
+esac
diff --git a/xr/sepolicy/platform_app.te b/xr/sepolicy/platform_app.te
new file mode 100644
index 0000000..09214ae
--- /dev/null
+++ b/xr/sepolicy/platform_app.te
@@ -0,0 +1 @@
+allow platform_app system_prop:property_service set;
diff --git a/xr/sepolicy/untrusted_app_27.te b/xr/sepolicy/untrusted_app_27.te
new file mode 100644
index 0000000..e9bc2b3
--- /dev/null
+++ b/xr/sepolicy/untrusted_app_27.te
@@ -0,0 +1,2 @@
+allow untrusted_app_27 vr_hwc_service:service_manager find;
+allow untrusted_app_27 virtual_touchpad_service:service_manager find;
diff --git a/xr/sepolicy/vr_hwc.te b/xr/sepolicy/vr_hwc.te
new file mode 100644
index 0000000..295205e
--- /dev/null
+++ b/xr/sepolicy/vr_hwc.te
@@ -0,0 +1 @@
+allow vr_hwc untrusted_app_27:binder call;