-
-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
android: Handle correctly the CMC GC strategy #326
Conversation
Thanks! 💥 Just applied some style tweaks and refactored a little bit. It would take me some time to be able to test this code though, so was wondering if you could take it for a quick spin? :) |
I've tested on 3 devices and it looks like it is working fine |
Equivalent to the system version on Android 14.
- With Google Play System Updates the base version of libart may differ from the Android version. For example, an Android 12 system could be using libart equivalent to the system version on Android 14. - The function we were hooking in the MarkCompact GC was not the right spot to update the class pointers, causing crashes after some time. Fixes frida#323, for real this time.
Thanks! 🙌 |
This fails in Android 15/SDK35 though:
This is because
The function |
[Related Issues]
Thank you, you saved me! Hooking art::Thread::RunFlipFunction function is work well for me.
But, Frida 16.4.7 don't have the feature bypassing RunFlipFunction on Frida native support. |
the fix is incomplete and introduce new bug, I added some comments, I also create new pull to correct it (I didnot add #330 fix, it should be merged seperately) |
When the fix is merged, it introduces new issue, exportName is never null, it always attaches to null functions, then crash our server.
Fixes #323.
The fix in #325 had 2 problems:
The proposed solution to the first point is to check if an exported symbol introduced in libart 34 is present.
The solution for the second problem is to hook the onEnter of art::Thread::RunFlipFunction