mac idea 破解重启电脑后失效
最近在 macbook 上安装 idea 2024,破解以后重启电脑会失效,需要重新再破解一次,或者重启后只能通过命令行启动,很奇怪,趁着周末有时间,对照破解脚本研究了一天,暂时找到了解决办法
先说解决办法吧
方法1、拷贝破解文件夹内的 idea.vmoptions 到默认目录下(~/Library/Application Support/JetBrains/IntelliJIdea2024.2/ )
方法2、或者直接编辑 Help - Edit Custom VM Options,在末尾增加 -javaagent:/Applications/Mac2024.2/ja-netfilter.jar=jetbrains
/Applications/Mac2024.2 是你破解文件夹的目录
如何找到 idea.vmoptioins 存放目录?
mac 一般在 ~/Library/Application Support/JetBrains/IntelliJIdea2024.2/ 目录下,或者参考下图寻找
趁着找这个问题的机会,也大概了解了idea 破解脚本的原理,简单记录一下
1、首先了解两个概念:
idea.vmoptions:IntelliJ IDEA的虚拟机选项配置文件。它用于配置 IntelliJ IDEA 运行时 Java 虚拟机(JVM)的参数。
-javaagent:java 命令行中的一个参数。它用于指定一个 Java 代理,通过这个参数加载的 Java 代理可以在 Java 应用程序运行时,对字节码进行修改或者执行一些额外的操作。
2、破解脚本的目的:
给 idea.vmoptions 最后加上这么一行
-javaagent:/Applications/Mac2024.2/ja-netfilter.jar=jetbrains
折行的意思就是为 IntelliJ IDEA 指定一个 jar 包代理,这个 jar 包内应该就是绕过检测的一些处理吧。
3、破解脚本目录
核心:ja-netfilter.jar
安装脚本:scripts/install.sh
4、install.sh 干了什么?
1、首先为每个 xxx.vmoptions 文件插入
-javaagent:/Applications/Mac2024.2/ja-netfilter.jar=jetbrains
3、给 mac 的环境变量脚本 .bash_profile 文件增加
// 寻找用户目录下的 .jetbrains.vmoptions.sh,如果找到了就运行该脚本
___MY_VMOPTIONS_SHELL_FILE="${HOME}/.jetbrains.vmoptions.sh";
if [ -f "${___MY_VMOPTIONS_SHELL_FILE}" ];
then . "${___MY_VMOPTIONS_SHELL_FILE}"; fi
3、.jetbrains.vmoptions.sh 里是什么?
其实是一份环境变量列表,是 install.sh 生成的:
export IDEA_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/idea.vmoptions"
export CLION_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/clion.vmoptions"
export PHPSTORM_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/phpstorm.vmoptions"
export GOLAND_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/goland.vmoptions"
export PYCHARM_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/pycharm.vmoptions"
export WEBSTORM_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/webstorm.vmoptions"
export WEBIDE_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/webide.vmoptions"
export RIDER_VM_OPTIONS="/Applications/Mac2024.2/vmoptions/rider.vmoptions"
IDEA_VM_OPTIONS 是固定的,因为 idea 会默认寻找该环境变量,从而引用到该环境变量指向的配置文件,即 /Applications/Mac2024.2/vmoptions/idea.vmoptions
结论
1、环境变量 IDEA_VM_OPTIONS 为 IDEA 指定 Java 虚拟机的选项配置,即 /Applications/Mac2024.2/vmoptions/idea.vmoptions,
2、idea.vmoptions 内又配置了 java 代理 -javaagent,指向了破解的工具包 ja-netfilter.jar
为什么重启后破解失效了呢?
目前了解的原因是重启后通过 GUI 启动 idea(即直接点击启动),没有读取到环境变量 IDEA_VM_OPTIONS,因为通过 GUI 启动读取的是系统全局环境变量,而脚本配置的是 shell 用户环境变量,这也是为什么通过命令行可以正常启动的原因。