Apple, Cydia, iFaithの全てのSHSH(blobs)をCommand Lineから取得し管理する!TinyUmbrellaは使わない。

  • このエントリーをはてなブックマークに追加
  • feedly
    follow us in feedly

SHSHの保存には何を利用されていますか、一般的にTinyUmbrellaで取得、管理されているかと思います。

TinyUmbrella:
The Firmware Umbrella – TinyUmbrella | iOS, Android, hacking/jailbreaking information


今回は、全てCommand Lineから管理しちゃおうということです。

savethemblobsを動かす環境を構築

@iNeal さんが作ったsavetheblobsと言うPythonのスクリプトがあるのでそちらを利用します。

https://github.com/Neal/savethemblobs.git


savethemblobsをcloneする
git clone https://github.com/Neal/savethemblobs.git
試しにsavethemblobsを実行する
cd savethemblobs
./savethemblobs.py 
Error:
Traceback (most recent call last):
  File "./savethemblobs.py", line 16, in 
    import requests
先日、MacPortsをインストールしたばかりなので真っ新の状態の僕の環境、requestsがないと言われるのでエラーが起こる。

pipが入ってない場合は以下の記事を参考にpipをinstallする。

pip install 参考記事:
sudo easy_install -U pip


pipが入っている場合はrequestsをinstall:
sudo pip install requests

“Successfully installed requests”と出れば成功。

もう一度、savethemblobs.pyを実行してusageが出れば環境が出来上がっています。
./savethemblobs.py 

usage: savethemblobs.py [-h] [--save-dir SAVE_DIR] [--overwrite]
                        [--overwrite-apple] [--overwrite-cydia]
                        [--overwrite-ifaith] [--no-submit-cydia]
                        [--skip-cydia] [--skip-ifaith]
                        ecid device
savethemblobs.py: error: too few arguments

ECID

使い方の前に、事前にECID、identifier/boardconfigを調べておかないと行けないのでその説明に入る

そもそもECIDとは何か?

ECIDとは、デバイスごとに割り当てられた16進数で表記されたハッシュの文字列です(1つとして他のデバイスと同じ値がないように出来ています)。
SHSHの取得にはECIDとデバイスの種類を渡すだけでdataが返ってくる仕組みになっています。TinyUmblleraが2回目以降接続せずともSHSHが取得出来るのはECIDとデバイスの種類を保存しているからです。

ECIDの取得方法

リカバリーモードにしてごにょごにょすれば参照出来るが、一番手っ取り早い方法で言えばCydiaから確認することです。

1. Cydiaを起動してHomeに”TSS Center (SHSH & APTicket)”があるのでタップ
2. TSS Centerが開かれるので一番下のECIDを参照(hex型であるためsavethemblobsで利用する場合は先頭に0xを付加する必要があり)

Image 10 21 13 at 9 27 PM
間違わずに控える

identifier/boardconfig

identifier, boardconfigを調べる

以下のwikiを参照して調べる。

参照記事:
Category:Devices – The iPhone Wiki


自分のデバイスの名前をポチリ・・

ここでは、例としてiPhone 4をSoftbankということでiPhone 4 (GSM model)を選択
Image 10 21 13 at 9 35 PM
上記の写真の通り
identifier: n90ap
boardconfig: iPhone3,1
である。

savethemblobsの使い方

Usage (日本語)

使い方はUsegeの通りです(English: Usage

必須の引数:
  ecid                 int型, hex型でデバイスのECIDを指定
  device               デバイス: identifier/boardconfig (例. iPhone3,1/n90ap)

オプションの引数:
  -h, --help           helpを表示
  --save-dir SAVE_DIR  blobsを保存するためのローカルディレクトリ (デフォルト: ~/.shsh)
  --overwrite          既存のblobsを上書き
  --overwrite-apple    既存のblobsを上書き (Appleからのみ)
  --overwrite-cydia    既存のblobsを上書き (Cydiaからのみ)
  --overwrite-ifaith   既存のblobsを上書き (iFaithからのみ)
  --no-submit-cydia    Cydia serverにblobsを送信しない
  --skip-cydia         Cydia serverからのblobsをフェッチしない
  --skip-ifaith        iFaith serverからのblobsをフェッチしない

使用例

// ECID:(int型)1050808663311 boardconfig:iPhone3,1
savethemblobs.py 1050808663311 iPhone3,1

// ECID:(hex型)0x000000F4A913BD0F boardconfig:iPhone3,1 オプション:既存のblobsを上書き
savethemblobs.py 0x000000F4A913BD0F iPhone3,1 --overwrite

// ECID:(int型)1050808663311 identifier:n90ap オプション:cydia, ifaithをスキップ
savethemblobs.py 1050808663311 n90ap --skip-cydia --skip-ifaith

このようにboardconfigかidentifierはどちらか一つを指定する。ただ上記の設定だとSHSHは~/.shshというデフォルトのディレクトリに格納される(TinyUmbrellaと同じ && 隠しディレクトリ)ため、管理がしにくい。
ここで重要なのがCydiaから参照したECIDはhex型であるため先頭に”0x”ゼロエックスを付加しなければなりせん。
000000F4A913BD0Fの場合は0x000000F4A913BD0Fとなります。

./savethemblobs.py 0x000000F4A913BD0F iPhone3,1 --save-dir ./

これでsavethemblobs.pyがあるディレクトリに保存出来ました。
Image 10 21 13 at 9 53 PM

まとめ

この方法であればTinyUmbrellaをわざわざ開く必要がなくなります。

是非、挑戦してみてね!

では、きんちゃんでした。





コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Post Navigation