use of com.lody.virtual.remote.AppTaskInfo in project VirtualApp by asLody.
the class TaskRecord method getAppTaskInfo.
AppTaskInfo getAppTaskInfo() {
int len = activities.size();
if (len <= 0) {
return null;
}
ComponentName top = activities.get(len - 1).component;
return new AppTaskInfo(taskId, taskRoot, taskRoot.getComponent(), top);
}
use of com.lody.virtual.remote.AppTaskInfo in project VirtualApp by asLody.
the class ActivityManagerPatch method onBindHooks.
@Override
protected void onBindHooks() {
super.onBindHooks();
if (VirtualCore.get().isVAppProcess()) {
addHook(new ReplaceLastUidHook("checkPermissionWithToken"));
addHook(new isUserRunning());
addHook(new ResultStaticHook("updateConfiguration", 0));
addHook(new ReplaceCallingPkgHook("setAppLockedVerifying"));
addHook(new StaticHook("checkUriPermission") {
@Override
public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable {
return PackageManager.PERMISSION_GRANTED;
}
});
addHook(new StaticHook("getRecentTasks") {
@Override
public Object call(Object who, Method method, Object... args) throws Throwable {
Object _infos = method.invoke(who, args);
//noinspection unchecked
List<ActivityManager.RecentTaskInfo> infos = ParceledListSliceCompat.isReturnParceledListSlice(method) ? ParceledListSlice.getList.call(_infos) : (List) _infos;
for (ActivityManager.RecentTaskInfo info : infos) {
AppTaskInfo taskInfo = VActivityManager.get().getTaskInfo(info.id);
if (taskInfo == null) {
continue;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
info.baseActivity = taskInfo.baseActivity;
info.topActivity = taskInfo.topActivity;
}
info.origActivity = taskInfo.baseActivity;
info.baseIntent = taskInfo.baseIntent;
}
return _infos;
}
});
}
}
use of com.lody.virtual.remote.AppTaskInfo in project VirtualApp by asLody.
the class GetTasks method call.
@Override
public Object call(Object who, Method method, Object... args) throws Throwable {
List<ActivityManager.RunningTaskInfo> runningTaskInfos = (List<ActivityManager.RunningTaskInfo>) method.invoke(who, args);
for (ActivityManager.RunningTaskInfo info : runningTaskInfos) {
AppTaskInfo taskInfo = VActivityManager.get().getTaskInfo(info.id);
if (taskInfo != null) {
info.topActivity = taskInfo.topActivity;
info.baseActivity = taskInfo.baseActivity;
}
}
return runningTaskInfos;
}
Aggregations