欢迎光临本站

生辰八字网

您现在的位置是:首页>八字格局

八字格局

安装八字阀用什么工具

需求背景

安装八字阀用什么工具

前段时间有这样一个需求需要小编测试:WIFI环境下,对指定IMEI号的手机下发补丁包。一句话的需求,可以找出如下几个测试点:1)WIFI环境且指定IMEI号的手机下发补丁;2)WIFI环境,不在IMEI号范围的手机不下发补丁;3)移动网络,指定IMEI号的手机不下发补丁;4)补丁的生效性。

遇到的问题

在测试过程中,小编遇到的问题是:1)组内Android设备的IMEI号都不在指定IMEI号列表中;2)移动网络连不到测试服务器,无法保证移动网络不下发补丁的正确性。针对问题1),可以让服务器开发同学在IMEI号列表中加入某台设备的IMEI号,也能验证WIFI下,指定IMEI号的手机下发补丁;针对问题2),如果通过fiddler拦截请求将参数的值修改为移动网络,也可以验证移动网络下,指定IMEI号的手机不下发补丁。不过,有没有更快捷有效的办法解决这两个问题呢?答案是肯定的~

一键修改IMEI&NETWORK工具实现过程及原理

Xposed是Android中Hook技术的一个著名框架,它可以在不修改APK的情况下影响程序运行,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。一键修改IMEI&NETWORK就是利用Xposed框架进行系统方法的拦截,详细编写一个Xposed框架的过程如下:

1)新建一个Android项目,导入Xposed工具包;

2)编写模块代码,新建一个实现IXposedHookLoadPackage接口的类,在handleLoadPackage回调方法中进行拦截操作,借助XposedHelpers.findAndHookMethod方法Hook:获取网络环境的类名android.net.NetworkInfo和方法名getType;获取IMEI号的类名android.telephony.TelephonyManager和方法名getDeviceId;

public class hook implements IXposedHookLoadPackage{

@Override

public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {

XposedHelpers.findAndHookMethod("android.net.NetworkInfo", lpparam.classLoader, "getType", new XC_MethodReplacement() {

protected Object replaceHookedMethod(MethodHookParam methodHookParam){

int result = 0;

try{

if(FileTool.readConfigFromFile("net").contains("wifi")){

result = 1;

}else {

result = 0;

}

}catch (Throwable throwable){

throwable.printStackTrace();

}finally {

Log.e("wyl","return " +result,new Exception());

return result;

}

}

});

XposedHelpers.findAndHookMethod("android.telephony.TelephonyManager", lpparam.classLoader, "getDeviceId", new XC_MethodReplacement() {

protected Object replaceHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {

return FileTool.readImeiFromFile();

}

});

}

}

3)添加模块入口。目的是告诉Xposed框架一个模块中Hook的入口,2)中可以看到模块的入口是hook类,所以需要在模块的assets中添加一个xposed_init文件,内容是模块入口类的全称;

4)添加模块的额外信息。在模块的AndroidManifest.xml文件添加额外信息,具体包括模块的描述信息,版本号等;

<meta-data

android:name="xposedmodule"

android:value="true" />

<meta-data

android:name="xposeddeion"

android:value="TestXposed" />

<meta-data

android:name="xposedminversion"

android:value="30" />

xposedmodule:代表的是Android程序作为Xposed中的一个模块,所以值为true;xposeddeion:代表的是对本模块的功能的描述;

xposedminversion:代表的是本模块开发时用到的xposed的jar包的最低版本号,这里是30,而小编所用的xposed的jar包版本是54。

使用过程

1)安装Xposed框架

现在我们知道这个框架的核心技术是系统进程注入,必须要root权限,所以需要一个root的Android设备。具体安装过程是:

①下载安装Xposed安装器;

安装八字阀用什么工具

②打开Xposed安装器,点击”框架“,进入”框架“后点击安装,安装后重启手机。

2)安装一键修改IMEI号&NETWORK工具

工具安装到设备之后,Xposed提示模块未激活,进入Xposed的“模块”,选中该工具,重启手机激活即可。

3)使用该工具修改指定的IMEI号和网络环境