diff --git a/private/file_contexts b/private/file_contexts
index 2879265e24c25b2c61f29231dbc613ba9bc668f7..3b5319a8cfaa396c051c52d1c3a3691acee219c5 100644
--- a/private/file_contexts
+++ b/private/file_contexts
@@ -249,7 +249,6 @@
 /system/bin/webview_zygote32     u:object_r:webview_zygote_exec:s0
 /system/bin/webview_zygote64     u:object_r:webview_zygote_exec:s0
 /system/bin/virtual_touchpad     u:object_r:virtual_touchpad_exec:s0
-/system/bin/vr_wm                u:object_r:vr_wm_exec:s0
 /system/bin/hw/android\.hidl\.allocator@1\.0-service          u:object_r:hal_allocator_default_exec:s0
 /system/etc/selinux/mapping/[0-9]+\.[0-9]+\.cil       u:object_r:sepolicy_file:s0
 /system/etc/selinux/plat_mac_permissions\.xml u:object_r:mac_perms_file:s0
diff --git a/private/service_contexts b/private/service_contexts
index d8d846f9084f495e0e0ede3f94280f92d8b0555a..dc77cb9c32237fa454056031dfde8124050525c0 100644
--- a/private/service_contexts
+++ b/private/service_contexts
@@ -159,7 +159,6 @@ user                                      u:object_r:user_service:s0
 vibrator                                  u:object_r:vibrator_service:s0
 virtual_touchpad                          u:object_r:virtual_touchpad_service:s0
 voiceinteraction                          u:object_r:voiceinteraction_service:s0
-vr_window_manager                         u:object_r:vr_window_manager_service:s0
 vr_hwc                                    u:object_r:vr_hwc_service:s0
 vrmanager                                 u:object_r:vr_manager_service:s0
 wallpaper                                 u:object_r:wallpaper_service:s0
diff --git a/private/system_server.te b/private/system_server.te
index 7e644a5128caa981942cf9820176c571ca1f35c6..f391aa5e7cab6e5d00b4ea2f547a01a32811224c 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -537,8 +537,6 @@ allow system_server netd_service:service_manager find;
 allow system_server nfc_service:service_manager find;
 allow system_server radio_service:service_manager find;
 allow system_server surfaceflinger_service:service_manager find;
-# TODO(b/36506799): move vr_wm code to VrCore and remove this:
-allow system_server vr_window_manager_service:service_manager find;
 allow system_server wificond_service:service_manager find;
 
 allow system_server keystore:keystore_key {
diff --git a/private/vr_wm.te b/private/vr_wm.te
deleted file mode 100644
index 38564f2080f68cde6be34dc38dc8b6c2d75495c3..0000000000000000000000000000000000000000
--- a/private/vr_wm.te
+++ /dev/null
@@ -1,5 +0,0 @@
-# vr_wm - VR Window Manager
-typeattribute vr_wm coredomain;
-
-# The vr_wm is started by init.
-init_daemon_domain(vr_wm)
diff --git a/public/performanced.te b/public/performanced.te
index 95038cd488d7f2925d34ae2c6c60f2ab16d1207d..8f9d16b05757ce313f31f1208117d6b34d42f65d 100644
--- a/public/performanced.te
+++ b/public/performanced.te
@@ -10,9 +10,9 @@ allow performanced self:capability { setuid setgid sys_nice };
 # Access /proc to validate we're only affecting threads in the same thread group.
 # Performanced also shields unbound kernel threads.  It scans every task in the
 # root cpu set, but only affects the kernel threads.
-r_dir_file(performanced, { appdomain bufferhubd kernel sensord surfaceflinger vr_wm })
+r_dir_file(performanced, { appdomain bufferhubd kernel sensord surfaceflinger })
 dontaudit performanced domain:dir read;
-allow performanced { appdomain bufferhubd kernel sensord surfaceflinger vr_wm }:process setsched;
+allow performanced { appdomain bufferhubd kernel sensord surfaceflinger }:process setsched;
 
 # Access /dev/cpuset/cpuset.cpus
 r_dir_file(performanced, cgroup)
diff --git a/public/service.te b/public/service.te
index efd4c86ccabb07d3e017933583ab2645331bf25c..da540dbf538c851d758fb792beb01c3511154755 100644
--- a/public/service.te
+++ b/public/service.te
@@ -27,7 +27,6 @@ type surfaceflinger_service,    service_manager_type;
 type system_app_service,        service_manager_type;
 type update_engine_service,     service_manager_type;
 type virtual_touchpad_service,  service_manager_type;
-type vr_window_manager_service, service_manager_type;
 type vr_hwc_service,            service_manager_type;
 
 # system_server_services broken down
diff --git a/public/vr_hwc.te b/public/vr_hwc.te
index c0abdcd14c1250a596d14ae2fe6e18956bc546f6..a33baea53e548db1a6d69472c3278b0d583bbc08 100644
--- a/public/vr_hwc.te
+++ b/public/vr_hwc.te
@@ -10,8 +10,6 @@ binder_service(vr_hwc)
 binder_call(vr_hwc, surfaceflinger)
 # Needed to check for app permissions.
 binder_call(vr_hwc, system_server)
-# TODO(dnicoara): Remove once vr_wm is disabled.
-binder_call(vr_hwc, vr_wm)
 
 add_service(vr_hwc, vr_hwc_service)
 
diff --git a/public/vr_wm.te b/public/vr_wm.te
deleted file mode 100644
index 1e486097d364be0fb5a79d3cacbe61d9b2a3c6ac..0000000000000000000000000000000000000000
--- a/public/vr_wm.te
+++ /dev/null
@@ -1,28 +0,0 @@
-type vr_wm, domain;
-type vr_wm_exec, exec_type, file_type;
-
-hal_client_domain(vr_wm, hal_graphics_allocator)
-
-binder_use(vr_wm)
-binder_call(vr_wm, virtual_touchpad)
-binder_call(vr_wm, vr_hwc)
-
-allow vr_wm virtual_touchpad_service:service_manager find;
-allow vr_wm vr_hwc_service:service_manager find;
-
-binder_service(vr_wm)
-add_service(vr_wm, vr_window_manager_service)
-
-# Load vendor libraries.
-allow vr_wm system_file:dir r_dir_perms;
-
-allow vr_wm gpu_device:chr_file rw_file_perms;
-allow vr_wm ion_device:chr_file r_file_perms;
-
-# Get buffer metadata.
-allow vr_wm hal_graphics_allocator:fd use;
-
-use_pdx(vr_wm, bufferhubd)
-use_pdx(vr_wm, sensord)
-use_pdx(vr_wm, surfaceflinger)
-use_pdx(vr_wm, performanced)