Don't remove SafetyNet from hide list
This commit is contained in:
parent
da0a72e8b0
commit
981e90cc32
@ -118,12 +118,7 @@ public class ApplicationAdapter extends SectionedAdapter
|
|||||||
int index = getItemPosition(section, 0);
|
int index = getItemPosition(section, 0);
|
||||||
holder.checkBox.setOnStateChangedListener((IndeterminateCheckBox box, @Nullable Boolean status) -> {
|
holder.checkBox.setOnStateChangedListener((IndeterminateCheckBox box, @Nullable Boolean status) -> {
|
||||||
if (status != null) {
|
if (status != null) {
|
||||||
for (HideProcessInfo p : app.processList) {
|
setHide(status, app);
|
||||||
String cmd = Utils.fmt("magiskhide --%s %s %s",
|
|
||||||
status ? "add" : "rm", app.info.packageName, p.name);
|
|
||||||
Shell.su(cmd).submit();
|
|
||||||
p.hidden = status;
|
|
||||||
}
|
|
||||||
if (app.expanded)
|
if (app.expanded)
|
||||||
notifyItemRangeChanged(index, app.processList.size());
|
notifyItemRangeChanged(index, app.processList.size());
|
||||||
}
|
}
|
||||||
@ -152,19 +147,17 @@ public class ApplicationAdapter extends SectionedAdapter
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindItemViewHolder(ProcessViewHolder holder, int section, int position) {
|
public void onBindItemViewHolder(ProcessViewHolder holder, int section, int position) {
|
||||||
HideAppInfo hideApp = showList.get(section);
|
HideAppInfo app = showList.get(section);
|
||||||
HideProcessInfo target = hideApp.processList.get(position);
|
HideProcessInfo target = app.processList.get(position);
|
||||||
holder.process.setText(target.name);
|
holder.process.setText(target.name);
|
||||||
holder.checkbox.setOnCheckedChangeListener(null);
|
holder.checkbox.setOnCheckedChangeListener(null);
|
||||||
holder.checkbox.setChecked(target.hidden);
|
holder.checkbox.setChecked(target.hidden);
|
||||||
holder.checkbox.setOnCheckedChangeListener((v, checked) -> {
|
holder.checkbox.setOnCheckedChangeListener((v, checked) -> {
|
||||||
Shell.su(Utils.fmt("magiskhide --%s %s %s", checked ? "add" : "rm",
|
setHide(checked, app, target);
|
||||||
hideApp.info.packageName, target.name)).submit();
|
|
||||||
target.hidden = checked;
|
|
||||||
notifyItemChanged(getSectionPosition(section));
|
notifyItemChanged(getSectionPosition(section));
|
||||||
});
|
});
|
||||||
getMargins(holder).bottomMargin =
|
getMargins(holder).bottomMargin =
|
||||||
position == hideApp.processList.size() - 1 ? BOTTOM_MARGIN : 0;
|
position == app.processList.size() - 1 ? BOTTOM_MARGIN : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void filter(String constraint) {
|
public void filter(String constraint) {
|
||||||
@ -187,6 +180,30 @@ public class ApplicationAdapter extends SectionedAdapter
|
|||||||
AsyncTask.SERIAL_EXECUTOR.execute(this::loadApps);
|
AsyncTask.SERIAL_EXECUTOR.execute(this::loadApps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setHide(boolean add, HideAppInfo app) {
|
||||||
|
if (add) {
|
||||||
|
StreamSupport.stream(app.processList).forEach(p -> setHide(true, app, p));
|
||||||
|
} else {
|
||||||
|
if (StreamSupport.stream(app.processList)
|
||||||
|
.anyMatch(p -> p.name.equals(SAFETYNET_PROCESS))) {
|
||||||
|
StreamSupport.stream(app.processList).forEach(p -> setHide(false, app, p));
|
||||||
|
} else {
|
||||||
|
// Quick removal
|
||||||
|
Shell.su("magiskhide --rm " + app.info.packageName).submit();
|
||||||
|
StreamSupport.stream(app.processList).forEach(p -> p.hidden = false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setHide(boolean add, HideAppInfo app, HideProcessInfo process) {
|
||||||
|
// Don't remove SafetyNet
|
||||||
|
if (!add && process.name.equals(SAFETYNET_PROCESS))
|
||||||
|
return;
|
||||||
|
Shell.su(Utils.fmt("magiskhide --%s %s %s", add ? "add" : "rm",
|
||||||
|
app.info.packageName, process.name)).submit();
|
||||||
|
process.hidden = add;
|
||||||
|
}
|
||||||
|
|
||||||
private void addProcesses(Set<String> set, ComponentInfo[] infos) {
|
private void addProcesses(Set<String> set, ComponentInfo[] infos) {
|
||||||
if (infos != null)
|
if (infos != null)
|
||||||
for (ComponentInfo info : infos)
|
for (ComponentInfo info : infos)
|
||||||
|
Loading…
Reference in New Issue
Block a user