Thread Closed

Xposed - General info, versions & changelog

OP rovo89

31st March 2012, 03:54 PM   |  #1  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
Let me introduce the Xposed framework, which gives you the possibility to modify your ROM - without modifying any APK (developers) or flashing (users)!
For a quick start, have a look at XDA's "Android Basics 101" on Xposed: http://www.youtube.com/watch?v=uRR0Flqx9M8

Some technical details:
I extended the /system/bin/app_process executable to load a JAR file on startup. The classes of this file will sit in every process (including the one for system services) and can act with their powers. And even more: I have implemented something that allows developers to replace any method in any class (may it be in the framework, systemui or a custom app). This makes Xposed very powerful. You can change parameters for the method call, modify the return value or skip the call to the method completely - it's all up to you! Also replacing or adding resources is easy, thanks to many helpers in Xposed's API that developers can use.

Advantages:
  • No need to modify any APKs. This means:
    • No need to decompile, change things in smali, compile, sign, ...
    • It will work for odexed and deodexed ROMs.
    • Your mod is not bound to a specific version of the ROM. Unless there is a major change in the methods called for a certain functionality, your mod will continue to work even when you upgrade your ROM. Many modules work for a wide range of ROMs from different vendors.
    • Multiple mods can be installed at the same time, even if they modify the same app. So you can use these battery icons and those quick toggles. Even hooking the same method twice is possible. Of course, this only works properly if the mods are not trying to do incompatible things.
  • It does its magic at runtime. That means that developers can implement settings and do changes based on them (instead of statically forcing a certain behavior). Or you can have some extra logic for certain ROMs, without building different mod versions.
  • It can be disabled easily without having to reflash.
  • It's open source and free (as in beer and in speech).
  • There is a repository with many popular modules.

Download:
You can download the installer from http://dl.xposed.info/latest.apk. The attached disabler zip is only needed if you are in a boot loop.
An experimental version for Gingerbread made by liudongmiao can be found here: http://forum.xda-developers.com/show...4#post44034334 (no support from my side though)

How to install:
First step for everything you do: Create a nandroid backup and make sure you know how to restore it!
I'm not responsible for anything you do with your phone/tablet/rice cooker.
There is also the risk to soft-brick your device. In such a case, see below for ways to recover from it.

Installation of the framework:
  1. Download the Xposed Installer APK and install it
  2. Launch the Xposed Installer, go to the "Framework" section and click on "Install/Update"
  3. Reboot
  4. Done!

You can verify this by starting the Xposed Installer again and making sure that the numbers in the "Framework" section are green.
If app_process jumped back to an older version (or none at all), you probably have a ROM with S-On or similar, which reverts any changes to /system after a reboot. Use installation via recovery in such cases.

Installation of any modules:
  1. Download <module>.apk (e.g. via the builtin repository browser) and install it
  2. Launch the Xposed Installer and go to the "Modules" section (you will also get there if you click on the notification warning you that the module is not enabled yet)
  3. Enable the module by checking the checkbox
  4. Reboot
  5. Done!
(note that you can install the framework and enable/disable multiple modules at once and reboot afterwards)

In case you get into a boot loop:
First, try using the safemode by pressing any hardware key repeatedly. You can find a short explanation how it works here.
If that doesn't work, you can flash the attached Xposed-Disabler-Recovery.zip by Tungstwenty. It will be copied to your (external) SD card when you install Xposed as well. The only thing it does is copying /system/bin/app_process.orig back to /system/bin/app_process, which you can also do yourself (e.g. with adb shell in recovery mode).

Modules:
The official repository for Xposed modules, which can also be access from within the app itself (with download/update support), can be found at http://repo.xposed.info
There is also a whole XDA subforum for modules and an index/request thread.
Please don't use the "Xposed General" forum for requests or problems with modules! Use the thread of the module instead.

How to write a module:
If you are an interested developer, give it a try. The development tutorial will help you get started. Further documentation (e.g. how to replace resources) is here. And of course, you can ask your development questions in the "Xposed General" forum.
If you have suggestions for new functions the framework could provide (which means they should be useful for more than your module), you can do this there as well. However, requests that I or somewhen else should write a module for xyz are NOT allowed. Again, this subforum is only about the framework.

Source code:
https://github.com/rovo89/Xposed (the C++ part)
https://github.com/rovo89/XposedBridge (the Java part)
https://github.com/rovo89/XposedInstaller (Installer app)

Where to get help:
First, read the FAQ and search the "Xposed General" forum. If you don't find your answer there, please check this explanation to find out where you should post your question (e.g. module requests/questions don't belong into the "Xposed General" forum).

