3

私のアプリだけがデバイス上で実行できる「キオスクモード」でジェイルブレイクされたデバイスを構築しようとしています。デバイスの起動時にアプリを自動的に起動したいと考えています。これについては、次のような多くの質問がありました。

ただし、どの回答も詳細を提供していません。-(BOOL) _shouldAutoLaunchOnBoot:(BOOL)boot;たぶん、 、 return 、 bob's your uncleを実装できYESます (実験してみます)。おそらく、SpringBoard.app を自分のアプリに置き換えるだけです。誰かがこれを達成し、詳細を提供してくれますか?

記録のために、これは、デバイスがジェイルブレイクされているかどうかが問題にならない環境で使用され、App Store には何も提出しません。

4

1 に答える 1

2

_shouldAutoLaunchOnBoot: をどのように使用できるかわかりませんが、MobileSubstrate を使用する前に同様のことを行いました

-[SBUIController finishLaunching] をフックして、必要なアプリを起動しました

-(void) appLaunch {
    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 4.0) {
        if ([[objc_getClass("SBIconModel") sharedInstance] iconForDisplayIdentifier:bundleID] != nil){
        [[[objc_getClass("SBIconModel") sharedInstance] iconForDisplayIdentifier:bundleID] launch]; 
        }
    }
    else {
        if ([[objc_getClass("SBIconModel") sharedInstance] applicationIconForDisplayIdentifier:bundleID] != nil) {
        [[[objc_getClass("SBIconModel") sharedInstance] applicationIconForDisplayIdentifier:bundleID] launch]; 
        }
    }   
}

誰もホーム ボタンを使用してアプリを終了できないようにするには、SpringBoard の menuButtonDown: と menuButtonUp: をフックしてブロックします。おそらく他のいくつかをブロックする必要がありますが、これで始められるはずです。

于 2012-04-27T22:58:44.963 に答える