IOS のアップグレード

提供: ArchWiki
2014年11月11日 (火) 21:59時点におけるKusakata (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

この記事では iTunes を使わずに iDevice の iOS のバージョンをアップデートする方法を説明しています。jailbreak された 6.x デバイスを iOS 7.1 (残念ながら、jailbreak されていません) にアップグレードすることにより、iPad 3 (GSM または "AT & T") でテスト済みです。

イントロダクション

iPod/iPad/iPhone は libimobiledevice プロジェクトによってサポートされています。libimobiledevice パッケージにはデータや設定をバックアップ・リストアするための idevicebackup2 など多数のツールが含まれています。

ファームウェアのアップデートでは全てのデータが消去されるため、まずはアプリとデータをバックアップする必要があります。

必須要件

ハードウェア:

  • iDevice (iPad 3 GSM でテスト済み)
  • USB ケーブル
  • 念の為、十分なバッテリー (30% でテスト済み、終わった時も 30% のままでした)

パッケージ:

  • libimobiledevice
  • libirecovery (下を参照)
  • idevicerestore (libirecovery に依存) (下を参照)
  • usbmuxd (1.0.9-1 ではパッチが必要です、下を参照)

リカバリモードの iDevice にアクセスするには権限が必要になります。全てを root で実行するのが気に食わない場合は、udev ルールを作成します:

/etc/udev/rules.d/42-ipad-recovery.rules
# iPad 3 GSM in Recovery Mode, Apple, Inc. Apple Mobile Device [Recovery Mode]
SUBSYSTEM=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1281", TAG+="uaccess"

idProduct は lsusb で確認してください。

ノート: TODO: create packages for this? Right now they are installed to /tmp/i because I do not need them after installation

libirecovery を /tmp/i にビルド・インストールします (コミット 3687ea11271b79fb2643c8f041490544c17c5e58 でテスト、iOS をアップデートした後パッケージは不要になります):

git clone https://github.com/libimobiledevice/libirecovery.git
cd libirecovery
./autogen.sh --prefix=/tmp/i/fs
make && make install

idevicerestore をビルド・インストール (コミット 9bc7a528d6ff42211f8d19ffa8ab2c2d371ea8d0 でテスト):

git clone https://github.com/libimobiledevice/idevicerestore.git
cd idevicerestore
PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/tmp/i/fs/lib/pkgconfig ../autogen.sh --prefix=/tmp/i/fs
make && make install

受信バッファが満杯になったときの接続リセットを修正するパッチのあてられた usbmuxd をインストールします (ベースは 1.0.9-1)。https://github.com/Lekensteyn/aur/tree/master/usbmuxd からファイルを取得して次のコマンドでインストール:

makepkg -i

全手順

iDevice のアップグレードは以下の手順によります:

  • ファームウェアファイルの取得。
  • バックアップの作成。
  • 新しいファームウェアのインストール。
  • バックアップのリストア。

ファームウェアファイル

インストールする前に Apple がアップデートに署名することを求めるので、基本的に、インストールできるファームウェアのバージョンは最新のものだけです。さらに、そのためにアップデート中にインターネット接続が利用できる状態になっている必要があります。

ファームウェアのアップデートは "IPSW" ファイルとして提供され http://ipswdownloader.com/ で見ることができます。このウェブサイトで、デバイス・モデル・バージョンを選択すれば、一意でないダウンロード URL がわかります。http://appldnld.apple.com/iOS7.1/031-4615.20140310.HJvGp/iPad3,3_7.1_11D167_Restore.ipsw のような感じです (iPad 3 (GSM) 7.1)。このファイルはとても大きいので注意してください (例のバージョンでは 1.33 GiB)。

バックアップ

デバイスが既に接続されているとして ~/ibackup にバックアップを保存したい場合:

idevicebackup2 backup --full ~/ibackup/

このバックアップには設定 (Wi-Fi, Apple ID など) とメディア (写真と動画)、アプリ設定が含まれます。アプリそのものはバックアップに含まれないので注意してください。アプリは App Store から手動でインストールすることができます。

新しいファームウェアのインストール

実際のファームウェアのインストールには約8分かかります。インストールの中で、SHSH ブロブが Apple のサーバーから取得されます。この署名がないと、ファームウェアのインストールはできません。

/tmp/i/fs/bin/idevicerestore -e iPad3,3_7.1_11D167_Restore.ipsw

出力 ("COMMENT" はインラインコメントを、<snip> は行の省略を示しています):

Found device in Recovery mode
<snip>
About to send filesystem...
Connected to ASR
Validating the filesystem
Filesystem validated
Sending filesystem now...
[==================================================] 100.0%
Done sending filesystem
Restoring image (14)
[==================================================] 100.0%
Checking filesystems (16)
Checking filesystems (16)
About to send KernelCache...
<snip>
Sending Baseband TSS request...
Request URL set to https://gs.apple.com/TSS/controller?action=2
Sending TSS request attempt 1... response successfully received
Received Baseband SHSH blobs
[==================================================] 100.0%
Sending BasebandData now...
Done sending BasebandData
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
Flashing NOR (19)
    COMMENT: フリーズしてるように見えるかもしれませんが、しばらく待ってください
Updating Baseband completed.
Mounting filesystems (17)
Unknown operation (49)
Unknown operation (25)
Unknown operation (51)
Waiting for NAND (29)
Waiting for NAND (29)
Got status message
Status: Restore Finished
Cleaning up...
DONE
ノート: "Sending filesystem now..." の間にステータスコード141で idevicerestore が終了してしまう場合、新しいバージョンの usbmuxd が必要です。必須要件を見て下さい。

ファームウェアのアップデートが完了すると、デバイスは勝手に再起動して多数の言語でこんにちはと表示されます。続けてデバイスの設定を行なって "新しいデバイスとして設定" (もしくはそれに類似するテキスト), "iCloud から復元", "iTunes から復元" という選択肢が表示されるところまで進めます。ここで "iTunes から復元" を選んで次の手順に進んで下さい。

リストア

デバイスが既に接続済みであらかじめ ~/ibackup にバックアップを作成したとします。ファクトリーリセットを行った後は (もしくはファームウェアのアップデートの後) 次のコマンドを実行してください:

idevicebackup2 restore --reboot --system --settings ~/ibackup/

仕上げ

アップデートが終わっても App Store からアプリをインストールする必要があります。新しい機能の設定を確認してプライバシーやセキュリティに何か問題がないかチェックしましょう。