How to install Xposed framework on Android Lollipop 5.0/5.0.1

A week ago, XDA’s senior recognized developer rovo89 announced Xposed alpha build availability for Android Lollipop.

Is Xposed really a big deal?

It depends, if you want to have custom ROM features on AOSP or Stock ROM without having to flash a custom ROM you can install Xposed framework on any rooted device and add feature specific modules. It may sound cool for some one who caries single device, wants to use a stable operating system without having to constantly flash various custom ROMs.

Points to remember before flashing:

  1. This post is mainly for devices running AOSP version of Android. Typically Nexus 5, Nexus 6, etc. For other devices at the end of post please check out link “List of devices able to run Xposed on Lollipop”  to find out if your device is listed.
  2. Xposed for Lollipop is still in alpha stage but it works well.
  3. As of now only way to install Xposed framework is by flashing it via recovery. (This behavior will change in the upcoming releases)
  4. Most of currently available modules are compatible with Kit Kat.
  5. Few modules added support for Lollipop but some works natively
  6. Phone must be rooted and custom recovery is a must.
  7. Please take a nandroid back up before proceeding further (or back up of some other kind which can allow you to revert back if something goes wrong)

Step 1:

Xposed has two file,

  1. Xposed framework flash file
  2. Xposed supporting app

Download Xposed framework flash file here

Download Xposed supporting app here

Step 2:

Copy both file to a location to your SD card or the emulated SD card. Reboot into recovery.

Step 3:

Flash the downloaded flash file which is packaged in .zip format. Upon successful flash reboot to system and then use a file manager to install the supporting app. (.apk file)

Step 4:

Now head over to Play Store and install SELinux mode changer. At the end of this post i have explained why you need this application. Launch the newly installed application and grant root permissions. Then click the button “Permissive” this action will change the security module. Make sure “Permissive” is grayed out.

Click to enlarge

Step 5:

Launch Xposed app. Tap Faramework  and then tap “Soft Reboot” – Reboot phone using only this option do not use the power button.

Step 6:

Now you are all set to try out some module. Launch Xposed app, click Download. easiest way to find newly updated modules is to sort the list, click sort icon and select “sort by last update”

Alternatively, there is an excel file created by XDA senior member amit3880. This list tells you what modules (most commonly used) works and what doesn’t. Link – http://goo.gl/jP9Blf

Step 7:

After installing modules, go to Modules tab and click on the check box to enable the module. After enabling it is mandatory to reboot, otherwise module will not function.

Click to enlarge
Click to enlarge

If you encounter any issues or problem – please feel free to post it in the comments section.

Alternatively you can also visit the XDA threads,

Xposed for Lollipop official thread

List of devices able to run Xposed on Lollipop

List of working modules for Xposed on Lollipop

Why do you need SELinux mode changer?

SELinux was introduced in Android versions starting from 4.3 In Android every applications runs on its own sandbox. SELinux is used to define the boundaries of the application sandbox. Android uses SELinux to enforce mandatory access control (MAC) over all processes, even processes running with root/superuser privileges (a.k.a. Linux capabilities). SELinux enhances Android security by confining privileged processes and automating security policy creation. SELinux permits two global modes, Permissive and Enforce.

In Permissive mode permission denials are logged but not enforced (which means allowed to run), and in Enforcing mode denials are logged and enforced (not allowed to run).

Important thing to note here is SELinux modes also applies to superuser for enhanced security. In enforcing mode, illegitimate actions are prevented and all attempted violations are logged by the kernel to dmseg and logcat.

Starting from Android 5.0 Android uses full enforcement of SELinux. But in 4.3 and prior versions it was permissive. And in 4.4 it was partially permissive.

My best guess on why Xposed requires this change

I believe this change is required since Xposed modules has the abiity to modify system functionality. Without enabling Permissive mode xposed framework and modules will not be allowed to run by OS.

Please feel free to comment.