Xposed环境安装

一、Xposed 框架实现 Hook 的原理介绍

Zygote是Android的核心,每运行一个app,Zygote就会fork一个虚拟机实例来运行app,
Xposed Framework深入到了Android核心机制中,通过改造Zygote来实现一些很牛逼的
功能。Zygote的启动配置在init.rc 脚 本 中,由系统启动的时候开启此进程,对应的
执行文件是/system/bin/app_process,这个文件完成类库加载及一些函数调用的工作。
当系统中安装了Xposed Framework之后,会对app_process进行扩展,也就是说,Xposed
Framework 会拿自己实现的app_process覆盖掉Android原生提供的app_process文件,
当系统启动的时候,就会加载由 Xposed Framework 替换过的进程文件,并且,Xposed
Framework 还定义了一个 jar 包,系统启动的时候,也会加载这个包:
/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar

二、Xposed框架运行的条件

1.Rooted Device / Emulator (已root的手机或者模拟器)
2.Xposed Installer (Xposed安装程序下载)
3.Hooking Android App (要被Hook的目标 App)

三、安装过程

1. 推荐下载 Xposed3.1.5 版本,XposedInstaller_3.1.5.zip。

​ 下载安装后,若科学上网可以直接激活,之前http改为https需要搭梯子。
请添加图片描述

2.离线激活方式:

​ https://dl-xda.xposed.info/framework/ 从该网址找到自己的手机API - sdk对应的版本 (arm|x86)(32 | 64位)

eg: 雷电模拟器 4.0.43 版本 - 》 (X86 api 25)
请添加图片描述

-> 下载25版本https://dl-xda.xposed.info/framework/sdk25

请添加图片描述

3.下载后将压缩包中的 system 解压到一个新建文件夹中,再将以下 script.sh shell脚本放置该文件中:

请添加图片描述

##########################################################################################
#
# 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"shiftFILES=$@if [ -z "$FILES" ]; thenFILES='/system/build.prop'ficat $FILES 2>/dev/null | sed -n $REGEX | head -n 1
}android_version() {case $1 in15) 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 1set_perm $2 $3 $4 $5 $6
}set_perm() {chown $2:$3 $1 || exit 1chmod $4 $1 || exit 1if [ "$5" ]; thenchcon $5 $1 2>/dev/nullelsechcon 'u:object_r:system_file:s0' $1 2>/dev/nullfi
}install_nobackup() {cp_perm ./$1 $1 $2 $3 $4 $5
}install_and_link() {TARGET=$1XPOSED="${1}_xposed"BACKUP="${1}_original"if [ ! -f ./$XPOSED ]; thenreturnficp_perm ./$XPOSED $XPOSED $2 $3 $4 $5if [ ! -f $BACKUP ]; thenmv $TARGET $BACKUP || exit 1ln -s $XPOSED $TARGET || exit 1chcon -h 'u:object_r:system_file:s0' $TARGET 2>/dev/nullfi
}install_overwrite() {TARGET=$1if [ ! -f ./$TARGET ]; thenreturnfiBACKUP="${1}.orig"NO_ORIG="${1}.no_orig"if [ ! -f $TARGET ]; thentouch $NO_ORIG || exit 1set_perm $NO_ORIG 0 0 600elif [ -f $BACKUP ]; thenrm -f $TARGETgzip $BACKUP || exit 1set_perm "${BACKUP}.gz" 0 0 600elif [ ! -f "${BACKUP}.gz" -a ! -f $NO_ORIG ]; thenmv $TARGET $BACKUP || exit 1gzip $BACKUP || exit 1set_perm "${BACKUP}.gz" 0 0 600ficp_perm ./$TARGET $TARGET $2 $3 $4 $5
}##########################################################################################echo "**************************"
echo "Xposed framework installer"
echo "**************************"if [ ! -f "system/xposed.prop" ]; thenecho "! Failed: Extracted file system/xposed.prop not found!"exit 1
fiecho "- 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" ]; thenXEXPECTEDSDK=$XEXPECTEDSDK' - '$(android_version $XMAXSDK)
fiARCH=arm
IS64BIT=
if [ "$ABI" = "x86" ]; then ARCH=x86; fi;
if [ "$ABI2" = "x86" ]; then ARCH=x86; fi;
if [ "$API" -ge "21" ]; thenif [ "$ABILONG" = "arm64-v8a" ]; then ARCH=arm64; IS64BIT=1; fi;if [ "$ABILONG" = "x86_64" ]; then ARCH=x86_64; IS64BIT=1; fi;
fi# echo "DBG [$API] [$ABI] [$ABI2] [$ABILONG] [$ARCH] [$XARCH] [$XMINSDK] [$XMAXSDK] [$XVERSION]"echo "  Xposed version: $XVERSION"XVALID=
if [ "$ARCH" = "$XARCH" ]; thenif [ "$API" -ge "$XMINSDK" ]; thenif [ "$API" -le "$XMAXSDK" ]; thenXVALID=1elseecho "! Wrong Android version: $APINAME"echo "! This file is for: $XEXPECTEDSDK"fielseecho "! Wrong Android version: $APINAME"echo "! This file is for: $XEXPECTEDSDK"fi
elseecho "! Wrong platform: $ARCH"echo "! This file is for: $XARCH"
fiif [ -z $XVALID ]; thenecho "! Please download the correct package"echo "! for your platform/ROM!"exit 1
fiecho "- Placing files"
install_nobackup /system/xposed.prop                      0    0 0644
install_nobackup /system/framework/XposedBridge.jar       0    0 0644install_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/libsigchain.so              0    0 0644
install_nobackup  /system/lib/libxposed_art.so            0    0 0644
if [ $IS64BIT ]; theninstall_and_link  /system/bin/app_process64             0 2000 0755 u:object_r:zygote_exec:s0install_overwrite /system/lib64/libart.so               0    0 0644install_overwrite /system/lib64/libart-compiler.so      0    0 0644install_overwrite /system/lib64/libart-disassembler.so  0    0 0644install_overwrite /system/lib64/libsigchain.so          0    0 0644install_nobackup  /system/lib64/libxposed_art.so        0    0 0644
fimkdir -p /system/priv-app/XposedInstaller
chmod 0755 /system/priv-app/XposedInstaller
chcon -h u:object_r:system_file:s0 /system/priv-app/XposedInstaller
cp system/priv-app/XposedInstaller/XposedInstaller.apk /system/priv-app/XposedInstaller/XposedInstaller.apk 
chmod 0644 /system/priv-app/XposedInstaller/XposedInstaller.apk
chcon -h u:object_r:system_file:s0 /system/priv-app/XposedInstaller/XposedInstaller.apkif [ "$API" -ge "22" ]; thenfind /system /vendor -type f -name '*.odex.gz' 2>/dev/null | while read f; do mv "$f" "$f.xposed"; done
fiecho "- Done"
exit 0

