« Remote Diskは単なるファイル共有ではない | トップページ | 1.1.3 jailbreak: iPhone Dev Team Official vs. iJailBreak 0.4.1 »

1.1.3 jailbreak後にパスワードを変更するとSpringBoardが再起動を繰り返す問題

iPhone/iPod touchを1.1.3 jailbreakした後、passwdコマンドでパスワードを変更すると、SpringBoardが数秒毎に再起動を繰り返してしまう問題が発生します。これは、BSD Subsystemに含まれるpasswdコマンドがファームウェア1.1.3の/etc/passwdおよび/etc/master.passwdファイルを壊してしまうことにより引き起こされる問題のようです。

したがって、BSD Subsystemのこの問題が解決されるまでpasswdコマンドを実行してはいけません。かといって、ユーザrootとmobileのパスワードをデフォルトのalpineにしておくわけにはいきませんので、以下の手順に従って/etc/master.passwdを直接編集しておくことをお勧めします。

/etc/master.passwdは以下のように1カラム目がユーザ名、2カラム目がDESエンコードしたパスワードになっています。

##
nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:/smx7MYTQIi2M:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
unknown:*:99:99::0:0:Unknown User:/var/empty:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false

この2カラム目をviなどを使用して編集すれば問題は解決します。Mac OS Xにはcryptコマンドがありませんので、代わりにperlのcrypt()関数を使用してDES暗号化されたパスワード文字列を取得します。

$ perl -e 'print crypt("YOUR_PASSWORD", "SA"), "\n";'
SAb.ud/B16dTo

ここで、YOUR_PASSWORDの部分を実際に使用するパスワードに変更してください。SAの部分はsaltと呼ばれる暗号化の種ですので、任意の2文字を与えてください(例えば、パスワードalpineの暗号化には"/s"が使われています)。crypt()関数の実行結果としてsalt2文字から始まる13バイトの文字列が得られますので、これを/etc/master.passwd内のパスワード(/smx7MYTQIi2Mの部分)と置き換えて保存します。

【追記 2008.3.01】

apptapp Installerから導入されるBSD Subsystemでは未だに解決されていませんが、Jay Freeman氏による新しいパッケージマネージャCydiaからインストールされるBSD Subsystem互換セットではこの問題が解決されています。

|

« Remote Diskは単なるファイル共有ではない | トップページ | 1.1.3 jailbreak: iPhone Dev Team Official vs. iJailBreak 0.4.1 »

iphone」カテゴリの記事

ipod」カテゴリの記事

コメント

いつも参考にさせていただております.ありがとうございます.1.1.3にiphoneをアップデートしましたが,パスワードを変更できなくこまっております.以前は1.1.1でtermvt-100にて容易にできたのですが,今回はソフトのインストールもできません.しかし,こちらを拝見させていただきましたところ,対策方法が記載されているしていただいてあるにもかかわらず理解することができません.大変申し訳ありません本当の素人みたいなものです.vi自体の使い方も知りません.なんとかこんな私でもパスワードの設定が出来ないものでしょうか.何卒よろしくお願い申し上げます.

投稿: finite | 2008年2月18日 (月) 18時04分

いつも、玄人向けの文章ですいません。

> 今回はソフトのインストールもできません.

この部分が気になったのですが、1.1.3 jailbreak完了後に、Installer.appがSpringBoardに現れていますでしょうか?
また、外部のマシンからユーザroot、パスワードalpineでsshログインできますでしょうか?

1.1.3 jailbreakが成功していれば、上記2点ができているはずですが、これらが可能になっていないと今回の対策はできません。

今回の対策方法を簡単に言うと、2つのステップからなります。

1) 新しいパスワードのDES暗号化文字列を取得する
2) /etc/master.passwdを編集し、1)の文字列で書き換える

1)は、Linuxマシンなどであればcryptコマンドが使えますが、そうでなくてもperlさえ動く環境があれば取得できます(上記エントリで解説)。2)はiPhone上で直接編集する代わりに、scpでPCにコピーし、使い慣れたテキストエディタで編集後、scpでiPhoneにscpし直すという方法も取れます。

もし、まだ分からないことがあればまたコメントください。

投稿: javaflavor | 2008年2月18日 (月) 21時43分

早々にご丁寧なアップありがとうございます.
私の環境はMacOS環境しかありません.これでは無理でしょうか?
以前はfetchを使用してPCマック側からパスワードの変更を操作していたのですが,繋がらないことが多く,そのためterm vt-100で操作するようになりました.
現在はterm vt-100は動くようになりました.
しかし,ご教示していただております内容は理解できますが,とくにviなどは一度もうごかしたことはないのです.
何とかなりますでしょうか?
また,このままwifiで使用することも心配なのですが?
申し訳ありません.何卒よろしくお願い申し上げます.

投稿: finite | 2008年2月19日 (火) 01時25分

いろいろとありがとうございます.マックターミナルにてDES暗号化文字列を取得することまではできました.fetchにてファイルをダウンロードし変更するところまでは可能でしたが,そのファイルを戻すとき,私のテキストエディターはmicrosoftwordなのですが大丈夫でしょうか?簡単なことも分からずに申し訳ありません.何卒よろしくお願いいたします.

投稿: finite | 2008年2月19日 (火) 12時50分

がんばってやりました.しかし,一つ間違えて/を残して入れてしまいました.アクセス不能です.どうしたらよいでしょうか?

投稿: finite | 2008年2月19日 (火) 14時47分

復元しました.しかしterm-vt100ではアクセス可能ですが,fetchではアクセス不能です.したがってファイルの変更が出来なくなりました.何か手段はありますでしょうか.もうしわけありません.

投稿: finite | 2008年2月19日 (火) 18時24分

finiteさん、

term-vt100ではアクセス可能ということは、term-vt100ではきちんとrootでログインできているということですね。
もし、そうなら/etc/master.passwdの変更は成功していていると思われます。それにも関わらず、fetchからアクセスできないということは、何らかの原因でiPhone内のsshサーバ(sshd)が停止してしまっていると言うことだと思います。

sshdを起動するには、term-vt100から(ちょっと長いですが)、以下のコマンドを実行してみてください。

# cd /Library/LaunchDaemons
# launchctl load com.openssh.sshd.plist

投稿: javaflavor | 2008年2月19日 (火) 20時13分

いつもありがとうございます.
windowsからのアクセスですとつながりました.しかし,Mac側からは無理です.もし,rootのパスワードを間違えた場合には復元するしか手段はないのでしょうか?また,復元をwindowsで行い同期をMacで行うことは可能でしょうか?
ご教示いただけないでしょうか.

投稿: finite | 2008年2月20日 (水) 08時59分

すいませんが、Windowsからは繋がって、Macからはダメという状況がどういう状態なのか想像ができないため、適切なアドバイスができません。

> rootのパスワードを間違えた場合には復元するしか手段はないのでしょうか?

はい。残念ながらそうです。

> 復元をwindowsで行い同期をMacで行うことは可能でしょうか?

可能です。

投稿: javaflavor | 2008年2月20日 (水) 23時40分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181807/17928661

この記事へのトラックバック一覧です: 1.1.3 jailbreak後にパスワードを変更するとSpringBoardが再起動を繰り返す問題:

« Remote Diskは単なるファイル共有ではない | トップページ | 1.1.3 jailbreak: iPhone Dev Team Official vs. iJailBreak 0.4.1 »