【发布时间】:2014-03-01 09:35:07
【问题描述】:
我做了一个在 backboardd 中有效的调整,如果我只是在安装后重新启动它,它不起作用,我必须完全重新启动我的 iPhone。有没有其他更好的方法不需要重启设备?
【问题讨论】:
标签: ios objective-c jailbreak tweak cydia-substrate
我做了一个在 backboardd 中有效的调整,如果我只是在安装后重新启动它,它不起作用,我必须完全重新启动我的 iPhone。有没有其他更好的方法不需要重启设备?
【问题讨论】:
标签: ios objective-c jailbreak tweak cydia-substrate
如果您将调整安装为 debian 包 (*.deb),则可以在 postinst 脚本中执行此操作
launchctl stop com.apple.backboardd
Backboard 将自动重启,并且 cydia-substrate 应该能够在其中注入您的调整。
【讨论】:
DEBIAN/postinst shell 脚本,您只需将上面显示的 launchctl 命令放在该脚本中(当然,在通常的 #!/bin/bash 行之后)。 Cydia 将在安装您的调整后运行该脚本。
uicache,然后重新启动 backboardd。重启 backboardd 会导致 SpringBoard 重启。但有一个问题。 uicache 只能作为移动用户运行。 launchctl 只能以 root 用户身份运行。您可以安装 sudo 并使用sudo -u mobile uicache 以移动用户身份执行uicache。
注意:既然你说你正在使用 iOSOpenDev 来创建你的调整,还有另一个选项,尽管 postinst 文件也可以正常工作。
将另一个安装后命令添加到 iOSOpenDev 将为您的项目创建的自定义构建脚本中。
您应该已经在 Target->Build Phases->Run Script 下看到了这个:
/opt/iOSOpenDev/bin/iosod run -h ${iOSOpenDevDevice} 'su mobile -c uicache'
请注意,这需要安装 Cydia 的 UIKit 工具包。 (运行uicache)
您还应该有一个用户定义的 Build Setting 设置 iOSOpenDevDevice 等于您设备的 IP 地址,以便可以通过 Wi-Fi 进行安装。
【讨论】: