Skip to content

Commit

Permalink
Update Hook Method.
Browse files Browse the repository at this point in the history
  • Loading branch information
HChenX committed Aug 26, 2023
1 parent 9740fe8 commit e06536f
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 12 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ android {
//noinspection OldTargetApi
targetSdk 33
//noinspection HighAppVersionCode
versionCode 2023082406
versionName "3.3"
versionCode 2023082601
versionName "3.4"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.release
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/Com/HChen/Hook/HookName/SystemName.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ public final class SystemName {
public static final String performIdleMaintenance = "performIdleMaintenance";
public static final String getAppStartModeLOSP = "getAppStartModeLOSP";
public static final String killAppIfBgRestrictedAndCachedIdleLocked = "killAppIfBgRestrictedAndCachedIdleLocked";
public static final String updateBackgroundRestrictedForUidPackageLocked = "updateBackgroundRestrictedForUidPackageLocked";
public static final String runKillAll = "runKillAll";
public static final String shouldKillExcessiveProcesses = "shouldKillExcessiveProcesses";
public static final String updateAndTrimProcessLSP = "updateAndTrimProcessLSP";
public static final String trimPhantomProcessesIfNecessary = "trimPhantomProcessesIfNecessary";
public static final String trimInactiveRecentTasks = "trimInactiveRecentTasks";
public static final String isInVisibleRange = "isInVisibleRange";
public static final String run = "run";
public static final String killPids = "killPids";
public static final String killAllBackgroundProcesses = "killAllBackgroundProcesses";
public static final String getDefaultMaxCachedProcesses = "getDefaultMaxCachedProcesses";
public static final String updateMaxCachedProcesses = "updateMaxCachedProcesses";
public static final String updateKillBgRestrictedCachedIdle = "updateKillBgRestrictedCachedIdle";
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/Com/HChen/Hook/HookValue/MiuiValue.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ public final class MiuiValue {
public static final String MiuiMemReclaimer = "com.android.server.am.MiuiMemReclaimer";
/*MiuiFramework*/
public static final String ProcessManager = "miui.process.ProcessManager";
public static final String PressureStateSettings = "android.os.spc.PressureStateSettings";

}
10 changes: 10 additions & 0 deletions app/src/main/java/Com/HChen/Hook/MiuiFramework/PowerKeeper.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,15 @@ protected void before(XC_MethodHook.MethodHookParam param) {
}
}
);

findAndHookConstructor(PressureStateSettings,
new HookAction() {
@Override
protected void after(MethodHookParam param) {
setLog(PressureStateSettings, "PROCESS_CLEANER_ENABLED");
setBoolean(param.thisObject, "PROCESS_CLEANER_ENABLED", false);
}
}
);
}
}
46 changes: 36 additions & 10 deletions app/src/main/java/Com/HChen/Hook/SystemService/SystemService.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,20 @@ protected void before(XC_MethodHook.MethodHookParam param) {
}
);//

/*禁用killPids_此方法牵扯过多且不适合Hook。方法可用于处理表面内存不足的情况,但这是合理的*/
/*findAndHookMethod("com.android.server.am.ActivityManagerService",
"killPids", int[].class, String.class, boolean.class,
/*禁用killPids_根据adj计算最差类型pid并kill
X此方法牵扯过多且不适合Hook。方法可用于处理表面内存不足的情况,但这是合理的X*/
findAndHookMethod(ActivityManagerService,
killPids, int[].class, String.class, boolean.class,
new HookAction() {
@Override
protected void before(XC_MethodHook.MethodHookParam param) {
logSI("Hook killPids");
setLog(ActivityManagerService, killPids);
param.setResult(true);
}
}
);*/
);

/*禁止killProcessesBelowForeground*/
/*禁止killProcessesBelowForeground_和下面重复*/
/*findAndHookMethod("com.android.server.am.ActivityManagerService",
"killProcessesBelowForeground", String.class,
new HookAction() {
Expand All @@ -60,6 +61,18 @@ protected void before(XC_MethodHook.MethodHookParam param) {
}
);

/*禁止清理全部后台*/
findAndHookMethod(ActivityManagerService,
killAllBackgroundProcesses,
new HookAction() {
@Override
protected void before(MethodHookParam param) {
setLog(ActivityManagerService, killAllBackgroundProcesses);
param.setResult(null);
}
}
);

/*禁止清理空进程_空进程不包含任何活动,清理是合理的*/
/*findAndHookMethod("com.android.server.am.ActivityManagerService",
"trimApplicationsLocked", boolean.class, String.class,
Expand All @@ -83,8 +96,8 @@ protected void before(XC_MethodHook.MethodHookParam param) {
}
);

/*关闭后台服务限制*/
findAndHookMethod(ActivityManagerService,
/*关闭后台服务限制_可能导致后台异常*/
/*findAndHookMethod(ActivityManagerService,
getAppStartModeLOSP, int.class, String.class, int.class, int.class, boolean.class, boolean.class, boolean.class, String.class,
new HookAction() {
@Override
Expand All @@ -93,9 +106,9 @@ protected void before(XC_MethodHook.MethodHookParam param) {
param.setResult(0);
}
}
);
);*/

/*禁止停止后台空闲服务_与getAppStartModeLOSP的Hook重复*/
/*禁止停止后台空闲服务_与getAppStartModeLOSP的Hook重复_不适合存活的service应该杀掉*/
/* findAndHookMethod("com.android.server.am.ActiveServices",
"stopInBackgroundLocked", int.class,
new HookAction() {
Expand All @@ -119,6 +132,19 @@ protected void before(XC_MethodHook.MethodHookParam param) {
}
);

/*去除受限限制*/
findAndHookMethod(ProcessList,
updateBackgroundRestrictedForUidPackageLocked,
int.class, String.class, boolean.class,
new HookAction() {
@Override
protected void before(MethodHookParam param) {
setLog(ProcessList, updateBackgroundRestrictedForUidPackageLocked);
param.args[2] = false;
}
}
);

/*禁止使用命令停止全部活动*/
hookAllMethods(ActivityManagerShellCommand,
runKillAll,
Expand Down

0 comments on commit e06536f

Please sign in to comment.