Thanks to:
Tungstwenty for his many contributions, both in code and thoughts
XDA admins, news writers and supporters for making Xposed known to so many people
All those volunteers who help answering questions about Xposed
The people who donated to get me a Nexus 5 for earlier KitKat support
All the translators: http://translate.xposed.info/ (if you want to contribute more translations, please follow the instructions mentioned on that page)
Attached Thumbnails
Click image for larger version

Name:	Screenshot_2013-09-03-21-41-04.jpg
Views:	370812
Size:	35.9 KB
ID:	2232598   Click image for larger version

Name:	Screenshot_2013-09-03-21-41-18.jpg
Views:	302561
Size:	20.0 KB
ID:	2232599   Click image for larger version

Name:	Screenshot_2013-09-03-21-41-41.jpg
Views:	283998
Size:	46.2 KB
ID:	2232600   Click image for larger version

Name:	Screenshot_2013-09-03-21-42-01.jpg
Views:	262958
Size:	45.9 KB
ID:	2232601   Click image for larger version

Name:	Screenshot_2013-09-03-21-42-17.jpg
Views:	243958
Size:	40.9 KB
ID:	2232602   Click image for larger version

Name:	Screenshot_2013-09-03-21-42-30.jpg
Views:	227572
Size:	21.8 KB
ID:	2232603   Click image for larger version

Name:	Screenshot_2013-09-03-21-43-14.jpg
Views:	225289
Size:	33.7 KB
ID:	2232604  
Attached Files
File Type: zip Xposed-Disabler-Recovery.zip - [Click for QR Code] (4.2 KB, 73242 views)
Last edited by rovo89; 19th June 2014 at 02:22 PM.
The Following 4,495 Users Say Thank You to rovo89 For This Useful Post: [ View ]
11th April 2014, 09:03 PM   |  #2  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
Xposed Installer versions & changelog
In this thread, I will post announcements about new Xposed Installer versions (including test versions). If you want to be notified about new versions, subscribe to this thread.


