diff --git a/core/src/main/java/org/lsposed/lspd/service/BridgeService.java b/core/src/main/java/org/lsposed/lspd/service/BridgeService.java index 07b04c80..8feeda4f 100644 --- a/core/src/main/java/org/lsposed/lspd/service/BridgeService.java +++ b/core/src/main/java/org/lsposed/lspd/service/BridgeService.java @@ -121,7 +121,7 @@ public class BridgeService { private static Listener listener; // For service - private static void sendToBridge(IBinder binder, boolean isRestart) { + private static synchronized void sendToBridge(IBinder binder, boolean isRestart) { do { bridgeService = ServiceManager.getService(SERVICE_NAME); if (bridgeService != null && bridgeService.pingBinder()) { @@ -160,6 +160,7 @@ public class BridgeService { data.writeInt(ACTION.ACTION_SEND_BINDER.ordinal()); Log.v(TAG, "binder " + binder.toString()); data.writeStrongBinder(binder); + if (bridgeService == null) break; res = bridgeService.transact(TRANSACTION_CODE, data, reply, 0); reply.readException(); } catch (Throwable e) {