[UPDATE2]脱獄するためにはJailBreakが必要なんですか?

米著作権局は2010年7月26日(米国東部時間)にデジタルミレニアム著作権法(DMCA)の見直しを発表し、合法利用の範囲を拡大した。発表された全6項目にはiPhoneという固有名詞こそないものの、iPhoneのJailBreakやUnlock行為に該当する項目があるという。 [Revised on August 1, 2010]発表された全6項目は米著作権局が米国議会図書館に宛てた”Recommendation”でその詳細が公開されている。全262ページのうちJailBreakとキャリアUnlockについてはApple社のiPhoneが名指しされ、およそ100ページ(P77〜P174)も割かれていた。

JailBreakとキャリアUnlockが合法と認められたが、JBerはこれをどう受け止めればよいのだろうか。米国権威当局のお墨付きを得たと希望の光と喜ぶべきか、それともこれが終わりのはじまりと将来を憂うべきなのか。

Cydia-3G

U.S. Copyright Office – Anticircumvention Rulemaking

対象項目の抜粋
(2) Computer programs that enable wireless telephone handsets to execute software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications, when they have been lawfully obtained, with computer programs on the telephone handset.
(3) Computer programs, in the form of firmware or software, that enable used wireless telephone handsets to connect to a wireless telecommunications network, when circumvention is initiated by the owner of the copy of the computer program solely in order to connect to a wireless telecommunications network and access to the network is authorized by the operator of the network.

そもそも今回の決定は、ある一定条件下で行われるJailBreakについてDMCA適用が免除されるに過ぎない。裏を返せばこの条件を満たさないJailBreakは合法ではないということだ。

アップルはどうするのか?これを機に対策を緩めたりすることはあり得ないだろうし、JailBreakされたiPhoneを保証対象に含めることも絶対にないだろう。むしろ初期不良の交換や返品、バッテリ交換プログラムなどの各種サポートについてJailBreakされたiPhoneはこれまで以上に排除に向けた取り組みを強化するかもしれない。友達紹介キャンペーンならぬJailBreakユーザー密告キャンペーン、AppleIDのアカウントロックなど。。。

今後、メディアにより「JailBreakが合法化」とセンセーショナルに伝えられることで、リスクを理解しないままJailBreakに至るユーザは増えることは想像に難くない。合法であるという(誤った)安心感とともに間もなくリリースされるJailBreakツールの手軽さからコモディティ化は急速に進むはずであり、JailBreakするユーザの急増は疑いようがない。その結果、トラブルに陥り、リカバリーの術を知らないユーザは、文鎮化させたiPhoneを片手に「もうしませんから」と泣き叫ぶことになるだろうが、時すでに遅しである。アップルはもちろんソフトバンクもJailBreakされたiPhoneをサポートなどしない。違法行為ではないが利用規約を破るような不心得者まで救済してしまってはルールを順守しているユーザーとの公平性が保たれないし、当初アップルが想定した利用範囲をはるかに超えてしまうため実質的にサポート・保証が不可能だからだ。

では今回の措置によって何か変わるのか?JailBreakがグレーとか違法ではないかと感じていたJBerにとっては合法という安心感が得られるという意味では評価できるかもしれないが、実態は何も変わらないのではないだろうか。いや、むしろアップルとハッカー達のチキンレースはこれまでどおり続くが、その傍らにはカラ騒ぎの結果、何のサポートも受けられず、保証もされない「自己責任」を突きつけられて耐え切れなくなった一般ユーザーが死屍累々と横たわるという不幸な結末を迎える可能性もある。

ともすれば極めてマイノリティな一部の主張を認めたことで、AppStore以外のアプリの流通、セキュリティの脆弱化、物理的損傷等を惹き起こしかねないJailBreakの拡散が助長されることでiPhoneのエコシステム全体を破壊させかねないのではないかと思ったりするのである。

以上、説得力のないJBerの戯言。

— Updated on July 28, 2010 —
やはりというべきか、アップル広報からJailBreakした場合は「製品保証を無効にする」ことを改めて強調したようだ。

Apple、守勢にまわる—「合法的だろうと脱獄したらやはり製品保証は打ち切り」

JailBreakが合法であるにもかかわらず利用規約等で保証対象外とした場合、訴えればどうなるか?経済的損失は小額であるため訴訟コストを考えると訴訟メリットが薄い。もっとも、訴訟理由がおカネではなくもっと尊い何かがあれば別だが。仮に裁判所で争ったところで、今回のDMCA適用除外は「JailBreakが一定の条件で合法」というだけで、メーカーに保証義務を課すものではないし、最強のアップル社リーガルチームがガチガチにガードを固めて来ることは間違いない。

