[DEV] Getting Xposed working on 64-bit Samsung devices

This is for developers, willing to contribute in for fixing Xposed on 64-bit Samsung devices.
If you’re just a regular user, please don’t post on this thread.

Now that deodexing Android 5.1 firmware is possible, I went on porting Xposed to Galaxy S6 Android 5.1 with almost the same procedures that I’ve done with Sammy’s Android 5.0, but now with AArch64 compilation.

I managed to fix core-libart.jar to match AOSP’s style until the point where Zygote completely dies without complaining which functions are missing or malfunctioning.
Seems like Samsung has played around ART runtime even more with 64-bit devices.
(PS, deodex’ed firmware without installing Xposed’s new files boots just fine without issues)

Built with GCC 4.9:
Logcat – http://pastebin.com/WXvryB0m
Tombstone – http://pastebin.com/pKzb47nm

Sources are available at https://github.com/arter97/android_a…g-lollipop-5.1 and
modified core-libart.jar is at http://www.arter97.com/browse/tmp/core-libart.jar

Re-building ART runtime completely with Clang compiler has revealed slight more debugging info.
Clang tombstone – http://pastebin.com/Ngemxy4H
Seems like somewhere between artAllocArrayFromCodeResolvedRosAllocInstrumented and BuildArgArrayFromObjectArray is causing boot issues.

oatdump can get somewhat debuggable info but I’ve yet to find a relation with the crash.

@wanam also reported the almost same issue on Android 5.0 – https://github.com/rovo89/android_art/issues/9
This issue also made me think that it actually might be the Exynos 7420 issue itself, and Samsung has implemented a workaround just for it,
considering there’re some AArch64 erratum fix commits – https://github.com/arter97/android_a…1b78239ed702b2 &https://github.com/arter97/android_a…582e4a50a9ca4d

About the author


View all posts

Leave a Reply

Your email address will not be published. Required fields are marked *