Tag: privateapi

UIEventSubtype缺less元素

枚举UIEventSubtype(iOS UIKit框架)包含诸如播放,暂停,下一个,search等事件。但是,iPod Access协议包含许多其他事件,如select,上,下和后退(用iPod单击iPod)。 iOS上的iPod应用程序可以接收这些其他事件并作出相应的响应(将select向上/向下/向后移动到播放列表中),但开发人员应用程序似乎无法访问这些控件。 除了自己打开/dev/tty.iap端口(或者向苹果提交bug报告并等待)之外,有没有人知道在iOS应用(越狱)中接收这些附加事件的方式? 也许有一个私人框架,有我在找什么? 我看着IAP框架,但没有看到任何有趣的事情。

iOS6在非越狱设备上切换WiFi

我正在开发一个内部的iOS应用程序( 不适用于苹果店 ,所以我很乐意去私人API),我希望能够以编程方式打开或closures无线networking。 为什么我要这样做的原因是,有些WiFi路由器只要互联网连接中断,就会发生iPad无法恢复的WiFi – 切换WiFi开/关解决了这个问题。 在SO和Googlesearch了一天之后,我找不到最近的post。 是否有可能在iOS 6, 没有越狱的设备 ,开启/closures私人API的WiFi。 有人有他可以分享的源代码吗?

iOS检测系统音量水平变化。 私人API或不? AVSystemController_SystemVolumeDidChangeNotification

可以听AVSystemController_SystemVolumeDidChangeNotification NSNotification(在App Store审查过程中)是否使用私有API? 在我的应用程序中,我需要显示和更新当前音量。 在按下硬件音量button和MPVolumeView滑块中的音量更改之后,音量指示符应该更新。 我已经search了解决scheme如何获得硬件音量button按通知或事件,并已find一些解决scheme。 例如, iPhone检测音量键按下。 和 如何在iOS上获得音量级别和音量更改通知? 我喜欢听NSNotificationCenter的解决scheme,似乎最简单和明确的解决scheme是听AVSystemController_SystemVolumeDidChangeNotification (它工作正常) 但有一件重要的事情我想知道。 此通知名称不在任何官方Apple文档中出现,并且有关是否将此通知用法视为“使用私有API”的讨论。 据我所知,使用私有API与调用私有方法连接。 这就是为什么使用这个通知密钥不能被视为私人API使用(因为实际上我们正在使用通知名称作为NSString)。 也许有人知道这是肯定的,或者有AVSystemController_SystemVolumeDidChangeNotification使用经验和应用程序被提交/拒绝? 非常感谢您的任何信息!

iOS 8 – 如何确定前台应用程序以及获取正在运行的应用程序的列表

在iOS 7.0和更低版本中,来自Springboard框架的SBFrontmostApplicationDisplayIdentifier指定应用程序在前台运行,但在iOS 8中该function已被阻止(被认为是漏洞,请参阅此处的常见漏洞和暴露页面)。 有没有人有一个iOS 8的替代呢?

在iOS 7中模拟系统触摸

GSSendEvent不再适用于我。 即使使用GSEventRegisterEventCallBack订阅callback函数也不会触发touch事件, [UIEvent _gsEvent]返回NULL。 发生了什么?

iOS 7替代CTCall?

