liberTVを使ってtvOS 10で脱獄したApple TV 4をいじっていると、内蔵SSHクライアントのDropbearが頻繁に削除され、再起動と再セットアップが必要になることに気づいたかもしれません。これは、開発者が脱獄関連ファイルをすべてファイルシステム上の一時フォルダに保存するという(立派な)意図によるもので、これにより、いじっている間にデバイスが文鎮化するリスクをほぼゼロにまで減らしています。ただし、いくつかのファイルを一時フォルダから移動できる自信があれば、SSHクライアントを簡単に起動して永続的に動作させることができ、そうでなければ発生する面倒な再設定を回避できます。
始める前に、ガイドをよく読んで、ステップ 17 の結論も含めて、私たちが何をしているのかを理解してください。このプロセスは非常に安全なはずですが、注意と常識を働かせて、明らかに自分で置いていない既存のファイルを上書きしないでください。
Dropbearを永続化する方法
1) liberTVを使ってApple TV 4がジェイルブレイク状態であることを確認してください。その方法は私のガイドで解説します。
2) SSH経由でApple TVに接続し、デフォルトのパスワードが変更されていることを確認してください。その方法については、こちらのガイドをご覧ください。
3) 手順 2 でリンクされているガイドに従って、Apple TV への SSH セッションを開き、次のコマンドを発行します。
export PATH=/tmp/bin:/tmp/usr/bin:/tmp/usr/local/bin:/tmp/sbin
4) 次のコマンドを 1 つずつ入力します (各行は個別に入力するコマンドです)。
cd /
ls
5) ファイルシステムのルートに移動し、そこにあるフォルダの一覧を確認しました。tmp というフォルダがあることを確認してください 。ここに Dropbear ファイルがあります。以下を入力してください。
cd tmp
ls
6) etcというフォルダを探し 、存在する場合は そこにcd し ます。
cd etc
ls
7) etc ディレクトリ 内のdropbearというフォルダを探します 。もし存在する場合は、 cdコマンドでそのフォルダに移動します。
cd dropbear
ls
ここに、必要な Dropbear ファイルがリストされているはずです。私の場合はdropbear_ecdsa_host_keyという1つのファイルしかありませんでしたが、他にもあるかもしれません。/tmp/etc/dropbear/ フォルダにファイルが表示されていることを確認してください 。表示されない場合は、正しいフォルダにいることを確認してください。いつでもルートに戻って、 cd /と入力し、必要に応じて lsを実行してやり直すことができます。ファイルが見つからない場合、または間違ったディレクトリにある場合は、プロセスは機能しません。そのため、続行する前に目視で確認する必要があります。
それらが存在する場合は、永続的なファイルシステム上にそれらの新しい場所を作成し、それらが最初にあった不安定な一時フォルダからそれらをコピーする作業に進むことができます。
自己責任で行ってください。この方法は完全に安全であるはずですが、人為的なミスについては責任を負いかねます。既存のシステムバイナリを上書きすると、Apple TVを強制的に復元する必要があります。そのため、ここに記載された項目のみをコピーし、コピー先に既に存在しないことを確認してください。
8) tmp内の検証済みの Dropbear ファイルから離れ 、コピー先の場所に移動するには、次のように入力します。
cd /etc
ls
システムの etc フォルダの内容が表示されるはずです。
9) ここで、 etc にdropbearという フォルダーを作成します。これは次のコマンドで実行します。
mkdir ./dropbear
その後、もう一度ls と入力し 、先ほど作成した新しい dropbear フォルダーが追加されていることを除いて、 etc の内容が以前と同じであることを確認します 。
10) すべてのコンテンツがまだ存在し、新しい dropbear フォルダも存在する場合は、次のコマンドを発行して Dropbear ファイルを /tmp/etc/dropbearから/etc/dropbear の新しい場所に コピーします。
mv /tmp/etc/dropbear/* ... /etc/dropbear/
私のシステムでは「そのようなファイルまたはディレクトリはありません」というエラーが報告されましたが、それでも動作しました。
11) cd dropbearと入力し、続けて lsと入力してコピーが成功したかどうかを確認し 、ファイル ( dropbear_ecdsa_host_keyおよび手順 7 で確認したその他のファイル) が存在することを確認します。
これで、 /tmp/etc/dropbear の内容が /etc/dropbearに 正常に移動されました。システムによって削除されることはありません。
次に、同じ方法で 2 番目のファイル グループを /tmp/usr/local/bin から/usr/local/binに 移動する必要があります。
12) 次のコマンドを入力して /tmp/usr/local/binに移動し、その内容がコピーの準備ができていることを確認します。
cd /tmp/usr/local/bin
ls
Dropbear関連のファイルの一覧が表示されるはずです。私の場合は全部で8個ありました。もし見つからない場合は、正しいディレクトリにいることを確認してください。正しいディレクトリに見つからない場合、このプロセスは機能しません。
13) 必要なファイルが存在することを確認したら、次のように入力して、ファイルを移動したい場所に移動しましょう。
cd /usr
ls
コンテンツリストを確認し、そこに「local」というフォルダが既に存在しないことを確認してください。もし存在する場合は、 上書きしないでください。私の場合(そしてあなたの場合も同様です)、最初からそこに「local」 フォルダは存在しないはずです 。
14) usrに ローカル フォルダを作成しましょう:
mkdir ./local
ls
先ほど作成した新しい ローカル フォルダーが追加されていることを除いて、 usr の内容が以前と同じであることを確認します 。
15) ローカル が正常に作成された 場合は、そこにcd し て、その中にbinというフォルダーを作成します 。
cd local
mkdir ./bin
ls
先ほど送信したls コマンドの下に bin フォルダーがリストされていることを確認します 。
16) binが表示されていれば 、フォルダ構造 /usr/local/binが正常に作成され、 /tmp/usr/local/binからファイルをコピーする準備が整ったこと になります。以下のコマンドでコピーできます。
mv /tmp/usr/local/bin/* ... /usr/local/bin/
ステップ 10 と同様に、ここで私のシステムは「そのようなファイルまたはディレクトリはありません」というエラーを報告しましたが、それでも動作しました。
17) コピーが成功したかどうかを確認するには、 「cd bin」と入力し、続けて 「ls」と入力して、ファイル ( dropbearconvert、dropbearkey、および手順 12 で確認したその他のファイル (私の場合は 8 つ) が存在することを確認します。
正しく設定されていれば、これで完了です! Dropbear関連のファイルはすべて 、定期的に消去される /tmpから、永続的に保存されるファイルシステムに移動しました。具体的には、 /tmp/etc/dropbearの内容を/etc/dropbearに 、 /tmp/usr/local/bin の内容を /usr/local/binに 移動しました。
Apple TV 4をliberTVでジェイルブレイクした状態で使用すれば、いつでもDropbear経由でSSHを起動できます。SSHが消去されて再設定が必要になる心配はありません。ただし、 cd、 passwd、 lsなどの使い慣れたコマンドを使用するには、ターミナルSSHセッションごとに以下のコマンドを1回ずつ実行する必要があります。そうしないと、これらのコマンドは利用できません。
export PATH=/tmp/bin:/tmp/usr/bin:/tmp/usr/local/bin:/tmp/sbin
幸運を!
システムバイナリを一切上書きしないでください。このガイドの途中で、Apple TV ファイルシステム上に既に存在するファイルのバージョンを見つけた場合は、/tmp にあるバージョンで上書きしないでください。
このようなことは起こらないはずですが、ディレクトリにコピーする前にディレクトリの内容を二重チェックし、ファイルシステム内で/から/へのコマンドを発行する前に、現在ファイルシステム内のどこにいるかを常に確認してください。
このガイドについて他に何かご不明な点がありましたら、ぜひコメント欄でご意見をお聞かせください。Apple TV 4でSSH接続が永続的に設定できたことに満足していますか?