Skip to content

Commit 0c43c3d

Browse files
committed
backup: apply Magisk hide/denylist rules only if it is enabled
In App Info tab, adding a package or process to Magisk hide/denylist continues to enable the feature automatically since it is done actively. Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
1 parent 7bc31a1 commit 0c43c3d

4 files changed

Lines changed: 14 additions & 14 deletions

File tree

app/src/main/java/io/github/muntashirakon/AppManager/backup/RestoreOp.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -609,15 +609,15 @@ private synchronized void restoreExtras() throws BackupException {
609609
case MAGISK_HIDE: {
610610
MagiskHideRule magiskHideRule = (MagiskHideRule) entry;
611611
if (magiskHideAvailable) {
612-
MagiskHide.apply(magiskHideRule.getMagiskProcess());
612+
MagiskHide.apply(magiskHideRule.getMagiskProcess(), false);
613613
} else {
614614
// Fall-back to Magisk DenyList
615-
MagiskDenyList.apply(magiskHideRule.getMagiskProcess());
615+
MagiskDenyList.apply(magiskHideRule.getMagiskProcess(), false);
616616
}
617617
break;
618618
}
619619
case MAGISK_DENY_LIST: {
620-
MagiskDenyList.apply(((MagiskDenyListRule) entry).getMagiskProcess());
620+
MagiskDenyList.apply(((MagiskDenyListRule) entry).getMagiskProcess(), false);
621621
break;
622622
}
623623
case NOTIFICATION:

app/src/main/java/io/github/muntashirakon/AppManager/details/info/AppInfoFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,7 +1217,7 @@ private void displayMagiskHideDialog() {
12171217
builder = getMagiskProcessDialog(mMagiskHiddenProcesses, (dialog, which, mp, isChecked) ->
12181218
ThreadUtils.postOnBackgroundThread(() -> {
12191219
mp.setEnabled(isChecked);
1220-
if (MagiskHide.apply(mp)) {
1220+
if (MagiskHide.apply(mp, true)) {
12211221
try (ComponentsBlocker cb = ComponentsBlocker.getMutableInstance(mPackageName, mUserId)) {
12221222
cb.setMagiskHide(mp);
12231223
mMainModel.getTagsAlteredLiveData().postValue(true);
@@ -1239,7 +1239,7 @@ private void displayMagiskDenyListDialog() {
12391239
builder = getMagiskProcessDialog(mMagiskDeniedProcesses, (dialog, which, mp, isChecked) ->
12401240
ThreadUtils.postOnBackgroundThread(() -> {
12411241
mp.setEnabled(isChecked);
1242-
if (MagiskDenyList.apply(mp)) {
1242+
if (MagiskDenyList.apply(mp, true)) {
12431243
try (ComponentsBlocker cb = ComponentsBlocker.getMutableInstance(mPackageName, mUserId)) {
12441244
cb.setMagiskDenyList(mp);
12451245
mMainModel.getTagsAlteredLiveData().postValue(true);

app/src/main/java/io/github/muntashirakon/AppManager/magisk/MagiskDenyList.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,23 @@ public static boolean enableIfNotAlready(boolean forceEnable) {
3939
} else return true;
4040
}
4141

42-
public static boolean apply(@NonNull MagiskProcess magiskProcess) {
42+
public static boolean apply(@NonNull MagiskProcess magiskProcess, boolean forceEnable) {
4343
String packageName = magiskProcess.isIsolatedProcess() && !magiskProcess.isAppZygote() ? ISOLATED_MAGIC
4444
: magiskProcess.packageName;
4545
if (magiskProcess.isEnabled()) {
46-
return add(packageName, magiskProcess.name);
46+
return add(packageName, magiskProcess.name, forceEnable);
4747
}
4848
return remove(packageName, magiskProcess.name);
4949
}
5050

51-
public static boolean add(String packageName, String processName) {
51+
private static boolean add(String packageName, String processName, boolean forceEnable) {
5252
// Check DenyList status
53-
if (!enableIfNotAlready(true)) return false;
53+
if (!enableIfNotAlready(forceEnable)) return false;
5454
// DenyList is enabled, enable hide for the package
5555
return Runner.runCommand(new String[]{"magisk", "--denylist", "add", packageName, processName}).isSuccessful();
5656
}
5757

58-
public static boolean remove(String packageName, String processName) {
58+
private static boolean remove(String packageName, String processName) {
5959
// Disable hide for the package (don't need to check for status)
6060
return Runner.runCommand(new String[]{"magisk", "--denylist", "rm", packageName, processName}).isSuccessful();
6161
}

app/src/main/java/io/github/muntashirakon/AppManager/magisk/MagiskHide.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,18 @@ public static boolean enableIfNotAlready(boolean forceEnable) {
3939
} else return true;
4040
}
4141

42-
public static boolean apply(@NonNull MagiskProcess magiskProcess) {
42+
public static boolean apply(@NonNull MagiskProcess magiskProcess, boolean forceEnable) {
4343
String packageName = magiskProcess.isIsolatedProcess() && !magiskProcess.isAppZygote() ? ISOLATED_MAGIC
4444
: magiskProcess.packageName;
4545
if (magiskProcess.isEnabled()) {
46-
return add(packageName, magiskProcess.name);
46+
return add(packageName, magiskProcess.name, forceEnable);
4747
}
4848
return remove(packageName, magiskProcess.name);
4949
}
5050

51-
private static boolean add(String packageName, String processName) {
51+
private static boolean add(String packageName, String processName, boolean forceEnable) {
5252
// Check MagiskHide status
53-
if (!enableIfNotAlready(true)) return false;
53+
if (!enableIfNotAlready(forceEnable)) return false;
5454
// MagiskHide is enabled, enable hide for the package
5555
return Runner.runCommand(new String[]{"magiskhide", "add", packageName, processName}).isSuccessful();
5656
}

0 commit comments

Comments
 (0)