2014-01-15 35 views
2

我想使用隱私/隱藏iOS方法,例如SpringBoard類(example here)中的clearIdleTimer。我該怎麼做呢?許多信息引用了更老的iOS版本。如何使用私有系統API?

這只是爲了實驗,我認識到私人API不是App Store批准的。此外,我的iOS設備已註冊開發,但尚未越獄。

編輯:我發現這些iOS-Runtime-Headers但樣品不適合我。

+1

谷歌的任何文檔,你可以,但一般你必須做很多* *實驗的...... –

+0

此外,這是很好的說明*如果你發現的文檔對你來說太老了,那麼你的iOS版本就是你的iOS版本iOS 7?iOS 6+? – Nate

回答

4

並非所有的私有API都是相同的。

其中一些你可以在任何應用程序中使用...你只是不會讓他們覈准的App Store。

其中一些您可以使用,但前提是您的應用程序以root的權限運行,這需要使用越獄手機(plus other steps)。

其中一些你可以使用,但你需要grant your app an entitlement,我相信這也需要越獄手機。

在這個API的情況下:

@interface SpringBoard <UIApplicationDelegate, SBWiFiManagerDelegate> 
{ 
} 
- (void)clearIdleTimer; 

您試圖直接調用的方法在跳板應用。您通常不能直接調用其他應用程序的方法。

單程你可以這樣做是用Mobile Substrate (now called Cydia Substrate)。這是一個功能強大的代碼注入平臺,可讓您連接到SpringBoard應用程序,並使用clearIdleTimer。但是,使用Mobile/Cydia基板需要越獄手機。

一些SpringBoard類型的功能被設計爲由其他應用程序調用,並且這些功能位於SpringBoardServices中,這與SpringBoard應用程序不同。您可以嘗試搜索SpringBoardServices以獲得等效的功能。這些API是私人的,但可能不需要越獄(我不記得...我的手機越獄,所以我不必擔心它)。

不是你想要的答案,我懷疑:(

+0

不是我想要的答案,但是信息豐富。 – user924037

+0

沒有這樣的列表,編號 – Nate

+1

@ user924037,你應該記住一條簡單的規則 - 沒有越獄,你只能從公共和私有框架訪問私有API,即你可以實際鏈接到你的應用的所有東西。或者MobilePhone不能在沒有使用的情況下被訪問像移動基板,從而越獄。通過這種方式,您可以刪除應該檢查的API列表。這並不意味着你可以使用你在框架中找到的所有東西。只是你至少可以調用這些API並檢查它們是否工作。 – creker