[iOS 11] iFunBoxなどから「ファイルシステム」へアクセス可能にする手順をやってみた!

(91)

Afc2addやApple File Conduit “2”辺りをインストールすることで、iFunBoxなどからiOSデバイスのファイルシステムにUSB経由でアクセス出来る…というのは、過去の事。
と、思っていたのですが、どうやら手段はある様で、それについて報告が行われていました。

手段はある…じゃぁやってみよう!という事で実践。

*前回に引き続き…今回の記事も私がやりたいことをやって、それについてダラダラ〜っと書いているだけなので、お暇な時にでもどうぞ…。

スポンサーリンク

USB経由でのアクセスが可能?

Jake James氏より「過去iOSのファイルなどを移植する事で、iFunBoxなどからUSB経由でファイルシステムにアクセスすることが出来る」とのことで、その手順が報告されています。

手順はこちら

  1. iOS 7.0.6(iPhone 5s)のファームウェアから「/usr/libexec/afcd」を抜き出す
  2. 抜き出した「afcd」のファイル名を「afc2d」に変更し、デバイス内「/usr/libexec/」に配置
  3. afc2dを「platform-application」キーで署名
  4. Apple File Conduit “2”のdebファイルから「afc2dService.dylib」と「afc2dService.plist」を抜き出して、デバイス内に配置
  5. 「killall -9 lockdownd」コマンドを実行

▲注意▲

本記事には、システム部を手動で弄る手順が含まれます。システム破損に繋がる場合もあり、実践はオススメいたしません。
もしそれでも実践する…という場合は、どのような事態になっても自分1人で解決できる能力と、全ての事柄を自己責任で実行出来る方のみ読み進めてください。

やってみた!

手順はわかった!すごく面倒そうだ!よし、やろう!ということで、やってみました。

*Jake James氏の手順とは一部前後する部分がありますが、基本的にやっていることは同じです。

① iOS 7.0.6のファームウェアをダウンロード&解凍

iOS 7.0.6(iPhone 5s)」のファームウェアは【iPhone6,1_7.0.6_11B651_Restore.ipsw】からダウンロードします。

ダウンロードが完了したら、拡張子を【.ipsw】から【.zip】に変更し、通常通りファイルを解凍しましょう。

② DMGファイルを復号化

ファームウェアを解凍して出てきた【058-2384-003.dmg】というファイルの中に、お目当ての「afcd」が入っています。
ただ、このdmgファイルは暗号化されており、キーを使って復号化してあげなければ開くことが出来ません。ということで、まずは復号化。

復号化キーは【11B651 (iPhone6,1) – The iPhone Wiki】に記載されている以下の物を使います。

a0d2c1d5ce091c62dcf28f1ac953e58a6a66c112184d125e177a1285b7e991262e3c5917

復号化の方法は色々ありますが、今回は【GitHub – planetbeing/xpwn】に入っている「dmg」を使用して行いました。
そのため、復号化に使用するコマンドは以下の通り。これで復号化された【rootfs.dmg】というファイルが完成します。

dmg extract [入力ファイル.dmg] [出力ファイル.dmg] -k [復号化キー]

例:dmg extract 058-2384-003.dmg rootfs.dmg -k a0d2c1d5ce091c62dcf28f1ac953e58a6a66c112184d125e177a1285b7e991262e3c5917

③ 復号化済みdmgからファイルを抜き出し

復号化された【rootfs.dmg】が完成したので、お目当てのファイルを抜き出して行きます。

DMGファイルを開くには、Macであればそのままマウント、Windowsであれば「7-Zip」辺りを使うのが楽ちんかなと思います。

/usr/libexec/】フォルダ内に【afcd】ファイルがあるので、コピー。このファイルの名前を【afc2d】に変更しておきましょう。

④ afc2dに署名を追加

iOS内で動作させるには、ファイルに署名を追加してあげる必要があります。ということで、続いては署名作業。

Entitlementsは以下の物を『ent.plist』に記入し、保存&使用しています。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>platform-application</key>
        <true/>
    </dict>
</plist>

署名作業はJToolでも何でもイイと思うのですが、個人的にldidの方が楽なので、今回はこっち。
ということで、実際に使用したコマンドはこちら。

ldid -S[Entitlementsファイル] [afc2dファイル]

例:ldid -Sent.plist afc2d

⑤ Apple File Conduit “2”のファイルを用意

