WindySha / Xpatch

This is a tool to repackage apk file, then the apk can load any xposed modules installed in the device. It is another way to hook an app without root device.
Apache License 2.0
2.54k stars 388 forks source link

神奇的so找不到问题 #42

Closed HuRuWo closed 4 years ago

HuRuWo commented 4 years ago

我尝试打包 闲鱼 app ,发现无法加载libflutter.so 。 排查原因是因为 在复制so的时候 ,在原lib下多创建了 armeabi-v7a 和 arm64-v8a 文件夹 导致在真机上面 直接去arm64-v8a 下寻找so 但是 arm64-v8a 下只有一个 sandhook.so 文件


修复办法 SoAndDexCopyTask.java 文件里面 删掉不必要的so文件路径

比如只保留 armeabi 文件夹 和 原app一致

private final String[] APK_LIB_PATH_ARRAY = {
            //"lib/armeabi-v7a/",
            "lib/armeabi/",
            //"lib/arm64-v8a/"
    };

    private final HashMap<String, String> SO_FILE_PATH_MAP = new HashMap<String, String>() {
        {
            //put(APK_LIB_PATH_ARRAY[0], "assets/lib/armeabi-v7a/" + SO_FILE_NAME);
            put(APK_LIB_PATH_ARRAY[0], "assets/lib/armeabi-v7a/" + SO_FILE_NAME);
            //put(APK_LIB_PATH_ARRAY[2], "assets/lib/arm64-v8a/" + SO_FILE_NAME);
        }
    };
WindySha commented 4 years ago

3.0版本修复此问题