Fast Request Crack
过程
准备工作
Android Studio
用来安装
Fast Request
插件和启动远程调试功能-
IntelliJ IDEA
用于远程调试
-
instrumented-restful-fast-request-pro-2024.1.9.1.jar
从IDEA插件官网下载Fast Request 插件包,解压找到源码jar文件
开始
IDEA新建一个空项目
粘贴instrumented-restful-fast-request-pro-2024.1.9.1.jar
,右键添加为库
右上角添加运行配置
复制远程JVM命令行,添加到Android Studio
的vm配置studio.vmoptions
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
再启动Android Studio,同时点击IDEA右上角的调试
如果调试成功 将显示 已连接到地址为 ''localhost:5005',传输: '套接字'' 的目标虚拟机
断点
1.从验证下手
解决方案
顺手看一眼
CodeGeeX弹窗
public static Object execute(@NotNull final Project project, @NotNull Continuation<? super Unit> continuation) {
if (project == null) {
$$$reportNull$$$0(0);
}
if (continuation == null) {
$$$reportNull$$$0(1);
}
IdeaPluginDescriptor plugin = PluginManagerCore.getPlugin(PluginId.getId("ai.codegeex.plugin"));
boolean z = plugin == null || !plugin.isEnabled();
final FastRequestConfiguration m244getState = FastRequestComponent.getInstance().m244getState();
if (m244getState == null) {
return null;
}
Integer codegeexPromptCount = m244getState.getCodegeexPromptCount();
if (codegeexPromptCount.intValue() <= 3 && z) {
Boolean l1I11IlllI1ll1Il1lI = lIIIllIl1Il1IlIlI1.l1I11IlllI1ll1Il1lI();
String str = l1I11IlllI1ll1Il1lI.booleanValue() ? "安装" : "Install";
String str2 = l1I11IlllI1ll1Il1lI.booleanValue() ? "官网" : "Official website";
final String str3 = l1I11IlllI1ll1Il1lI.booleanValue() ? "https://codegeex.cn/zh-CN?article=241205" : "https://codegeex.cn/en-US";
new io.github.kings1990.plugin.fastrequest.ui.l1I11IlllI1ll1Il1lI("FastRequestSticky", "Fast Request", l1I11IlllI1ll1Il1lI.booleanValue() ? "CodeGeeX:免费必装的智能编程助手" : "CodeGeeX:Free and Powerful AI Assistant for Developers", NotificationType.IDE_UPDATE).addAction(new NotificationAction(str) {
private static void $$$reportNull$$$0(int i) {
Object[] objArr = new Object[3];
switch (i) {
case 0:
default:
objArr[0] = "e";
break;
case 1:
objArr[0] = "notification";
break;
}
objArr[1] = "io/github/kings1990/plugin/fastrequest/updateImpl/PromptPluginActivityHandler$3";
objArr[2] = "actionPerformed";
throw new IllegalArgumentException(String.format("Argument for @NotNull parameter '%s' of %s.%s must not be null", objArr));
}
public void actionPerformed(@NotNull AnActionEvent anActionEvent, @NotNull Notification notification) {
if (anActionEvent == null) {
$$$reportNull$$$0(0);
}
if (notification == null) {
$$$reportNull$$$0(1);
}
try {
HashSet hashSet = new HashSet();
hashSet.add(PluginId.getId("ai.codegeex.plugin"));
PluginsAdvertiser.installAndEnable(project, hashSet, true, () -> {
l1IIII1Illl1lll1I1.l1I11IlllI1ll1Il1lI("ck", "下载");
ApplicationEx applicationEx = ApplicationManagerEx.getApplicationEx();
applicationEx.invokeLater(() -> {
applicationEx.restart(true);
}, ModalityState.nonModal());
});
} catch (Exception e) {
l1IIII1Illl1lll1I1.llIIII1Il1IlI1Il.warn("install CodeGeeX plugin fail:%s", e);
}
}
});
m244getState.setCodegeexPromptCount(Integer.valueOf(codegeexPromptCount.intValue() + 1));
l1I11IlllI1ll1Il1lI("sw", "弹窗展现");
return null;
}
return null;
}