我的问题简单来说:有没有办法创建一个在iOS设备上运行的iOS应用程序,可以连接到自己设备的lockdownd
并与之通信?
- (对于想知道"原因"的好奇者:我想使用与
lockdownd
的连接来触发iOS设备上.ipa
文件中的应用程序安装,这些文件具有"本地预配配置文件",即标记LocalProvision
设置为true的预配配置文件,这意味着操作系统会阻止通过web-based installation进行无线/OTA安装。)*
一点背景知识:您可以从另一台设备连接到iOS设备的lockdownd
1.通过让第二设备充当iOS设备的USB主机,或者
1.通过在端口62078上与iOS设备建立基于WiFi的TCP连接。
通过使用libimobiledevice
等库,您可以与iOS设备交互-例如触发.ipa
文件中包含的应用的安装。
我已经研究和尝试过的:
1.根据Jon Gabilondo的一篇非常好的文章Understanding usbmux and the iOS lockdown service,lockdownd
在/var/run/lockdown.sock
上创建了一个UNIX域套接字-不幸的是,它具有"特权511,这意味着只有root用户才能对其进行写入。"(引用自文章)--〉因此,我没有尝试访问/写入此套接字。
lockdownd
还打开了一个TCP端点监听端口62078在设备的wifi网络。--〉我已经创建了一个小的测试应用程序,试图建立一个TCP连接到127.0.0.1:62078。不幸的是,连接尝试失败,错误#1 "操作不允许"。当试图连接到IPv4分配的wifi的DHCP服务器到iOS设备。
在iOS设备上运行的应用中,还可以使用其他什么选项来建立与该设备的lockdownd
的连接?
1条答案
按热度按时间mcdcgff01#
是的,
connect
到localhost:62078
(或任何其他解析为localhost的IP)是不允许的。我不知道苹果为什么决定这样做,因为从安全的Angular 来看这是没有意义的(网络中的其他设备可以连接,所以可能这只是一个额外的安全层,在网络设备没有启用的情况下)。此外,我认为苹果不会支持您的用例,因为他们不允许第三方AppStore(尽管有人说它可能很快就会改变-https://www.gamesindustry.biz/apple-may-allow-third-party-app-stores-on-iphone-in-next-update)。
我看到的唯一可行的选择是设置一些外部端口转发(可以很容易地设置在许多路由器上)或有一些其他类型的代理,我实际上刚刚测试过,它完美的工作。