某某社区摇一摇功能
App入口为:com.qufan.vp. module. LaunchActivity
思路:首次安装APP会进入一个引导页面和摇一摇检测页面,检测过后在本地产生一个Code,然后第二进入时候会找到这个code进行对比,如果检测code有数据则直接跳转到Login界面。我们要做的就是找到这个Code的判断,进行直接跳过摇一摇检测页面和引导页面。
GuideActivity.smali 为引导页面
LaunchActivity.smali 为入口页面
LoginActivity.smali 为登陆页面
此处判断检测是否进入引导页面还是登陆页面
修改 为:
Java代码:
private void m() {
if (d.a() > ai.a().c("version", 0)) {
x.b(this, LoginActivity.class, n());
} else {
x.b(this, LoginActivity.class, n());
}
}
Smali代码:
.method private m()V
.locals 3
.prologue
.line 353
invoke-static {}, Lcom/qufan/vp/utils/ai;->a()Lcom/qufan/vp/utils/ai;
move-result-object v0
const-string v1, "version"
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Lcom/qufan/vp/utils/ai;->c(Ljava/lang/String;I)I
move-result v0
.line 354
invoke-static {}, Lcom/qufan/vp/utils/d;->a()I
move-result v1
if-le v1, v0, :cond_0
.line 355
const-class v0, Lcom/qufan/vp/module/account/module/login/LoginActivity;
invoke-direct {p0}, Lcom/qufan/vp/module/LaunchActivity;->n()Landroid/os/Bundle;
move-result-object v1
invoke-static {p0, v0, v1}, Lcom/qufan/vp/utils/x;->b(Landroid/content/Context;Ljava/lang/Class;Landroid/os/Bundle;)V
.line 367
:goto_0
return-void
.line 364
:cond_0
const-class v0, Lcom/qufan/vp/module/account/module/login/LoginActivity;
invoke-direct {p0}, Lcom/qufan/vp/module/LaunchActivity;->n()Landroid/os/Bundle;
move-result-object v1
invoke-static {p0, v0, v1}, Lcom/qufan/vp/utils/x;->b(Landroid/content/Context;Ljava/lang/Class;Landroid/os/Bundle;)V
goto :goto_0
.end method
主要修改位置
去除模拟器检测功能
搜索关键词 mulator 找到一下几个
推测应该是向服务器发送请求然后返回判断是否是模拟器,服务器回应然后开始传送数据,是模拟器限制登陆,不是模拟器登陆成功
找到这个smali查看内容
这个地方应该是把设备型号等信息 还有判断是否模拟器true 或者 false 给treeMap数组
然后这个地方
就是请求服务器数据 进行加密发送
因为这个APP 是点击登陆或者注册按钮是提示模拟器 那可以看看这个包名是否在登陆或者注册页面加载这个包名
这个包名为:com.qufan.vp.core.net.http.retrofit.http
查找这个包名是否在注册或者登陆包名引用com.qufan.vp.core.net.http.retrofit.http
的确引入这个包名了 然后就是查看
的 EmulatorDetectUtil.a来源哪里
查找EmulatorDetectUtil.a
这里返回了一个boolean a的值 就是判断true或者false 这里调用了emulator_check 然后应该返回的就是一个判断值
我们手动修改return detect()的值 true=是模拟器 false=不是模拟器
我们直接 返回一个false 给boolean a
把return detect();改为
Detect();
Return false;
Smali代码如下:
修改完之后测试没问题 去除摇一摇检测 去除模拟器检测 成功。
此文章直供学习使用,仅供参考,禁止非法使用。