16

iPhoneの画面をオフにするには、次のコードを実行する必要があります。

iOS6の場合:

void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked");

次に使用します:

BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim

動作しません。誰かが私com.apple.backboard.clientにこれが私のiPhoneで動作するための資格が必要だと言った。これらの資格を設定する方法がわかりません。資格を設定する方法をいくつか見てきましたが、このように非常に混乱しています。

はい、資格にコード署名する必要があります。しかし、いいえ、それは脱獄された電話のアップル証明書である必要はありません。ldid実行可能ファイルをダウンロードして、コード署名を偽造することができます。

cd MyAppName.app 
ldid -Sentitlements.xml MyAppName

アプリの名前がMyAppNameで、エンタイトルメントファイルentitlements.xmlを作成したと仮定します。ldidで偽のコード署名をした場合、この資格ファイルは機能すると思います。

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
   <dict>
     <key>com.apple.backboard.client</key>
     <true/>
   </dict> 
</plist>

上記の方法でも、上記のエンタイトルメントファイルはどこに配置しますか?

4

2 に答える 2

22

ジェイルブレイクアプリ/エンタイトルメントの場合、次のようなことを行う必要があります。まず、entitlements.xml(または好きな名前の)ファイルを作成します。

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.backboard.client</key>
    <true/>
  </dict>
</plist>

必要に応じて、資格を追加できます。このサンプルファイルは、アプリにcom.apple.backboard.client資格を付与するだけです。

このファイルをどこに置いてもかまいません。重要なのは:

  1. ここに示すようSDKSettings.plistに、Xcodeのファイルを変更する必要があります。 に設定する必要があります。CODE_SIGNING_REQUIREDNO
  2. Xcodeでアプリにコード署名しないでください。[ビルド設定]で、コード署名IDが[コード署名しない]に設定されていることを確認ます。
  3. 次に、 iOSデバイス(シミュレーターではありません!)用のアプリをビルドした後、出力ファイルが配置されているMacのディレクトリに移動します。という名前のアプリの場合、フォルダーを探しています。構成によって異なる場合があるので、わざわざそれがどこにあるかを教えようとはしません。疑わしい場合は、コマンドラインコマンドを使用してください。HelloWorldHelloWorld.appfind
  4. この場所から、またはここからソースldidとしてビルド済みをダウンロードします。
  5. entitlements.xmlファイルをと同じディレクトリにコピーしますHelloWorld.app。(注:ここにある必要はありません...別の場所に置く場合は、以下に示すコマンドラインを調整するだけです)。
  6. ディレクトリをentitlements.xmlファイルがあるディレクトリに変更します。
  7. 偽のコード-このコマンドで署名します
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld

その後、デバイスにアプリをインストールするには、HelloWorld.appフォルダー全体を転送する必要があります。それを行うには多くの方法がありますが、すでに方法があるようです。

簡単にするために、このプロセス全体をスクリプトで設定しています。

注:BKSDisplayServicesSetScreenBlanked()この資格がiOS6での通話に使用する正しい資格であるかどうかについては述べていません。私はそれをテストしていません。SBDimScreen()この資格は、iOSの下位バージョンで使用できるようにするために機能することを私は知っています。ただし、この回答は、脱獄アプリにこの種の資格を追加する方法の説明にすぎません。

于 2013-02-14T22:29:45.593 に答える
-1

エンタイトルメントは、Xcodeプロジェクトファイルに設定されるか、Xcodeプロジェクトが選択するエンタイトルメントファイルに設定されます。

エンタイトルメントファイルの設定または名前については、「概要」または「ビルドフェーズ」のプロジェクト設定を確認してください

于 2013-02-14T10:24:37.083 に答える