また、この記事が言うように「守勢にまわる」「『iPhoneの動作が不安定になる』というくだりは事実ではない」というのは誤っている。この記者はJailBreakを理解していないのだろう。JBerであれば周知だろうが、そこそこの知識がないとJailBreakしたiPhoneを継続的に安定運用させるのは大変な労力を要する。だからこそ、アップルは「JailBreakは最良のiPhone体験を損なう」と主張しているのだ。ごく一部のJBerにとって快適(安定や信頼性があるという意味ではない)な環境が他の全ユーザにも同じように快適というわけではない(むしろ様々なトラブルに遭遇する覚悟が必要である)ことを認識する必要がある。

これからのメディアの捉え方に注目である。JailBreakの効果・メリットだけが大きく扱われ、そのリスクが同等、あるいはそれ以上に説明されるべきだが、それはなされない(知らないから説明できない)可能性が高い。これこそが悲劇の始まりと思えてならない。自由の代償とも言うべきか。

[UPDATE3]iPadのロック画面の解除をタップ方式に変更する”Tap to Unlcok for iPad”<一部不具合あり>

iPadのロック画面の解除をタップ方式に変更するWinterBoardのテーマを作ってみた。通常はスワイプしなければならないが、タップするだけでロック画面を解除できる。JailBreakを伴うので自己責任でどうぞ。

Updated on July 31, 2010
CydiaにTap to Unlock for iPadというWinterBoardのテーマとしてリリースしましたが、一部不具合があることがわかりました。詳細は”Updated on July, 2010″の追記部分をご確認ください。


LockScreen3

テーマ適用前
LockScreen1

iPadのiOS3.2(iPhoneではiOS4)からSpringBoardやTelephonyUIの中身が変更され、CydiaにあるTap to Unlock系のテーマが効かないので自作してみた。タップして解除できるほか、壁紙のフル表示用に時刻表示とスライダー部分の背景を透過させた。ついでに電源オフのスライダーも変更した。


LockScreen4

WinterBoardならテーマをカンタンに切り替えることが可能だが、ネイティブの画像を次のとおり差し替え・修正してもよい。

透過画像に差し替える
“/System/Library/CoreServices/SpringBoard.app/”にある”SlideshowBkgnd.png”を透過画像へ差し替える。
同様に”/System/Library/PrivateFrameworks/TelephonyUI.framework/”にある画像を透過画像に差し替える。
BarBottomLock_T.png
BarLCD_T.png
bottombarlocktextmask.png
WellLock_T.png

スライダー画像を修正する
同じTelephonyUI.frameworkディレクトリにあるロック解除と電源OFFのスライダー画像(”bottombarknobgrayT.png”、”bottombarknobredT.png”)を修正。スライダーをロック解除、電源OFFが有効になる距離をスワイプさせるので、この画像の幅をスワイプ距離だけ拡張すればタップして同じ効果が得られるというカラクリ。CydiaにあるiPhoneテーマ(iOS3.1.x用)にある画像は、iPad用とサイズが異なっているためそのまま転用してもフィットしないので注意。

テキスト文字を削除する
ロック画面には”ロック解除”や”電源オフ”などの文字が表示されてしまう。/System/Library/CoreServices/SpringBoard.app/にあるローカライズ設定ファイルを編集する。日本語の場合はJapanese.lpojにある”SpringBoard.strings”ファイルにある対象文字列を削除(null値)する。

  • ロック解除・・・ロック画面のスライダー右側に表示される
  • 電源オフ・・・電源オフ画面
  • キャンセル・・・同期中のロック画面
  • 表示・・・プッシュ通知が届いた時のロック画面

—Updated on July 25, 2010—
WinterBoardのテーマとしてTap to Unlock for iPadのパッケージをModMyi経由でCydiaからリリースしてみました。カンタンな手続きで数時間程度で”Package Submission Accepted”というメールが届き、即時Cydiaにアップされていたようです。

WinterBoardなしで適用したい場合は、パッケージ内ファイルを上記のネイティブファイルと差し替えることで可能です。もちろん、保証はありませんので自己責任でお願いします。元ファイルのバックアップ推奨。

ついでに。ホームスクリーン上のアイコンをタップしてカンタンに画面をロックするJBアプリの”QuickLock 0.1.2″を使っています。今回リリースしたパッケージと連動するわけではありませんが、カンタンにロック、ロック解除ができて便利な組み合わせになります。


quick-lock

—Updated on July 31, 2010—
Cydiaにリリースした”Tap to Unlock for iPad”に不具合を発見。スライドバーの南京錠の画像サイズ範囲外の上下それぞれ30ピクセル程度の範囲、または南京錠画像の左側(画面左端まで)をタップしてもロック解除されてしまいます。本来は南京錠画像(”bottombarknobgrayT.png”)サイズエリア(下図のピンク囲み線)の範囲内のタップに反応する予定でしたが、その上下・左側のエリア(下図のレッド囲み線)をタップしてもロック画面解除が有効になります。


known-issue-LockScreen