Older versions:
1.0: Initial version
1.1: ???
1.2: Installer
1.5: Resource replacing
1.6: Some fixes and improvements [629 downloads]
2.0 rc2: Lots of thing redone. Supports (temporarily) replacing native libraries, lots of additions and changes for developers. [3,234 downloads]
2.0: Removed the native library replacement again, support for 4.1 and 4.2, Instagram crash fixed, ... [631 downloads]
2.0.1: Fixed a crash when a module tries to hook a function with "long" or "double" parameters [930 downloads]
2.0.2: Fixed a problem which resulted in a boot loop [4,310 downloads]
2.1: Various improvements, e.g. earlier callbacks for module loading. For details, see this post. [345 downloads]
2.1.1: Fixed a bug in drawable replacements [5,421 downloads]
2.1.2: Small fixes, added Chinese and Russian translations [11,415 downloads]
2.1.3: Reverted a change in 2.1.2 that caused bootloops; new translations and some more fixes [46,803 downloads]
2.1.4: Support for Galaxy S4 and HTC One plus a few minor fixes/enhancements (details) [208,176 downloads]
2.2: Builtin updater/module downloader, extended UI, support for Android 4.3 and more (details) [241,267 downloads]
2.3: x86, Knox, MIUI support (experimental), context menu in modules list and more (details) [18,219 downloads]
2.3.1: "Segmentation fault" during installation fixed [679,333 downloads]
2.4: Support for Android 4.4, performance improvements, log viewer, active check (details) [101,613 downloads]
2.4.1: Fixed bootloop on some x86 ROMs [2,537,642 downloads]
Last edited by rovo89; 20th May 2014 at 09:46 PM.
The Following 136 Users Say Thank You to rovo89 For This Useful Post: [ View ]
11th April 2014, 09:06 PM   |  #3  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
This is Xposed version 2.5 (final). The main new features and fixes in this version are:
  • Rewritten framework installation/uninstallation
    • Uses interactive su (via libsuperuser) to provide improved compatibility with different Superuser apps
    • Better feedback when root access fails (doesn't freeze the app anymore)
    • Offers installation via custom recovery (CWM/TWRP), either flashing the file automatically or manually
  • Safemode to disable Xposed with hardware keys to get out of (most) bootloops
  • Compatibility with Sony/LG ROMs (4.3 and 4.4), Meizu ROMs (4.4)
  • Debug setting to disable resource hooking as a temporary workaround for incompatibilities with some theming engines (not all modules can be used in this mode)
There are also other improvements and fixes, especially many translations updates.
In case you get a message "Segmentation fault" during installation, you can now download an additional app which provides statically compiled versions of BusyBox (a lot bigger, but should work with every ROM). It's not needed otherwise.

Quick explanation of the safemode: It was developed by @Tungstwenty and makes it possible to disable Xposed by repeatedly pressing one of the hardware buttons during early startup. The phone will vibrate twice when the first key press has been detected. Then you have five seconds to press the same button four more times. Each key press will be confirmed with a short vibration; the final one with a long vibration. It creates /data/data/de.robv.android.xposed.installer/conf/disabled, which prevents most of Xposed's actions (e.g. no hooks are made and no modules are loaded). There's no 100% guarantee that this will get you out of a bootloop, but in most cases it should.

As always, you can download it via the in-app updater or from http://dl.xposed.info/latest.apk.
Last edited by rovo89; 15th May 2014 at 09:43 PM.
The Following 118 Users Say Thank You to rovo89 For This Useful Post: [ View ]
12th April 2014, 10:21 PM   |  #4  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
This is Xposed version 2.5.1. The changes in this version are:
  • Added compatibility with CM11's new theming engine
  • Avoid conflict with LG G2's icon theming engine
  • Translation updates

I would like to express my disappointment again that too many people don't even spend two minutes to read at least the last few pages of a thread before posting problems. I have invested hundreds of hours - probably even more - into developing and supporting Xposed, so it feels disrespectful for me. Users like this are the minority and many others are very supportive, but it's really annoying.

As always, you can download it via the in-app updater or from http://dl.xposed.info/latest.apk.
Last edited by rovo89; 15th May 2014 at 09:43 PM.
The Following 151 Users Say Thank You to rovo89 For This Useful Post: [ View ]
13th May 2014, 09:34 PM   |  #5  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
This is Xposed version 2.6 beta1. The main changes in this version are:
  • UI refresh using the Cards UI pattern, mainly contributed by @GermainZ
  • New logo, created by @DD-Ripper
  • Detection of several known issues, a warning with link to the FAQ item will be shown
  • Release type selection in the downloader (only stable version are shown by default)
  • Many internal improvements in the framework, e.g. better resources compatibility and performance

In case you're looking for the Xposed-*-Recovery.zip files, they are stored in a subdirectory (Android/data/de.robv.android.xposed.installer/files) of the SD card now. This is the official Android API and will hopefully fix installation on some ROMs.

Also a big "thank you" to the translators, many translations have already been updated. You can see the status on the brand new translation overview page, with completion status and templates containing the strings yet to be translated: http://translate.xposed.info/
Note that I have already informed the primary translators about the upcoming version.

The full change log is on GitHub:
https://github.com/rovo89/XposedInst...commits/master
https://github.com/rovo89/XposedBridge/commits/master
https://github.com/rovo89/Xposed/commits/master

You can download the beta version from this post. Keep in mind that beta versions come with a bigger risk because they aren't tested on a big variety of devices/ROMs yet.
Attached Files
File Type: apk XposedInstaller_2.6-beta1.apk - [Click for QR Code] (681.2 KB, 12504 views)
Last edited by rovo89; 15th May 2014 at 09:43 PM.
The Following 192 Users Say Thank You to rovo89 For This Useful Post: [ View ]
17th May 2014, 05:32 PM   |  #6  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
This is Xposed version 2.6 (final). The main changes in this version are:
  • UI refresh using the Cards UI pattern, mainly contributed by @GermainZ
  • New logo, created by @DD-Ripper (and no, there won't be an option to change it)
  • Detection of several known issues, a warning with link to the FAQ item will be shown
  • Release type selection in the downloader (only stable version are shown by default)
  • Many internal improvements in the framework, e.g. better resources compatibility and performance

Developers, please check this and following posts for information about API changes.

In case you're looking for the Xposed-*-Recovery.zip files, they are stored in a subdirectory (Android/data/de.robv.android.xposed.installer/files) of the SD card now. This is the official Android API and will hopefully fix installation on some ROMs.

Also a big "thank you" to the translators, many translations have already been updated. You can see the status on the brand new translation overview page, with completion status and templates containing the strings yet to be translated: http://translate.xposed.info/

The full change log is on GitHub:
https://github.com/rovo89/XposedInst...commits/master
https://github.com/rovo89/XposedBridge/commits/master
https://github.com/rovo89/Xposed/commits/master

As always, you can download it via the in-app updater or from http://dl.xposed.info/latest.apk.
The Following 245 Users Say Thank You to rovo89 For This Useful Post: [ View ]
20th May 2014, 10:02 PM   |  #7  
OP Senior Recognized Developer
Thanks Meter: 15,323
 
2,386 posts
Join Date:Joined: Jan 2012
More
This is Xposed version 2.6.1. The main changes in this version (compared to 2.6) are:
  • Fixed a crash with some apps (Disa, Rdio)
  • Some minor UI improvements
  • A few translation updates
Commits: https://github.com/rovo89/XposedInst...re/2.6...2.6.1

As always, you can download it via the in-app updater or from http://dl.xposed.info/latest.apk.

The Following 204 Users Say Thank You to rovo89 For This Useful Post: [ View ]
Thread Closed Subscribe to Thread
Previous Thread Next Thread