From a0e7fcf400ecd017c947a87590e35c3f3c6032cd Mon Sep 17 00:00:00 2001 From: Enginex0 Date: Tue, 19 May 2026 05:03:27 +0100 Subject: [PATCH] fix(spoof): isolate BulletinPoller.start failure BulletinPoller.start ran inside App.main's outer try{...} catch that rethrows, so any HandlerThread or Looper init failure killed the daemon including keystore interception. Wrap the start call in its own try so a poller failure logs and falls through, leaving the rest of the pipeline alive. --- app/src/main/java/org/matrix/TEESimulator/App.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/matrix/TEESimulator/App.kt b/app/src/main/java/org/matrix/TEESimulator/App.kt index 478242b..4ddf822 100644 --- a/app/src/main/java/org/matrix/TEESimulator/App.kt +++ b/app/src/main/java/org/matrix/TEESimulator/App.kt @@ -60,7 +60,11 @@ object App { NativeCertGen.initialize("/data/adb/modules/tricky_store/libcertgen.so") - BulletinPoller.start() + try { + BulletinPoller.start() + } catch (e: Throwable) { + SystemLogger.error("Failed to start BulletinPoller", e) + } // This starts the message queue processing. It blocks here indefinitely // processing messages until Looper.myLooper().quit() is called.