同様にSleep/Powerボタンの電源オフ時にもパワーボタン画像(”bottombarknobredT.png”)範囲の上下それぞれ20ピクセル程度、パワーボタン画像の左側(画面左端まで)をタップしても電源オフが有効になってしまいます。

現在、これらの不具合を調査していますが、原因の特定に至っておりません。原因特定次第アップデート版をリリースいたします。クリティカルな不具合ではないと認識していますが、お困りの方はアンインストールするかWinterBoardのテーマから外してください。

【不具合の内容】

  • ロック画面のスライダー上下・左側をタップしても解除が有効になる
  • 電源オフ確認画面のパワーボタン上下・左側をタップしても電源オフが有効になる

動作環境
iPad WIFI+3G 16GB-USA iOS3.2 Spirit Jailbreak済み
WinterBoard 0.9.3211-1

※2010年12月25日追記
iPad WIFI+3G 16GB-USA iOS4.2.1 redsn0w JailBreak(tethered)でも確認しました。ただし、ロック画面解除する際の解除有効エリアが広めになる不具合は解消していません。iOS4.2.1でCydiaでインストールする際に”gsc.wildcat”のdependency errorが出る場合は”iPad/iOS4.2の”gsc.wildcat”エラーを解消する方法”をご参考まで。

続きを読む [UPDATE3]iPadのロック画面の解除をタップ方式に変更する”Tap to Unlcok for iPad”<一部不具合あり>

iPadのロック画面のPNG画像リスト(TelephonyUI.framework編)

iPad WIFI+3G版(iOS3.2)のロック画面のPNG画像を取り出した。SpringBoardの画像と同様にiPadで使用しないもの(iPhone/iPod touch用)も含まれている様子。

/System/Library/PrivateFrameworks/TelephonyUI.framework/ にあるPNG画像のまとめ。アルファベット順。画像サイズは実寸に幅1ピクセルの枠線をつけた。

WinterBoardでカスタマイズするためには差し替えたい画像ファイルを次のディレクトリに置いてテーマ(以下の例では”XXXXX”)を適用する。
/Library/Themes/XXXXX.theme/Folders/TelephonyUI.framework/

参考エントリ:iPadに入っているSpringBoard画像のリスト

answer.png
answer.png
BarBottomLock.png
BarBottomLock.png
BarBottomLock_T.png
BarBottomLock_T.png
BarLCD.png
BarLCD.png
BarLCD_T.png
BarLCD_T.png
bottombarbkgnd.png
bottombarbkgnd.png
bottombarbkgndlock.png
bottombarbkgndlock.png
bottombarbkgndlockS.png
bottombarbkgndlockS.png
bottombarbkgndlockT.png
bottombarbkgndlockT.png
bottombarblue.png
bottombarblue.png
bottombarblue_pressed.png
bottombarblue_pressed.png
bottombarclear.png
bottombarclear.png
bottombarclear_pressed.png
bottombarclear_pressed.png
bottombardarkgray.png
bottombardarkgray.png
bottombardarkgray_pressed.png
bottombardarkgray_pressed.png
bottombargray.png
bottombargray.png
bottombargrayT.png
bottombargrayT.png
bottombargray_pressed.png
bottombargray_pressed.png
bottombargray_pressedT.png
bottombargray_pressedT.png
bottombargreen.png
bottombargreen.png
bottombargreen_pressed.png
bottombargreen_pressed.png
bottombarknobgray.png
bottombarknobgray.png
bottombarknobgrayT.png
bottombarknobgrayT.png
bottombarknobgreen.png
bottombarknobgreen.png
bottombarknobred.png
bottombarknobred.png
bottombarknobredT.png
bottombarknobredT.png
bottombarlocktextmask.png
bottombarlocktextmask.png
bottombarred.png
bottombarred.png
bottombarred_pressed.png
bottombarred_pressed.png
bottombarredfire.png
bottombarredfire.png
bottombarredfire_pressed.png
bottombarredfire_pressed.png
bottombarwhite.png
bottombarwhite.png
bottombarwhite_pressed.png
bottombarwhite_pressed.png
decline.png
decline.png
emergencyBackArrow.png
emergencyBackArrow.png
keypad.png
keypad.png
keypad_pressed.png
keypad_pressed.png
TPAndPlus.png
TPAndPlus.png
TPAndPlusSmall.png
TPAndPlusSmall.png
topbarbkgnd.png
topbarbkgnd.png
waiting_bottom.png
waiting_bottom.png
waiting_top.png
waiting_top.png
WellLock.png
WellLock.png
WellLock_T.png
WellLock_T.png

iPadに入っているSpringBoard画像のリスト

iPad WIFI+3G版(iOS3.2)のSpringBoardの画像ファイル。WinterBoardでカスタマイズしようと取り出してみた。全て取り出してみるとiPhone/iPod touch/iPadの各デバイスとも同じ画像が入っている様子。iPad用だけの画像ではないようだ。

