Closed abforce closed 7 years ago
If you could share how you got xposed on the device I could try help. However I won't be able to compile it myself.
According to the log system/app/zzz/oat/arm64/zzz.odex
Is dying. But is that the reason for the bootloop? Or is there a bin called user.zzz_service_32
Because it is being killed, what happen if you disable it
@abforce @laststandingdroid how can i install your xposed on my phone ? or should i compile the rom for my phone ?
@vipzrx @laststandingdroid You can't install this Xposed on your devices. This is just a modified ART module which enables the ROM to have Xposed installed out-of-the-box without requiring users to root their phones.
@abforce i just have an OnePlusOne , it is not supported by google aosp . may be i can build my ROM for OnePlus using the Lineage OS
@vipzrx No need to run on your phone. You can use emulators.
It's not your VisitRoots
function, it's art::Thread::VisitRoots(art::RootVisitor*). And based on the calling stack, It crash somewhere in function art::ReferenceMapVisitor\<art::RootCallbackVisitor>::VisitQuickFrame(). I don't think it has involved in your function...
I guess it visited some corrupt stack data... anyway it's doing something on a... object(?) that have not such operation (?)
And I feel this line seems wired...
It has a hint said // Process register map (which native and runtime methods don't have)
and based on your comment here https://github.com/abforce/xposed_art_n/commit/1d14337b858cabd184335804b178f16849186f89#diff-cf0dabb8669f8065d895db3a6d69b6daR472 I'm thinking should it also have a !m->IsXposedHookedMethod()
aka if (!m->IsNative() && !m->IsRuntimeMethod() && !m->IsXposedHookedMethod() && (!m->IsProxyMethod() || m->IsConstructor())) {
? Because of some function maybe native... and XPrivacy hooked it? So when it try to visit it, it crash.
I'm just guessing on all these things, so I'm not sure it's right or wrong and you can test them.... I think...
Yes but how to enable it? Must be built from source?
I already made a pull request for part of these modifications: #16
I have the same problem, but use the purifyOS version / sdk24 https://ufile.io/unfyz <logcat
@amakuramio from your log, it looks like there are two threads (sysTid=5127 and sysTid=4303) try to lock mutator lock
... Since they're called from jni, their states are both Runnable
so nobody can enter this lock... (which has a checkpoint when returns from jni)
And then they time out.
I'm not sure why there will be two threads.. Am I misunderstanding something? But I suggest add a lock to ensure only one thread call from xposedbridge to native code..
Or use a native thread to suspend all.. (I' m not familiar with android, it looks like a thread with native status is safe)
@abforce @ahronshor
@Yangff I did the following to fix it>
fixed, no problems
The problem solved. Using the new XposedBridge everything seems to be working fine.
After installing compiled version with all new commits i was able to boot the system. Then i rebooted and couldn't boot anymore. I tried to restore /system backup. Didn't help. I tried to return old XposedBridge.jar. Didn't help. Removing dalvik/art cache via TWRP didn't help. Removing /data/system/xprivacy didn't help. It means that i have something wrong with /data partition. I could detele Xprivacy or XposedBridge.jar and boot the system normally but it is not an option. I couldn't find what cause this problem (bootloop) and just restored my old /data partition backup.
So, @abforce, it needs more investigations... Here is the link to logs: https://gist.github.com/avently/99cd3aa80e1502e747802ce04e6964a8
@avently Did you merge this commit to your ART copy?
@abforce yes, I did. Maybe I found what causes this situation. It's enabled LuckyPatcher module. Somehow it conflicts with Xprivacy and new XposedBridge. When I restored old /data I removed LuckyPatcher and replaced old bridge with new one. No bootloop, worked fine. Then I installed lucky and enabled module. Bootloop. Can you reproduce it?
Tested with four or five modules, all works flawlessly. but XPrivacy doesn't. Thanks to logcat, I am given the following log:
I suspect that's because of my blind port of
VisitRoots
method.