X

Xposed Framework On Android Nougat Is An Uphill Struggle

If you tend to dabble in the wild world of custom ROMs and root tweaks for Android devices, you’re probably at least passingly familiar with Xposed Framework. This set of tweaks is, as the name implies, a framework where other developers can run their own code, known as modules. The huge number of things you can accomplish with Xposed, like status bar mods on a stock ROM or background YouTube playback in markets that don’t have YouTube Red yet, can’t be done on Android 7.0 (Nougat) just yet. According to the developers of Xposed Framework, Nougat handles things a bit differently than older versions of Android when it comes to function calls, and the way code is handled between execution and output has also been changed, making Xposed hard to implement.

The biggest roadblock at the moment is the concept of hooks, wherein a developer’s module code finds its way into the system to be executed before, after, alongside, or instead of the code that would normally be there. In older Android versions, all the way up through Android 6.0.1 (Marshmallow), the Xposed team had a handle on the way that the system did hooks, and were mostly able to get code past the normal protections. In Nougat, however, the old method to hook a piece of code isn’t even present anymore in most cases throughout the system; instead, code is executed either in real time via the Just-In-Time Compiler released with ART on Android 4.4 (KitKat) and perfected in Nougat, or is handled via dynamic recompilation of code in real time. Both of these solutions are agile and make for a smoother Android experience, but make it harder to insert the kind of interceptor code that Xposed relies on. While some system functions are susceptible, some aren’t, so it’s essentially a gamble at this point as to whether a given module will work and when.

The other big roadblock, not quite as major as hooks and calls, is the way that the Just-In-Time Compiler and the dynamic recompilation that complement it work. Even if hooking is solved, the team will have to reshape the tool around it, and developers will have to retool their modules for the new way that Android handles deciphering, putting together, and executing code with these new tools. For now, the team is hard at work trying to pin down a more precise method; Xposed could technically be released in its current state with a few tweaks for Nougat, but to say it wouldn’t work would be a huge understatement.