SB iPhone 3GS iOS 6.1.3 ファーム 05.16.08 のSIMアンロック

日本通信(b-mobile)の「スマホ電話SIM フリーData」が、月額基本料1,560円(税別)という低コストで使いたい放題の200kbpsデータ通信、そしてMNPが可能な通話もできるということを知り、iPhone4sの契約もそろそろ2年になるためキャリアを替えたい気分になりました。

かといってイキナリ今の契約を切り替えて「失敗したっ!」となるのも嫌なので、そこで、ほったらかしてあった3GSを使ってSIMフリー化、プリペイドSIMの体験、Skype通話などを試してみたいと思った次第です。

さて、以降の説明においてお決まりですが全ては自己責任となります。またリンク先の安全性も確認しておりません。よってお問い合わせいただいても何もお返事できませんのでご容赦願います。

作業環境

iPhone 3GSはソフトバンクで契約して利用していたもので、常にアップデートしていたためiOSのバージョンは最新の6.1.3、モデムファームウェアのバージョンは05.16.08です。

3gs01

SIMをアンロックするためには、Appストア外のソフト「Ultrasn0w」を動作させなければならないため、脱獄(Jailbreak)する必要があります。その際利用するソフトが「Redsn0w(0.9.15b3)」になります。自分は母艦として「Mac mini(Mountain Lion v10.8.5)」を利用しましたがWindows版もあるようです。

その他「Cydia」を利用して「Ultrasn0w」をダウンロードするため、3GSをWi-Fiに接続しておきました。

なおiPhone 3GSですが、その製造時期(2011年34週以降)によってダメかも知れません。またそれ以前でも、2009年45週以降は修正ブートROMのため操作が紐付き(tetherd)になるかも知れません。自分のは2009年37週のようですが、これらについて詳細な情報は分かりませんので悪しからず。

iOSやモデムファームウェア、製造時期の確認方法は、「設定・一般・情報」でリスト表示された中にあります。

その他必要になるものとしてiPhone 3GSの「iOS 6.0 IPSW」です。これは「Redsn0w」の動作が6.1.3に対応していないため6.0.0で動作させるのに利用する、のだと思います(済みません、理解はしていません)。

最後に作業に直接必要ではありませんが、自分は何度も失敗する中でその都度「iOS 6.1.3 IPSW」を「Redsn0w」でリストアして復旧しました。リンク先の「iPhone研究所」は存じませんが、お金を払えば作業を依頼できるようです。

作業手順

操作ですが、「Unlock iPhone 3GS iOS 6.1.3 baseband 05.16.08 Using Redsn0w and Ultrasn0w」のページを見て実行しました。

その他次のページを参考にしました。

作業は大きく

  1. JailbreakとCydiaのインストール
  2. iPadベースバンドのインストール
  3. iPadベースバンドのダウングレード
  4. Cydiaを利用してUltrasn0wでSIMロック解除

です(作業前にバックアップは忘れずに)。

1、2、3はPC上の「Redsn0w」で実行、4はiPhone上で実行します。なお「Redsn0w」は、iPhoneの製造時期が2011年34週以降のものに対応していない、という情報をどこかのページで見ました。

1、2、3を実行する際の共通操作は、「Jailbreak」での操作をする前に「Extras」で「Select IPSW」を実行して「iOS 6.0.0 IPSW」を選択することです。

その作業で「Is this newer (fixed) model?」かどうか確認がありますが、2009年44週以前であれば「No」を選択することになります。45週以降については「Yes」ですが、その後の操作について、「Jailbreak」のコマンドを動作させる際、「Extras」にある「Just boot」で「Jailbreak」を咬ませてiPhoneを起動させないと、動作しないのではないかと思います。

tethered01

また「Jailbreak」ではiPhoneの起動をDFUモードで行いますが、作業として

  • 電源オフ
  • 電源ボタンON、3秒
  • 電源ボタンを離さずホームボタンON、10秒
  • ホームボタンを離さず電源ボタンOFF、15秒

の操作が入ります。操作の画像がYouTubeに上がっているので、どのように動作するか確認しておくと良いでしょう。動画のリンクは操作手順を参照したページにあります。