4.将该文件夹push进手机 system 中 :

adb remountadb push 刚刚创建的文件夹 /systemadb shell chmod 777  文件夹名 chmod 777  文件夹名 /shell脚本chmod 777  文件夹名 /system

5.运行script.sh脚本:

chmod 777  script.sh ./script.sh 

6.重新手机,再打开xposed框架,成功激活:

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620311.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Xposed 使用教程

Xposed作为Android开发中的神器,功能强大之处就不做过多介绍了,本文主要讲解一些常用的API,基本包含常用的Hook操作。 Hook静态变量 Class cla XposedHelpers.findClass(claName, loadPackageParam.classLoader); XposedHelpers.setStatic…

xposed android 4.4.2,xposed新版54

xposed新版54是一款好用的系统工具,软件安全,无需root权限,下载相对应功能板块即可在应用内实现应用多开、虚拟步数、以及qq,微信等多种功能,方便又实用! 软件介绍 系统功能增强,如后台管制&…

Xposed安装

记录一下自己安装xposed的过程。网上很多xposed的安装教程,里面各种都是直接跳转到官网地址下载Xposed,但国内打不开,提示如下: 因此只能下载对应版本zip包进行本地安装,下载对应zip包放到“ /sdcard/Android/data/de…

android8 检测xposed,Xposed检测与自定义Xposed

Xposed检测与自定义Xposed 前言: Xposed检测 1、遍历App安装列表检测 2、自造异常检测堆栈信息。 3、检查关键Java方法是否变为native方法 4、反射XposedHelper类和XposedBridge类 5、检测Xposed相关文件 6、Root检测 7、安全建议 自定义Xposed 一、修改XposedBridge.jar包名 …

xposed android4.4,应用管理Xposed

应用管理Xposed是一款安卓应用管理xposed模块,可以帮助你更好的管理自己手机的各种应用的权限,应用使用需要先阅读了解一下使用的方法,非常强大的一款插件,欢迎大家前来下载。 新版特性 1. 为部分列表也添加基本筛选。 2. 在主页显…

