From 06c26fbbb6f541c7c41650849ece2c732875f972 Mon Sep 17 00:00:00 2001 From: Nullptr Date: Wed, 16 Aug 2023 16:51:52 +0800 Subject: [PATCH] Fix remote prefs --- .../lsposed/lspd/impl/LSPosedRemotePreferences.java | 2 +- .../lsposed/lspd/service/LSPInjectedModuleService.java | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java b/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java index 0da81e72..4bbe9395 100644 --- a/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java +++ b/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java @@ -29,7 +29,7 @@ public class LSPosedRemotePreferences implements SharedPreferences { synchronized public void onUpdate(Bundle bundle) { Set changes = new ArraySet<>(); if (bundle.containsKey("delete")) { - var deletes = bundle.getStringArrayList("delete"); + var deletes = (Set) bundle.getSerializable("delete"); changes.addAll(deletes); for (var key : deletes) { mMap.remove(key); diff --git a/daemon/src/main/java/org/lsposed/lspd/service/LSPInjectedModuleService.java b/daemon/src/main/java/org/lsposed/lspd/service/LSPInjectedModuleService.java index 03ee1118..be671315 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/LSPInjectedModuleService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/LSPInjectedModuleService.java @@ -7,6 +7,7 @@ import android.os.Binder; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.RemoteException; +import android.util.Log; import org.lsposed.lspd.models.Module; @@ -17,6 +18,9 @@ import java.util.concurrent.ConcurrentHashMap; import io.github.libxposed.service.IXposedService; public class LSPInjectedModuleService extends ILSPInjectedModuleService.Stub { + + private static final String TAG = "LSPosedInjectedModuleService"; + private final Module loadedModule; Map> callbacks = new ConcurrentHashMap<>(); @@ -38,7 +42,11 @@ public class LSPInjectedModuleService extends ILSPInjectedModuleService.Stub { if (callback != null) { var groupCallbacks = callbacks.computeIfAbsent(group, k -> ConcurrentHashMap.newKeySet()); groupCallbacks.add(callback); - callback.asBinder().unlinkToDeath(() -> groupCallbacks.remove(callback), 0); + try { + callback.asBinder().linkToDeath(() -> groupCallbacks.remove(callback), 0); + } catch (RemoteException e) { + Log.w(TAG, "requestRemotePreferences: ", e); + } } return bundle; }