2011年7月27日水曜日

Android携帯(SH-03C) からルーター越し(WR8700N)にPCをWOL(Wake On Lan)してみました!

Android携帯(Sharp SH-03C)は、色々なアプリを組み合わせることにより次第に使い勝手が良くなってきており、今ではすっかり手に馴染み日常生活に無くてはならない物になってきました。

外出時には、携帯からサーバーにアクセスし管理することもあります。サーバーは24時間稼働ですのでいつでもアクセスOKで下記ソフト等でゴニョゴニョやっています。

  • TeamViewaer(AndroidからPCリモート)
  • ConnectBot(SSHクライアントターミナル)
さて、自宅では、PT1を組み込んだ自作PCを稼動させてます、こちらは録画時にスタンバイモードから復帰、終了するとまたスタンバイモードに入るように設定しています。(まあ少しは節電しているかな??)

普段、録画したTSデータは東芝Regzaテレビで視聴していますが、Android携帯から見れないか調べてみたらありました。
  • Qloud Media(Android携帯電話にPCからのストリーミングをサポート)
    Android Market
これは凄い!感激です。PCにQloud サーバーをインストールする必要がありますが、生のTSファイルをストリーミング変換しながら、ほぼ完璧に視聴できます。シークも出来るし使い勝手も良いと思います。

ならば・・・外出先から視聴したくなります。しかし自宅PCは普段スタンバイモードで待機中です。

ということで、携帯(SH-03C)からWOL(Wake On Lan)が出来るようにしてみました。

実際には、録画データを見る機会は少ないと思いますが、自宅PCがリモートでONに出来ると何かと便利そうだったので・・・・

まずは参考サイトの紹介(サイト運営者様ありがとうございます、感謝!感謝!)

LAN工事ドットコム
自宅のPCをネット経由でパワーオンして使う
WOL インターネットからパソコン遠隔電源オン!
ポート開放 方法

Googleで検索するとルーター越しにWOLを行うには少なからず敷居が高そうです。
一番の問題点は
これには困りました。
当方のブロードバンドルーターは、「Buffalo WZR-AMPG300NH」という機種でWOLには対応していない。
如何しようか迷ったが、以前から機器の安定性には好評で気になっていた「Aterm WR8700N」を購入する事にした。
(出費は痛いが他の方法を考えるとこの方が安上がりと思う。ローカルネットワーク内の常時起動PCまたはWOLリピータから遠隔操作する方法もあるが、本末転倒のような気がする)

さあ、いよいよ設定法だが今回は、ローカルネットではWOLが可能な状態を前提とします。
私の場合、途中でいくつか躓いた点があったので簡単に紹介しておきます。

A.PCのWOL設定
  1. PCの電源・Bios・LANカード設定

    電源やLanカードも対応していなければいけません
    PCによって各々設定が違うのでここを参考に調べましょう
     
  2. PCのネットワーク・アダプターの設定(詳細設定タブ)

    [コンピュータの管理]->[デバイスマネージャー]->[ネットワークアダプター]->[有線LAN]

    詳細設定」タブで Wake On LANに関する項目を設定する。

    ネットワークカードによって項目が微妙に違うのでそれぞれ注意して設定すること

    当方の環境では、下記のように設定

    イーサカード:Marvell Yukon 88E8001/800308010 PCI Gigabit Ethernet Controller
    詳細設定(Advanced)タブ

    • ウェイク アップ機能->「マジック パケットとパターン マッチ」
    • シャットダウンからの起動->「オン」
      -
  3. PCのネットワーク・アダプターの設定(電源の管理タブ)

    [コンピュータの管理]->[デバイスマネージャー]->[ネットワークアダプター]->[有線LAN]

    電源の管理」タブで下記をチェックする

    • 電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする(A)
    • このデバイスで、コンピューターのスタンバイ状態を解除できるようにする(O)
    • Magic Packetでのみ、コンピューターのスタンバイモードを解除できるようにする(N)
    • ----- または-----
    • 管理ステーションでのみ、コンピュータのスタンバイ状態を解除できるようにする(M)

    この三番目の「Magic Packetでのみ・・・・」と四番目の「管理ステーションでのみ・・・・」の項目はネットワークアダプターによってどちらかが表示されます。
    どちらも同じ意味なので必ずチェックすること。
    もしチェックを忘れるとスタンバイモードに入った後、予期しない時に起動してしまうことがあります。
    これに嵌り、時間をロスしてしまった。
    -
  4. PCのネットワーク・アダプターのネットワークアドレス及びMACアドレスを知る

    「コマンドプロンプト」から「ipconfig /all」コマンドで確認する

    当方の環境では

    Physical Address(MACアドレス):00-22-15-xx-xx-xx
    IP Adress(ローカルIPアドレス):192.168.10.60