/System/Library/CoreServices/SpringBoard.app/ にあるPNG画像のまとめ。アルファベット順。画像サイズは実寸に幅1ピクセルの枠線をつけた。バッテリの充電状態などの段階表示する画像は最初と最後のみ。

WinterBoardでカスタマイズするためには差し替えたい画像ファイルを次のディレクトリに置いてテーマ(以下の例では”XXXXX”)を適用する。
/Library/Themes/XXXXX.theme/Folders/SpringBoard.app/

Activate.png
Activate-Decoded.png
ActivateT.png
ActivateT-Decoded.png
applelogo.png
applelogo-Decoded.png
BatteryBG_1.png から BatteryBG_17.png まで
BatteryBG_1-Decoded.png
BatteryBG_17-Decoded.png
BatteryHUD.png
BatteryHUD-Decoded.png
BatteryReflectionMask.png
BatteryReflectionMask-Decoded.png
BluetoothLockbar.png
BluetoothLockbar-Decoded.png
block.png
block-Decoded.png
brightness.png
brightness-Decoded.png
Caution.png
Caution-Decoded.png
closebox.png
closebox-Decoded.png
Default_0_AirPort.png から Default_3_AirPort.png
Default_0_AirPort-Decoded.png
Default_3_AirPort-Decoded.png
Default_0_Bars.png から Default_5_Bars.png
Default_0_Bars-Decoded.png
Default_5_Bars-Decoded.png
Default_Airplane.png
Default_Airplane-Decoded.png
Default_AlarmClock.png
Default_AlarmClock-Decoded.png
Default_AllCorners.png
Default_AllCorners-Decoded.png
Default_BG.png
Default_BG-Decoded.png
Default_BatteryBG.png
Default_BatteryBG-Decoded.png
Default_BatteryCharged.png
Default_BatteryCharged-Decoded.png
Default_BatteryCharging.png
Default_BatteryCharging-Decoded.png
Default_BatteryInsides.png
Default_BatteryInsides-Decoded.png
Default_BatteryLowBG.png
Default_BatteryLowBG-Decoded.png
Default_Bluetooth.png
Default_Bluetooth-Decoded.png
Default_BluetoothActive.png
Default_BluetoothActive-Decoded.png
Default_BottomCorners.png
Default_BottomCorners-decode.png
Default_CallForwarding.png
Default_CallForwarding-Decoded.png
Default_EDGE_ALT_ON.png
Default_EDGE_ALT_ON-Decoded.png
Default_EDGE_ON.png
Default_EDGE_ON-Decoded.png
Default_GPRS_ON.png
Default_GPRS_ON-Decoded.png
Default_HeadsetBatteryBG.png
Default_HeadsetBatteryBG-Decoded.png
Default_HeadsetBatteryFill.png
Default_HeadsetBatteryFill-Decoded.png
Default_HeadsetLowBatteryFill.png
Default_HeadsetLowBatteryFill-Decoded.png
Default_PercentLow_%.png
Default_PercentLow_-Decoded.png
Default_PercentLow_0.png から Default_PercentLow_9.png まで
Default_PercentLow_0-Decoded.png
Default_PercentLow_9-Decoded.png
Default_Percent_%.png
Default_Percent_-Decoded.png
Default_Percent_0.png から Default_Percent_9.png まで
Default_Percent_0-Decoded.png
Default_Percent_9-Decoded.png
Default_Play.png
Default_Play-Decoded.png
Default_Plus.png
Default_Plus-Decoded.png
Default_TTY.png
Default_TTY-Decoded.png
Default_UMTS_ON.png
Default_UMTS_ON-Decoded.png
Default_VPN.png
Default_VPN-Decoded.png
DeviceLockBottomBarBackground.png
DeviceLockBottomBarBackground-Decoded.png
DeviceLockBottomT.png
DeviceLockBottomT-Decoded.png
DeviceLockEntryFieldBackground.png
DeviceLockEntryFieldBackground-Decoded.png
DeviceLockEntryFieldBackgroundKeyboardT.png
DeviceLockEntryFieldBackgroundKeyboardT-Decoded.png
DeviceLockEntryFieldBackgroundT.png
DeviceLockEntryFieldBackgroundT-Decoded.png
DeviceLockFailedEntryBackground.png
DeviceLockFailedEntryBackground-Decoded.png
DeviceLockKeypad.png
DeviceLockKeypad-Decoded.png
DeviceLockKeypadDelete.png
DeviceLockKeypadDelete-Decoded.png
DeviceLockKeypadPressed.png
DeviceLockKeypadPressed-Decoded.png
DeviceLockKeypadT.png
DeviceLockKeypadT-Decoded.png
DeviceLockTitleViewBackgroundT.png
DeviceLockTitleViewBackgroundT-Decoded.png
DeviceLockTitleViewRedBackground.png
DeviceLockTitleViewRedBackground-Decoded.png
DeviceLockTitleViewRedBackgroundKeyboardT.png
DeviceLockTitleViewRedBackgroundKeyboardT-Decoded.png
DeviceLockTitleViewRedBackgroundT.png
DeviceLockTitleViewRedBackgroundT-Decoded.png
Error_BG.png
Error_BG-Decoded.png
emptyblock.png
emptyblock-Decoded.png
FSO_0_AirPort.png から FSO_3_AirPort.png まで
FSO_0_AirPort-Decoded.png
FSO_3_AirPort-Decoded.png
FSO_0_Bars.png から FSO_5_Bars.png まで
FSO_0_Bars-Decoded.png
FSO_5_Bars-Decoded.png
FSO_Airplane.png
FSO_Airplane-Decoded.png
FSO_AlarmClock.png
FSO_AlarmClock-Decoded.png
FSO_BG.png
FSO_BG-Decoded.png
FSO_BatteryBG.png
FSO_BatteryBG-Decoded.png
FSO_BatteryCharged.png
FSO_BatteryCharged-Decoded.png
FSO_BatteryCharging.png
FSO_BatteryCharging-Decoded.png
FSO_BatteryInsides.png
FSO_BatteryInsides-Decoded.png
FSO_BatteryLowBG.png
FSO_BatteryLowBG-Decoded.png
FSO_Bluetooth.png
FSO_Bluetooth-Decoded.png
FSO_BluetoothActive.png
FSO_BluetoothActive-Decoded.png
FSO_CallForwarding.png
FSO_CallForwarding-Decoded.png
FSO_EDGE_ALT_ON.png
FSO_EDGE_ALT_ON-Decoded.png
FSO_EDGE_ON.png
FSO_EDGE_ON-Decoded.png
FSO_GPRS_ON.png
FSO_GPRS_ON-Decoded.png
FSO_HeadsetBatteryBG.png
FSO_HeadsetBatteryBG-Decoded.png
FSO_LockIcon.png
FSO_LockIcon-Decoded.png
FSO_Percent_%.png
FSO_Percent_-Decoded.png
FSO_Percent_0.png から FSO_Percent_9.png まで
FSO_Percent_0-Decoded.png
FSO_Percent_9-Decoded.png
FSO_PercentLow_%.png
FSO_PercentLow_-Decoded.png
FSO_PercentLow_0.png から FSO_PercentLow_9.png まで
FSO_PercentLow_0-Decoded.png
FSO_PercentLow_9-Decoded.png
FSO_Play.png
FSO_Play-Decoded.png
FSO_Plus.png
FSO_Plus-Decoded.png
FSO_RotationLock.png
FSO_RotationLock-Decoded.png
FSO_TTY.png
FSO_TTY-Decoded.png
FSO_UMTS_ON.png
FSO_UMTS_ON-Decoded.png
FSO_VPN.png
FSO_VPN-Decoded.png
FST_BG.png
FST_BG-Decoded.png
HeadsetBatteryBG_1.png から HeadsetBatteryBG_17.png まで
HeadsetBatteryBG_1-Decoded.png
HeadsetBatteryBG_17-Decoded.png
hud.png
hud-Decoded.png
INC_Base.png
INC_Base-Decoded.png
INC_BaseWirelessModem.png
INC_BaseWirelessModem-Decoded.png
INC_BaseWorkout.png
INC_BaseWorkout-Decoded.png
INC_Glow.png
INC_Glow-Decoded.png
INC_GlowWirelessModem.png
INC_GlowWirelessModem-Decoded.png
INC_GlowWorkout.png
INC_GlowWorkout-Decoded.png
info-button.png
info-button-Decoded.png
JibblerBackground.png
JibblerBackground-Decoded.png
JibblerFadeLeft.png
JibblerFadeLeft-Decoded.png
lcddelete.png
lcddelete-Decoded.png
lcddelete_pressed.png
lcddelete_pressed-Decoded.png
LockScreenControlsHUD.png
LockScreenControlsHUD-Decoded.png
mute.png
mute-Decoded.png
NextOffT.png
NextOffT-Decoded.png
NextT.png
NextT-Decoded.png
nexttrack.png
nexttrack-Decoded.png
pause.png
pause-Decoded.png
PauseT.png
PauseT-Decoded.png
Phone_BG.png
Phone_BG-Decoded.png
play.png
play-Decoded.png
PlayT.png
PlayT-Decoded.png
PreviousOffT.png
PreviousOffT-Decoded.png
PreviousT.png
PreviousT-Decoded.png
prevtrack.png
prevtrack-Decoded.png
recalibrateBezel.png
recalibrateBezel-Decoded.png
recalibrateBezelT.png
recalibrateBezelT-Decoded.png
ring.png
ring-Decoded.png
RotationLocked.png
RotationLocked-Decoded.png
RotationUnlocked.png
RotationUnlocked-Decoded.png
routeButtonBlue.png
routeButtonBlue-Decoded.png
routeButtonWhite.png
routeButtonWhite-Decoded.png
SBBadgeBG.png
SBBadgeBG-Decoded.png
SBDockBG.png
SBDockBG-Decoded.png
SBDockBG2.png
SBDockBG2-Decoded.png
SBDockBGT-Landscape.png W1024xH64
SBDockBGT-Landscape-Decoded.png
SBDockBGT-Portrait.png W768xH64
SBDockBGT-Portrait-Decoded.png
SBDockMask-72.png
SBDockMask-72-Decoded.png
SBDockMask.png
SBDockMask-Decoded.png
SBDownloadProgressFill.png
SBDownloadProgressFill-Decoded.png
SBDownloadProgressTrack.png
SBDownloadProgressTrack-Decoded.png
SBGenericAppIcon.png
SBGenericAppIcon-Decoded.png
SBGenericSmallAppIcon.png
SBGenericSmallAppIcon-Decoded.png
SBLockScreenControlsLCD.png
SBLockScreenControlsLCD-Decoded.png
SBLockScreenControlsLCDSmall.png
SBLockScreenControlsLCDSmall-Decoded.png
SBLockScreenControlsLCDTethering.png
SBLockScreenControlsLCDTethering-Decoded.png
SBLockScreenControlsLCDTetheringSmall.png
SBLockScreenControlsLCDTetheringSmall-Decoded.png
SBSearchPageIndicator.png
SBSearchPageIndicator-Decoded.png
SBSearchPageIndicatorCurrent.png
SBSearchPageIndicatorCurrent-Decoded.png
SBSearchTableViewBadge.png
SBSearchTableViewBadge-Decoded.png
SBSearchTableViewBadgeSelected.png
SBSearchTableViewBadgeSelected-Decoded.png
SBWirelessModemLCDBG.png
SBWirelessModemLCDBG-Decoded.png
silent.png
silent-Decoded.png
SlideshowBkgnd.png
SlideshowBkgnd-Decoded.png
SlideshowLandscape.png
SlideshowLandscape-Decoded.png
SlideshowPortrait.png
SlideshowPortrait-Decoded.png
speaker.png
speaker-Decoded.png
spotlight-full.png
spotlight-full-Decoded.png
spotlight-keyboard.png
spotlight-keyboard-Decoded.png
StarBackground.png
StarBackground-Decoded.png
StarOff.png
StarOff-Decoded.png
StarOn.png
StarOn-Decoded.png
Transparent_BG.png
Transparent_BG-Decoded.png
VolumeBlueTrack.png
VolumeBlueTrack-Decoded.png
VolumeKnob.png
VolumeKnob-Decoded.png
VolumeWhiteTrack.png
VolumeWhiteTrack-Decoded.png
WallpaperGradientLandscapeBottomT.png
WallpaperGradientLandscapeBottomT-Decoded.png
WallpaperGradientLandscapeTopT.png
WallpaperGradientLandscapeTopT-Decoded.png
WallpaperGradientPortraitBottomT.png
WallpaperGradientPortraitBottomT-Decoded.png
WallpaperGradientPortraitTopT.png
WallpaperGradientPortraitTopT-Decoded.png
WallpaperIconDockShadowT.png
WallpaperIconDockShadowT-Decoded.png
WallpaperIconShadowT.png
WallpaperIconShadowT-Decoded.png
WirelessModem_BG.png
WirelessModem_BG-Decoded.png

