MethodProxies.java 文件源码

java
阅读 36 收藏 0 点赞 0 评论 0

项目:VirtualHook 作者:
@Override
public Object call(Object who, Method method, Object... args) throws Throwable {
    boolean slice = ParceledListSliceCompat.isReturnParceledListSlice(method);
    int userId = VUserHandle.myUserId();
    List<ResolveInfo> appResult = VPackageManager.get().queryIntentReceivers((Intent) args[0], (String) args[1],
            (Integer) args[2], userId);
    Object _hostResult = method.invoke(who, args);
    List<ResolveInfo> hostResult = slice ? ParceledListSlice.getList.call(_hostResult)
            : (List) _hostResult;
    Iterator<ResolveInfo> iterator = hostResult.iterator();
    while (iterator.hasNext()) {
        ResolveInfo info = iterator.next();
        if (info == null || info.activityInfo == null || !isVisiblePackage(info.activityInfo.applicationInfo)) {
            iterator.remove();
        }
    }
    appResult.addAll(hostResult);
    if (slice) {
        return ParceledListSliceCompat.create(appResult);
    }
    return appResult;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号