本帖最后由 litianping 于 2019-12-23 18:04 编辑
一、前言
捐赠了50块钱使用后,有两个问题:
- 本人两个支付宝的号,作者只给激活一个号
- 魅族手机,不支持系统自带的双开,双开了支付宝之后,插件会启动不了。
二、开始修改
1. 反编译,再回编译,编译失败,报错f.xml的自定义View的属性找不到
直接去掉这些自定义属性
2. 再回编译,报错manifest的属性
把这些属性去掉
3. 编译签名安装运行,报错找不到activity-alias
去掉activity-alias,把<category android:name="android.intent.category.LAUNCHER"/> 放到MainActivity 的第一个<intent-filter> 下面
4. 编译签名安装运行,报错提示: 检测到你正在使用盗版应用,请加群联系我获取正版
搜索这个提示字符串,在string.xml看到名称是o ,在public搜索type="string" name="o" ,看到id为0x7f08000e ,全局搜索这个id,看到在MainActivity的onCrate里面进行了签名的判断,看到代码是最后一个判断进行操作的,在smali直接把判断去掉即可
直接移除这一行调用代码即可。
5. 编译签名安装运行,闪退
根据错误日志,看到是jni报错了,应该是内部进行了签名验证,解决方法有两种,1是不修改签名,2是把jni调用去掉。这里采用方法2,看到代码是在MainActivity的onCreate里面的JniUtils.s的方法里面判断的,直接把判断注释即可:
#把这一行注释掉
#invoke-static {p0}, Lcom/vip/utils/JniUtils;->s(Landroid/content/Context;)I
直接移除这一行调用代码即可。
6. 编译签名安装运行,正常打开了。xposed勾选插件重启手机,打开支付宝提示:你的激活码尚未注册
全局搜索这个激活提示,找到对应逻辑代码在: com.vip.antforest.foresturils.AntForestTask里面,可以看到这个方法是显示错误信息的弹窗,然后看到调用处,看到有很多个判断,看到其中判断是靠一个布尔值变量去记录,看到smali代码,直接把跳转:cond_1剪切到正确的代码上:
if-eqz v4, :cond_1
#把下面的:cond_1剪切到这个位置
:cond_1
.line 82
sput-boolean v1, Lcom/vip/antforest//;->:Z
const-string v4, "1aup3ryW1Zi/0Yi21ICK0Lqg3bKt1KKf0b6a"
7. 双开了支付宝,第二次启动支付宝的之后,发现插件不启动了
暂时解决方法是判断是双开的程序就不启用插件:
修改com.vip.antforest.XposedInit的handleLoadPackage方法代码,判断如果内存卡路径包含了999就直接return(ps:魅族的双开内存卡路径是999,其他系统不知道,自行处理):
# virtual methods
.method public handleLoadPackage(Lde/robv/android/xposed/callbacks/XC_LoadPackage$LoadPackageParam;)V
.registers 4
.param p1, "loadPackageParam" # Lde/robv/android/xposed/callbacks/XC_LoadPackage$LoadPackageParam;
.prologue
.line 11
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object v1
invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
.line 12
.local v0, "path":Ljava/lang/String;
# 这里添加路径名字,其余系统自行修改
const-string v1, "999"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_11
.line 17
:goto_10
return-void
.line 15
:cond_11
invoke-static {p1}, Lcom/vip/antforest/AliMobileAntiInjectHook;->hook(Lde/robv/android/xposed/callbacks/XC_LoadPackage$LoadPackageParam;)V
.line 16
invoke-static {p1}, Lcom/vip/antforest/;->(Lde/robv/android/xposed/callbacks/XC_LoadPackage$LoadPackageParam;)V
goto :goto_10
.end method
三、成品
木有成品,过程都说了。自己动手丰衣足食。
|