2013年7月30日火曜日

root化端末を使わずに「G-Call050」のSIP情報を取得する方法

いままでは「G-Call050」のSIP情報を抜くためにはroot化端末が必須でしたが、今回はroot化端末を使わずに「G-Call050」のSIP情報を取得する方法を紹介します。


基本的な考え方はこちらの記事で紹介したものと同様になります。
「G-Call 050」のSIP情報を抜く方法

これまでは、root化スマホや脱獄iPhoneを持っていない人は、これを実現できませんでした。
しかし、先日「root化端末不要で、SIP情報の取得に成功した」とコメントを頂きました。(Goさんありがとう!)

これにより、root化端末を用意する必要がなくなり、「G-Call050」を他SIPクライアントで使う難易度が一気に下がりました。
しかし、この方法はSIP情報の取得に、Androidの開発環境(Eclipse)を用いるため、root化が不要になったとは言え、まだ簡単になったとは言えません。

そこで、Eclipseを用いた「G-Call050」のSIP情報を取得する方法を、順を追って説明していきます。


※ 作業前に、スマホ側の「G-Call050」は終了させておいてください。複数アクセスはレジストに失敗します。



【手順】

説明はこの手順どおり進めていきます。

  1. Google Chrome(ブラウザ)のインストール(説明割愛)
  2. APK Downloader の導入
  3. Android SDK と Eclipse のインストール
  4. Eclipse に G-Call050 のインストール
  5. SIP情報の抽出



【APK Downloader の導入】

これは「Google Chrome」で Google Play Store のアプリを直接PCにダウンロード出来るようになるプラグインです。


「Google Chrome」に「APK Downloader」を追加します。

以下のサイトにアクセスし、
APK Downloader

「Download Now」から「1.5.0.crx」をダウンロードします。(記事公開時でVer1.5.0)

「Google Chrome」の拡張機能に「APK Downloader」を追加します。
(Chromeの拡張機能の画面を開き、その中にD&Dで追加できます。)
※ D&D:ドラッグアンドドロップ

ここまででわからなければ、他サイトにChromeへのプラグイン追加方法として、たくさん情報がありますので検索してみてください。


ここからが、「APK Downloader」の使い方になります。
まずこのプラグインを追加した時点で次のような画面になりますので、GoogleアカウントとスマホのデバイスIDを入力します。




デバイスIDの確認方法は、スマホでこの番号「*#*#8255#*#*」に電話をかけてください。(電話がかかるわけではありません)
ズラーと文字が表示されたと思いますが、この中で「Device ID:android-○○○○」という部分があると思います。
この○○○○が端末の「Android Device ID」になります。



Google Playの「G-Call050」にアクセス>します。
そして、赤丸の部分を押すと、「G-Call050」のインストールパッケージ(APK)がPCにダウンロードできます。






ダウンロードした「com.ageet.brastel.GCall050.apk」は後ほど使います。
ここでは仮にCドライブ直下に「apk」というフォルダを作成し、そこに保存します。
(C:\apk\com.ageet.brastel.GCall050.apk)

「G-Call050」APKの保存はこれで修了です。



【Android SDKとEclipseのインストール】

「Android SDK」と「Eclipse」はAndroidのアプリの開発や試験を行う環境を作るものです。
「Android SDK」(Android Software Development Kit)がアプリ開発で、「Eclipse」がスマホのエミュレータです。
今回はこれを用いて「G-Call050」のSIP情報を抽出します。

まずは次のサイトにアクセスし、「Android SDK」と「Eclipse」のセットをダウンロードします。「Download the SDK」からダウンロードできます。(記事公開時でVer20130717)
http://developer.android.com/sdk/index.html

ダウンロードが完了したら “日本語名を含まないフォルダに” 解凍してください。解凍後に移動しても問題ありません。
私はCドライブ直下の “C:\adt-bundle-windows-x86-20130717” に解凍しました。
今後、この場所を想定して話を進めていきます。



【Eclipseの起動】

今回の目的は「G-Call050」のSIP情報取得なので、Android SDKとEclipseの機能には触れません。
まずは早速「Eclipse」を起動します。
“C:\adt-bundle-windows-x86-20130717\eclipse\eclipse.exe”

「Eclipse」を起動すると次のようにワークスペースの場所を聞かれますが、パスに日本語を含まない場所を選びます。
私は “C:\workspace” としました。
「OK」を押します。




次の画面はGoogleに情報を送るか否かです。Yes/Noどちらでもかまいません。
「Finish」を押します。




