Xposed works! More or less. How To: Manually install Xposed Framework
#1
Xposed Framework lets you fiddle with Android and change how things work by installing modules. It requires that you install a framework. Normally you do this with CWM or TWRP recovery but you can also do it by hand. Doing it by hand requires a Linux machine. You could do it on your Pine running Linux, on a PC running Linux, with a virtual machine running Linux... but you're gonna need Linux. You might actually be able to just do it with Android, but I haven't tried.

This is how I just installed Xposed on my Pine running Android 20160428.

Step 0, READ ENTIRE POST BEFORE DOING ANYTHING PLEASE THANK YOU
Step 1, visit XDA forum thread http://forum.xda-developers.com/showthre...?t=3034811
Step 2, download XposedInstaller_3.0-alpha4.apk from the thread and also for Android 5.1.1 on pine64, the latest sdk from http://dl-xda.xposed.info/framework/sdk22/arm64/ (currently xposed-v84-sdk22-arm64.zip)
Step 3, put your microsd card into a Linux machine. Windows can't read ext4 so you need Linux. If you don't have a linux machine, use a linux livecd with vmware player and connect the card reader to the virtual machine. Doing this is outside the scope of this howto, but I am actually going to use a debian livecd for my examples. The short, SHORT form is that you download the livecd ISO and vmware player, install vmware player, then create a new virtual machine using the iso. You don't need to install, just run live.
Step 4, get a root shell. e.g. sudo bash
Step 5, mount the partitions if this hasn't happened already. you can either just try to mount every partition on the microsd card until you find some ext4 parts, or use this handy-dandy code snip to locate them. First do something like "dmesg|grep sd" to find your devices, it will look like this

[ 1690.123504]  sdb: sdb1 sdb2 sdb3 < sdb5 sdb6 sdb7 sdb8 sdb9 sdb10 sdb11 sdb12 sdb13 >
[ 1690.158498] sd 4:0:0:0: [sdb] Attached SCSI removable disk

OK, so you want to look at /dev/sdb, so now do this:

( for i in /dev/sdb*; do echo -n "$i " ; head $i | file - ; done ) | grep ext

That will show you which partitions are formatted ext-something. now mount 'em.

for i in 1 10 13 7; do mkdir /mnt/sdb$i; mount /dev/sdb$i /mnt/sdb$i; done

Now you can see their contents. To figure out which is /system:

ls /mnt/sdb*/build.prop

which here returns /mnt/sdb7/build.prop, so sdb7 is /system. To simplify your life, make a symlink in the root

ln -sf /mnt/sdb7 /system

At this point you need the unpacked zip file for the framework. Just unzip it anywhere.

unzip xposed-v84-sdk22-arm64.zip

This will give you a META-INF and a system directory. Deep in the META-INF directory is a script, we will need to carve it up before we can use it. So we will make a copy.

cp META-INF/com/google/android/flash-script.sh .

Now we have to edit the script and make a change. I use vi, you might use nano, whatever. edit flash-script.sh

nano flash-script.sh

and remove these lines about halfway through:

echo "- Mounting /system and /vendor read-write"
mount /system >/dev/null 2>&1
mount /vendor >/dev/null 2>&1
mount -o remount,rw /system
mount -o remount,rw /vendor >/dev/null 2>&1

and these lines near the bottom:

if [ "$API" -ge "22" ]; then
  find /system /vendor -type f -name '*.odex.gz' 2>/dev/null | while read f; do mv "$f" "$f.xposed"; done
fi

Now you can just run the script to install!

sh flash-script.sh

Here's what it spit out for me

******************************
Xposed framework installer zip
******************************
- Checking environment
  Xposed version: 84
- Placing files
- Done

Now umount all the /dev/sdb stuff that you mounted:

for i in /mnt/sdb*; do umount $i; done

And you can take out the sd card, put it back in your pine, and reboot.

WHAT CAN GO WRONG

You could forget any step
You could get the wrong platform file

What happens next?

When you boot, Android will have to optimize all your apps all over again. It will do this automatically. There is no need to clear the cache. Android is smart enough to figure out that the old stuff in the cache is worthless.

The next thing you do is install the Xposed Installer APK. This is what actually lets you do stuff with the Xposed Framework. You can use the installer to get some modules. Then you have to reboot before you can use them.

My favorite modules are App Settings and GravityBox. iFont is also nifty. After downloading and installing modules under download, you must also activate them under modules.

I am using Reboot menu [no ads] by KitKelly for rebooting... good luck finding it. There's lots of similar apps though. The Xposed Installer should also offer to reboot for you.

If You Are Smart

You will do a test on a fresh install on a spare SD card before messing with an install you care about.

What You Should Know

Stuff may not work. I am having pretty mixed results. Still encouraged by getting it to install.
Reply
#2
Your first useful Xposed module: HaveOwnOrientation http://forum.xda-developers.com/xposed/m...f-t2861029
It absolutely prevents screen rotation, which is very handy. (Ultimate Rotation Control DOES work... but it costs $2.99! I would pay it, if I couldn't find an alternative!) I have had mixed results with the orientation control in App Settings.

Successfully tested with Busybox and iFont.

You can install HaveOwnOrientation through the Xposed Installer, but you have to activate beta modules because you need version 1.3 of HOO for LolliPop. (Xposed Installer -> Settings -> Versions to be shown -> Beta)
Reply
#3
You don't have to do all that to install Xposed.
First, get the rooted android image http://wiki.pine64.org/index.php/Pine_A6...ge_Release

get latest Xposed zip from here http://dl-xda.xposed.info/framework/sdk22/arm64/

Install FlashFire
https://play.google.com/store/apps/detai...fire.flash


Now on flashfire tap on the + sign
choose your xposed zip file
flash it and voilá Wink
Reply
#4
(05-05-2016, 03:38 PM)gschanuel Wrote: Install FlashFire
https://play.google.com/store/apps/detai...fire.flash

"We're sorry, the requested URL was not found on this server."

Must be a regional thing?

https://download.chainfire.eu/957/FlashF...152035.apk

I'll give it a try sometime. This wasn't really a lot of effort in my book... it took me longer to figure out that you could almost just run the script than it does to do it. But if you can just do it with a tool that's certainly better
Reply
#5
I installed Xposed using the FlashFire method (the Play Store link worked for me) and it worked a treat.

My reason for installing it was that I've found that certain apps expect a Wifi connection to be present to work, but I'm using an ethernet connection for my Pine 64. The following module will tell configured apps that Wifi is present so they'll work with ethernet too:

http://repo.xposed.info/module/com.lemon...connection
Reply
#6
Hi,

The flashfire method unfortunately does not work for me.

1. Latest Android Build, Rooted with Busybox.
2. Latest zip from http://dl-xda.xposed.info/framework/sdk22/arm64/
3. Flashfire program runs correctly and pine reboots.
4. Xposed apk installed.
5. The framework is present but not installed - Not compatible with SDK22 or Armv8a.
6. Above method has worked fine with other boards, tablets and phones.

Thanks
Reply
#7
Nice tutorial. Thanks for sharing guys.
Good forum found finally.
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Faulty lcd screen? Wrong install process? Help! Krinilssen 4 222 06-14-2016, 09:29 PM
Last Post: janjwerner
  Manually resizing SD partition atoomic 1 644 01-30-2016, 02:02 PM
Last Post: patrickhwood
  OS INSTALL? timmyiscool8 8 1,087 01-28-2016, 04:20 PM
Last Post: frodo_loves_metal

Forum Jump:


Users browsing this thread: 1 Guest(s)