android-hacker / VirtualXposed

A simple app to use Xposed without root, unlock the bootloader or modify system image, etc.
https://vxp.app
GNU General Public License v3.0
15.38k stars 2.48k forks source link

不支持安卓13吗 #1153

Open xxy123456 opened 1 year ago

xxy123456 commented 1 year ago

闪退

taitaking commented 1 year ago

我的也是13也是直接闪退

badboy-tian commented 1 year ago
 public Object call(Object who, Method method, Object... args) throws Throwable {
            String pkg = (String) args[0];
            int flags = 0;
            try{
                flags = (int) args[1];
            } catch (Throwable e) {
                flags = Integer.parseInt(args[1].toString());
            }

MethodProxies的call里面改成这样就行了 integer can not cast to Long

但是新问题又出来了

W/System.err: java.lang.ExceptionInInitializerError
W/System.err:     at com.lody.virtual.helper.compat.PackageParserCompat.createParser(PackageParserCompat.java:51)
W/System.err:     at com.lody.virtual.server.pm.parser.PackageParserEx.parsePackage(PackageParserEx.java:56)
W/System.err:     at com.lody.virtual.server.pm.VAppManagerService.installPackage(VAppManagerService.java:155)
W/System.err:     at com.lody.virtual.server.pm.VAppManagerService.installPackage(VAppManagerService.java:141)
W/System.err:     at com.lody.virtual.server.IAppManager$Stub.onTransact(IAppManager.java:116)
W/System.err:     at android.os.Binder.execTransactInternal(Binder.java:1285)
W/System.err:     at android.os.Binder.execTransact(Binder.java:1249)
W/System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object mirror.RefConstructor.newInstance()' on a null object reference
W/System.err:     at com.lody.virtual.helper.compat.PackageParserCompat.<clinit>(PackageParserCompat.java:47)
W/System.err:   ... 7 more
cloudslsw commented 1 year ago

我安卓13也是闪退,希望开发者能更新支持下

alberto-lazari commented 4 months ago

但是新问题又出来了

This is due to the fact that the class android.content.pm.PackageUserState has been removed in Android 13 and later, so it cannot be loaded in lib/src/main/java/mirror/android/content/pm/PackageUserState.java:

package mirror.android.content.pm;

import mirror.RefClass;
import mirror.RefConstructor;

public class PackageUserState {
    public static Class<?> TYPE = RefClass.load(PackageUserState.class, "android.content.pm.PackageUserState");
    public static RefConstructor<Object> ctor;
}

On Android > 12 both TYPE and ctor will be null

Android 13 introduced a similar class android.content.pm.pkg.FrameworkPackageUserStateDefault that could be exploited to get the Contructor