Revert to old behavior on old MagiskHide versions

This commit is contained in:
topjohnwu 2019-03-27 20:43:38 -04:00
parent 8e9a7b25a1
commit 10f50e2401

View File

@ -39,6 +39,7 @@ import java.util.Set;
import butterknife.BindView; import butterknife.BindView;
import java9.util.Comparators; import java9.util.Comparators;
import java9.util.Objects; import java9.util.Objects;
import java9.util.Sets;
import java9.util.stream.Collectors; import java9.util.stream.Collectors;
import java9.util.stream.Stream; import java9.util.stream.Stream;
import java9.util.stream.StreamSupport; import java9.util.stream.StreamSupport;
@ -48,6 +49,7 @@ public class ApplicationAdapter extends SectionedAdapter
private static final String SAFETYNET_PROCESS = "com.google.android.gms.unstable"; private static final String SAFETYNET_PROCESS = "com.google.android.gms.unstable";
private static final String GMS_PACKAGE = "com.google.android.gms"; private static final String GMS_PACKAGE = "com.google.android.gms";
private static boolean old_hide = false;
/* A list of apps that should not be shown as hide-able */ /* A list of apps that should not be shown as hide-able */
private static final List<String> HIDE_BLACKLIST = Arrays.asList( private static final List<String> HIDE_BLACKLIST = Arrays.asList(
@ -243,17 +245,21 @@ public class ApplicationAdapter extends SectionedAdapter
fullList = StreamSupport.stream(pm.getInstalledApplications(0)) fullList = StreamSupport.stream(pm.getInstalledApplications(0))
.filter(info -> !HIDE_BLACKLIST.contains(info.packageName) && info.enabled) .filter(info -> !HIDE_BLACKLIST.contains(info.packageName) && info.enabled)
.map(info -> { .map(info -> {
Set<String> set = new ArraySet<>(); if (old_hide) {
PackageInfo pkg = getPackageInfo(info.packageName); return new HideAppInfo(info, Sets.of(info.packageName));
if (pkg != null) { } else {
addProcesses(set, pkg.activities); Set<String> set = new ArraySet<>();
addProcesses(set, pkg.services); PackageInfo pkg = getPackageInfo(info.packageName);
addProcesses(set, pkg.receivers); if (pkg != null) {
addProcesses(set, pkg.providers); addProcesses(set, pkg.activities);
addProcesses(set, pkg.services);
addProcesses(set, pkg.receivers);
addProcesses(set, pkg.providers);
}
if (set.isEmpty())
return null;
return new HideAppInfo(info, set);
} }
if (set.isEmpty())
return null;
return new HideAppInfo(info, set);
}).filter(Objects::nonNull).sorted() }).filter(Objects::nonNull).sorted()
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -368,13 +374,14 @@ public class ApplicationAdapter extends SectionedAdapter
String process; String process;
HideTarget(String line) { HideTarget(String line) {
String[] split = line.split("\\|"); String[] split = line.split("\\|", 2);
pkg = split[0]; pkg = split[0];
if (split.length >= 2) { if (split.length == 2) {
process = split[1]; process = split[1];
} else { } else {
// Backwards compatibility // Backwards compatibility
process = pkg.equals(GMS_PACKAGE) ? SAFETYNET_PROCESS : pkg; old_hide = true;
process = pkg;
} }
} }
} }