B.Androidアプリのインストール
  1. Wol Wake On Lan Wan のインストール

    インストール自体はなんら問題ないでしょう。
    設定する場合は「Add New」ボタンを押しましょう。

C.ローカルネット内でのWOLにトライ
  1. ソフトの設定

    Name 任意入力
    MAC 上記で調べたMACアドレスを入力(00-22-15-xx-xx-xx
    IP or Domain 上記で調べたPCのローカルIPアドレスを入力(192.168.10.60
    Port 任意入力(他のポートと重ならないように・・・)(9
    Send as Broadcast チェック
    Subnet 255.255.255.0
    Send Multiple チェック
    Packet Count 5
    Interval 1
  2. WOL試験

    ローカルネットワークにWiFiで接続、ソフトを起動、「Send Packet(s)」を実行し起動を確認する
     
  3. 考察

    ブロードキャストを指定しないと起動しない!訳分からない!!
    もしかしたら、ARPテーブルの関係かな?
D.ルーター越しのWOLにトライ
  1. ルーターの設定

    ルーターの管理画面を開き

    [詳細設定]->[ポートマッピング設定]

    LAN側ホスト 192.168.10.255
    プロトコル UDP
    ポート番号 任意入力(Androidのソフトと同じに設定)(50060
    優先度 任意入力

    LAN側ホストアドレスは、プライベートLANのブロードキャストアドレスを指定すること
    ブロードキャストアドレスの意味がわからない場合は、ここを参考に値を求めましょう

    パケットフィルター設定はしなくてよい
    他のサイトを拝見すると、「ポートマッピング設定」と「パケットフィルター」の両方を設定するように解説されているところがあるが、「WR8700N」の場合は「ポートマッピング設定」だけでうまくいきます。
    -
  2. ルーターのグローバルアドレスを調べる

    ルーターの管理画面を開き

    [情報]->[現在の状態]->[WAN側状態]->IPアドレス/ネットマスク
    IP Adress(グローバルIPアドレス):xxx.xxx.xxx.xxx
    -
  3. ソフトの設定

    Name 適宜入力
    MAC 上記で調べたMACアドレスを入力(00-22-15-xx-xx-xx
    IP or Domain 上記で調べたルーターのグローバルIPアドレスを入力(xxx.xxx.xxx.xxx
    Port 適宜入力(他のポートと重ならないように・・・)(50060
    Send as Broadcast チェックしない
    Send Multiple チェック
    Packet Count 5
    Interval 1
  4. インターネット越にWOL試験

    3Gで接続、ソフトを起動、「Send Packet(s)」を実行し起動を確認する
    -
  5. 検証

    上手く起動しました。
    ルーター側で、ブロードキャスト信号を出すので、Androidアプリでは指定しないでOK?

以上でルーター越しにWOLが出来るようになりました。

実は「WR8700N」等のNECのWOL対応をうたったAtermシリーズでは、もっと簡単にインターネット上からWOLが出来ます。というか、そちらの方がメーカーが最初から提供している方法です。
  • Android携帯でブラウザでルーター画面(WOL管理画面)を開き、そこからLAN内のPCを起動する
しかし、いちいちブラウザを開き操作するなんて面倒です。やっぱり、Android アプリで手軽に操作できた方が良いですね。

などと思いながらWOLを楽しんでいましたが、ここにきて「WR8700N」のWOL管理を直接操作するAndroidアプリが出ました。

ホームコネクト for Aterm

なんともすばらしいソフトです。Atermシリーズをお持ちの方は是非インストールして損はないものです。
対応機種 NEC Aterm
WR8700N、WR8600N、WR8370N、WR8170N、WM3500R

    2011年7月4日月曜日

    Sharp 3D SH-03C の root化とWiFiテザリング

    Sharp 3D SH-03Cを購入して約半年が経ち、今ではすっかり落ち着きましたが、現在Docomoサイトでは型落ちとなり、新機種が出回っております。ちと寂しい!!

    しかし、先月にはAndroid2.2へバージョンアップし、使い勝手も少しは良くなりました。そんな中、以前から気になっていたSH-03Cのroot化が、Android2.2でも出来るらしいのでトライしてみる事に、さらにこれまた最大懸案であったテザリングにも挑戦しました。

    結果、root化及びテザリング共に成功いたしました。先人の方々に感謝!感謝!です。

    root化と言っても完全なものではないようです、プリインストールアプリ削除などは出来ません。
    しかしテザリング機能ができれば私にとって目的の半分位は達成したも同じですので非常に満足しています。

    飛散防止フィルム剥し、Andorid 2.2による操作性向上、SDメモリーへのアプリ移行それに今回のキャッシュ削除によるメモリー開放、テザリングなどなどの恩恵で、後一年間位は使用に耐えるでしょう・・・タブン・・・


    ここからは、お決まりの自己責任ということでお願いします。

    携帯が文鎮化しても当方は一切責任を負えませんのであしからず。
    また、当然のことながら、ここで紹介した情報公開されている方々への責任転嫁もご法度です。

    では、早速手順を紹介しましょう。

    大まかには
    A.JDK及びAndroid SDK のインストール
    B.SH-03C 用 USB ドライバのインストール
    C.ADB/Fastboot USB ドライバのインストール
    D.一時root権限取得とroot権限取得
    E.テザリングソフトの導入

    では、各項目を少し詳しく

    A.JDKとAndroid SDKのインストール

    【初心者向け】Android SDKインストール手順 2011年1月版!(windows版)」を参照
    Android SDKのインストールまで詳しく紹介されています。感謝です!

    PCが32ビット(x86)環境の場合は、上記サイトに従って行えば難なくインストールは完了するでしょう。
    しかし、64ビット(x64)環境の場合は、若干注意が必要です。
    • JDKは、x86版をインストールすること。Android SDKがx86版しか認識しません。
    • Android SDKのインストール先は、「C:\Program Files (x86)\Android\android-sdk」となるので環境変数Pathの設定も変わってくる。

      Path=C:\Program Files (x86)\Android\android-sdk\tools;C:\Program Files (x86)\Android\android-sdk\platform-tools;

    • SDKのインストールまで終了したら、 コマンドプロトで「adb」が使えるか確認してみます。

      1. コマンドプロンプトを開いて、「adb.exe」と打ち込んで「Enter」を押します。
      2. adbのヘルプメニューがズラ~っと出てきたらOKです。
      3. エラーが出た場合は再確認してみましょう。
    B.SH-03C 用 USB ドライバのインストール
    1. ここからSH-03C用USBドライバをダウンロードする
    2. ダウンロードしたSH-03C_driver.exeを実行し、展開する
    3. SH-03C_driverフォルダの中のSH03C_driver.exeを実行し、ドライバをインストールする
    C.ADB/Fastboot USB ドライバのインストール
    1. ここから「SHARP共通ADB USBドライバ」をダウンロードする
    2. usb_driver_SHARP_r3.3.zipを解凍する
    3. SH-03Cの端末設定の"USBデバッグ"にチェックを入れる
    4. SH-03とPCを付属のUSBケーブルで接続する
    5. Android Composite ADB Interfaceを認識し, ドライバのインストール画面が起動する
      ここで、ADB Interfaceをうまく認識しなかったら「デバイス マネージャー」を開き確認。
      」が付いていたら、ドライバーの更新で次「6.」へ進む。
    6. ドライバ格納先に, 先ほどドライバソフト解凍でできたディレクトリー"usb_driver_SHARP"を選択し, ドライバをインストールする
    7. MicroSDを挿入している場合, USB接続モードが"カードリーダーモード"になっているので, "高速転送モード"に変更します。
    8. 次にコマンドプロンプト上で「adb devices」と打ち込みます、しばらくして接続されているデバイスが表示されたら準備OKです。
    D.一時root権限取得とroot権限取得
    1. 一時root権限取得のためのツール「rootkit_is03_0430.zip」をここからダウンロードします。
      zipファイル内の「rootkit_is03_0430」ディレクトリーをCドライブのルートに解凍し、適当な名前にリネームします。私の場合は「rootkit_IS03」に変更した。
      この中に「Superuser.apk」と「jackpal.androidterm.apk」が含まれている。

    2. root権限取得のためのツール「sh03c_rootkit_20110611.zip」をここからダウンロードします。
      zipファイル内の「sh03c_rootkit_20110611」ディレクトリーをCドライブのルートに解凍し、適当な名前にリネームします。私の場合は「rootkit_03C」に変更した。

    3. root権限をON・OFFするツール「IS03rootsw」 をここからダウンロードします。
      ダウンロードした「IS03rootsw.apk」を上記の「rootkit_03C」ディレクトリーに移動します。

    4. 一時的にroot権限を取得する準備をします。
      コマンドプロンプトを開き、「C:\rootkit_IS03」へ移動し下記のコマンドを随時実行します。
      C:\User\xxxxxx>cd C:\rootkit_IS03
      C:\rootkit_IS03>adb push data_local /data/local/
      C:\rootkit_IS03>adb shell chmod 755 /data/local/is03break
      C:\rootkit_IS03>adb shell chmod 755 /data/local/autoexec.sh
      C:\rootkit_IS03>adb shell chmod 755 /data/local/busybox
      C:\rootkit_IS03>adb install Superuser.apk
      C:\rootkit_IS03>adb install jackpal.androidterm.apk
      C:\rootkit_IS03>adb reboot
      コマンドプロンプトはそのまま、SH-03C携帯端末はUSBケーブルで繋げたままリブートします。
      リブート後、暫くするとプロンプトが現れますので、すかさずプロンプト上で
      C:\rootkit_IS03>adb shell /data/local/is03break
      error: device not found
      C:\rootkit_IS03>adb shell /data/local/is03break
      error: device not found


      以下繰り返し
      上記コマンドを入力、コマンドプロンプトで履歴機能(↑キー)を使って、SH-03Cの電源オンから起動完了するまでの間、実行を繰り返します。(15-20回ほど?)
      リブート直後は、反応しませんが途中でコマンドが実行されます。 
      C:\rootkit_IS03>adb shell /data/local/is03break

      [**] Gingerbreak/Honeybomb -- android 2.[2,3], 3.0 softbreak
      [**] (C) 2010-2011 The Android Exploid Crew. All rights reserved.
      [**] Kudos to jenzi, the #brownpants-party, the Open Source folks,
      [**] Zynamics for ARM skills and Onkel Budi

      途中略・・・・・・・

      [!] dance forever my only one
      と、表示されれば成功です。「5.root権限を一時取得し、local.prop を作成します。 」へ進む
      もし、
      Cannot copy boomsh. :  Permission denied
      上記のように表示され失敗したら下記コマンドを実行
      (一度root化に成功した後、再度検証した時この様な状態になりチョット焦りました。)
      C:\rootkit_IS03>adb shell
      $ rm /data/local/tmp/boomsh
      $ rm /data/local/tmp/sh
      再度「4.一時的にroot権限を取得する準備をします。」からやり直す。

    5. root権限を一時取得し、local.prop を作成します。
      C:\rootkit_IS03>adb shell
      $ /data/local/tmp/sh
      # cd /data/local
      # cat local.prop > /data/local.prop
      adb shellのプロンプト「$」が「#」となればroot権限を一時取得しています。メデタシ!メデタシ!
      exit」コマンドを入力し、adb shellから抜け出し、プロンプト画面に戻ります。

    6. 次にroot権限の取得を行います。
      コマンドプロンプトで、「C:\rootkit_03C」へ移動し下記のコマンドを随時実行します。
      C:\rootkit_IS03>cd C:\rootkit_03C
      C:\rootkit_03C>adb push data_local /data/local
      C:\rootkit_03C>adb push local.prop /data/local.prop
      C:\rootkit_03C>adb shell chmod 555 /data/local/autoexec.sh
      C:\rootkit_03C>adb reboot
      再度、リブートし、ルートOn・Offアプリをインストールします。
      多分、リブートする前でもOKでしょう。
      C:\rootkit_03C>adb install IS03rootsw.apk
    E.テザリングソフトの導入

    アンドロイドマーケットで「Barnacle Wifi Tether」を探してインストール
    使用方法については、各自で検索してね!

    現在、動作を確認したもの
    • Superuserに登録できたアプリケーション
    • 各々のアプリの全ての機能を検証したわけではありません
      完全なroot化ではないので機能しないものが多いかも

    Superuser ◎ rootアプリの管理?
    IS03rootsw ◎ rootのON・OFF
    Jacpal.androidterm ◎ ターミナル
    Barnacle Wifi Tether △ WiFiテザリング アドホックモードでPCと接続OK
    Titanim Backup △ アプリ本体及びデータのバックアップ、プリインストールアプリの凍結はOK
    Root Exploer △ キャッシュ削除
    ShootMe ◎ 本体だけでスクリーンショット
    PowerTutor ◎
    ClockSync ◎
    WiFi Keyboard - 検証していないので??
    AntTec App Manager △ よくわからん!
    AdFree ◎ アプリの広告を消す

    最後に
    rootkit作成者の「goroh_kun」さん
    IS03 root switch作成者の「Isawo-Kikuchi」さん
    ただぐだぐだと(新)運営者の「takef0845」さん
    価格.comの「†うっきー†」さん
    他ネットの先人の方々本当にありがとうございます。

    追記:2011/07/07
    root化してテザリングが成功したときは、めちゃ感激しました。これまで時々使っていたDWR-PGをどうしようか思案中です。

    2-3日使用してみて、root化の恩恵を感じたのが、
    • 勿論テザリングが出来るようになったこと。
    • data\cache内のキャッシュデータを消せたこと。
      結果メモリーが、35MB→140MB と増えた。
    • うざいプリインストールアプリアイコンが消せたこと。
    追記:2011/07/09
    ところどころ可筆しました。
    ただぐだぐだと(新)運営者の「takef0845」さんへの御礼が抜けていた事、お詫びいたします。
    ブログで紹介されているPDF文書は、是非読んでみましょう!

    追記:2012/05/27
    デザリング→テザリング 修正
    おもいっきり恥ずかしいことですが、「tethering」をデザリングと今日の今日まで思い込んでいました。

    今週から、SC-03C には引退していただき Galaxy Nexus SO-04D を購入してしまいました。
    本当は、年末まで使い続けるつもりでしたが、先週新幹線の中で紛失してしまい仕方なく機種変してしまいました。

    早速、root化しカスタムROMを導入しました。
    比較してみると、アプリのインストールは劇的に早くなったが、普段の操作性はSC-03Cもなかなか健闘しているかと思う。