[FRAMEWORK] Xposed - ROM modding without modifying APKs/flashing (2.0rc1)(04.07.2012)
Does this require root access?
Yes, because it replaces a file in /system/bin. Once the framework is installed, it should work without root access.
For which ROMs does it work?
I develop Xposed based on the AOSP sources and tested it with Stock LPQ. Diliban reported that it also works for XXLPS SENSATION ROM ICS V 3.2. The framework itself should work for any ICS Stock or AOSP ROM. I do not know about CM9, but it looks like they are using the same code that Xposed is based on. So that might work in CM9 without changing anything as well.
The modules will work for different ROMs as well if the same classes and methods are used for the feature you are modding. For the clock example, the method "updateClock()" is hooked in class "com.android.systemui.statusbar.policy.Clock". This method exists and is used for the same purpose in Stock, AOSP and CM9. So I see no reason why it shouldn't work in all of those ROMs.
Even if there should be small differences, a simple if-condition in the code can probably make a module compatible with all ROMs.
What about GB?
I haven't looked into it. The concept in general should work there as well, but it will probably need some adoptions. If somebody want to try making it work, I can assist a bit, but it is very unlikely that I will flash GB again on my phone.
How can I install it?
See the first post. The framework installation needs to be done only once (and on updates), then it can be used for any modules.
I can't install Xposed. I get an error message "dirname: not found" or "Value too large for defined data type"
Try updating BusyBox, for example with this app.
Isn't this insecure?
In a way, yes. With great power comes great risk. On the other hand, other ways of modifying your phone are also open to malicious coding. For more details see this post.
Why do I have to enable a module after installing it? Couldn't you skip this additional step?
This is for security reasons (see the question above). By making you confirm that you want to use a module, apps cannot contain hidden Xposed modules. The same could be done with an additional permission, but I'm not sure if everyone would recognize that and it is harder to implement. As a bonus, this toggle allows you to temporarily disable a modification or to ship an app that contains an optional Xposed module.
How do I develop my own modification using the Xposed framework?
First make sure that Xposed is working fine for you (e.g. with the example module). Then read this extensive tutorial.