[Xposed General] klausstoertebeker:
Xposed framework installation on ASUS MemoPad 7 (ME572CL) with locked bootloader

Hello to the forum!

I don't know if somebody was able to install the Xposed framework on an Android device with locked bootloader and therefore without custom ROM.

So I'll tell you how I did this on my ASUS MemoPad 7 (ME572CL) with locked bootloader and therefore without custom recovery:

Prerequisites:

- a rooted device

- a terminal emulator able to run in root mode (I used that from ROM Toolbox Pro)

- the xposed ZIP file compatible with your devices architecture and Android version (can be downloades here)

Now find out the architecture of your device. For this you have to open the file "/system/build.prop" and search for one of these strings:

"ro.product.cpu.abilist32" or

"ro.product.cpu.abilist64"

One of these entries is NOT empty and contains data describing the architecture (in my case it was the first entry which wasn't empty and looked like:

"ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi" - so I have a 32 Bit X86-architecture)

Next find out the sdk version which was used for building your Android system. Again search the file "/system/build.prop", but this time for the string:

"ro.build.version.sdk" (in my case it looked like: "ro.build.version.sdk=21" - so they have used sdk version 21 to build my Android system)

Now you know which file to download (for me it was xposed-v75-sdk21-x86.zip)

After download unzip the file to where you want :) Now open the terminal emulator, apply the "SU"-command and change to the directory "META-INF" found in the unzipped xposed folder. Then apply the command "touch flash-script.sh" to generate an alternatve install script (the original "xposed-v74-sdk22-x86.zip\META-INF\com\google\android\flash-scipt.sh" was not suitable because it requests system variables not used any longer). Open this file with a text editor and fill in the following code:

##########################################################################################
#
# Xposed framework installer zip.
#
# This script installs the Xposed framework files to the system partition.
# The Xposed Installer app is needed as well to manage the installed modules.
#
##########################################################################################

cp_perm() {
cp -f $1 $2 || exit 1
set_perm $2 $3 $4 $5 $6
}

set_perm() {
chown $2:$3 $1 || exit 1
chmod $4 $1 || exit 1
if [ "$5" ]; then
chcon $5 $1 2>/dev/null
else
chcon 'u:object_r:system_file:s0' $1 2>/dev/null
fi
}

install_nobackup() {
cp_perm ..$1 $1 $2 $3 $4 $5
}

install_and_link() {
TARGET=$1
XPOSED="${1}_xposed"
BACKUP="${1}_original"
if [ ! -f ..$XPOSED ]; then
return
fi
cp_perm ..$XPOSED $XPOSED $2 $3 $4 $5
if [ ! -f $BACKUP ]; then
mv $TARGET $BACKUP || exit 1
ln -s $XPOSED $TARGET || exit 1
chcon -h 'u:object_r:system_file:s0' $TARGET 2>/dev/null
fi
}

install_overwrite() {
TARGET=$1
if [ ! -f ..$TARGET ]; then
return
fi
BACKUP="${1}.orig"
NO_ORIG="${1}.no_orig"
if [ ! -f $TARGET ]; then
touch $NO_ORIG || exit 1
set_perm $NO_ORIG 0 0 600
elif [ -f $BACKUP ]; then
rm -f $TARGET
gzip $BACKUP || exit 1
set_perm "${BACKUP}.gz" 0 0 600
elif [ ! -f "${BACKUP}.gz" -a ! -f $NO_ORIG ]; then
mv $TARGET $BACKUP || exit 1
gzip $BACKUP || exit 1
set_perm "${BACKUP}.gz" 0 0 600
fi
cp_perm ..$TARGET $TARGET $2 $3 $4 $5
}

##########################################################################################

echo "******************************"
echo "Xposed framework installer zip"
echo "******************************"

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
if [ ! -f '/system/build.prop' ]; then
echo "! Failed: /system could not be mounted!"
exit 1
fi

echo "- Placing files"
install_nobackup /system/xposed.prop 0 0 0644
install_nobackup /system/framework/XposedBridge.jar 0 0 0644

install_and_link /system/bin/app_process32 0 2000 0755 u:object_r:zygote_exec:s0
install_overwrite /system/bin/dex2oat 0 2000 0755 u:object_r:dex2oat_exec:s0
install_overwrite /system/bin/oatdump 0 2000 0755
install_overwrite /system/bin/patchoat 0 2000 0755 u:object_r:dex2oat_exec:s0
install_overwrite /system/lib/libart.so 0 0 0644
install_overwrite /system/lib/libart-compiler.so 0 0 0644
install_overwrite /system/lib/libart-disassembler.so 0 0 0644
install_overwrite /system/lib/libsigchain.so 0 0 0644
install_overwrite /system/lib/libxposed_art.so 0 0 0644

echo "- Done"
exit 0

PLEASE BE AWARE THAT THIS SCRIPT ONLY WORKS WITH 32 BIT VERSIONS. FOR 64 BIT VERSIONS IT HAS TO BE ADOPTED! BECAUSE I DON'T HAVE A 64 BIT SYSTEM I WASN'T ABLE TO DO THIS!

After saving the changes run this script by applying the command "sh flash-script.sh". This should install the framework as intended by rovo89. I got some linker error messages (something like not found) concerning "libsigchain.so" - I ignored them, but it worked.

And don't forget to install the "XposedInstaller_3.0_alpha4.apk" ;)