iPad WIFI+3G US版にdocomoのキャリアロゴ画像を表示する

iPad WIFI+3G US版のキャリアロゴをdocomoにしてみた。/System/Library/Carrier Bundles/を見ると標準で用意されているキャリアロゴはAT&TとVodafoneのPNG画像だけの様子。そのためドコモのSIMを挿してもキャリアロゴは”NTT DOCOMO”とそっけないテキスト文字が流れ、”NTT…”となってしまう。

この作業はJailBreakが必要です。自己責任でどうぞ。

標準状態のキャリア表示
default-carrier-logo

キャリアロゴ表示をカスタマイズ後
customized-carrier-logo

PNG画像を用意
キャリアロゴのPNG画像を用意。サイズは高さ20ピクセル以下。横サイズの最大値は不明。収まり具合をみながら調整する。
 Default_CARRIER_NTTdocomo.png
 FSO_CARRIER_NTTdocomo.png
2種類用意したけどiPadの場合、Default側の画像って使われることがあるのか不明。これらのファイルを
/System/Library/Carrier Bundles/Unknown.bundle/
に保存する。

carrier.plistの編集
ドコモSIMが挿されたときにステータスバーに表示するイメージ画像を指定する。対象ファイルは
/System/Library/Carrier Bundles/Unknown.bundle/carrier.plist
作業前にバックアップ推奨。StatusBarImagesキーに以下を追加して保存。

