(环境:google pixel 7 pro,软件版本:1.5.6.52)今天在qq群里下载游戏后,玩一会儿就跳paly商店
用mt管理器打开dex,
找到
method public checkLicense(Lcom/google/licensingservicehelper/LicensingServiceCallback;)V
大概意思就是
// 方法声明:public void checkLicense(LicensingServiceCallback callback)
.method public checkLicense(Lcom/google/licensingservicehelper/LicensingServiceCallback;)V
.registers 5 // 本地变量寄存器数量为5个
.line 82 // 行号 82
// 将方法参数 p1(类型为 LicensingServiceCallback)存入成员变量 callback 中
iput-object p1, p0, Lcom/google/licensingservicehelper/LicensingServiceHelper;->callback:Lcom/google/licensingservicehelper/LicensingServiceCallback;
.line 83 // 行号 83
// 获取成员变量 licensingService(类型为 ILicensingService)
iget-object p1, p0, Lcom/google/licensingservicehelper/LicensingServiceHelper;->licensingService:Lcom/android/vending/licensing/ILicensingService;
// 如果 licensingService 不为 null,则跳转到标签 :cond_36
if-nez p1, :cond_36
.line 85 // 行号 85
// 创建一个 Intent 对象
new-instance p1, Landroid/content/Intent;
// 获取 ILicensingService 的类名并传递给 Intent 构造函数
const-class v0, Lcom/android/vending/licensing/ILicensingService;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
// 设置 Intent 的包名为 "com.android.vending"
const-string v0, "com.android.vending"
invoke-virtual {p1, v0}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
.line 86 // 行号 86
// 绑定服务,将结果存入变量 p1
iget-object v0, p0, Lcom/google/licensingservicehelper/LicensingServiceHelper;->context:Landroid/content/Context;
iget-object v1, p0, Lcom/google/licensingservicehelper/LicensingServiceHelper;->serviceConnection:Landroid/content/ServiceConnection;
const/4 v2, 0x1
invoke-virtual {v0, p1, v1, v2}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result p1
.line 88 // 行号 88
// 打印日志,记录服务是否成功绑定
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "service bound with "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, "LicensingServiceHelper"
invoke-static {v0, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
// 跳转到标签 :goto_39
goto :goto_39
.line 90 // 行号 90
:cond_36
// 如果 licensingService 不为 null,则调用 callLicensingService 方法
invoke-direct {p0}, Lcom/google/licensingservicehelper/LicensingServiceHelper;->callLicensingService()V
:goto_39 // 标签 :goto_39
return-void
.end method
只要修改成:
.method public checkLicense(Lcom/google/licensingservicehelper/LicensingServiceCallback;)V .registers 5 // 本地变量寄存器数量为5个
.line 82 // 行号 82 // 将方法参数 p1(类型为 LicensingServiceCallback)存入成员变量 callback 中 iput-object p1, p0, Lcom/google/licensingservicehelper/LicensingServiceHelper;->callback:Lcom/google/licensingservicehelper/LicensingServiceCallback;
.line 83 // 行号 83 // 直接调用成功处理逻辑,模拟许可证验证通过 invoke-direct {p0}, .line 90 // 行号 90
return-void
.end method
跳过check部分即可