##########################################################################################
#
# 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.
#
##########################################################################################
grep_prop() {
REGEX="s/^$1=//p"
shift
FILES=$@
if [ -z "$FILES" ]; then
FILES='/system/build.prop'
fi
cat $FILES 2>/dev/null | sed -n $REGEX | head -n 1
}
android_version() {
case $1 in
15) echo '4.0 / SDK'$1;;
16) echo '4.1 / SDK'$1;;
17) echo '4.2 / SDK'$1;;
18) echo '4.3 / SDK'$1;;
19) echo '4.4 / SDK'$1;;
21) echo '5.0 / SDK'$1;;
22) echo '5.1 / SDK'$1;;
23) echo '6.0 / SDK'$1;;
24) echo '7.0 / SDK'$1;;
25) echo '7.1 / SDK'$1;;
26) echo '8.0 / SDK'$1;;
27) echo '8.1 / SDK'$1;;
*) echo 'SDK'$1;;
esac
}
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 "******************************"
if [ ! -f "system/xposed.prop" ]; then
echo "! Failed: Extracted file system/xposed.prop not found!"
exit 1
fi
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 "- Checking environment"
API=$(grep_prop ro.build.version.sdk)
APINAME=$(android_version $API)
ABI=$(grep_prop ro.product.cpu.abi | cut -c-3)
ABI2=$(grep_prop ro.product.cpu.abi2 | cut -c-3)
ABILONG=$(grep_prop ro.product.cpu.abi)
XVERSION=$(grep_prop version system/xposed.prop)
XARCH=$(grep_prop arch system/xposed.prop)
XMINSDK=$(grep_prop minsdk system/xposed.prop)
XMAXSDK=$(grep_prop maxsdk system/xposed.prop)
XEXPECTEDSDK=$(android_version $XMINSDK)
if [ "$XMINSDK" != "$XMAXSDK" ]; then
XEXPECTEDSDK=$XEXPECTEDSDK' - '$(android_version $XMAXSDK)
fi
ARCH=arm
IS64BIT=
if [ "$ABI" = "x86" ]; then ARCH=x86; fi;
if [ "$ABI2" = "x86" ]; then ARCH=x86; fi;
if [ "$API" -ge "21" ]; then
if [ "$ABILONG" = "arm64-v8a" ]; then ARCH=arm64; IS64BIT=1; fi;
if [ "$ABILONG" = "x86_64" ]; then ARCH=x64; IS64BIT=1; fi;
fi
# echo "DBG [$API] [$ABI] [$ABI2] [$ABILONG] [$ARCH] [$XARCH] [$XMINSDK] [$XMAXSDK] [$XVERSION]"
echo " Xposed version: $XVERSION"
XVALID=
if [ "$ARCH" = "$XARCH" ]; then
if [ "$API" -ge "$XMINSDK" ]; then
if [ "$API" -le "$XMAXSDK" ]; then
XVALID=1
else
echo "! Wrong Android version: $APINAME"
echo "! This file is for: $XEXPECTEDSDK"
fi
else
echo "! Wrong Android version: $APINAME"
echo "! This file is for: $XEXPECTEDSDK"
fi
else
echo "! Wrong platform: $ARCH"
echo "! This file is for: $XARCH"
fi
if [ -z $XVALID ]; then
echo "! Please download the correct package"
echo "! for your platform/ROM!"
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_nobackup /system/lib/libxposed_art.so 0 0 0644
if [ $IS64BIT ]; then
install_and_link /system/bin/app_process64 0 2000 0755 u:object_r:zygote_exec:s0
install_overwrite /system/lib64/libart.so 0 0 0644
install_overwrite /system/lib64/libart-compiler.so 0 0 0644
install_overwrite /system/lib64/libart-disassembler.so 0 0 0644
install_overwrite /system/lib64/libsigchain.so 0 0 0644
install_nobackup /system/lib64/libxposed_art.so 0 0 0644
fi
if [ "$API" -ge "25" ]; then
find /system /vendor -type f -name '*.odex.gz' 2>/dev/null | while read f; do mv "$f" "$f.xposed"; done
fi
echo "- Done"
exit 0
xposed内核雷电模拟器、雷神模拟器亲测可用 64位模拟器版本