com.saurik.afc2d_1.2_iphoneos-arm.deb】をダウンロードし、解凍。更に【data.tar.gz】を解凍しましょう。

解凍すると出てくる【/Library/MobileSubstrate/DynamicLibraries/】フォルダ内の【afc2dService.dylib】と【afc2dService.plist】ファイルをコピーしておきます。

⑥ デバイスへファイルを転送

これで必要なファイルが3つ全て揃ったので、後はデバイス内に配置していくだけ。

SSH経由のファイラーでもscpコマンドでも、何でも良いので、それぞれ以下のフォルダに配置します。
afc2d】は【/usr/libexec/】フォルダ内へ。
afc2dService.dylib】と【afc2dService.plist】は【/Library/MobileSubstrate/DynamicLibraries/】フォルダ内へ。

ただし、転送方法にもよりますが、【afc2d】のパーミッションが誤っていると動作しません。その場合は以下のコマンドで修正してください。

chmod +x /usr/libexec/afc2d

⑦ 最後に…

あとはデバイス側にターミナルからSSH接続 or NewTerm 2などを使って以下のコマンドを実行。これで全ての作業が完了です。お疲れ様でした…!

killall -9 lockdownd

アクセス出来た!

全ての配置、作業が完了したので、実際にiFunBoxに接続してみると…アクセス出来た!「Jailed(入獄)」という表記も消え、脱獄端末と認識されているのが分かります。

ios11-afc2d-manually-enable-ifunbox-filesystem-access-jake-step-2

ちなみに、最近よく使う【iMazing】でもきちんとファイルシステム(Root)が認識され、アクセス出来ているのが分かりますね!

ios11-afc2d-manually-enable-ifunbox-filesystem-access-jake-step-3

読み書き可能

アクセスは出来ているようですが、書き込みも可能なのか?という点。
iFunBoxを使用して【/】に「test.txt」というファイル転送、また定番【/System/Library/Audio/UISounds/photoShutter.caf】のリネームを行ってみました。

iFunBox上では何事もなく完了したので、確認はデバイス側のFilzaで行ってみます。すると、この通り!とりあえず、この辺りは問題なさそうです。

ios11-afc2d-manually-enable-ifunbox-filesystem-access-jake-step-4ios11-afc2d-manually-enable-ifunbox-filesystem-access-jake-step-5

iPhone 5s以外でも使用可能

これまでの作業はテスト機として使用しているiPhone 5s(iOS 11.3.1)にて行っていました(失敗して復元必須になっても泣くだけで済むから…)。
ただ、使用したafcdファイルはiPhone 5sのファームウェアから抜き出した物です。では、他のデバイスでもこれらのファイルが使えるのか?この部分を確認してみます。

iPhone Xで試した結果

テスト機であるiPhone 5sに配置したファイルと同じものを、メインで使っているiPhone X(iOS 11.3.1)にも手順通り配置、コマンド実行(めっちゃビビりながら…!)。

すると……動いたよ!
この通り、iPhone Xでもrootへのアクセスが行なえました。もちろん読み書きも可能。ちなみに、画像がiMazingなのはiFunBoxではiPhone Xの識別表示が行われなくて証明にならないためです。iFunBoxでもアクセス可能だよ

ios11-afc2d-manually-enable-ifunbox-filesystem-access-jake-step-6

Cydiaからインストールするだけ…は可能?

今回やってみてわかった事は、ファイルさえ揃っていれば可能…なので、例えばこれらをdebファイルにまとめ、リポジトリにアップロードしてしまえば、CydiaからインストールするだけでiFunBoxなどからデバイスへアクセス出来る様になるという事。

長々といろいろな作業を行いましたが、それは1人が行えば済む話であり、そのファイルをCydiaからインストール出来るようにしてしまえば、みんなが使える…という事です。

でも問題が…

じゃあ!と思ってしまいますが、これ、なかなかつらい問題が…。

afcd】ファイルをファームウェアから抜き出して使用していますが、これを配布してしまうのは法的に問題アリ
そのため、これの解決法が無ければなかなか難しいところ。Jake James氏もこれが原因で配布出来ておらず、手順を公開して「各自やってね」という状態です。

OTAアップデートファイルはzipファイルなので、こちらから直接抜き出せないかな…そしたらインストール時に各自ダウンロードする形にして…問題を回避できるかも…と思ったのですが、見た所iOS 7.0.6ではafcdがパッチファイルになってるんですよね…。

何かいい方法は無い物でしょうかね……?

