Use component name as targets

Services can name their process name arbitrarily, for instance the service in
com.google.android.gms that is responsible for SafetyNet is named
com.google.android.gms.unstable. There are many apps out in the wild use
dedicated services with special names to detect root, and previously the user
is expected to add all of them to the hide list.

In this commit, we change from targeting process names to component names.
On Android, component names are composed of <pkg>/<cls>. When targeting
component names, we can always know what application spawned the new process.
This means that if the user adds a package name to the hidelist, MagiskHide can
now target ALL possible processes of that specific application.

To abide with this change, the default SafetyNet target is now changed from
com.google.android.gms.unstable (process name) to
com.google.android.gms/.droidguard.DroidGuardService (component name)
This commit is contained in:
topjohnwu
2018-11-23 15:47:49 -05:00
parent c8c57c74cc
commit 38fcc57bbf
4 changed files with 31 additions and 36 deletions

View File

@ -256,9 +256,9 @@ int exec_command(int err, int *fd, void (*cb)(void), const char *argv0, ...) {
}
char *strdup2(const char *s, size_t *size) {
size_t l = strlen(s) + 1;
char *buf = new char[l];
memcpy(buf, s, l);
if (size) *size = l;
size_t len = strlen(s) + 1;
char *buf = new char[len];
memcpy(buf, s, len);
if (size) *size = len;
return buf;
}