在我们使用的企业iOS应用程序中 CTCallRef CTCallDial(CFStringRef number); 从应用程序进行调用(并能够隐藏来电号码 它似乎没有在iOS 7中工作。有API更改吗? (我完全知道,这是一个私人的API调用,它可以随时更改,但我仍然希望find一个替代品。遗憾的是,我不够聪明,知道如何find所有可用的私有API)

在没有越狱的情况下,在iOS9上检测哪个应用处于前台

我试图在iOS9上logging用户个人应用的使用情况。 我宁愿它不会使用越狱有限的解决scheme ,自我解释。 在越狱手机上做这个应用程序的变化应该不难 。 这肯定不会在App Store上发布,因为苹果不会允许它。 我正在寻找任何可以做到这一点的私人API ,任何隐藏的iOS API可以用来做到这一点。 任何东西。 我已经看过: 如何根据应用程序ID确定哪些应用程序是背景以及哪些应用程序是iOS上的前景 如何知道应用程序启动和细节越狱iOS 7 有没有一个私人的API能够检测到什么是iOS上的当前前景应用程序? 如何在iOS8中监视在前台运行的应用程序?使用PrivateFrameworks SpringBoardServices 这被certificate是相对有用的 – 我们现在可以假设有一些额外的访问要求,可能是一个权利,但我们并不真正知道它应该是什么样子 你可以使用SpringBoard服务框架或其他私人框架find单独的应用程序使用时间? 找出活跃的应用程序或如果在Springboard上 以编程方式检测哪个iOS应用程序对用户可见 然而,所有这些都certificate是无益的,因为苹果公司解决了这个 iOS8的安全漏洞,复制/访问当前最前面的应用程序包标识符的方法不再有效。 问题是 :是否有人知道使用不需要越狱的不同工具/漏洞的解决方法? 想法 : 检查设备上运行的进程,并devise一种algorithm,能够识别尖峰意味着一个应用程序已经启动,这可能会工作,但它可能会是一个重大的痛苦的屁股。 提到这个解决scheme的问题: 使用sysctl检测iOS上当前正在运行的应用程序 , 返回iOS中正在运行的后台应用程序/进程列表 如何获取后台运行应用程序的名称 在iphone中查找后台运行应用程序 检查电话交通不知何故? 不知道是否有一些我可以做的内核 这是我的这个问题的Reddit版本,如果有人想检查出来。 另外如果它有任何价值的话,下面是iOS9的运行时头文件和Apple私有API的列表 。

dynamic模拟iOSdynamictypes系统文本大小(UIContentSizeCategory)

我想用系统文本大小的不同select轻松地testing我的应用程序,包括可访问性大小。 这些可以在设置应用程序(显示和亮度=>文本大小或一般=>辅助function=>较大文本)中设置。 目前我能find的唯一方法是进入设置并使用UI更改值(编辑: 部分解决scheme如下所述)。 这是缓慢和繁琐的。 我怀疑有一种方法来dynamic改变它使用私人的API,但我不知道如何。 由于我的目标是只用于debugging,私人API的使用和调整是好的(这个代码将不会进入生产的方式)。 为了试图find一个私人的API来做到这一点,我看了一些逆向工程资源。 我是新的反汇编,符号表,类转储,并find我可以使用的私有API,但这是我迄今为止尝试过的: 我成功地调整了-[UIApplication preferredContentSizeCategory] (其他post说这工作在过去),但是这并不影响从+[UIFont preferredFontForTextStyle:]返回的结果。 使用反汇编程序IDA,我发现+[UIFont preferredFontForTextStyle:]是在私有框架UIFoundation.framework 。 ( -[UIApplication preferredContentSizeCategory]在UIKit.framework但反汇编看起来没有用处)。 正如我开始写这个问题(总是这样),我发现了一个部分的解决scheme 。 可以在scheme中设置启动参数来设置启动时的值。 这是有用的,但不是我所追求的。 通过上面的答案,我发现用户偏好的值明显存储在“模拟器的data/Library/Preferences目录下的com.apple.UIKit.plist文件”中。 我们之后的值可以从命令行实用程序plutil 。 这也是一个改进! 但是我想在运行时dynamic修改它。 来自IDA的更多结果: 我真的不知道如何阅读反汇编,但+[UIFont preferredFontForTextStyle:]似乎指向一个名为___UIFontForTextStyle的符号,这似乎指向一些有趣的冠冕堂皇的符号,称为_getUIContentSizeCategoryUnspecified和_getUIContentSizeCategoryPreferenceClass 我还使用UIFoundation.framework上的命令行工具nmfind了这些符号。 它们被标记为小写字母“s”,显然, “符号位于未初始化的小数据对象的数据部分”。 。 我不知道这意味着什么(我所收集的是他们不是一个class级或方法)。 在networking上search_getUIContentSizeCategory…符号不会产生任何结果,但附近有另一个符号_getUIApplicationClass 。 我search了那个,因为它听起来更普遍一些,并且在一些WebKit源代码中发现了类似的东西。 可能是没有,但也许这是一个内部的苹果公约。 无论如何,这个例子并不能真正帮助我解决问题。 无论如何感谢阅读至今。 如果你还在这里,我的问题是: 我希望能够dynamic模拟dynamictypes大小首选项的值。 这些反汇编符号可能有帮助,但也许我在错误的轨道上。 感觉就像解决scheme很接近,但我不能把所有的东西放在一起。 将此值设置为启动参数很好,但并不能完全解决我的问题。 同样,在plist修改模拟器的值也是很好的自动化,但不能解决我的问题。 有没有办法在运行时dynamic地改变这个值?

在iOS和OS X中获取系统范围通知的状态

我正在尝试写一个代码来处理iOS上的开/关屏幕(你可以看看类似的问题讨论这个问题)。 我为这个问题提供了OSX标签,因为OSX具有相同的系统范围通知function。 下面描述的问题是inheritance到通知设施(与iOS或OSX)。 有一个众所周知的方法来注册系统范围的通知com.apple.springboard.hasBlankedScreen在屏幕closures或打开时接收通知。 仅供参考(以下是用于注册系统范围通知的API): notify_post,notify_check_ notify_get_state和朋友 CFNotificationCenterPostNotification,CFNotificationCenterAddObserver和朋友 (内部使用notify_post等) 但是,这种方法存在两个相互关联的问题: 对于两个屏幕closures和通知的通知具有相同的名称(com.apple.springboard.hasBlankedScreen) 观察者没有收到状态作为通知的一部分。 因此,我们需要实现一些不同的屏幕打开和closures的解决scheme(因为相同的通知callback将被调用,并且没有参数将具有状态)。 一般来说,国家与通知callback脱钩的核心问题。 我看不出如何处理这个优雅。 我提出了两个简单的方法(每个都是有缺陷的)。 寻找另一种方法或改进这种方法的想法。 计数解决scheme 我们可以实施一个计数器来统计我们已经收到了多less通知,根据这些信息我们将知道是否通知打开或closures屏幕(基于我们的柜台的奇怪)。 但是,它有两个缺点: 1)在这种情况下,如果系统(由于devise时间的原因未知)将发送具有相同名称的附加通知,我们的逻辑将被拧紧,因为它会打破奇怪的检查。 2)另外,我们需要正确设置初始状态。 所以在代码中的某处我们会有这样的东西: counter = getInitialState(); registerForNotification(); 在这种情况下,我们有一个竞争条件。 如果系统会在getInitialState()之后发送通知并改变状态,但是在registerForNotification()之前,我们将以错误的计数器值结束。 如果我们会做以下代码: registerForNotification(); counter = getInitialState(); 在这种情况下,我们有另一种竞争条件。 如果系统发送通知并在我们做了registerForNotification()之后,但在getInitialState()之前改变状态,我们将得到一个计数器,将进入通知callback,并增加一个计数器(这会使其错误)。 确定通知收到解决scheme时的状态 在这种情况下,我们不存储任何计数器,而是在通知callback中使用API​​ notify_get_state来获取当前状态。 这有它自己的问题: 1)asynchronous传送到应用程序的通知。 所以,如果closures屏幕的速度非常快,您可以在屏幕已经打开的情况下收到两个通知。 所以,notify_check会得到一个当前的状态(相对于发送通知时的状态)。 因此,当应用程序将在通知callback中使用notify_get_state时,将确定有两个通知“屏幕已打开”,而不是一个通知“屏幕已closures”,另一个“屏幕已打开”。 PS一般来说,所有描述的问题都不是特定于屏幕开/关的情况。 它们对于具有独特状态并以相同的通知名称发送的任何系统范围的通知都是实际的。 更新1 我没有准确地testing开启/closures屏幕的情况,并且获得了notify_get_state()的相同结果。 然而,当我收到两个通知com.apple.springboard.lockstate (通过CFNotificationCenterAddObserver订阅)时,我有类似的情况,我使用另一个API来获取当前的设备locking状态,并收到两个通知相同的值。 所以这只是我的假设,notify_get_state也会返回相同的值。 不过,我认为这是受过教育的猜测。 notify_get_state的input参数对于两个调用是相同的(它不会改变)。 我不认为系统存储应该由notify_get_state返回的状态的FIFO队列。

在iOS 8.3中获取CellID,MCC,MNC,LAC,信号强度,质量和networking

如何在ios 8.3中使用私有apis获取cell id,因为之前的核心电话私有apis在最新的ios sdk 8.3中不起作用。