KeyHoleTV開発者のブログ

日々の質問や開発の日記

Cydia への対応

脱獄事始め

顧客から JB(脱獄)したiPhoneをiOS12に上げたら、 前のバージョンのi-KeyHoleTVが動作しなくなったと報告を受ける。 でiOS12では、AD-HOC版のネットでのインストールがうまく行かない不具合がある(この不具合は、 XCdoe10.2.1でやっと解消されました)。 この不具合は、 Code Signの埋め込みの不具合で、Appleが直さなければ、開発者としては、どうしようもない。

それで、Cydia でインストールできるようにするために、

putidevelopersblog.blogspot.com

を参考にして、i-keyholetvをアップロードした。 すると、顧客からは、 error 404 が出てくるとの報告を受ける。 

Cydiaでは、Debianのパッケージ読み取りをCydiaのリポジトリで行っている。 このため、Packages.gz2 と XXX.deb ファイルがあると、パッケージとして認識して、 404のエラーはでないはず。 一般に404のエラーは、HTMLのブラウザが表示する。

こちらとしては、顧客が何をしているかのか分からないし、手元に脱獄した iPhoneがないため、

本当のことが分からない。 また、Cydiaのリポジトリをアップする情報が極端に少ないため、どうすれば、正解なのかが分からない。

で、手元に古いiPhone 5があったので、それを脱獄して、Cydiaのリポジトリの表示がどうなるか調べてみた。 また、脱獄した iPhoneで i-keyholetvがインストールできるか調べてみた。

iPhoneの脱獄

一般に IOSのデバイスは、 AppleStoreにあるアプリケーションとAD-HOCと呼ばれるUDID(機器に付随するユニークな番号)を登録している機器に対して、有効なアプリケーションしかインストールすることができない。 しかし、脱獄すると、AppleStoreにないアプリケーションや AD-HOCのアプリケーションをインストールすることができる。

脱獄には、様々な方法が存在するようだが、

ja.wikipedia.orgCydiaで脱獄したアプリケーションをインストールを調べる目的があるので、 Cydiaを使った脱獄を試みる。

Cydiaのインストール

iPhoneにCydiaを入れるためには、Cydia Impactor を使う

cydia-app.comCydia Impactorで、Cydiaアプリが入ったIPAファイルをiPhoneに入れる。 Cydiaアプリは、iOSのバージョンによって、インストールするIPAが異なっている。

cydia-app.com手持ちのiPhone 5にCydiaを入れる際、 Cydia Impactorが動作する。Linux (CentOS 64 bits, Ubuntu 32bits)Windows32bits,Windows64bits, MacOSが存在するが、私の環境では、 Windows 32bitでしかインストール出来なかった。 Linuxでは、 Cydia Impactorが

lockdown.cpp:57 LOCKDOWN_E_INVALID_CONF

のエラーを吐き出して、処理が進まなかった。 Cydia Imapctor を動作させて、 IPAを入れる際、 Apple のAPP SPECIFIC PASSWORDSが必要で、AppleIDを管理するサイトにログインして、APP SPECIFIC PASSWORDSをCentOS, UbuntuのFireFoxで作ってみたが、Cydia Impactor で、作ったパスワードを入れても、上記のエラーがでてしまう。

yalujailbreak.net直す方法をいろいろ試してみて、iTunsが必要になって、 結局 MacOSで、サファリを使って、

APP SPECIFIC PASSWORDSを構築した。 Windowsの32bitsでは、iTunesを使って、

Appleにサインインしようとすると、なぜか、iTunesがエラーを出して、停止してしまう。 しかたがないので、 Macを使って、 iTunesを起動して、そこから Safariでログインした。 それで、構築した APP SPECIFIC PASSWORDS を Windows32 bitsのCyida Impactorで入力すると、インストールが始まった。 関係があるのかないのか分からないが、APP SPECIFIC PASSWORDS を構築する際、適当な名前を入力する必要があるが、Linuxでは、本当に適当な名前を入れて、 MacOSでは、Cydiaと入れた。 

脱獄開始と問題発生