2、3の操作では、モデムファームウェアのバージョンを段階的に「06.15.00」、「05.13.04」と変更します。「Ultrasn0w」でSIMロック解除する際の対象となるファームウェアバージョンが「05.13.04」なのでしょうが、1回の操作ではできないようで、一旦「06.15.00」にする必要があるようです。

3gs02

4の操作でCydiaを初めて動作させると使用者について「User、Hacker、Developer」の何れか聞かれますが、「User」で良いかと思います。変更は画面下「Manage」のページから左上「Settings」で変更できます。

「Redsn0w」をインストールするには、画面下の「Search」から上の入力ボックスで「Ultras0w」と入力すればリストに表示されるので、それを選択、インストールすることでSIMアンロックが完了です。

一連の操作でよく分からなかったのが、契約解除済みのSoftbank SIMは取り出すのか出さないのかですが、何回か繰り返して作業していたためハッキリしません。最後に成功したときは差しっぱなしだったように思います。

SIMアンロックの確認

IIJmioからデータ通信500MBのプリペイドSIMが出ていたので、Amazonで購入して利用してみました。

プリペイドSIMを初めて利用する場合、利用に先立って「開通手続き」が必要になります。説明書にありますが、発信者番号が確認できる電話から開通センターへ電話して、パッケージに入っている「START PASS」に記載された電話番号とパスコードを入力します。

SIMを差し込んで利用する際もう1つ面倒なのが「モバイルデータ通信」の設定です。

「設定・モバイルデータ通信・モバイルデータ通信ネットワーク」で「モバイルデータ通信」に「APN:iijmio.jp」、「ユーザ名:mio@iij」、「パスワード:iij」を設定します。説明書には認証タイプがPAPかCHAPと書かれていましたが、このページには設定するところがなかったのでそのまま利用しています。

Wi-FiをオフにしてSafariを起動し、これでようやく繋がったことが確認できました。

今後の利用ですが、セキュリティを考えるとあまり安全とは言えないかも知れませんので、趣味程度の利用で済ませようかと考えています。

Padに関して、入力の設定について(フリックとキーボード)

携帯機器は仕事ではノートPC、それ以外はiPhoneを利用しているためPadは所有していなかったのですが、NEXUS 7(MODEL K008)を入手したので設定などで備忘録が必要になるかも知れないと考え、カテゴリを新しく登録した記事の最初となります。

ここ1,2年は処分に困るマンガを購入するのを止めて、インターネットでの動画閲覧に切り換えています。が、iPhoneでは画面が小さいため閲覧には利用していません。ですので携帯性に優れ画面の大きいPadには興味があったのですが、なかなか購入に踏み切れませんでした。

当機は1920×1200の7インチIPS液晶で、CPUに1.5GHzクアッドコアのSnapdragon S4、GPU性能がNEXUS7(2012)の4倍、ステレオスピーカー搭載で290グラムとハードウェアのスペックは高く、システムのAndroid利用は初めてですがJellyBean(Android4.3)の操作性もまずまずの感じを受けました。

今の世の中モバイルファーストと言われ、コンシューマーターゲットはそちらへ軸足が移ったようですが、開発をPCに頼っている自分には今一、見えていません。そこで当機を足掛かりにアプリケーション開発で重要となるかも知れないUIやUXなど、少しずつでも経験を積み上げて行きたいと思います。

以上、能書きでした。

さて情報ツールをインターラクティブに利用する上で入力のし易さは自分にとって重要です。ですのでガラケーのテンキーやiPhoneのフリック入力は好きではありません。NEXUS 7のフリック入力も同様です。

今回、NEXUS 7でフリック入力とキーボード入力を切り換える設定が分かったので、それをメモっておくことにしました。なおAndroidの操作は初心者のため、プログラムとアイコンの絵柄の関連などまるっきり分かっていません。ですのでトンチンカンな事を記述するかもしれませんがご容赦を。

  • Androidにおける入力の環境設定は、真田六文銭のようなアイコンからアプリ一覧を表示し、イコライザのようアイコンの設定プログラムを起動し、「言語と入力」を選択して実施する。
  • 購入直後の初期設定で日本語を設定したので入力のデフォルトはiWnn IMEになっている。右側のイコライザのような設定アイコンからiWnn IMEの設定画面を表示し、「キーボードタイプ」を選択する。
  • 縦と横、別々に設定できるようになっており親切なのか、はたまたお節介なのか。とりあえず縦横ともフルキーボードを利用するように設定した。

