2015/2/14ころにAppleが行ったとみられる変更により、ロックアウト問題は発生しなくなった模様です。いままでロックアウト状態だった人が使えるようになったとか、適当なMLB/ROM使ったけどカスタマーコードダイアログが出ないでそのまま利用できたという報告が次々に寄せられているようです。どの程度適当に作った番号でもokなのかはまだ未確認ですが、制約が大幅に緩和されのは事実のようです。一説には、Apple IDの認証方式が変わったのに伴ない、ハードウェアでのチェックを緩和したのではないかと言われています。ということで、すくなくとも、このページに書かれた手法でそれらしいMLB/ROMを作成すれば、iMessage/FaceTimeが問題なく使えるようになったようです。
http://support.apple.com/en-us/HT204152
2014/12/29ころにAppleが行ったとみられる変更により、同一のMLB/ROMを複数機種で使い回すとiMessageの送信ができなくなりました。使い回しを止めてしばらくすると正常化するようです。このことを追記しました。 また、17文字MLBを独自に作るのはまだ不可能なようですが、13文字MLBなら可能なようです。以下にそのあたりをまとめておきます。
2014/11/17ころにAppleが行ったとみられているiMessage認証ポリシー変更にともない、以下の注意が必要になりました。
iCloundの設定がそこそこ成功したところで、iMessageやFaceTimeを使おうとすると次のようなメッセージが出ることがあります。このときの対策法です。
tonymacosx86の以下のガイドを参考に書きました
ネットワーク関係の設定はうまく働いています。 設定が不備だとiMessageサーバに門前払いされるのですが、 一応は相手をしてくれてます。サーバに正しく接続できていると言えます。
このメッセージが出たら何をやっても無駄です。
Appleのサポートに電話をしてロックを解除してもらう以外にこのメッセージを取り除く手段はありません。
(加筆)2014年11月17日ころから発生したMLB/ROM関連のチェックによりこのダイアログが出た場合は、サポートに電話押してもこのメッセージを取り除けないことが報告されています。MLB/ROMの設定を下記で説明するように正しく設定することで、サポートに電話をしなくてもこのメッセージを取り除けるようです。
本当に何が原因でロックアウトされたのかは、Appleの中の人にしかわかりません。 その理由も今後、変更される可能性は十分にあります。 いろいろ推測されているところでは次の原因のようです。
アップルから実際に出荷された実存するマシンのシリアル番号を使えばうまく接続できると書いているページもあります。 ある意味正しいですが、実存するマシンのシリアル番号は 絶対に使ってはいけません。 実存しないシリアル番号でも十分に機能します。 あるシリアル番号が、実際にアップル社から出荷されたMacintoshなのかどうかは、以下のページで確認できます。
シリアル番号を生成するツールはいくつかあります。Cloverを使うならClover Configuratorを使います。これのSMBIOSの項目を選択して、魔法の杖のアイコン
をクリックすると、シリアル番号などを生成して、これをconfig.plistに書いてくれるダイアログが現れます。
上記の場面で、最初に決めなければいけないのは機種名です。昔は、MacPro3,1にしておけば大丈夫と言われていましたが、今はそれが最善策ではありません。MacPro3,1のように古いCPU使用機種を指定すると、最新CPUに対してkernel機能が最適化されません。また、iMessageなどで不具合が出る可能性もあります。そこで、Mactracker (App Storeにもあります)などを使って、各種Macintosh機種のスペックを調べて、自分が使おうとしているマシンにできるだけ構成が似ている製品を選びます。とはいっても、CPUが近いことが重要で、それ以外の項目はあまり気にする必要はありません。
機種名を決めると、それに付随した情報が自動入力されます。シリアル番号は、機種にもよりますが、生産国、年号、生産週、製造番号、機種固有文字から構成されています。週と製造番号をランダムに選ぶことができますので、何回かボタンを押して生成してください。生成できたら、上記のサイトで、実存していないことを確認します。
(追記)以下の記述でのBoardSerialNumberの設定は、次の項目で述べるMLBの設定を行えば、設定しなくても良い、もしくは、MLBの設定に合わせるべきかもしれません。
上記の操作で、機種固有の情報のかなりが自動設定できます。
BoardSerialNumberとSmUUIDについては、手動で調整する必要があります。
config.plistのSMBIOSの項目では、以下のように設定できます。
<key>SMBIOS</key> <dict> ... <key>BoardSerialNumber</key> <string>XXXXXXXXXXX123456</string> <key>SmUUID</key> <string>63A05D82-6F6E-4B83-9AB5-36B85E54D379</string> ... </dict>
BoardSerialNumber は、何も指定しないとデフォルトでSerialNumberがそのまま使用されます。 iMessageではこれが17桁である必要があります。 シリアル番号は機種によって桁数が違いますがいずれも17桁未満です。 そこで、 ここではシリアル番号に適当な英数字を足して17桁にしたものを指定します。
SmUUID は、何も指定しないとデフォルトでマザボのBIOSが返す値が使用されます。 この値が十分にランダムなら良いのですが、マザボによっては0が多数並んでいたり、規則的な数値だったりします。 これもiMessageで問題を引き起こします。 一番簡単な解法は、十分にランダムなUUIDを用意してconfig.plistで指定してしまうことです。 ターミナルを開いて、uuidgenというコマンドを打ち込みます。するとランダムなUUIDを得ることができます。 これを何度か繰り返して、適当なところでその値を採用します。
SmUUIDはiMessageだけでなく、市販のアプリのライセンス管理などでも利用されているそうです。 なので、その意味でも、一旦決めたら変更しないことが重要です。 また、すでに有償アプリ等のユーザ登録をしていて、なおかつマザボから十分ランダムなSmUUIDが得られているなら ここで指定しないほうが良い場合もあります。いま、得られているSmUUIDが幾つであるかは、 IORegistryExplorerなどで知ることができます。
(追記)この項目は以下の記事の説明を要約したものです。
<key>RtVariables</key> <dict> <key>MLB</key> <string>XXXXXXXXXXXXXXXXX</string> <key>ROM</key> <string>YYYYYYYYYYYY</string> </dict>
MLBは"Main Logic Board"シリアルナンバーのことで、17文字の長さです。 ROMはマックのファームウェアの固有番号で、MACアドレスのようなものです。16進数で12桁です。 MLBとROMの値が正しく設定されていることは、iMessage/FaceTimeを利用するために必須の条件です。 Cloverでは上記のようにconfig.plistのRtVariablesのセクションで指定します。
ここで指定されていない場合は、Cloverは次のルールで自動生成します。 すなわち、MLBはBIOSセクションに書かれたBoardSerialNumberの番号が使われます。 また、ROMはSmUUIDの最後の12文字が使われます。
2014年11月17日あたりまで、この自動生成の手法で問題ありませんでした。 自動生成で作ったMLB/ROMを使うと、カスタマーコードが表示されて、サポートに電話することで、自動生成のMLB/ROMの番号がサーバに登録され、iMessageが使えるようになっていたのではと思われます。 しかし、おそらくAppleの方針変更により、現在では、実際に出荷されたマシンのMLB/ROMの組み合わせであることが必須になったようです。それ以外の設定の場合、カスタマーコードが表示されて、サポートに電話するよう指示されます。しかし、電話をかけて対応してもらっても、解決することはありません。MLB/ROMを出荷されているマシンの値に設定すれば、サポートに電話をかけることなく解決する場合もあります。
では、MLB/ROMはどうやって取得したら良いでしょうか。 実際のマッキントッシュから取得するしかいまのところ手段はありません。 実機で、 imessage_debugというプログラムをターミナルで起動すると、MLB/ROMの値を知ることができます。これをconfig.plistに書き込みます。 imessage_debugの代わりに、以下の標準的なnvramコマンドでMLB/ROMを知ることもできます。
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM
nvramコマンドでは、ROMの値はASCIIコードに対応する文字があれば、その文字で表示されます。16進数に変換して使ってください。
では、実際のマッキントッシュはどうやって探すべきでしょうか。 MLB/ROMを抽出するMacintoshと、SMBIOSで指定した機種は一致する必要はありません。 MacBook Airから取り出したMLB/ROMをiMacとして設定しているマシンで使っても大丈夫です。 使っていない実機を自分で持っているなら、それのMLB/ROMを使うのがベストです。 以前は複数の機種で同じMLB/ROMを使うことができましたが、2014/12/29あたりから、 同一のMLB/ROMを複数機種で使い回すとiMessageの送信ができなくなりました。 使い回しを止めてしばらくすると正常化するようです。 ということで、iMessageを使わない実機を探す必要があります。
シリアル番号と機種固有の情報の組み合わせが変化すると、ロックアウトされるようです。
なので、いったんこれを設定したら変更してはいけません。
変更があると、せっかくロックを解除してもらってもまたロックされてしまいます。
またこれらを変更すると、「サポートに連絡してください」というダイアログに現れるカスタマーコードが変化します。このカスタマーコードがいつ起動しても同じ値になっていないと、サポートに電話をしても無駄になります。
また、 imessage_debugというプログラムをターミナルで起動すると、iMessageがチェックしているとされるパラメータの一覧を見ることができます。この結果が、いつも同じ値であることを確認してから、次に進みましょう。
2014/2/14の変更で、すくなくとも上記のMLB/ROMの問題を確実に解決しておけば、
iMessageが使えるようになりました。
以下は、古い情報ですが、将来再び必要になるかもしれないので、念のために残しておきます。
シリアル番号と機種固有情報が正しく設定できているのに、まだダイアログが消えないようなら、 いよいよアップルに電話をします。 Hackintoshしているのにアップルに電話をするのは気が重いでしょうが、 それをすこしでも軽減する方法はあります。
これを実行すると、問い合わせ番号が出てきたり、Appleから電話をしてもらうことが可能です。 このあとで電話をする・受けることで、要件の説明の手間が省けます。
さらに、 https://appleid.apple.com/jp/ のページで4桁の「一時的なサポート認証コード」を取得しておくと、本人確認が楽になります。この認証コードに加えて、次に説明するシリアル番号やセキュリティ質問で本人確認されます。
電話をすると、不調になったMacintoshのシリアル番号は何でしょうかと聞かれることがあります。 これはHackintoshであることを疑われているのではなく、 本人確認の一部のようです。 なので、実機を持っている人は、そのシリアル番号を伝えましょう。
実機を持っていない(持っているけどG5マシンのシリアルを告げたら断られたという報告もあります) 場合には、「今はMacintoshがある場所とは別の場所にいて、手元にないのでシリアル番号がわからない。」と言うのも良いでしょう。 その場合、セキュリティ質問や、登録クレジットカード番号などの別の手段で本人確認してくれます。