<dict>
 <key>AllowPrefixMatching</key>
 <false/>
 <key>CarrierName</key>
 <string>NTT DoCoMo</string>
 <key>DefaultImage</key>
 <string>Default_CARRIER_NTTdocomo.png</string>
 <key>FullScreenOpaqueImage</key>
 <string>FSO_CARRIER_NTTdocomo.png</string>
</dict>

作業完了後にRespringすると指定した画像がキャリアロゴに表示される。余談だがUnknown.bundle/carrier.plistには各国のキャリア63社が名を連ねており、もちろんSoftBankはある(画像はない)が、NTT DoCoMoの名前がないのだ。日本以外のiPadはキャリアロックが外されているはずだが、US T-Mobileも見当たらないことからキャリアパートナーしか事前登録されていないのかも。

WinterBoardでもカスタマイズできると思うが、SoftBankの白micro SIMもないので標準状態で表示できるように設定しておくことにした。今度はdocomo用キャリアバンドル自作するかな。

動作環境
iPad WIFI+3G 16GB-USA iOS3.2 Spirit Jailbreak済み

iPadの壁紙をWallpaperAutoChangerで楽しむ方法【要JB】

iPadの写真アプリを使えば撮りためた画像をデジタルフォトフレームとして楽しむことができる。とはいうものの、意外にその機能を使ってじっくり眺めるというのは最初のうちか人にホレホレするときぐらいで普段はそれほどない。せっかくの大画面がもったいない。そんな時に @hitoriblog さんのWallpaperAutoChanger for iPadを使えば普段からに楽しむことができる。

