Skip to content

Commit 0a2c568

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

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

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

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
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;
@@ -26,18 +28,20 @@ public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageP
2628
return;
2729
}
2830
if(loadPackageParam.packageName.equals("android")){
29-
XposedModule.staticLoadPackageParam = loadPackageParam;
30-
XposedBridge.log("[fcmfix] start hook com.android.server.am.ActivityManagerService");
31-
new BroadcastFix(loadPackageParam);
31+
new Handler(Looper.getMainLooper()).postDelayed(() -> {
32+
XposedModule.staticLoadPackageParam = loadPackageParam;
33+
XposedBridge.log("[fcmfix] start hook com.android.server.am.ActivityManagerService");
34+
new BroadcastFix(loadPackageParam);
3235

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

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

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

4347
if(loadPackageParam.packageName.equals("com.google.android.gms") && loadPackageParam.isFirstApplication){
@@ -51,7 +55,6 @@ public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageP
5155
XposedBridge.log("[fcmfix] start hook com.miui.powerkeeper");
5256
new PowerkeeperFix(loadPackageParam);
5357
}
54-
5558
}
5659
private boolean fileIsExists(String strFile) {
5760
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)