如果您能够越狱您的设备,请创建一个 LaunchDaemon 或使用现有的。LaunchDaemon 是一个 plist 格式的文件,在重新启动和启动设备时会调用它。您还需要一个名为open
由 K3A 创建的文件
open
从这里下载
你需要移动open
到 /usr/bin/ 或者你可以把它放在你的应用程序中没关系,但将权限设置为0755 and root:wheel
现在到 LaunchDaemons,它们存储在这里
/System/Library/LaunchDaemons
这是一个例子。假设您将 LaunchDaemon 命名为
com.gauravstomar.test.plist
在上面写着com.bundle.identifier
放置您的应用程序标识符的地方,您也可以在您Info.plist
的应用程序目录中找到它CFBundleIdentifier
现在在 plist 中插入以下信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.gauravstomar.test</string>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>com.bundle.identifier</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1</integer>
</dict>
</plist>
标签必须与 LaunchDaemon.plist 同名,不包括 plist 扩展名
ProgramArguments 是什么调用文件打开并启动应用程序
RunAtLoad 使此 plist 在重新启动时启动
如果用户退出应用程序,StartInterval 将使 LaunchDaemon.plist 在 1 秒后重新打开,如果用户仍在应用程序中,则不会发生任何事情
确保您的 LaunchDaemon 的权限设置为
0644 root:wheel
您仍然可以使用您的 mobileconfig,以便禁用主页按钮。评估完成后,您可以禁用 LaunchDaemon,以便应用程序停止使用以下命令重新启动自身
launchctl unload/System/Library/LaunchDaemon/com.gauravstomar.plist
如果您需要更多帮助,请告诉我。