このアプリはiPadのホーム画面の壁紙を指定した時間間隔、アンロック時、アプリ終了時などのタイミングに応じて自動で切り替えてくれるアプリケーション。詳しくは”iPadの壁紙を自動的に切り替える WallpaperAutoChanger”を参照。

注意喚起情報:JailBreakを伴います。自己責任でどうぞ。

WinterBoardでDockとアプリのアイコンを調整した後
IMG_0098

壁紙のテーマをディレクトリで管理する
常に同じ画像を切り替えるのも退屈してしまうので、気分に合わせてテーマ分類する。WallpaperAutoChangerの設定画面には”Pool Directory”という設定項目があり、デフォルトでは”/var/mobile/Media/Wallpapers”が指定されている。これを利用してサブディレクトリにテーマ毎に画像を分類する。例えば次の通り。
/var/mobile/Media/Wallpapers/Senna:アイルトン・セナ関連画像
/var/mobile/Media/Wallpapers/Landscape:風景画像
分類の方法はお好みで。気分にあわせ設定画面から切り替え画像のテーマを設定できる。


IMG_0099

WinterBoardを使ってホーム画面をカスタマイズする
ホーム画面にはアイコンが並び、ドックが配置されている。画像を楽しむにはこれらが邪魔をする。そんな時にはWinterBoardでアイコンやドックを透過してしまうとよい。
余談だがiPadでWinterBoardを使う場合にはiPhoneとは異なる部分が多く注意が必要。WinterBoardを使用せず実現できる場合もあるが、自分は復元が必要になるような不具合には遭遇していないし、カスタマイズの再現がカンタンなので必須アプリのうちのひとつである。

アイコンの透過
デフォルトで入っているテーマ”Dim Icons”をONにする。ただし、透過が弱いので”/Library/Themes/Dim Icons.theme/Info.plist”で設定されているIconAlpha値を0.5から0.4に修正する。これより小さい値にするとホーム画面でアイコンを識別しづらくなる。

Dockの透過
デフォルトで入っているテーマ”Transparent Dock”をONにしても透過されない。これはiPadがiPhone/iPod touchと異なりデバイスをタテにしたときのDock画像、ヨコにした時のDock画像の両方が必要になるから。SpringBoardの画像ファイルはiPhoneと同じ場所のようなので、そこからDock画像らしきファイルを探し出し、WinterBoardのオリジナルテーマを作成する(ディレクトリ名:”XXXXX.theme”)。

デフォルト画像は”/System/Library/CoreServices/SpringBoard.app/”にある次のファイル:
SBDockBGT-Landscape.png
SBDockBGT-Portrait.png
WallpaperIconDockShadowT.png

その他にもらしきファイルがあったが最低限これを透過させればよいと思われる。同じピクセルで同じファイル名の透過画像を作り自作テーマディレクトリの下(/Library/Themes/XXXXX.theme/Folders/SpringBoard.app)に置き、WinterBoardからこのテーマをONにしてRespringをかける。

WinterBoardでDockとアイコンの透過を調整する前:調整後は一番上の画像
IMG_0097

