package com.lody.virtual.client.hook.patchs.pm;
import android.content.pm.ApplicationInfo;
import com.lody.virtual.client.hook.base.Hook;
import com.lody.virtual.client.ipc.VPackageManager;
import com.lody.virtual.helper.utils.ComponentUtils;
import com.lody.virtual.os.VUserHandle;
import java.lang.reflect.Method;
/**
* @author Lody
*
*/
/* package */ class GetApplicationInfo extends Hook {
@Override
public String getName() {
return "getApplicationInfo";
}
@Override
public Object call(Object who, Method method, Object... args) throws Throwable {
String pkg = (String) args[0];
int flags = (int) args[1];
if (getHostPkg().equals(pkg)) {
return method.invoke(who, args);
}
int userId = VUserHandle.myUserId();
ApplicationInfo applicationInfo = VPackageManager.get().getApplicationInfo(pkg, flags, userId);
if (applicationInfo != null) {
return applicationInfo;
}
applicationInfo = (ApplicationInfo) method.invoke(who, args);
if (applicationInfo != null) {
if (ComponentUtils.isSystemApp(applicationInfo)) {
return applicationInfo;
}
}
return null;
}
@Override
public boolean isEnable() {
return isAppProcess();
}
}