ElderDrivers / EdXposed

Elder driver Xposed Framework.
https://edxp.meowcat.org/
GNU General Public License v3.0
5.4k stars 624 forks source link

[BUG] Support Riru v.22 #616

Closed SecPhases closed 3 years ago

SecPhases commented 3 years ago

什么情况/What happened?

在Riru v22 Alpha2,Magisk 21001,Android 10环境下无法使用Edxposed 4564 YAHFA

Xposed模块列表/Xposed Module List

Magisk模块列表/Magisk Module List

EdXposed及Riru版本/Versions of EdXposed and Riru

EdXposed: v0.5.0.6(4564) YAHFA

Riru: v22.0-alpha02

相关Logcat/Logcat

Edxposed Manager 显示Edxposed框架未安装

MlgmXyysd commented 3 years ago

The 22.0 development document has not been updated. Before that, there is nothing we can do.

22.0: DO NOT upgrade until the modules you are using are updated.

dko4er commented 3 years ago

They updated the ModuleTemplate and added API changes. Can you take a look now?

Stillhard commented 3 years ago

They updated the ModuleTemplate and added API changes. Can you take a look now?

Yes, let's wait for @MlgmXyysd and team to release the new update for newest Riru's changes

kotori2 commented 3 years ago

I have already made a patch in my own fork. However due to the hide machanism in Riru 22, ART related libs can't be hooked anymore. So it is not even boot-able. We will wait for a fix from Riru. https://github.com/RikkaApps/Riru/issues/121

RikkaW commented 3 years ago

@kotori2 There is no "fix" from Riru.

Replace an existing file in /system with Magisk means detected with simple /proc/maps scan (files replaced by Magisk have a different device). There is no reliable way to run codes at the beginning without replacing an existing file.

ART related libs can't be hooked anymore.

Can you explain the purpose of hooking ART related libs? So maybe I or other people can provide some ideas to bypass this problem.

Furthermore, Magisk may provide Riru-like features in the far future and the plan is module codes can only be executed after fork. There is some xposed solution based on repacking apk, their codes run in the app process only (equals to run after fork), how did they work?

ChristophSchmidpeter commented 3 years ago

@kotori2 So #121 is blocking this issue? Because #121 seems to have been closed already.

kotori2 commented 3 years ago

@TitusLabienus I have already figured out a workaround. Currently stucked at cannot get ClassLinker instance.

ChristophSchmidpeter commented 3 years ago

@kotori2 Thanks for the reply.

Currently stucked at cannot get ClassLinker instance.

I don't fully understand how you mean this sentence. Do you mean that you are still trying to find a solution on how to get the ClassLinker instance? Or does it need to be fixed by somebody else and / or needs to be fixed in another module e.g. in Ruru.Core?

kotori2 commented 3 years ago

@TitusLabienus actually this was already fixed. Edxp now working on arm64 (but not arm) and x86_64. There are some issues with inline hook on arm. Waiting for a fix from Dobby

ChristophSchmidpeter commented 3 years ago

@kotori2 Ok, thanks!

christophe-95 commented 3 years ago

Hi, I give a try with latest EdXposed build from CI (V4607) but it still not working ? EdXposed Manager is reporting framework not installed

Latest riru V22 Magisk V21.1 Fairphone 3 Android 10

psychopathologist commented 3 years ago

Working here... https://github.com/ElderDrivers/EdXposed/issues/635#issuecomment-731762037

MlgmXyysd commented 3 years ago

623