1

我制作了一个 Simbl 插件,可以将代码注入 Finder。它运行良好,但每次重新启动时我都必须重新启动 Finder 以允许我的代码正确注入自身。

所以我做了这个 LaunchAgent :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.overlay.launcher</string>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
            <string>/bin/bash</string>
                    <string>-c</string>
                            <string>killall Finder; open /System/Library/CoreServices/Finder.app</string>
                            </array>
</dict>
</plist>

我的插件只是在文件上显示覆盖或标记。

有没有更好的方法?

三天以来,我尝试使用 mach_inject 但它有点复杂,而且我不明白如何让我的插件正确注入 Finder 。我的插件在目标 C 中,我使用 swizzle 方法来覆盖 Finder 中的方法,是否可以使用 mach_inject 执行此操作?

4

0 回答 0