From 03f1d7dcc795325867de74331ae966b09f3bc2d0 Mon Sep 17 00:00:00 2001 From: subochev Date: Fri, 25 Sep 2026 17:19:49 +0300 Subject: [PATCH] glasses: launch guest on Shizuku VirtualDisplay + binocular render - VmShizukuService is a Shizuku UserService only; remove its manifest entry (ServiceStarter instantiates it reflectively, an Android service entry causes ClassCastException) - VirtualDisplayFrameSource: await binder via ShizukuVdClient.bindForResult(5s), expose virtualDisplayId + shizukuBinder, stop the UserService on release - VmGlassesController: serialize acquire via Mutex, use double-buffered SurfaceTexture (DisplayManagerService rejects single-buffer), launch the guest on the VD with ShizukuVdBinder.launchActivity - GlassesScreen: render controller.frameSource (Running) directly; drop the LaunchedEffect acquire - DebugTestReceiver: register at runtime from MainActivity (background manifest receivers are blocked on Android 12+) --- app-glasses-vm/src/main/AndroidManifest.xml | 9 +- .../pw/binom/rayneovm/glasses/MainActivity.kt | 17 +-- .../rayneovm/glasses/VmShizukuService.kt | 14 +- .../glasses/protocol/VmGlassesController.kt | 126 +++++++++++------- .../shizuku/VirtualDisplayFrameSource.kt | 19 ++- .../rayneovm/glasses/ui/GlassesScreen.kt | 16 +-- 6 files changed, 112 insertions(+), 89 deletions(-) diff --git a/app-glasses-vm/src/main/AndroidManifest.xml b/app-glasses-vm/src/main/AndroidManifest.xml index e316209..60a750e 100644 --- a/app-glasses-vm/src/main/AndroidManifest.xml +++ b/app-glasses-vm/src/main/AndroidManifest.xml @@ -68,11 +68,10 @@ android:exported="false" android:foregroundServiceType="mediaPlayback" /> - - +