Tornaco/Thanox

请修复一下安卓低版本上的removeTasksForPackage无效,内存占用不显示等问题

Closed this issue · 3 comments

  1. 如下所有通过github.tornaco.android.thanos.core.app.ActivityManager.getAndroidService()获取IActivityManager需要判断如果不满足安卓版本O以上应为ActivityManagerNative.getDefault();否则会导致在安卓7.0上task.removeTasksForPackage无效,主界面内存环形图百分百始终为0且进程界面内存为0,以及最近任务卡片模糊无效等问题。
    public static void i0(int i) {
    try {
    github.tornaco.android.thanos.core.app.ActivityManager.getAndroidService().removeTask(i);
    } catch (RemoteException e) {
    lba.y("ActivityManager.getAndroidService().removeTask(taskId)", new Object[0], e);
    }
    }

thanox 5.2.5中的sp类,github.tornaco.android.thanos.core.app.ActivityManager$1类两个类中IActivityManager.Stub.asInterface(ServiceManager.getService("activity"));也要修改为ActivityManagerNative.getDefault();

  1. 在Android10及以上中mLruProcesses位于com.android.server.am.ProcessList;而Android9.0及以下中mLruProcesses位于
    com.android.server.am.ActivityManagerService;所以thanox5.2.5的j8,a9两个类中需要判断是否满足安卓版本Q以上。
    原有代码:
    H=a9Var.H();
    Object processListAsObject = XAMS.getProcessListAsObject(H);
    if (processListAsObject == null) {
    lba.v("isPackageRunningXOrNull processList is null.");
    } else {
    bool = Boolean.valueOf(XAMS.getLruProcessPackages(processListAsObject).contains(pkg2));
    }
    应该修改为:
    Object processListAsObject = XAMS.getProcessListAsObject(H);
    if (processListAsObject == null) {
    pba.V("isPackageRunningXOrNull processList is null.");
    } else {
    if (OsUtils.isQOrAbove()) {
    H = processListAsObject;
    }
    bool = Boolean.valueOf(XAMS.getLruProcessPackages(H).contains(pkg2));
    }

  2. 界面初始化时,app克隆【ic_nav_app_clone】应该加入版本判断OsUtils.isROrAbove.否则出现首次安装完毕xposed激活前出现app克隆功能,重启激活后该功能又消失的问题。问题代码在thanox5.2.5的cs6类中。

另外manifestPackageName【类名github.tornaco.android.thanos.core.pm.Package】是安卓O及以上才有的

@gameboyout 太棒了,我晚点改完试试,感谢!