インストールが始まってしばらくしてから、Cydia Impactorが Generating Application Mapを表示して停止した。 iPhoneには、h3lixのアイコンが表示されていた。 脱獄する際、 対象のIPAは、IOSのバージョンで異なる。 h3lixは、 iOS10.3.3 用のIPAで、別のバージョンのiOSは、他のIPAを利用する。 一旦iPhoneを再起動してみて、 h3lixをタップしてみる。 h3lixが起動できたので、うまくいったと思って、 Jail Break のボタンをタップしようして、確認のため、脱獄のサイトを見てみると、

www.iphonehacks.comTrust Developer Profile とある。 iPhoneを調べてみても、General > Profile(s) & Device Managementが表示されない。 で、iPhoneにDeveloper Profile をインストールする。 Developer Profileがインストールされいないと、Profile(s) & Device Managementが表示されないようだ。 Profile をインストールするためには、 iPhoneでSafariを起動して、

beta.apple.com をアクセスする。 AppleIDでログインする。

developer.apple.comログインした後、Appleからセキュリティコードを聞かれる場合がある。 これは、登録している iPhoneに送られてくる番号をiPhoneで受信して、その番号を入れる。 サイトに入って

Enroll Your Device を選んでダウンロードプロファイルをタップすると、iPhoneにProfile が入る。

iOS10.3.3では、General のVPNの下にプロファイルが表示される。

これで、h3lixをタップして、 Jail Break ボタンをタップする。 タップすると Cydiaがインストールされ、 iPhoneを再起動するか聞いてくる。 再起動して、 Cydiaのアイコンをタップすると、

Cydia が起動して、 脱獄が完了。

 

Cydia でのリポジトリの設定

Cydiaを起動して、下にある Sourceをタップする。 すると、リポジトリが表示される。 リポジトリを追加するには、 Edit をタップして、Addをタップする。 すると、URLを聞いてくるので,

www.oiseyer.com/iOS12/

を入力する。 すると、リポジトリは、

f:id:KeyHoleTV:20190402101040p:plain

Cydiaリポジトリ

と表示される。 www.oiseyer.com をタップして、i-KeyHoleTVのインストールを行う。 また、ここまで、404のエラーは、表示されない。 

i-KeyHoleTVのインストール

リポジトリのwww.oiseyer.comをタップする。 すると All Packages とVideo Player と表示される。 アプリは、 Video Playerなので、 Video Player をタップする。 すると、画面の左上にInstallが表示されるので、タップする。 最後に確認してくるので、許可してインストールを続行する。 すると、エラーが表示された。

f:id:KeyHoleTV:20190402110021p:plain

Cydia Install Error

表示されるエラーは、404ではなく、 dpkg-deb が吐き出すエラーで、置いているファイルの.deb の認識ができないようだ。 Ubuntu で Cydia用の Packages.gz2は、正しく構築されているが、 XXXX.debの解凍ができいない。 Ubuntuで解凍を試したらできたので、解凍する仕組みか圧縮の方法がCydiaとUbuntuでは異なっている。 おそらくCydiaの方が古いと予想して、

dpkg-deb -b で作る  .deb を -Zgzip のオプションを付けて、行う。

dpkg-deb -b -Zgzip  Appのデレクトリ

とした。 これを www.oiseyer.com/iOS12

にアップして、再びCydiaでインストールを試みる。 すると、今度は正しくインストールできた。

f:id:KeyHoleTV:20190402111032p:plain

 

で、結局、404のエラーは、表示されない。 またCydiaでi-keyholetvが正しくインストールも

できた。

Cydiaでインストールしたアプリの運用

iOS10用のCydia は、h3lixをCydiaImpactor を使って導入する。 導入した後、 iPhoneの電源を入れ直すと、Cyida や Cydia を介してインストールしたアプリが動作しなくなる。 タップしても、一瞬は立ち上がるが、すぐにアプリケーションが終了してしまう。 他のバージョンの Cydia では、どうなるか分からない。 

h3lixの脱獄は、恒久的に反映されるのではないようだ。 CydiaやCydiaを介してインストールしたアプリを再び動作させるためには、h3lixのアイコンをタップして、起動しする。

起動すると、「Kickstart」というボタンが表示されるので、それをタップする。 タップすると、 iOSが再起動する。 これで、CydiaやCydiaを介してインストールしたアプリケーションが利用可能な状態になる。

 

なお、Cydia 対応のi-KeyHoleTVのインストール、プレミアムモジュールキーの購入は、

www.oiseyer.com

で。