diff --git a/config.json b/config.json index 6eac1d9..8ffb39f 100644 --- a/config.json +++ b/config.json @@ -434,7 +434,8 @@ "packageName": "org.cindori.Sensei", "needCopyToAppDir": true, "deepSignApp": true, - "injectFile": "Sparkle.framework/Versions/B/Sparkle" + "injectFile": "Sparkle.framework/Versions/B/Sparkle", + "extraShell": "senseiAgent.sh" }, { "packageName": "com.skylum.luminarneomas", diff --git a/tool/Patch.json b/tool/Patch.json index c9b765b..4a4f831 100644 --- a/tool/Patch.json +++ b/tool/Patch.json @@ -42,5 +42,12 @@ "replaceIntel": "{{==intel==}}", "replaceARM": "{{==arm64==}}", "fixPlist": true + }, + "sensei": { + "locate": [ + "/Applications/Sensei.app/Contents/Library/LaunchServices/org.cindori.SenseiHelper" + ], + "out": "sensei.sh", + "fixPlist": true } } \ No newline at end of file diff --git a/tool/senseiAgent.sh b/tool/senseiAgent.sh new file mode 100644 index 0000000..a3bbced --- /dev/null +++ b/tool/senseiAgent.sh @@ -0,0 +1,18 @@ +tccutil reset All org.cindori.Sensei +helper="/Applications/Sensei.app/Contents/Library/LaunchServices/org.cindori.SenseiHelper" +backup="${helper}_backup" +if [ -e "$backup" ]; +then + echo "检测到helper备份文件存在,可能是二次注入,删除已注入的helper" + rm "$helper" + cp "$backup" "$helper" +else + echo "未检测到helper备份文件,首次注入,已备份helper文件" + cp "$helper" "$backup" +fi +echo "准备自动计算Helper偏移参数..." +cp ./tool/sensei_x.sh ./tool/sensei.sh +chmod +x ./tool/SearchParttenCode +./tool/SearchParttenCode sensei +sh ./tool/sensei.sh +rm ./tool/sensei.sh \ No newline at end of file diff --git a/tool/sensei_x.sh b/tool/sensei_x.sh new file mode 100644 index 0000000..3b8b4af --- /dev/null +++ b/tool/sensei_x.sh @@ -0,0 +1,15 @@ +sudo /bin/launchctl unload /Library/LaunchDaemons/org.cindori.SenseiDaemon.plist +sudo /bin/launchctl unload /Library/LaunchDaemons/org.cindori.SenseiHelper.plist + +sudo /usr/bin/killall -u root -9 org.cindori.SenseiHelper + +sudo /bin/rm /Library/LaunchDaemons/org.cindori.SenseiDaemon.plist +sudo /bin/rm /Library/LaunchDaemons/org.cindori.SenseiHelper.plist + +sudo /bin/rm /Library/PrivilegedHelperTools/org.cindori.SenseiHelper +helper='/Applications/Sensei.app/Contents/Library/LaunchServices/org.cindori.SenseiHelper' +xattr -c '/Applications/Sensei.app' +src_info='/Applications/Sensei.app/Contents/Info.plist' +/usr/libexec/PlistBuddy -c "Set :SMPrivilegedExecutables:org.cindori.SenseiHelper \"identifier \\\"org.cindori.SenseiHelper\\\"\"" "$src_info" +codesign -f -s - --all-architectures --deep /Applications/Sensei.app/Contents/Library/LaunchServices/org.cindori.SenseiHelper +codesign -f -s - --all-architectures --deep /Applications/Sensei.app \ No newline at end of file