Skip to content

Commit 8380887

Browse files
committed
refactor(dexkit): Use DexKitCacheBridge for caching and optimize the cache retrieval method
1 parent 77367b2 commit 8380887

6 files changed

Lines changed: 663 additions & 596 deletions

File tree

app/src/main/java/com/sevtinge/hyperceiler/settings/development/DevelopmentFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.sevtinge.hyperceiler.libhook.utils.hookapi.dexkit.DexKit;
3636
import com.sevtinge.hyperceiler.provision.activity.DefaultActivity;
3737
import com.sevtinge.hyperceiler.utils.DialogHelper;
38+
import com.sevtinge.hyperceiler.utils.ScopeManager;
3839

3940
import fan.appcompat.app.AlertDialog;
4041
import fan.provision.OobeUtils;
@@ -74,7 +75,7 @@ public boolean onPreferenceClick(@NonNull Preference preference) {
7475
showInDialog(command -> showOutDialog(rootExecCmd(command)));
7576
case "prefs_key_development_delete_all_dexkit_cache" ->
7677
DialogHelper.showDialog(getActivity(), com.sevtinge.hyperceiler.core.R.string.warn, R.string.delete_all_dexkit_cache_desc, (dialog, which) -> {
77-
DexKit.deleteAllCache(requireActivity());
78+
DexKit.deleteAllCache(requireActivity(), ScopeManager.getScopeSync());
7879
Toast.makeText(getActivity(), R.string.delete_all_dexkit_cache_success, Toast.LENGTH_LONG).show();
7980
});
8081
case "prefs_key_development_fix_lsposed_log" -> {

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ miuix = "1.0.12.5"
2020
# Xposed & Hooks
2121
xposed-api = "101.0.0"
2222
xposed-service = "101.0.0"
23-
dexkit = "2.0.7"
23+
dexkit = "2.1.0"
2424
ezxhelper = "3.1.1-rc1"
2525
hiddenapibypass = "6.1"
2626

library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/BaseHook.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,13 @@ private void ensureDexKitInitPhase(String apiName) {
134134
}
135135
}
136136

137+
private String namespacedDexKitKey(@NonNull String key) {
138+
return getClass().getSimpleName() + "#" + key;
139+
}
140+
137141
protected final <T> T requiredMember(@NonNull String key, @NonNull IDexKit finder) {
138142
ensureDexKitInitPhase("requiredMember");
139-
T member = DexKit.findMember(key, finder);
143+
T member = DexKit.findMember(namespacedDexKitKey(key), finder);
140144
if (member == null) {
141145
throw new IllegalStateException(TAG + ": required DexKit member not found: " + key);
142146
}
@@ -145,7 +149,7 @@ protected final <T> T requiredMember(@NonNull String key, @NonNull IDexKit finde
145149

146150
protected final <T> List<T> requiredMemberList(@NonNull String key, @NonNull IDexKitList finder) {
147151
ensureDexKitInitPhase("requiredMemberList");
148-
List<T> members = DexKit.findMemberList(key, finder);
152+
List<T> members = DexKit.findMemberList(namespacedDexKitKey(key), finder);
149153
if (members == null || members.isEmpty()) {
150154
throw new IllegalStateException(TAG + ": required DexKit member list not found: " + key);
151155
}
@@ -156,7 +160,7 @@ protected final <T> List<T> requiredMemberList(@NonNull String key, @NonNull IDe
156160
protected final <T> T optionalMember(@NonNull String key, @NonNull IDexKit finder) {
157161
ensureDexKitInitPhase("optionalMember");
158162
try {
159-
return DexKit.findMember(key, finder);
163+
return DexKit.findMember(namespacedDexKitKey(key), finder);
160164
} catch (Throwable t) {
161165
XposedLog.w(TAG, getPackageName(), "Optional DexKit member failed: " + key, t);
162166
return null;
@@ -167,7 +171,7 @@ protected final <T> T optionalMember(@NonNull String key, @NonNull IDexKit finde
167171
protected final <T> List<T> optionalMemberList(@NonNull String key, @NonNull IDexKitList finder) {
168172
ensureDexKitInitPhase("optionalMemberList");
169173
try {
170-
List<T> members = DexKit.findMemberList(key, finder);
174+
List<T> members = DexKit.findMemberList(namespacedDexKitKey(key), finder);
171175
return members != null ? members : Collections.emptyList();
172176
} catch (Throwable t) {
173177
XposedLog.w(TAG, getPackageName(), "Optional DexKit member list failed: " + key, t);

0 commit comments

Comments
 (0)