ニュース

Android端末の対応バンドの変更について(NTTdocomoプラスエリア対応など)

Android端末の対応バンド(周波数)の変更について、情報をまとめてみました。

※対応バンドの変更はあらゆる面で自己責任となります!※

2014/12/19…RFNVについて追記
2014/12/4…書き換えツールについて追記
2014/11/3…値の計算アプリを追記・更新
2014/10/25…「値の形式変換」を追記
2014/9/29…「NTTdocomoプラスエリア対応の可能性」を追記
2014/3/6…Nexus 5(LG-D821)で検証してみました
2014/2/17…記事を一部修正・参考サイトリンクを追記

この方法に対応している端末

この方法に対応する端末は、Qualcomm製のモデムチップ(Modem)を搭載したAndroid端末のみです。端末製造メーカーの制限はありません。

但し、root権限を取得している必要があります(Samsung製端末は非rootでも可能)。

変更する項目

変更することが出来る領域は、大きく以下の2つになります。

NV(NVM)

NV(NVM)には、主にIMEIやIMSIなどの端末固有の情報であったり、バンドの有効・無効に関する情報など全体的な設定が書かれています。
その中のいくつかの項目を変更することで、ソフトウェア上の対応バンドが変わります。

端末によっては、この領域の書き換えだけで対応させることが出来ます。

今回説明しているのは、このNV(NVM)に記述されている内容になります。

RFNV(EFS)

RFNVは、EFS内に存在するものです。

上記のNV(NVM)と似ていますが、主に各バンドのゲイン(増幅)値などの個別の設定が書かれています。(NVに書かれているBandもあります)

特に、LTE B19(800MHz帯)については、すべての設定値がこちらの領域に書かれています。
LTEに関して、ほとんどの端末ではNV(NVM)だけではなくこの領域も書き換えないと対応できません

多くのツールでは、値を編集するのではなく、領域に入っているファイルを差し替える(移植)ことで変更を行います。

RFNVの移植元は、移植先の端末と同じSoCやモデムを使用している端末である必要があるようです。

※実際には、EFS内にNV(NVM)も存在しているのですが、多くのツールでは別の扱いとなっているため、今回は分けています。

変更して対応できる可能性

そもそもハードウェア(アンテナやアンプなど)が対応していないと、上記のようなソフトウェアを変更したところで対応することが出来ません。

対応させたいバンドを元々対応しているバンドが内包している場合やそれに近いバンドに対応している場合、または兄弟機が対応している場合は、可能性が高いと言えます。

しかし、端末が元々対応しているバンドとは全く異なるバンドは、可能性が低くなります。

NTTdocomoプラスエリア(800Mhz)の例

元々Band5(WCDMA・LTE)に対応していないと書き換えで対応する可能性は低くなります。(B5はB19を内包しているため)

WCDMA B6/19に関しては、元々B5に対応していればNV(NVM)の書き換え対応のみできることがほとんどです。

しかし、LTE B19に関しては、NV(NVM)のみの変更では対応できない場合がほとんどで、RFNV(EFS)の変更も必要になります。(それでも掴めない場合もあります)

