Skip to content

Commit ff2fbf7

Browse files
committed
android系统的hooker延迟一分钟执行(方便造成系统崩溃时卸载..)
1 parent 757a415 commit ff2fbf7

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

app/src/main/java/com/kooritea/fcmfix/XposedMain.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
import android.annotation.SuppressLint;
44
import android.os.Build;
5+
import android.os.Handler;
6+
import android.os.Looper;
57

68
import com.kooritea.fcmfix.xposed.AutoStartFix;
79
import com.kooritea.fcmfix.xposed.BroadcastFix;
810
import com.kooritea.fcmfix.xposed.KeepNotification;
911
import com.kooritea.fcmfix.xposed.MiuiLocalNotificationFix;
1012
import com.kooritea.fcmfix.xposed.PowerkeeperFix;
1113
import com.kooritea.fcmfix.xposed.ReconnectManagerFix;
14+
import com.kooritea.fcmfix.xposed.Test;
1215
import com.kooritea.fcmfix.xposed.XposedModule;
1316

1417
import java.io.File;
@@ -26,18 +29,20 @@ public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageP
2629
return;
2730
}
2831
if(loadPackageParam.packageName.equals("android")){
29-
XposedModule.staticLoadPackageParam = loadPackageParam;
30-
XposedBridge.log("[fcmfix] start hook com.android.server.am.ActivityManagerService");
31-
new BroadcastFix(loadPackageParam);
32+
new Handler(Looper.getMainLooper()).postDelayed(() -> {
33+
XposedModule.staticLoadPackageParam = loadPackageParam;
34+
XposedBridge.log("[fcmfix] start hook com.android.server.am.ActivityManagerService");
35+
new BroadcastFix(loadPackageParam);
3236

33-
XposedBridge.log("[fcmfix] start hook com.android.server.notification.NotificationManagerServiceInjector");
34-
new MiuiLocalNotificationFix(loadPackageParam);
37+
XposedBridge.log("[fcmfix] start hook com.android.server.notification.NotificationManagerServiceInjector");
38+
new MiuiLocalNotificationFix(loadPackageParam);
3539

36-
XposedBridge.log("[fcmfix] com.android.server.am.BroadcastQueueInjector.checkApplicationAutoStart");
37-
new AutoStartFix(loadPackageParam);
40+
XposedBridge.log("[fcmfix] com.android.server.am.BroadcastQueueInjector.checkApplicationAutoStart");
41+
new AutoStartFix(loadPackageParam);
3842

39-
XposedBridge.log("[fcmfix] com.android.server.notification.NotificationManagerService");
40-
new KeepNotification(loadPackageParam);
43+
XposedBridge.log("[fcmfix] com.android.server.notification.NotificationManagerService");
44+
new KeepNotification(loadPackageParam);
45+
}, 60000);
4146
}
4247

4348
if(loadPackageParam.packageName.equals("com.google.android.gms") && loadPackageParam.isFirstApplication){
@@ -51,7 +56,6 @@ public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageP
5156
XposedBridge.log("[fcmfix] start hook com.miui.powerkeeper");
5257
new PowerkeeperFix(loadPackageParam);
5358
}
54-
5559
}
5660
private boolean fileIsExists(String strFile) {
5761
try {

app/src/main/java/com/kooritea/fcmfix/xposed/BroadcastFix.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,9 @@ protected void startHookScheduleResultTo(){
210210
XposedBridge.hookMethod(method,new XC_MethodHook() {
211211
@Override
212212
protected void beforeHookedMethod(MethodHookParam methodHookParam) {
213+
if(methodHookParam.args[0] == null){
214+
return;
215+
}
213216
Intent intent = (Intent)XposedHelpers.getObjectField(methodHookParam.args[0],"intent");
214217
int resultCode = (int) XposedHelpers.getObjectField(methodHookParam.args[0],"resultCode");
215218
String packageName = intent.getPackage();
@@ -259,7 +262,7 @@ private static Bitmap getAppIcon(String packageName) {
259262
drawable.draw(new android.graphics.Canvas(bitmap));
260263
return bitmap;
261264
}
262-
} catch (PackageManager.NameNotFoundException e) {
265+
} catch (Exception e) {
263266
return null;
264267
}
265268
}

0 commit comments

Comments
 (0)