それにしても設定項目が多いので何が何か確認するのも容易ではありません。
メモリ32G Wi-Fi版

メモリ32G LTE版

VirtualBox-4.2.16 仮想サーバーからUSBを利用する

今さら古い情報で価値はないのですが、VitrualBox 4.2.16の仮想サーバーからUSBを利用する際、どうやらExtension Packをインストールしなければならないということで、それを記事にしようとしてキャプチャした画像がデスクトップに散乱していたため、それをアップロードしてスッキリさせるための記事です。

今日(2013-12-01)VirtualBoxを起動したら4.2.18から4.3.4へアップデートされたので、記事にすることを思い付きました。

ところで毎回のことですが、アップデートするとWin7側のネットワークアダプタ「VirtualBox Host-Only Network」のIPアドレスの設定が初期化されるので、アップデート後は再設定を忘れずに。自分の場合はアダプタのIPは192.168.56.10、DNSを192.168.56.1にして仮想サーバー側を運用してます。

それでは以下画像のアップロードのみです。

vbubsd01

 

vbubsd02

 

vbubsd03

 

vbubsd04

 

vbubsd05

 

vbubsd06

 

vbubsd07

 

Ubuntu12.04 PHP5.5から5.4、Apache2.4から2.2へダウングレード

発端は、ノートPCのVirtual Boxで動作させていたサーバー上で、WordPressとSMTPプラグインを利用してローカルからメールを送信してみよう、という動作を試してみようとしたところ、WordPressを動作させると「Deprecated: mysql_connect()なんちゃら」とエラーが表示されたことからです。

PHP5.5からはMySQLのコマンドはmysqliかPDOのみになるため、WPのDEBUGフラグをセットすると非推奨の表示がされるのは仕方ないとして、「error_reporting(E_ALL ^ E_DEPRECATED)」で表示を消そうとしたけど消えません。はて?

いろいろと試して時間を潰してしまい腹が立ったので、PHP5.5を5.4へダウングレードする決断をしました。これは以前、「Ubuntu 12.04 PHP 5.4 から PHP 5.3 へダウングレード」でさんざん苦労したのでちゃっちゃっと済ませました。

手順はPHP5.5を削除して、レポジトリを書き換えておき、再インストールします。

$ sudo service apache2 stop
$ dpkg -l | grep php5
$ sudo apt-get --purge remove php5 php5-mcrypt …

apache2を停止し、php5.5に関するパッケージリストを参照してから削除します。

$ sudo apt-add-repository -r ppa:ondrej/php5
$ sudo apt-add-repository ppa:ondrej/php5-oldstable
$ sudo apt-get install php5

PHP5.5のリポジトリを削除して、PHP5.4をインストールするためのリポジトリを設定、PHP5をインストールし直してPHP5.3、PHP5.4へとインストール、アップデート完了。さぁ、phpinfo()だ、で、実行したらプログラムがダウンロードされてきました。

訳わかりませ~ん。

Google先生に尋ねまくっていると、PHPのモジュールがApacheに組み込まれているか確認しろ、とのこと。

$ sudo apache2ctl -M | sort

あらら、PHP5モジュールがないではありませんか?そう、これを忘れてました。

$ sudo apt-get install libapache2-mod-php5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies: libapache2-mod-php5 : Depends: apache2.2-common but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

パッケージの依存状態がよくないような。もう、訳わかりません。ここからはドロ沼です。

Google先生に尋ねまくった結果、次のページでようやく原因が何となくわかりました。

libapache2-mod-php5 uninstalled after update impossible to put back

Ubuntu 12.04, PHP 5.4, Apache2 and ppa:ondrej/php5