実際の例としては、Nexus 5(LG-D821)を兄弟機(LG-D820)からRFNVを移植することでLTE B19に対応させたものがあります。(詳細はこちら

NV(NVM)について

変更する項目とその意味

変更する項目は、2G/3GとLTEで異なります。変更が必要な項目は以下の通りです。
  • 2G/3Gの場合…18774419462954の4つ
  • LTEの場合…68286829の2つ(6829番は端末によっては不要
※LTEの場合、この他にRFNVという部分の書き換えも必要になる場合があります。

2G/3Gの場合

  • 1877(NV_RF_BC_CONFIG_I)
     3Gの対応バンドを指定する。記述方法は後述。
  • 441(NV_BAND_PREF_I)
     1877番に記述する数値の内下位16ビット分(Bit_00~Bit_15)の数値を記述する。
  • 946(NV_BAND_PREF_16_31_I)
     1877番に記述する数値の内下位17ビット目から32ビット目(Bit_16~Bit_31)の数値を記述する。
  • 2954(NV_BAND_PREF_32_63_I)
     1877番に記述する数値の内下位33ビット目から64ビット目(Bit_32~Bit_63)の数値を記述する。

LTEの場合

  • 6828(LTE BC Config)
     LTEの対応バンドを指定する。記述方法は後述。
  • 6829(LTE BC Config DIV)
     #6828番と同じ値を記述する(端末によっては変更の必要無し)。

記述する内容

基本的には、「2進数表記において対応させたいバンドに対応する桁を1にする」ように記述します。0で無効1で有効です。

しかしながら、1877番(2G/3G)と6828番(LTE)とでは記述する方法が異なります

なお、書き換えツールによってどのような形式(2進数・10進数・16進数・リトルエンディアンなど)で表示されるかが大きく異なります!
実際に記述する際には、使用しているツールがどのような形式で表示されているのかを必ず確認し、その形式に合わせて記述して下さい。

2G/3Gの場合

  • 1877
     「mzTool」というソフトを用いて算出した値を記述する。
    ※441番・946番・2954番については上記「変更する項目の意味」を参照して下さい。
mzToolこちら(もしくはこちら)から入手できます。最新版は1.2.1a(2014/2/17時点)です。
使用するには、mzTool本体と同じフォルダに「wxmsw293u_gcc_custom.dll」を置いておく必要があります(required_dll_fileからダウンロード可能)。


mzToolを使えば、2G/3Gの対応バンドを簡単に計算することが出来ます。

「Band Preference (NV Value)」タブで、対応させたいバンドにチェックを入れることで、下部に441番・946・2594・1877番が表示されます(Binaryは2進数、Decimalは10進数、Hexは16進数表記)。
チェックを入れると数値を計算してくれる
しかし、このツールではNTTdocomoのFOMAプラスエリアでサービスされている「WCDMA バンド19」が表示されていません。
このツールで「WCDMA バンド19」に相当するのは「Etc-2」の欄にある「[Bit_60] Reserved for BC10-1700 band classになります。
※WCDMA バンド6,19を有効にする際には、バンド5も有効にしていないと電波を掴まないという報告がありました。


また、逆に記述されている値からどのバンドに対応しているかを表示することもできます。

「Band Preference (Bit info)」タブで、値を入力することで「Bit infomation」欄に対応バンドが表示されます。左側のボタンで、10進数(Decimal)・16進数(Hex)入力を切り替えできます。

入力する値にスペースやカンマが含まれていると正しく表示できないため、数値のみを入力します(例:Decimal 115,868,544→115868544、Hex 0000 0000 06E8 0380→0000000006E80380)。

LTEの場合

  • 6828
     「対応させたいバンドに対応する桁」は、2進数で「一番右をバンド1として、LTEバンドの番号の桁」になります。
     例えば、LTEバンド1,3,10ならば、2進数表記では右から1,3,10桁目を1にした「1000000101」となります。
6828番は単純にバンド番号と対応しているので、Windows付属の「電卓」等を使って2進数から10進数に変換すると簡単に計算できます。
Windows付属の「電卓」の詳しい使用方法はこちらの記事を参照して下さい。

~2014/11/3追記~
 こちらのアプリでも値の計算をすることが出来ます。
Qualcomm NV Calculator
vndnguyen
価格:無料  平均評価:4.5(11 件)

値の形式変換

上記で説明した値の表示形式はあくまでも一例です。

書き換えツールによってどのような形式(2進数・10進数・16進数・リトルエンディアンなど)で表示されるかが大きく異なります。

実際に記述する際は、必ず使用しているツールではどのような形式で表示されているのかを確認し、その形式にあわせて記述する必要があります。

各進数の相互変換

 各進数の相互変換はWindows付属の「電卓」などを使用して下さい。「電卓」の詳しい使用方法はこちらの記事を参照して下さい。

16進数のビッグエンディアン→リトルエンディアン変換

普通の16進数(ビッグエンディアン)から16進数(リトルエンディアン)への表記変更方法を説明します。
  1. Windows付属の「電卓」などで、16進数表記の値に変換する。
    ※最初から16進数表記である場合は不要です。
  2. 得た値を一番下(右)から2桁ずつ区切る。
    ※一番上(左)が"1桁"の場合は、先頭に"0"を付け加えて下さい。
  3. 一番下(右)から順に書き直し、反転させる。
  4. 2桁ずつ左右の値を入れ替える。

記述例

例として、GSM 850/900/1800/1900、CDMA2000 BandClass 0/6、WCDMA Band 1/5/6/19、LTE Band 1/3/19/21に対応させるような記述をしてみます。

まず、mzToolで該当するバンドにチェックを付け、計算すると
  • 1877番
    10進数:1,152,921,504,814,991,235
    16進数:1000 0000 0C68 0783
  • 441番
    10進数:1,923
    16進数:0000 0000 0000 0783
  • 946番
    10進数:3,176
    16進数:0000 0000 0000 0C68
  • 2954番
    10進数:268,435,456
    16進数:0000 0000 1000 0000
となります。なので、実際にこれらの値を記述するときには
  • 1877番
    10進数:1152921504814991235/16進数:100000000C580783(ツールに依存)
  • 441番
    16進数:0783
  • 946番
    16進数:0C68
  • 2954番
    10進数:268435456
とすれば良いことになります。
 また、LTEに関しては
  • 6828番
    2進数:101000000000000000101
    10進数:1310725
  • 6829番
    6828番と同じ
となるため、実際にこの値を記述するときには
  • 6828番
    10進数:1310725
  • 6829番
    6828番と同じ
とすれば良いことになります。

RFNV(EFS)について

 作成中

変更する方法

準備

DIAGモードへの変更

値を書き換えるには、基本的に端末のroot権限を取得(Samsung製除く)し、DIAGモード(診断モード)にした上、PCにドライバをインストールする必要があります。

DIAGモードへの設定方法は端末ごとに異なります。
ドライバに関して、端末メーカーのものがない場合は、他社のもの(例えば、HTCやLG)を少し書き換えることで端末に対応させることが多いようです。

参考までに、Nexus 5をDIAGモードで接続する方法は、こちらを参照して下さい。

また、その他の端末についてのDIAGモードでPCに接続する方法は、こちらのページの各端末の「DIAGモードでPCに接続する」記事を参照して下さい。

書き換えツールについて

実際の書き換えにはツールが必要になります。

書き換えツールには様々ありますが、例として無料の「DFS CDMA Tool」を挙げておきます。
このツールは、NV(NVM)とRFNVの両方を変更することが出来ます。

「DFS CDMA Tool」の使い方については、こちらの記事を参照して下さい。

変更の流れ

NV(NVM)の変更

 実際の変更の流れは、以下の様な場合がほとんどです。
  1. mzToolなどで現在対応しているバンドを把握
  2. 現在対応しているバンドに、対応させたいバンドを追加して値を計算
 ※NV(NVM)の変更には大きなリスクが伴います!変更は自己責任です!※

RFNV(EFS)の変更

 作成中

その他

NV(NVM)には、端末のIMEIなども含まれています。

何らかの事情でIMEIが飛んでしまって通信ができなくなってしまった場合は、元の値に書き換えることで復旧できる場合があります。

実際の変更例

参考サイト

Powered by Blogger.