如何以编程方式在越狱iphone上安装.deb文件?

时间:2011-03-22 15:35:09

标签: iphone jailbreak

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

非常感谢!

度过愉快的一天。

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果您希望您的应用程序作为软件包安装程序运行,那么是的,我会使用

dpkg -i filename.deb

您可以使用system()调用或exec()调用以编程方式执行此命令,并使用"dpkg -i filename.deb"作为命令。您可能希望完全限定dpkg的路径(例如/ usr / bin / dpkg ...或者它是什么......我现在不在我的手机上)如果您使用system()特别是

您可能发现需要 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文件的临时链接。)

答案 2 :(得分:0)

许多选择。

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

  3. 简单的方法,只需使用系统函数来调用dpkg命令。

  4. 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

    的结果

答案 3 :(得分:-1)

AFAIK越狱iPhone让你可以在没有证书的情况下安装ipa ......所以这就够了......