という感じ…でした。
いやぁ…本当に出来るとは思ってなくて、ビックリ。仕組み的には、iOS 11.xだけではなく、それ以前でも使えそうな雰囲気?要検証でしょうか。

ちなみに、面倒そう…と書きましたが、やってみればそんな事はなく、唯一面倒と思ったのはファームウェアのダウンロードに時間が掛かったところ…。なぜこの時間帯になると我が家はネット速度が落ちるのか…。

また、使用するファームウェアがiPhone 5s(iOS 7.0.6)という点ですが、iPhone 5sだとRoot Filesystemの復号化キーが公開されている&64bitデバイスなので、iPhone 5s限定なのはなんとなく…納得出来ます。iOS 7.0.6限定なのは、何故なのかな?これが今回の手順が使える最終バージョンなのでしょうかね?

コメント

  1. やってみたい…でも失敗してシステム破損したら怖いから迷う…

  2. 記事更新お疲れ様です。
    昔、例えばゲーム機のCFWだったりとかですと、
    こういう権利関係が面倒くさいファイルが必要な作業はそのファイルだけを自分で入手させて、あとはクラッカーさんが作ったパッチを当てる、みたいな感じの頒布方法がよくありましたよね。
    待ってれば(敵を恐れず勇気のある)有志がそういう昔ながらのパッチを作ってくれる…?

  3. 11.3.1で半角カナ入力をできるようにするtweakってある?
    Hankanaくんは試したけど無理だった

    • appstoreで入れられる適当なIMEで良くね?

    • hankana、ウチもターミナルで署名入れてみたけどやっぱり動かないねぇ
      作者さん対応アップデートしてくれないかなぁ

      • キマシタワー!!!

  4. ∑(゚Д゚)こんな方法があったとは・・・!
    AFC2使えなくて困っていたのでこれは有り難いです。
    (;´∀`)ちょっと手間はかかるけどw

  5. 面倒過ぎ、どんだけコマンド入れるねん
    誰かアプリにしてー

    • 権利の問題で配布できねぇっつってんだろよく読め

      • その面倒な作業を自動化するアプリってことだろ
        パソコンで動かすシェルスクリプトとか

    • ほならね

      • 自分でアプリにしろって話ですよ。

        • 私はそう

          • 言いたい

  6. 面倒だからFilzaのWebdab接続だけでいいかなって…

  7. 実行前の状態に戻すには配置したファイルを消せば良いだけ。。。なのでしょうか

    • はい、3ファイルを削除していただければもとに戻ります

  8. すみません。すごく初歩的な質問だと思うのですが
    IPAファイルはiPhoneだけでダウンロード出来ないのでしょうか?😔
    脱獄端末では、どのようなやり方が1番手軽ですか?💦

    • iPhoneだけで完結させたいならそもそもPCとの接続いらね?

    • 脱獄してるしてないにかかわらず
      グーグルドライブとか使えばダウンロード保存出来たと思います
      脱獄してるならここのサイトでも紹介している方法でいいんじゃないでしょうか

    • そもそもipaファイルをiphoneにインストールしたいっていう事ではないですよね?

    • 署名されてないipaのインストールならExt3nder使って署名とインストール
      署名されてる(元々App Storeにあったもの)ならFilzaとかでipaのファイル押せばインストールできますよ

    • ありがとうございます!
      無事成功することが出来ました!
      皆さん本当にありがとうございました;;

  9. newterm 2が
    NerTerm 2に…

  10. rootfs.dmgを作成するにあたり、「dmg」の使い方を
    もう少し詳しくお願いします。

    • 使い方は草

    • ビルドする必要がありますが、その辺りに不安がある場合は別のツールでも問題ない作業なので、そちらで行ってみるのが楽かなと思います。

  11. どのような自体になっても

    どのような事態になっても

  12. 7.0.6ってたしか未脱獄で読み書きできる最終バージョンじゃなかったっけ?

  13. kairos2,早く対応して欲しい。

  14. xpwnのBUILDをみたらapt-getって書いてるんだけど… Linux要ります?

    • 不要です。
      また、Macであれば比較的簡単にビルド可能ですが、Windowsであれば別のツールを使っていただくほうが簡単なのかなと思います。

    • コンパイル済みのdmg.exeも同じサイトの別の場所にあるよ。

      • github.com/msftguy/ios-jb-tools/tree/master/tools_bin/win32

  15. 私の場合、配置してコマンド入力後もアクセス出来ないんですよね
    Windowsで作業をしていたので、署名には脱獄済みiPhone上のNewTerm2とLink Identity Editorでやっていたんですが、ここで失敗したのかな?

    署名後のafcdのCRC32は3B0127C4なんですが…はてさて

    • 僕もあなたのやり方でやっていて僕もできなかったのでMacでやらないといけないのかもしれないので、Macを持っていないWindows勢では無理だと思います

    • Windowsでも可能かと思いますが、失敗が多そうな部分ですと、署名作業、あとはパーミッションでしょうか。
      特にWindowsですとパーミッションに狂いが発生する事が多いので、3ファイル全てのパーミッションを確認してみるとイイかもしれません

      • 返信ありがとうございます。やはりldidによる署名作業が駄目だったようです
        下記コメントにある、jtoolを利用した方法で成功しました

        Ext3nderをインストール済みだったので、これと一緒に入るjtoolで署名させました

  16. なるほど〜
    読んだ限り色々大変そうですね…
    ifunbox経由のPcとのデータのやりとりなら、一時的な方法に過ぎませんが他の方法もあると思います。
    現状、僕は下記のやり方をしています。

    端末側でPCに送りたいファイルを旧clipboxやFilesなどの内部データとのやり取りのできるアプリにコピーしする方法です

    • 基本的にはSSH経由が今のところ一番楽なのかな…と思います。

    • 有線sshがifunboxから行えるようになるので何かあった際に便利ですよ
      一応、そういったメリットもありますね

  17. signはios内でやってもいいかも
    cydiaからjtool_instrallerをインストールしてsshからjtoolを使いました

    • 追伸 jtoolを使う場合 自己責任で
      cd afc2dが置かれた作業フォルダ/
      jtool –ent /bin/ls > platform.ent
      jtool –e arch -arch arm64 afc2d
      jtool –sign –ent platform.ent –inplace afc2d

      • jtoolでのコマンド操作を載せていただきありがとうございました
        iOS上で無事に署名作業ができました

  18. Unrestr1ct0rじゃダメなんですかね

    • そちらは今回実行している物とは出来ることが若干異なっています。
      また、こちらはiOS 11.3.1(11.4 Beta 3)までに対応した手法となっています。

  19. 脱獄しなくても、シャッター音のファイル消して、強制的に無音化出来るんですね…..

    • こちらの作業内容的にも、動作的にも、脱獄は必要です。

      • あ、そうなんですね!
        ご丁寧にありがとうございます!

    • 無脱獄filzaから音無しはできますね

  20. 先程貼ったリポ削除されたのですが、自分で作成した物以外は危険なのですか?

    • 記事中にもあります通り、afcdを配布するのは違法となっております。

      • その様ですね。見落としてしまっていたようで申し訳ありませんでした。

  21. ipswのダウンロード部分からシェルスクリプト書けば解決では

  22. SSHで十分だろうに・・・

  23. afc2dをAppleのサーバーからとってきて署名しdebパッケージを作成するところまで自動でやってくれるシェルスクリプトを書いたので公開します(macOSのみ対応)。
    https://github.com/subdiox/afc2d/blob/master/afc2d.sh
    使用は自己責任で。

  24. SANTAさんは「パッチファイルになっている」と言っていますが、以下のページでiPhone6,1のPrerequisite VersionとBuildがN/AになってるリンクからDLすればパッチ形式になってないのでOTAから直接バイナリ取ってこれますね。
    ttps://www.theiphonewiki.com/wiki/OTA_Updates/iPhone/7.0.6#iPhone_5s

    このzipの中のAssetData/payload/replace/usr/libexec/afcd をpartialzipでダウンロードする処理をインストーラに組み込めば現実的な速度で合法的にafc2dを入れられるかな?

    • お、見落としていました!たしかにFullの方であれば可能かもしれませんねぇ…!

      • partialzipでのダウンロードを試してみたんですが、ファイル数が多すぎてzip64で圧縮されていたためにpartialzip側が対応していなくてダウンロードできませんでした…
        他のバージョンのOTAでうまくいくafcdとかってないですかね…?

  25. 署名したafc2dのMD5hash値が
    113e63467d63d1f7f7024bf82394f0d3
    になったんですがあってますかね?
    誰か教えてくれると嬉しいです。

    • 署名前のafcdのバイナリのMD5は
      0108bd3d9aa81ea67fae1c9e6547e857
      だけど、署名後のバイナリのMD5はent.plistの書き方によって変わっちゃうからなんとも

      • 情報ありがとうございます。署名前のファイルには問題ありませんでした。何が原因でできないのか未だ不明です。

        • saurik氏のdebファイル内のafc2dを置き換える方法でやりました?その場合はcontrol.tar.gz内のextrainst_ファイルを削除する必要があります
          あと、署名がちゃんと行われているかを確認する場合は、jtool_installerをCydiaから入れて、jtool -ent afc2dを実行したときの出力がSANTAさんのplistと同じになっているかを見ればできます。

  26. 最新のiFunboxをインストールしようとすると、Esetがウイルス反応するのですが問題ないでしょうか?

    • バッタもんだろ

    • きちんと公式サイトからダウンロードしたものであれば問題はないかと思います。
      ただし、公式サイト以外からダウンロードした物は本物かどうか…も不明なため、ご使用にならないようにしてください。

  27. 俺のIPhone5sはiOS8.1.3なので問題無くシステムファイルにアクセス出来ます。
    でって言うwwww

  28. ② DMGファイルを復号化
    ここのところで、Macのターミナルお使って記事に表記されているコマンド(dmg extract 058-2384-003.dmg rootfs.dmg -k a0d2c1d5ce091c62dcf28f1ac953e58a6a66c112184d125e177a1285b7e991262e3c5917)を打っても「command not found」になってしまいます。
    どのように作業すると【rootfs.dmg】が作成されるのですか?

    • 多分dmgコマンドを入れてないのだと思います
      ソースは↓にあるので、ビルドすれば使えると思います
      https://github.com/planetbeing/xpwn/tree/master/dmg

      • ご教示ありがとうございます。
        リンク先を見ましたが、何をどうすれば良いのやら?

        • macOSなら、

          > git clone https://github.com/planetbeing/xpwn
          > cd xpwn
          > cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib .
          > make

          を実行すればxpwn/dmgフォルダ内にdmgコマンドがビルドされますよ
          Linuxの場合はcmakeのあとの-D○○オプションを消せばビルドできます

          • これやったら最後のmakeの前でエラーになってしまいます。
            どうすればいいでしょうか?

          • エラー内容を書いてください

          • — Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
            CMake Error at ipsw-patch/CMakeLists.txt:27 (message):
            libpng is required for ipsw!

            — Configuring incomplete, errors occurred!
            See also “/Users/chieko/xpwn/CMakeFiles/CMakeOutput.log”.

            です。

          • libpngがないというエラーなので、brew install libpng
            を実行してインストールしたらいかがでしょうか。
            自分でエラー内容を理解して調べるということも大事ですよ。

  29. dmg windowsで起動できないんだが…..

    • dllファイルも必要だから忘れずに。

  30. ios11.1でメモ検索ができなくて困ってます。

    以前はメモアプリでワードを入れたら、そのメモが表示されたのですが。。

    • 11.3.1ではできるぞ、復元してみれば?

  31. 私もUnrestr1ct0rからifunboxのシステムにアクセスをしていたのですが、最近不安定になり、afc2 for ios11は大丈夫でしょうか。
    ちなみにリポジトリはこちらです。[管理人によりURL削除]

    • 記事中にもあります、afcdファイルの配布はAppleの著作物なため、違法となっております。

  32. サンタさんいつの間にかiMazing使いはじめてたんですねー
    アンチiTunes派の私には神ががり的ソフトですよ♪

    • iTunes嫌い…という訳ではないのですが、音楽はストリーミングですし、バックアップは手動な場合が多いので、iTunesの活躍する場面がないのです…。

  33. afc2が対応したみたいですね!

    • 現在Cydiaからインストール出来るものは、記事中にもありますAppleの著作物を含む違法な物です。ご注意ください。

  34. 私もiFunbox(windows)をインストールしようとするとESETに駆除されてしまいます。
    きちんと以前の記事探して公式から落としたのに…

  35. アホみたいな質問で申し訳ないんですけどもしかしてこれするのに脱獄必要ですか?
    署名をどこでやっているのか記載がなかったので、PCではなくiPhoneからやるものなのかと疑問に思ったのですが

    • 署名作業はMacなどからでも出来ますが、最終的にファイルをiOSデバイス内に配置する必要があり、その際にiOSデバイスが脱獄されている必要があります

      • やっぱり脱獄必要なんですね・・・
        11.4.1で非脱獄でシステム見る方法があればよかったのですがこればっかりは仕方ありませんね。
        ありがとうございました。