そうです、Apache2が2.2から2.4へアップグレードされていたのです。2番目のリンク先に書いてありましたが、PHP5.5のアップデートでApache2.2からApache2.4へ依存の設定が変わり、Apache2.4が動作していたわけです。どうやらApache2.2へ戻さないとPHP5.4は動作しそうもありません。

でもApache2.4から2.2へのダウングレード方法が分かりません。

で、思い切って2.4を削除して、再インストールを試してみることにしました。

$ dpkg -l | grep apache2
$ sudo apt-get remove --purge apache2 apache2-bin …
$ sudo apt-get install apache2

エーと、忘れていたあれ。

$ sudo apt-get install libapache2-mod-php5
$ sudo service apache2 restart

phpinfo()を実行すると、無事、PHPが動作することが確認できました。

今日はこれで貴重な土曜日が潰れてしまいました。でもまだapacheとPHPの設定が残っているのでした(T_T)。

 

Laravel 4 認証とメール送信のための設定について

Laravel 4 を学習するのにちょうど良いサンプルがあったので、ソースを追いながら設定やらフレームワークの機能などいろいろと突っ込んで調べてみました。もし同じように「チュートリアルになるサンプル」を探していたら一度ご覧下さい。

Laravel 4 Bootstrap :: L4 starter project with Twitter Bootstrap 2.2

このプログラムはフロントエンドからのユーザー登録とログイン認証、及びログイン後のユーザー情報の変更処理を扱ったプロジェクトで、フロントエンド表示に Twitter Bootstrap を利用しています。

Bootstrapは12カラムのグリッドシステムを採用したCSSフレームワークで、最近3.0へバージョンアップされ、機能も大変充実しています。Bootstrapの学習には百式管理人さんが制作された「Bootstrap 3.0入門」が秀逸です。

自分はアプリケーション開発でいつも管理画面に困っていましたが、CSSフレームワークがいくつも公開されており、それらを利用して開発することでますますスピードが早くなるように思います。

その他のフレームワークがブログ「Cats who Code」で紹介されています。

パスワードのリマインダー機能

Laravel 4 にはパスワードを忘れたユーザーがパスワードをリセットする際の「リマインダー機能」が組み込まれていることを知り、このチュートリアルで組み込んでみました。

その際、今後役に立ちそうな内容でしたので設定ファイルを備忘録として残しておくことにしました。

なお、リマインダー機能を利用するためartisanを使ってパスワードリマインダー用のトークンを保存するテーブルを定義しますが、GitHubからダウンロードしてComposerでインストールしたこのプロジェクトでは、「artisan auth:reminders」が利用できません。原因は、app/config/app.phpで指定されている「’providers’」に抜けがあるためで、Laravel 4 を普通にインストールした場合のものと比較すれば分かります。

リマインダーの設定(app/config/auth.php)

'reminder' => array(
    'email' => 'emails.auth.reminder',
    'table' => 'password_reminders',
    'expire' => 10,
),

「email」項目はパスワードをリセットする際の送信メールのテンプレートで、「app/views/emails/auth/reminder.blade.php」ファイルになる。メールはHTMLメールだが、プレーンテキストを利用したい場合、

    'email' => array('text' => 'emails.auth.reminder'),

とし、reminder.blade.php にHTMLタグを含めなければ良い。

「expire」項目は分単位で、パスワードリセットできるメール送信後からの有効期限を示す。デフォルトは60分らしい(未確認)。

メール送信の設定(app/config/mail.php)

Laravel 4 ではメール送信にSwift Mailerが利用されるとのことだが、Swift Mailerの詳細は調べていない。Coreserverを利用している自分は、SSLを利用したメール送信ができた。その設定は次の通り。

return array(
    'driver' => 'smtp',
    'host' => 'mxx-coreserver-jp.value-domain.com',
    'port' => 465,
    'from' => array(
        'address' => 'mt-systems@mt-systems.jp',
        'name' => '有限会社エムティシステム',
    ),
    'encryption' => 'ssl',
    'username' => 'username',
    'password' => 'password',
);

今後、セッションを利用したエラー表示についてもう少し知る必要がありそうだ。