android xposed 简书,Xposed 入坑篇

device-2018-04-12-101001.png 接下来开始敲代码了 美滋滋(皮一下很开心) 上一张整个工程的图 QQ截图20180412102021.png 以下是Test和Tutorial的代码 package com.zed.xposed.demo; import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.Xpo…

Xposed 入门

Xposed的原理 Android基于Linux,第一个启动的进程自然是init进程,该进程会 启动所有Android进程的父进程——Zygote(孵化)进程,该进程的启动配置在 /init.rc脚本中,而Zygote进程对应的执行文件是/system/bin/app_process&#xf…

Xposed

[Xposed framework] (概述) 记录学习文章,这里介绍一下Xposed framework,它可以让你修改ROM,无需修改任何APK或flashing.快速入门,请看Xposed上XDA 之android basic 101: http://www.youtube.com/watch?vuRR0Flqx9M8 …

Xposed安装与使用

xposed是什么? 一个很牛逼的框架,可以在不修改APK的情况下影响程序的运行,比如: 直接把APP的界面改成自己想要的样去掉界面里不喜欢的东西,自动抢红包消息防撤回步数修改等等 Xposed的工作原理 在开始修改之前&…

【Android】Xposed 框架解析

前言 Xposed这位老兄大家可能不认识,微信自动抢红包大家听过吧、微信记录器作弊大家听过吧、地理位置模拟大家听过吧,我很负责任的告诉大家,这些都是Xposed干的,对的,就是它,相信大家充着“谁抢我红包”的…

Android之Xposed框架完全使用指南

文章目录 Xposed环境搭建Xposed简介Xposed原理Xposed的安装 Xposed插件开发Xposed插件编写流程Xposed开发之Hook构造函数相关API无参构造函数的hook有参构造函数的hook实际效果 Xposed开发之修改属性相关API修改静态字段和成员字段实际效果 Xposed开发之hook一般函数相关APIhoo…

深入理解Android(三):Xposed详解

编者按:随着移动设备硬件能力的提升,Android系统开放的特质开始显现,各种开发的奇技淫巧、黑科技不断涌现,InfoQ特联合《深入理解Android》系列图书作者邓凡平,开设深入理解Android专栏,探索Android从框架到…

Xposed入门教程

2019年8月27日16时51分47秒以前一直没机会接触Android Hook方式的逆向今天有空试了下,以前也很少写这种东西,今天第一次,认真写下,记录一下?准备 准备搞太极的,但是Xposed都不会,不好搞,所以就…

RabbitMQ---订阅模型-Topic

订阅模型-Topic • Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符! • Routingkey 一般都是有一个或多个单词组成,多个单词之间以…

PostgreSQL命令行工具psql常用命令

1. 概述 通常情况下操作数据库使用图形化客户端工具,在实际工作中,生产环境是不允许直接连接数据库主机,只能在跳板机上登录到Linux服务器才能连接数据库服务器,此时就需要使用到命令行工具。psql是PostgreSQL中的一个命令行交互…

pyreverse+Graphviz 快速理清整个项目中的代码结构

作用 : 分析代码中的调用关系,帮助快速理清代码。 安装方法:以windows为例 • 从官网下载 https://www.graphviz.org/download/ 安装• 记得将其添加到系统路径• 运行下面命令来检查安装是否完成: dot -V• 安装Pyreverse&…

配置web服务

Web服务器又称为WWW服务器,它是放置一般网站的服务器。一台Web服务器上可以建立多个网站,各网站的拥有者只需要把做好的网页和相关文件放置在Web服务器的网站中,其它用户就可以用浏览器访问网站中的网页了。 LAMP是Linux, Apache, MySQL, PH…

Web Service(Web服务)

什么是webservice? 一句话概括:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。 所谓跨编程语言和跨操作平台,就是说服务端程序采用Java编写,客户端程序则可以采用其他编程语言编写,反之亦然&#xff01…

什么是Web 服务?

Web 服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现“软件作为服务”提供了技术保障。而“软件作为服务”实质上是一种提供软件服务的机制,这种机制可以在网络上暴露可编程接口,并通过这些接口来共享站点开放出来的功能…

什么是web服务

2001年秋天互联网公司(dot-com)泡沫的破灭标志着互联网的一个转折点。许多人由此断定互联网是被大家过分炒作了,事实上网络泡沫和相继而来的股市大衰退是所有技术革命的共同特征。股市大衰退通常标志着蒸蒸日上的技术已经开始占领中央舞台,假…