【问题标题】:How to install a .deb file on a jailbroken iphone programmatically?如何以编程方式在越狱的 iphone 上安装 .deb 文件?
【发布时间】:2011-03-22 15:35:08
【问题描述】:

我正在使用 Xcode 为 iPhone 开发一个应用程序(越狱)。现在我想以编程方式安装一个 .deb 文件。我怎样才能做到这一点?我可以执行命令来安装它,但是如何安装呢?如果我通过 Xcode 在我越狱的 iPhone 上安装我的应用程序就足够了吗? (.ipa) 还是我需要创建一个 .deb?如果是,怎么做?

非常感谢!

祝你有美好的一天。

编辑:我做了一个应用程序。在这个应用程序中,我有一个文件浏览器(仅适用于文档目录)。在这个目录中有 .deb 文件。现在,如果用户点击一个,我想以编程方式安装这些 .deb 文件。我该怎么办?

【问题讨论】:

  • 我也想知道 :)

标签: iphone jailbreak


【解决方案1】:

AFAIK dpkg -i *.deb 是安装 .deb 的命令。但是您不能在 .deb 中安装 .deb,因为包管理器已锁定,因此您需要脚本或其他东西。

【讨论】:

  • 我需要将我的应用程序变成 .deb 还是 .ipa 就足够了?脚本是什么意思?在应用程序“iFile”中有一个内置的 deb 安装程序,而 ifile 是一个 cydia 应用程序...
  • 另一个问题是有没有办法将 deb 文件移动到“/private/var/root/Media/Cydia/AutoInstall”? (那是根)
  • 对不起,我没有iphone。
  • @DevMan 你找到解决办法了吗?
【解决方案2】:

如果您希望您的应用充当包安装程序,那么是的,我会使用

dpkg -i filename.deb

您可以通过system() 调用或exec() 调用以"dpkg -i filename.deb" 作为命令以编程方式执行此命令。如果您特别使用system(),您可能希望完全限定到dpkg 的路径(例如/usr/bin/dpkg ...或其他任何内容...我现在不在手机上)。

您可能发现您需要拥有 root 权限才能执行此操作。 See this on how to give your app root privileges.

另一个选项,不需要您的应用以 root 身份运行或使用exec()system() 调用,是使用I describe in this answer 技术,该技术是关于如何重新启动iPhone 以编程方式。正如我使用脚本调用reboot 命令一样,您可以编写脚本来执行dpkg -i filename.deb。你只需要想出一个机制来将文件名传递给你的脚本,我假设它会动态改变(除非你的程序使用一个临时链接,它总是指向要安装的当前 .deb 文件。)

【讨论】:

    【解决方案3】:

    许多选项。

    1. 可以学习Cydia的源码。(官网提供源码)
    2. 从 Icy Github 学习源代码。 https://github.com/ripdev/Icy

    3. 简单的方法,使用系统函数调用dpkg命令即可。

    NSString *appsyncDebPath=@"/var/root/appsync.deb";
        NSString *cmdString=[NSString stringWithFormat:@"/usr/bin/dpkg  -i %@ >/tmp/dpkg.log;",appsyncDebPath];
        const char  *cmdChar=[cmdString UTF8String];
        system(cmdChar);
    

    你可以显示/tmp/dpkg.log的结果

    【讨论】:

      【解决方案4】:

      AFAIK 越狱 iPhone 让您无需证书即可安装 ipa...所以这就足够了...

      【讨论】:

      • 我认为你没有正确理解我的意思。我做了一个应用程序。在这个应用程序中,我有一个文件浏览器(仅适用于文档目录)。在这个目录中有一个 .deb 文件。现在,如果用户点击一个,我想以编程方式安装这些 .deb 文件。如何做到这一点?
      • 如墓志铭所说:语法为 dpkg -i filename.deb
      猜你喜欢
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多