「Android Virtual Device Manager」を起動します。




「Android Virtual Device Manager」が起動したら「New...」を押します。




エミュレートするデバイスを選択します。
低スペック機種を選びます。これで「OK」を押します。(ハイスペック機を選択したらメモリが足りず起動しなかった。)
AVD Name:NexusS
Device:Nexus S(4.0",480 x 800:hdpi)
Target:Android 4.2.2 - API Level 17




「Android Virtual Device」のリストにNexusSが追加されましたので、それを選択して「Start...」を押します。




「Launch」を押します。




起動までに非常に時間がかかりますのでしばし休息です。




起動を確認したら、これはこのまま終了させずに次の作業に移ります。





【G-Call050のインストール】

「Android Virtual Device Manager」でエミュレートされた端末に「G-Call050」をインストールします。
【Android SDKとEclipseのインストール】の項目で保存した、「com.ageet.brastel.GCall050.apk」が「G-Call050」のインストールパッケージになります。


まずはコマンドプロンプトを開きます。




コマンドラインを打ち込むのが面倒くさいので、ここはすべてD&Dで対処します。
コマンドプロンプトに「adb.exe」をD&Dします。(「adb.exe」の保存先は下記)
C:\adt-bundle-windows-x86-20130717\sdk\platform-tools\adb.exe
ここではまだ確定はしません。(エンターを押さない。)




続けて、スペースを入力後「install」と入力します。その後、またスペースを入れます。
␣install␣

更に続けて、コマンドプロンプトに「com.ageet.brastel.GCall050.apk」をD&Dします。
これでコマンドプロンプト上には次のように入力されていると思います。
C:\adt-bundle-windows-x86-20130717\sdk\platform-tools\adb.exe install C:\apk\com.ageet.brastel.GCall050.apk

このままエンターを押すとエミュレートされたAndroidデバイスに「G-Call050」のインストールが始まります。




インストールには時間がかかりますが、成功すると次のような文字が表示されます。
「Success」




Eclipseに戻りメニューを開いてみます。




「G-Call050」がインストールされています。




これを押して、「G-Call050」を起動します。





通常どおり「G-Call050」にユーザIDとパスワードを入力します。
そして、「Proceed」を押します。

User ID:電話番号
Password:登録時に送られてきたメールに記載されています。




「G-Call050」が起動します。





【SIP情報の抽出】

「Android Virtual Device Manager」で「G-Call050」が起動している状態のまま、次の作業に移ります。


まずは、「Android Virtual Device」の選択画面を閉じます。




「DDMS」を起動します。



「File Explorer」タブを押します。




「SettingsANDTemplates」を抽出します。
保存先は下記です。
data/data/com.ageet.brasterl.GCall050/databases/

「SettingsANDTemplates」を選択して、「Pull a file from the device」を押します。




「SettingsANDTemplates」を任意の場所に保存します。






これさえ抽出してしまえば「Eclipse」は不要なので、終了させておきます。
(G-Call050は同時に複数端末からアクセスできないため。)

あとは「SettingsANDTemplates」からSIP情報を抽出するだけです。
「G-Call 050」のSIP情報を抜く方法>の[PCでの作業]と同様になります。


(上記ページの該当部分をこのページにも転記します。)


[PCでの作業]

PCでデータベースを読むために「SQLite Database Browser」をインストールします。(SQL形式が読めれば何でも良い)

「SettingsAndTemplates」を「SQLite Database Browser」で開きます。

Table:「PROFILE_SETTINGS」に設定情報が書いてあるので、これをメモします。
必要な情報は次のとおりです。
  • Profile/Account/Domain
  • Profile/Account/UserId
  • Profile/Account/Password
  • Profile/Account/Proxy

    上から順にこのような値です。
    sip.g-call.com
    xxxxxxxxxxxxxxxxxxxx(たぶん20桁)
    xxxxxxxxxxxx(たぶん12桁)
    basix-proxy.brastel.ne.jp
    (「UserId」と「Password」以外は共通です。)


    抜き取ったSIP情報を使い、CSipSimpleを設定します。

    サーバ:sip.g-call.com(ポート番号は書かない)
    ユーザ名:xxxxxxxxxxxxxxxxxxxx
    パスワード:xxxxxxxxxxxx
    プロキシ:basix-proxy.brastel.ne.jp:5060




    以上が「root化端末を使わずに「G-Call050」のSIP情報を取得する方法」です。
    なにか間違いなどがありましたら、ご指摘頂けると助かります。