如果我希望我的应用程序在越狱的iPhone上表现不同,我将如何确定这一点?
我为Cydia写了一个调整,它在状态栏中添加了一个图标.它在主屏幕上工作正常,当SpringBoard启动时,如果某个应用程序已经启动,那么它工作正常,但是,如果一个应用程序(如Facebook或Twitter)关闭(完全)并且图标显示,当启动应用程序,它将导致图标消失.使用以下代码使用libStatusBar显示图标:
if(icon) // if icon needs to be removed
{
[icon release];
icon = nil;
}
...
// add the icon to the status bar
icon = [[%c(LSStatusBarItem) alloc] initWithIdentifier:[NSString stringWithFormat:@"muteIconLablabla"] alignment:StatusBarAlignmentRight];
icon.imageName = [NSString stringWithFormat:@"Mute"];
Run Code Online (Sandbox Code Playgroud)
我也尝试使用libStatusBarREADME文件中建议的方法
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Run Code Online (Sandbox Code Playgroud)
我尝试覆盖-(id)init并更新那里的图标,但结果相同.
上面显示的代码是从static void函数调用的.这个函数被多次调用,例如来自-(void)applicationDidFinishLaunching:(id)application
under %hook SpringBoard和-(void)ringerChanged:(int)changed
全在里面Tweak.xm.问题也在发生iOS7.
我们想要"锁定"iPhone/iPod/iPad,以便用户只能运行一个应用程序(我们已在内部开发此应用程序).我猜我们会关注越狱,然后替换(?)默认的Springboard应用程序.
我们可以这样做吗?如果是这样,怎么样?
编辑: 里克在下面发表了一个很好的答案.您可以从以下URL下载mobileconfig文件的副本,如果您在iOS设备上访问此URL,Safari将提示您安装该配置文件.别忘了重启你的设备:)
http://ipadhire.co.nz/lockdown.mobileconfig
-
编辑编辑: Brainray发布在下面,并指出iOS 6中有一项称为"引导访问"的新功能,允许您将设备锁定到特定应用程序.遗憾的是这个功能一年前还没有 - 会给我们带来一些麻烦:)
-
编辑编辑编辑:iOS 7现在包含"App Lock"有效负载,作为设备配置配置文件的一部分.来自Apple文档:"通过安装应用程序锁定有效负载,设备将锁定到单个应用程序,直到删除有效负载.主页按钮被禁用,设备在唤醒或重新启动时自动返回指定的应用程序."
在这里阅读更多相关信息:
我刚刚发布了我的iOS应用程序,但我不确定如何让我的应用程序安全不被jailbrakers使用.
我可以做些什么来阻止我的应用程序在越狱设备上工作吗?
在看到这个关于保护你的应用程序不被破解的问题后,我看到顶级回答者提到了能够看到设备是否因内核中的某些内部不平衡而被越狱的问题.仔细研究了一下,我发现了内核架构概述指南,并了解了与Mach-BSD内核交互的方法.我需要知道的是:我在寻找什么?当设备在内核的上下文中被越狱时,是否存在某种键或内部状态会发生变化?
要清楚,我不是在寻找代码(我知道如何自己做这些事情),我正在寻找寻找的东西......听起来很奇怪.我已经看到了链接问题中的答案,我知道它们有效,但我想知道一个全内核路由,这似乎是一种通用而有效的方法来检查而不是搜索可能会更改或删除密钥的目录可能有不同的名字.
我也不打算因为盗版而禁用应用程序的任何功能(只是根据条件显示消息或某些内容).
我正在尝试在iOS9上记录用户个人应用程序的使用情况.
我更愿意不使用越狱限制解决方案,自我解释.在越狱手机上做这个应用程序的变化应该不难.
这肯定不会在App Store上发布,因为Apple不会允许它.
我正在寻找可以执行此操作的任何私有API,可以使用任何隐藏的iOS API来执行此操作.任何东西.
我已经看过了:
事实证明这是相对有用的 - 我们现在可以假设存在某种额外的访问要求,可能是权利,但我们真的不知道它应该是什么样的
然而,所有这些都被证明是无益的,因为Apple修复了iOS8的这个安全漏洞,并且复制/访问当前最前面的应用程序包标识符的方法不再有效.
问题是:是否有人知道使用不需要越狱的不同工具/漏洞的变通办法?
想法:
这是我的Reddit版本的这个问题,如果有人想查看它.此外,如果它具有任何值,则以下是iOS9的运行时标头和Apple的私有API 列表.
在论坛上搜索后,我发现了一个类似的问题,并将它重定向到一个教程,该教程给出了一些关于使用CapitainHook操作SpringBoard的基本指令.
首先,我想只使用普通的%hooks.我能开始的任何暗示?
我想获得所有已安装应用程序的列表(NSArray).我的应用程序是一个越狱应用程序,位于/应用程序,所以沙盒是没有问题的.有没有办法获得应用商店应用列表?我已经在其他应用程序中看到了这一点(Activator,SBSettings ......).我不知道如何做到这一点,因为所有的应用程序沙箱都有那么大的代码,所以我不知道如何访问沙箱中的.app文件夹.
我们为iphone开发支付了开发者帐户,我们有2个iphone,一个监狱被打破,另一个非监狱被打破.我们已经注册了两部手机用于开发并获得了配置文件.我们可以使用非越狱手机进行开发.但我们尝试使用jail破碎的手机进行开发我们收到消息错误启动可执行文件没有配置的iphone设备已连接.
但我们可以使用ad hoc配置文件在其上测试应用程序.这是否意味着越狱设备不能用于开发?问候,Manish
jailbreak ×10
ios ×8
iphone ×5
objective-c ×3
cocoa-touch ×2
ipad ×2
cydia ×1
ios7 ×1
ios9 ×1
ipod ×1
kernel ×1
libstatusbar ×1
security ×1
springboard ×1