Remove All Ads from XDA

[OFFICIAL] Xposed for Lollipop/Marshmallow/Nougat [v88.2, 2017/10/30]

2,574 posts
Thanks Meter: 76,249
 
By rovo89, Senior Recognized Developer on 13th February 2015, 09:48 PM
Thread Closed Email Thread
28th January 2017, 07:34 PM |#41  
rovo89's Avatar
OP Senior Recognized Developer
Thanks Meter: 76,249
 
Donate to Me
More
It seems that more and more people get nervous about whether (and when) there will be Xposed for Nougat or not, so I felt I should say something.

Why does it take that long? Because with every release, I try to ensure that Xposed integrates nicely with the improvements in the new ART version. The step from Lollipop to Marshmallow wasn't huge. It was an evolution, some things even made it possible to integrate Xposed in a more elegant way. On the whole, it was mainly careful porting than rather innovating.

With Nougat, something fundamental has changed. If you're using Nougat already, you'll have noticed that installations are much faster now. That's because APKs aren't compiled immediately (AOT), but start in (slower) interpreting mode. Sounds bad, but they have enabled JIT, which will quickly compile those methods that are used very often. That will restore the well-known and constantly improving performance of native code. Besides that, ART keeps a list of these frequently used methods ("profiling"). When the device is idle, it finally does the AOT compilation, but based on the profiling data. After that, you get the great performance right after starting the app. JIT is still waiting in case the usage patterns change, and I think it will also adjust the profile and improve the AOT compilation.

That results in various different compilation states and more complexity. Besides that, there were many issues in the past caused by Xposed's need to recompile the whole ROM and all apps: It sometimes caused boot loops when the odex files were too heavily pre-optimized, it blocked quite some storage space to store the recompiled files, and I needed to disable some optimizations like inlining and direct pointer calls. I hope that I can make use of the JIT compiler to avoid that in Nougat. If Xposed knew from where a method is called, it could invalidate the callers' compiled code, so that they would temporarily use the interpreter. If they're important enough, JIT will recompile them.

I have already done a lot of research and experiments for this and I'm currently trying to implement this. But as you can imagine, all of that is much effort and can easily take hundreds of hours. That's net (working) time, not real time. If I worked on Xposed 24 hours a day, that might be done within a week or two. But, in the last year or so, my "time for Xposed stuff" was about 5 hours a week, sometimes more and sometimes less. You can do the math yourselves... There are just so many other (non-technical) things that I need or want to do. If you substract the time it took me to build the new installer version, move the repo to a new server and restore compatibility with the Nov 2016 security patches, that's even less time for new stuff.

So yes, I'm still working on Nougat support, whenever my free time allows it, but I don't have any idea when it will be done. Once it's done, you'll know.
The Following 4,103 Users Say Thank You to rovo89 For This Useful Post: [ View ]
 
 
19th August 2017, 10:02 PM |#42  
rovo89's Avatar
OP Senior Recognized Developer
Thanks Meter: 76,249
 
Donate to Me
More
So Android O seems to be coming on Monday. I would have really liked to release official Xposed for Nougat a long time ago, but unfortunately I'm not done yet. The good news is that I'm really getting closer now, having finally flashed it to my Pixel phone. I'm still convinced that the way I implemented it will offer full stability without neglecting performance. I'll be AFK for the next two weeks, but will continue my tests and fixes afterwards. Again, I think it's totally worth the wait. Thanks for your patience!
The Following 1,741 Users Say Thank You to rovo89 For This Useful Post: [ View ]
8th October 2017, 05:33 PM |#43  
rovo89's Avatar
OP Senior Recognized Developer
Thanks Meter: 76,249
 
Donate to Me
More
Finally! I know you've been waiting for official Xposed for Nougat for a long time, and here it is. You'll find the download links in the usual place (see first post). Make sure to also use Xposed Installer 3.1.2 (update is also in first post).

If you'd like to know what exactly you've been waiting for, check out this XDA article. Besides much background information on Xposed and its history, it includes a detailed statement by myself about what you'll get on top of the unofficial versions. You can find that statement right above the "Conclusion" headline, click the box to show it.

Note that I've also released new binaries for Marshmallow and Lollipop, although the changes are very minor. Mostly, they ensure that all releases are in sync.

I'd like to thank @wanam for testing and helping to fix the remaining bugs. He also tested it on the Samsung GS7. Also thanks to XDA for their continued support and for providing the infrastructure. And finally, thanks to you for being patient with me, coming up and implementing the new concept really took a long time (that I didn't always have).

Now go ahead and try it out. For any feedback and discussions, please use the new discussion thread.
The Following 1,762 Users Say Thank You to rovo89 For This Useful Post: [ View ]