Categories/SBも組み合わせてアイコンを整理するとさらに効果的。もっともiPadにiPhoneのdBar[One]を適用することができれば壁紙を楽しむには最高のカタチになるかもしれない。見たい画像はたくさんあるけれど、iPadをデジタルフォトフレームとしてスライドショーで眺めるという手間と時間が億劫になってしまう。それを日常の操作の中で楽しむことを可能とするWallpaperAutoChangerは本当に素晴らしいアプリケーションだと思う。是非、Appleには標準実装してもらい。



動作環境
iPad WIFI+3G 16GB-USA iOS3.2 Spirit Jailbreak済み
WallpaperAutoChanger 0.3-1
WinterBoard 0.9.3211-1

[UPDATE2]iBooks for iPhoneの辞書機能を英和和英・国語辞書にする

以下のエントリは古い内容です。JailBreakせずに辞書設定を変更する方法がありますので、iBooksのルックアップ辞書を英和・和英にする方法 を参考にどうぞ。
——–
iOS4の目玉の一つがiBooks for iPhone。iPadのiOS3.2で搭載されたiBooksがさらにバージョンアップ。その中の機能の一つが辞書機能。iBookstoreは英語書籍のためFormat regionが英語になっていることから辞書をひくと英英辞書を参照して表示します。これを英和和英辞書にしたり、日本語書籍では国語辞書にすることが可能です。

なお、iPhone4は本日時点ではJailBreakできていないのでこの方法が使えません。いずれ可能になった際にはバージョン変更等でファイル構成に変更がなければ使えるでしょう。


IMG_0004

注意喚起情報
JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社のセキュアな環境を無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

辞書データの準備
iBooks for iPhoneアプリをインストールしただけでは辞書データがないので準備が必要。iBooksでWinnie-the-Poohなどを開き単語を選択して「辞書」をタップすると辞書データをダウンロードできます。しかしこれは英英辞書データのみ。英和和英辞書、国語辞書データをダウンロードするためには、適当な日本語epubデータ(青空文庫 (XHTML) -> ePub変換を使わせていただいた)をiBooksに同期して開き、同じように単語を選択して辞書をルックアップします。英和和英辞書、国語辞書もダウンロードできます。iPadと格納場所は異なりますが同じ辞書であることが確認できました。

/var/mobile/Applications/iBooks/Library/Dictionaries/ディレクトリの下にある辞書データ

  • Apple Dictionary.dictionary・・・英語、アップル用語辞典
  • New Oxford American Dictionary.dictionary・・・英語、New Oxford American Dictionary
  • Oxford American’s Thesaurus.dictionary・・・英語、Oxford American Writer’s Thesaurus
  • Shogakukan Daijisen.dictionary・・・日本語、大辞泉
  • Shogakukan Progressive English-Japanese Japanese-English Dictionary.dictionary・・・日本語、プログレッシブ英和和英辞典
  • Shogakukan Ruigo Reikai Jiten.dictionary・・・日本語、類語例解辞典

ルックアップする辞書の設定
iBooks.app直下のディレクトリにあるBKDictionaryManager_LanguageToOrder.plistを次のとおり変更。辞書の並びは自分の参照したい順番へ。作業前のバックアップを推奨。

<dict>
<key>en</key>
 <array>
  <string>com.apple.dictionary.PEJ-PJE</string>
  <string>com.apple.dictionary.NOAD</string>
  <string>com.aplple.dictionary.OAWT</string>
  <string>com.apple.dictionary.AppleDictionary</string>
 </array>
<key>ja</key>
 <array>
  <string>com.apple.dictionary.Daijisen</string>
  <string>com.aplple.dictionary.ruig</string>
  <string>com.apple.dictionary.PEJ-PJE</string>
 </array>
</dict>

書籍データの言語に基づき呼び出す辞書を決定しているので、英語書籍データの場合に優先辞書を英和和英になるよう追加(赤字部分)だけ。上に貼りつけた画像の”prior”で「辞書」をタップすると次のように画面が切り替わります。


IMG_0005

日本語の書籍データを開くと”ja”セクションに記載した辞書を参照するのでサンプルでiBooksに入れたデータで確認すると次のとおり、大辞泉を引いてきてくれます。


IMG_0002

dictionary-jn

iPhone4でムービーを撮ってみた

試しにiBookstoreにある論語を開いてみると「この言語は辞書機能を利用できません。」と表示されます。もしかするとこのplistに使用言語を追加すれば出来るのかもしれませんが。

–Updated on July 24, 2010
iBooksがバージョンアップして1.1.2に。辞書をルックアップする機能に変更はないようです。BKDictionaryManager_LanguageToOrder.plistでの使用辞書の優先順位変更は動作する。このファイルにはenとjaしか設定されていませんが、他の言語(たとえば『論語』)からでも呼出が可能です。


ibooks-dic112-1

ibooks-dic112-2

動作確認
iPhone3G iOS4 PwnageTool4.0.1でJailbreak済み