考虑更新下模拟器支持方面吗
bananaheaven opened this issue · 5 comments
目前模块只使用_ZN7android26NativeBridgeLoadLibraryExtEPKciPNS_25native_bridge_namespace_tE
这个符号,它只能在安卓8.0~安卓10.0上使用
安卓8以前没有NativeBridgeLoadLibraryExt
只有NativeBridgeLoadLibrary
安卓10以后符号变成了NativeBridgeLoadLibraryExt
考虑换成NativeBridgeItf
这个固定符号或者把三种情况都获取一遍
另外现在模块需要复制文件到/data/local/tmp
,可以考虑直接从内存载入而不需要复制,参考
https://github.com/Perfare/Zygisk-Il2CppDumper/blob/70b95e88e738510bdf2574561e21280bc1d35f20/module/src/main/cpp/main.cpp#L55-L73
好思路,偷了
不过安卓8以前
这个我以前只在mumu模拟器上测试过,然而以前没有调用JNI_OnLoad
函数,现在也没有环境测试,总之先加上
兼容性更新了一下,应该能支持houdini v2
了
内存加载的话,稍微测试了一下,模拟器上在preAppSpecialize
阶段无法读取/sdcard/.../il2cpp
文件夹,没法自动识别应用是否为il2cpp
后端的话,每打开一个应用都需要在preAppSpecialize
阶段读取armxxx.so
然后在postAppSpecialize
阶段判断是否加载,那还不如保持原方案,还能减少一点文件读取。
感谢你的更新,其实判断是否是il2cpp游戏的话可以考虑判断是否在lib下存在libil2cpp.so?
另外考虑使用内存载入的还有一个原因是可以在maps隐藏,有些加固会检查maps,目前模块的逻辑是只要是il2cpp游戏就载入,会导致被游戏检测闪退,如果使用magisk的排除列表又会与shamiko冲突
@bananaheaven 高版本Android的lib目录是乱码获取不到
@bananaheaven 从maps隐藏的话下次加上