《Xposed内核在雷电模拟器与雷神模拟器上的应用详解》 在移动设备上,Xposed框架是一款极具影响力的应用程序,它允许用户通过安装各种模块来修改系统行为,实现个性化定制和功能增强。在本文中,我们将深入探讨如何在64位的雷电模拟器和雷神模拟器上安装并使用Xposed内核,以实现更广泛的自定义选项。 我们来看Xposed框架的核心概念。Xposed是由rovo89开发的一款框架,它在系统启动时注入代码,使用户无需root权限就能修改Android系统的底层行为。这为开发者和高级用户提供了无限的可能性,如改变系统UI、增强系统功能、拦截系统事件等。 接下来,我们要关注的重点是64位模拟器的兼容性问题。由于Xposed框架最初主要针对32位设备设计,因此在64位设备或模拟器上使用Xposed需要特别的版本。在本例中,"xposed-v89-sdk25-x64"文件名表明这是一个适用于Android SDK 25(即Android 7.1.1)的64位Xposed版本。 安装Xposed框架在64位模拟器上的步骤大致如下: 1. **下载Xposed框架**:确保获取到对应模拟器版本的Xposed安装包,如"xposed-v89-sdk25-x64"。 2. **启用开发者选项**:在模拟器设置中开启USB调试和安装未知来源的应用。 3. **安装框架**:将Xposed安装包通过ADB(Android Debug Bridge)推送到模拟器,并在模拟器中安装。 4. **启动框架**:安装完成后,需要在模拟器中启动Xposed Installer应用,按照提示进行设置。 5. **激活模块**:在Xposed Installer应用中,可以找到并安装各种Xposed模块,然后在框架界面中激活这些模块。 6. **重启模拟器**:为了使改动生效,通常需要重启模拟器。 需要注意的是,不是所有的Xposed模块都支持64位系统,因此在选择模块时要确保其兼容性。此外,由于模拟器环境可能与真实设备有所不同,部分模块可能会遇到稳定性问题,这需要用户根据实际情况调整。 雷电模拟器和雷神模拟器作为两个流行的Android模拟器,它们都提供了良好的性能和兼容性。在这些模拟器上安装Xposed,用户可以在桌面环境中测试和体验各种模块,而不必在真机上冒险。然而,务必小心操作,因为不正确的配置可能导致模拟器不稳定甚至崩溃。 总结起来,Xposed框架为Android用户提供了一种强大而灵活的定制方式,而在64位的雷电模拟器和雷神模拟器上成功安装并使用Xposed,不仅可以避免对真机造成潜在风险,还能在安全的环境中探索和实验各种系统修改。通过理解和掌握这一技术,无论是开发者还是普通用户,都能更好地利用Android系统,实现个性化的功能增强。

























- 1

















- 粉丝: 43
- 资源: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【热力学】基于matlab模拟燃烧的热力学循环发动机分析活塞动力学和温度的影响【含Matlab源码 12071期】.mp4
- 【声学】基于matlab计算内部透镜反射来估计超声换能器的透镜厚度、透镜声速和达到峰值时间【含Matlab源码 9847期】.mp4
- 【水波】基于matlab有限元动态三维的水波模拟【含Matlab源码 11005期】.mp4
- 【四杆机构】基于matlab GUI平面四杆机构运动分析【含Matlab源码 11006期】.mp4
- 【水箱】基于matlab粒子过滤器三水箱互连水箱系统故障检测【含Matlab源码 11109期】.mp4
- 【凸轮机构】基于matlab GUI凸轮机构运动分析(含推杆速度 推杆加速度 推杆位移)【含Matlab源码 11007期】.mp4
- 【土木】基于matlab钢筋混凝土梁弯矩-曲率曲线【含Matlab源码 11160期】含报告.mp4
- 【土壤】基于matlab改进的凸轮粘土模型模拟土壤【含Matlab源码 11162期】.mp4
- 【湍流】基于matlab RANS湍流通道流【含Matlab源码 9913期】.mp4
- 【湍流】基于matlab模拟高斯光束通过大气湍流相位屏【含Matlab源码 10956期】.mp4
- 【温度控制】基于matlab动态矩阵控制方法DMC热水器出口温度控制【含Matlab源码 11023期】.mp4
- 【温度控制】基于matlab动态控制矩阵DMC加热炉温度控制【含Matlab源码 11002期】.mp4
- 【涡流衰减】基于matlab格子Boltzmann方法求解Taylor-Green涡流衰减仿真【含Matlab源码 12015期】.mp4
- 【物理应用】基于matlab 2D FDTD算法模拟全内反射 (TIR) 现象(玻璃-空气)【含Matlab源码 9254期】.mp4
- 【物理应用】基于matlab有限元分析FEA求解薄板在平面应力作用下的位移和应变【含Matlab源码 12076期】.mp4
- 【悬索桥】基于matlab单跨悬索桥风致静位移的基准解决方案【含Matlab源码 9993期】.mp4



评论0