【问题标题】:Should I have to restart the device not only respring to install a tweak for backboardd?我是否必须重新启动设备才能重新安装篮板调整?
【发布时间】:2014-03-01 09:35:07
【问题描述】:

我做了一个在 backboardd 中有效的调整,如果我只是在安装后重新启动它,它不起作用,我必须完全重新启动我的 iPhone。有没有其他更好的方法不需要重启设备?

【问题讨论】:

    标签: ios objective-c jailbreak tweak cydia-substrate


    【解决方案1】:

    如果您将调整安装为 debian 包 (*.deb),则可以在 postinst 脚本中执行此操作

    launchctl stop com.apple.backboardd
    

    Backboard 将自动重启,并且 cydia-substrate 应该能够在其中注入您的调整。

    【讨论】:

    • 谢谢,但我怎样才能将此命令添加到“postinst 脚本”?我在 xcode 中使用 iosopendev。
    • @Suge,有关 Debian 软件包格式的一些信息,请参阅 this link。基本上,在您的 .deb 包中,您将拥有一个 DEBIAN/postinst shell 脚本,您只需将上面显示的 launchctl 命令放在该脚本中(当然,在通常的 #!/bin/bash 行之后)。 Cydia 将在安装您的调整后运行该脚本。
    • @Nate,谢谢,很有帮助,我已经解决了。
    • @Nate,我添加了 postinst 脚本以在安装后重新启动 backboardd,它对我很有效,但导致了一个新问题:它在安装结束时自动重新启动,而没有“重新启动 SpringBoard”按钮单击,因此,除非您完全重新启动设备,否则不会在主屏幕上显示应用程序图标。我该怎么办?
    • @Suge,您需要在 postinst 脚本中执行uicache,然后重新启动 backboardd。重启 backboardd 会导致 SpringBoard 重启。但有一个问题。 uicache 只能作为移动用户运行。 launchctl 只能以 root 用户身份运行。您可以安装 sudo 并使用sudo -u mobile uicache 以移动用户身份执行uicache
    【解决方案2】:

    注意:既然你说你正在使用 iOSOpenDev 来创建你的调整,还有另一个选项,尽管 postinst 文件也可以正常工作。

    将另一个安装后命令添加到 iOSOpenDev 将为您的项目创建的自定义构建脚本中。

    您应该已经在 Target->Build Phases->Run Script 下看到了这个:

    只需在箭头所在的位置(第 2 行)添加以下行:

    /opt/iOSOpenDev/bin/iosod run -h ${iOSOpenDevDevice} 'su mobile -c uicache'
    

    请注意,这需要安装 Cydia 的 UIKit 工具包。 (运行uicache

    您还应该有一个用户定义的 Build Setting 设置 iOSOpenDevDevice 等于您设备的 IP 地址,以便可以通过 Wi-Fi 进行安装。

    【讨论】:

      猜你喜欢
      • 2014-05-23
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 2018-01-07
      相关资源
      最近更新 更多