こんにちは。
Nexus5がdocomoの電波を掴まなくて困っていませんか。今回はNexus5をLTE Band 19に対応させる方法を書きたいと思います。
歴史
Nexus5にはモデルが2つあり、北米版がLG-D820、グローバル版がLG-D821となっています。日本のGoogle ストアとY!mobileで購入できたモデルはグローバル版です。両者の違いは使えるバンドの違いで、北米版はdocomoのメインバンドであるLTE Band19が掴めてグローバル版はそのバンドに対応していません。
ところがハード面ではグローバル版もBand19に対応していたことを2ちゃん(現5ちゃん)の「【マイナー周波数】スマホでプラスエリア」スレ住民の方が発見、試行錯誤の末北米版からLTE Band19関連のファイルを移植することでB19に対応できることが分かりましたが、再起動したり動作が安定しませんでした。
さて、LTE Band20はヨーロッパでよく利用されていますが日本では利用されていない帯域です。グローバル版はB19が無効になっている代わりにB20が有効になっています。北米版はその逆です。B20が生きた状態でB19を加えると不安定になるがどちらかを外すと安定する、という仮説はスレ内で広く同意されました。これで安定したB19対応策が見つかったのです。
しかしそのうち有料でNexus5をBand19に対応させる輩が現れ、そのことに義憤を感じたID:2FURfijFさんがあるスレを建てました。
このスレは5ちゃんでは珍しく建設的かつ親身なレスが交わされ、ほぼ荒らしも発生しない名スレとなりました。そのおかげで多くの人たちがNexus5をBand19に対応させたのです。
ところがこのスレが建てられた日(2015年2月)から時を経て状況が変わってきました。特に問題なのがBand19に対応させるための主要ツールDFS CDMA Toolの操作画面が大きく変更されたことです。結果、猿でもスレの説明と現行のDFS CDMA Toolが一致しなくなり、「猿でも」Nexus5をLTE Band19に対応させることが難しくなってしまいました。
そこに現れたのがsy07_sub ‘s blog様のこの記事です。
Nexus 5 LG-D821をBand 19に対応させてみる [DFS Qualcomm Tool v17.10.2.00]
記事が書かれたのは2017年12月ですがツールは現在(2019年4月)も同じバージョンであり非常に参考になる内容となっています。絶対に拝見しましょう。
用語解説
私は専門家ではないので間違っている可能性が高いです。この場合でしゃばって解説すべきではないのですが、それでも書いたほうが分かりやすくなると思うので書きます。
NV:SoCのモデムの中にあって、掴むバンドを指定する場所。Nexus5の場合ここを書き換えただけではLTE B19は掴まない(3Gはここを書き換えるだけで対応バンドが変わる)
RFNV:SoCのモデムの中にあって、SoCとモデムが同じ他の端末からRFNVを取り出して移植先に入れるとLTEの対応バンドを変えることが出来る。EFSの中に含まれている
EFS:この中にRFNVが含まれている。RFNVは他の端末から移植可能だがEFSは内部に端末固有のIMEIが含まれているため取り替え出来ない。絶対バックアップしてHDDなりクラウドなりに保存しておくこと
2ファイルと13ファイル:北米版とグローバル版のNexus5のRFNVの差分は13ファイルあり、そのうちLTE Band19に関係するのは2ファイル。そのため13ファイルを移植するか2ファイルを移植するか意見が別れている
W4外し:WCDMA Band4を掴まないようにNV値を書き換えた状態。日本では利用されていない帯域
W19化:WCDMA Band19を掴むようにNV値を書き換えた状態。W19とは3GのBand19のことで、docomoはこのバンドを単独で利用せず必ず3GのBand6(プラスエリアと名付けられdocomoの主要電波のひとつ)も飛ばしている(総務省が基地局に発行する免状で分かるらしい)のでW19に対応させる意味は無いという説と体感では電池持ちが良くなったし電波の掴みも改善されるから意味がある説で別れている
W4外しW19化:W4を外してW19を掴むようにした状態。単純にW19を加えると不安定になるという指摘があり、それなら不要なW4を外せば安定するのでは?という考えから出た組み合わせ
とりあえず普段見慣れない用語はこれくらいだと思います。それでは上記の用語解説を参考にして一度このスレを全て読んでください。
理解しようと思ってもイメージするのが難しい内容も多いと思いますが、それでも住人の失敗談やアドバイスは役に立つと思います。
環境
まずWindowsじゃないといけません。ここではWindows Vista 32bitが使われていますが他のバージョンのことは分かりません。Nexus5は最終バージョンのAndroid6.0.1です。
Windowsは拡張子が見えるようにしておいてください。フォルダの検索のオプション→フォルダオプション→表示→登録されている拡張子は表示しないのチェックをオフ
adbコマンドとfastbootコマンドが使える必要があります。「Minimal ADB and Fastboot」がオススメです。ファイルサイズが小さくてPATHを通す必要がありません。
[TOOL]Minimal ADB and Fastboot [2-9-18]
Portable版はインストールしなくていいらしいです。動くかは分かりません。
adb接続とfastboot接続を認識させるためlatest_usb_driver_windows.zipをここからダウンロードして展開してください。
https://developer.android.com/studio/run/win-usb
ADBデバッグ状態のNexus5をパソコンに繋ぐとドライバの検索が始まりますので解凍先のフォルダを指定してください。
TWRPの導入とroot化
すでに二つとも済んでいる方は飛ばしてください。
まずNexus5で設定→端末情報 を開き「ビルド番号」を7回タップ。「開発者向けオプション」という項目が増えているので開いてusbデバッグをオン。パソコンに繋ぐと「USBデバッグを許可しますか?」という表示が出るので「このパソコンからのUSBデバッグを常に許可する」にチェックしてOKします。
先に説明しておきますが、fastboot oem unlock でブートローダーをアンロックした後fastboot flash recoveryしてTWRPをインストール、それからSuperSUをTWRPで焼いたらブートループしました。なので猿でもスレで紹介されていたrootツールを使います。Magiskだったら?とかNRTの方が、とか最初からカスタムROMを焼けば?という疑問を感じる方は各自トライしてみましょう。ここではストックROMで進めます。
猿でもスレで紹介されていたrootツールはこれです。
スマホ内のデータが全て消えるのでバックアップしてください
CF-Auto-Root-hammerhead-hammerhead-nexus5.zipを解答したらNexus5の電源を切り電源とボリューム下を長押しして、pcに繋ぎます。開腹ドロイドくんが倒れて「Start」と書かれているはずです。解凍したrootツール内のroot-windows.batを実行してください。Unlock bootloader?という画面に切り替わりますのでボリュームキーでYesを選び電源ボタンで選択します。スマホ内のデータが全て消えるのでバックアップしてください。すでにブートローダーをアンロックしているけどrootは取っていない方もやりましょう。
次にNexus5の画面がいかにもroot取ってる最中だぞ感のある画面になります。そして直立した開腹ドロイドくんの画面になり、通常起動します。「ようこそ」画面になるので全て設定をスキップしてください。猿でもスレではroot化まで行われると書かれていますが、私の場合はSuperSUがインストールされていませんでした。おそらくパソコンとNexus5は接続されたままでしょうからNexus5の画面の通知を下げてファイル転送を選びます。
ChainfireのHPからUPDATE-SuperSU-v2.46.zipをダウンロードしてNexus5内のどこかに置きます。
https://download.chainfire.eu/696/supersu/
※Magiskでも良いと思います。このあとカスタムカーネルを焼きますが、最新版を焼きたいならMagiskを焼いてください。ここではSuperSUで進めます
端末がリセットされたので再度USBデバッグをオンにしてください。「このパソコンからのUSBデバッグを常に許可する」にチェックしてOKするのを忘れないように。
パソコン内にTWRPのイメージをダウンロードします。現時点の最新版はtwrp-3.2.3-0-hammerhead.imgです。
https://dl.twrp.me/hammerhead/
Nexus5をパソコンから外して電源を切ります。それからブートローダー起動しパソコンに繋ぎパソコンで「Minimal ADB and Fastboot」を起動します。そして次のコマンドを打ってNexus5のカスタムリカバリーをインストールします。
fastboot flash recovery 「TWRPファイルのディレクトリ」.img
意味分からないんだが?という方向けに説明すると、ファイルのディレクトリ名はファイルの上で右クリックしてプロパティ>セキュリティ のオブジェクト名をコピペです。
これがデスクトップに置かれたTWRPイメージを焼くコマンドです。参考にしてください。
失敗する場合:コマンドは正しいですか? LOCK STATEはunlockedになっていますか?
焼き終わればNexus5のボリュームキーを押してRecovery modeにして電源ボタンを押してTWRPが起動するのを確認します。そして「Swipe to Allow Modifications」をスワイプしてBackupを押します。(手ブレごめん)
EFSのみにチェックを入れてSwipe to Backupをスワイプしてバックアップします。
Nexus5はパソコンにつながったままだと思います。このEFSはとても大事なのでPCにもコピーしてバックアップしましょう。パソコンでTWRP>BACKUPS>と開くと日付の入ったフォルダがあるのでそれをPCにコピーして大事に保管です。ついでにTWRPのホームに戻りBackupを押しましょう。System,Data,Bootにチェックを入れたらSwipe to Backupです。この場合EFSのチェックは外してください。これでストックROMのバックアップが出来ました。
おそらくまだrootは取れていないので、TWRPのホームに戻りInstallを押して
UPDATE-SuperSU-v2.46.zipを選択して焼きましょう。これでroot化出来ました。TWRPのRebootを押してSystemを選び通常起動させます。この際TWRPのオフィシャルアプリをインストールするか尋ねられるので好みで。私はチェックをすべて外してDo Not Installを選択しました。
起動するとアプリ一覧にSuperSUがあるので起動。「今はまだ」を選び、特に何もアラートが無ければ成功していると思います。一応何かroot権を要求できるアプリで確認したほうがいいかもしれません。
ファイラアプリを使ってもadbコマンドを使ってもどちらでもいいので「Nexus 5 Field Test Mode」をNexus5にインストールしてください。既にGoogle Playでは削除されているのでApkpureのリンクを貼ります。
Nexus5をDIAGモードでパソコンと接続
Nexus5のモデムを弄るためにDIAGモードでパソコンと接続する必要があります。そのままだとDIAGモードに出来ないため、カスタムカーネルをTWRPで焼きます。私はFranco Kernelを焼きましたが、注意が必要です。一番古いバージョンを選んでください。私はfk-r80-anykernel2.zipを選びました。
どのバージョンからか分かりませんが、新しいバージョンを焼くとSuperSUが無効化されます。もしあなたが焼こうと思った時に新しいバージョンしか手に入らなかった場合はMagiskを焼くと上手く行くと思います。
この話は完全に蛇足なので申し訳ないのですが、実はSuperSUは既に開発が停止していて古い権限管理アプリになっています。作者であるChainfire様は2017年にSuperSUの開発をリタイアしたので現在の主流はMagiskになりつつあります。
試しに最新のfk-r115-anykernel2.zipを焼いた後Magiskを焼くとroot権が付与出来ました。これでも多分問題ないと思いますが試してないので断言はしません。
話を戻しますが、カスタムカーネルをTWRPで焼いてもroot化されたままなら次はパソコンにDIAGモードに対応したドライバをインストールします。
LGUnitedMobileDriver_S50MAN310AP22_ML_WHQL_Ver_3.10.1_3.9.1.0.zip をダウンロードして解答してLGUnitedMobileDriver_S50MAN310AP22_ML_WHQL_Ver_3.10.1.exeをインストールします。
次にandmem様のこの記事内からLG-D820 rfnv 2 of 13 diff LG-D821.zipをダウンロードします。このzip内に「00022969」と「00024200」の2ファイルが入っています。2ファイルについては既に用語解説で説明しましたね。
もし13ファイルが欲しい場合はこちら。私は2ファイルを選びました。
パソコンにこちらからSetup DFS 17.10.02.00.zip (30.53 Mb)を選んでダウンロードし解凍、Setup DFS 17.10.02.00.exeをインストールしてください。このツールでモデムを弄ります。
では全ての準備が出来たのでNexus5をUSBデバッグでパソコンと繋いでください。この辺から気を引き締めていきましょう。
Minimal ADB and Fastbootを起動して
adb shell
su
setprop sys.usb.config diag,adb
と順番に打ち込みます。ただしsuと打つ前にNexus5の画面のロックを外しておいてください。suと打つとroot権を与えるか尋ねる画面が出るので許可してください。下の画像のように「再確認」のチェックは外してください。
suでroot権を与え、setprop sys.usb.config diag,adbまで打ち込むとNexus5上はなんの変化もありませんがDIAGモードで接続されています。実際に確認するためパソコンで「コントロールパネル>システムとメンテナンス>システム>デバイスマネージャ」と開きLGE AndroidNet USB Serial Port (COMx)があるか確認してください。
失敗する場合:suと打ってnot foundエラーが出る場合はroot化されていません。ドライバの読み込みが正しく行われない場合もDIAGモードになりません。
NV値を変更
ここからは実際に内部を書き換えるのでミスの無いように、特に数値が間違ってないか他のサイトも確認しながら行ってください。冒頭で紹介したsy07_sub ‘s blog様の記事と私の記事を一緒に見ながら行うと良いと思います。
パソコンでDFS 17.10.02.00フォルダを開き、QToolを起動します。「Updating error: The remote name could not be resolved: ‘cdmatool.net’」というアラートが出ますが気にしないでOKを押しましょう。次に「Please authorize(register free account) for skip startup restriction」というアラートが出ますが気にせずOKを押しましょう。普通に起動します。
View→manager→portと進みます。
LGE AndroidNet USB Serial Portをダブルクリックします。すると「Unknown FID」というアラートが出ますが気にせずPort Managerを開きましょう。
左下がConnecting completedになっていれば接続できています。
Tools→NVIを押します。
読み取り範囲を6820と6830に設定してReadを押します。
するとNV Data Pagesに06828と06829が現れます。この2つが書き換え対象のNVです。
06828をクリックすると「16進数リトルエンディアン」形式でNV値が表示されます。初期値は「D5 00 08」。この初期値を書き換えます。
NV値05 00 04の場合:Band1/3/19のみ対応のdocomo仕様
NV値D5 00 04の場合:Band1/3/5/7/8/19対応。Band20を消し、19を追加。※20をのこして19を追加すると不安定になるため
お好きな数値を選んでください。私はD5 00 04にしました。
06829も同様に書き換えたらもう一度06828と06829のNV値を確認し、読み取り範囲が6820と6830に設定されていることを確認します。そしてWriteを押します。アラートが出るのではいを選択します。
左下がNVM Write completedになればOKです。
猿でもスレではWCDMA(3G)もBand19対応させた方が良い、いや逆だと議論されていましたが、もしあなたが対応させたいなら、、、、
読み取り範囲を1870と1880にしてReadを押します。そして01877を選択します。初期値は80 03 E8 0E 00 00 02 00
W4外しW19化:80 03 E8 0C 00 00 02 10 (Band1/2/5/6/8/19)
W19化:80 03 E8 0E 00 00 02 10 (Band1/2/4/5/6/8/19)
私はここはいじらないことにしました。なぜならLTEと違い3Gは
とID:2FURfijFさんが指摘している事、「W19化」否定派が理論的に否定するのに対して肯定派は「体感で電波をスムーズに掴むようになった」や「電池持ちが伸びた」からといった曖昧な主張をしているからです。
私はWCDMAは触らないほうがいいと判断しましたが、あなたが私の意見に縛られる必要は当然ながら全くありません。ご自身の考えに従って必要と感じたら書き換えてください。
なので私はここでツールを閉じました。このままNexus5を再起動すると書き換えたNV値が元に戻るらしいので、Nexus5で「Nexus 5 Field Test Mode」を起動します。
Continueを押します
メニューからAdvanced LTE Settingsを選びます。root権を求められるので許可してください。
Band41 Enable/DisableをタップしてEnableにします。
Band41 Enable/DisableがEnableになったのを確認します。
次は同じようにしてDisableにします。
戻るボタンを押すと自動的に再起動します。次はまたパソコンでNexus5をDIAGモードにします。Minimal ADB and Fastbootを起動したら
adb shell
su
setprop sys.usb.config diag,adb
と打ち込み、デバイスマネージャでLGE AndroidNet USB Serial Port (COMx)があるか確認します。
QToolを起動してView→Manager→Portを選択します。
LGE AndroidNet USB Serial PortをダブルクリックしてTools→NVIを開きます。
読み取り範囲を6820と6830に設定してReadを押します。
ちゃんと06828と06829のNV値変更が維持されていたらこれでNV値の書き換えは完了です。あともう少しです。
RFNVを移植
終わりは近いです。Tools→File Explorerを開きます。
EFS2にチェックがされているのを確認したらReadを押します。
nvとitem_filesのフォルダアイコン左側の三角を押して、右側の窓でrfnvの上を右クリックします。
Save Here→Filesを選択します。
解凍したLG-D820 rfnv 2 of 13 diff LG-D821を開いて(私は2ファイルをえらんでいます。13ファイルの場合は13個のファイルだと思います)00022969と00024200の二つを選択して開くを押します。
するとrfnvの中身が見えるので一番下までスクロールして二つのファイルが追加されているか確認してください。
sy07_sub ‘s blog様は「>変更せずとも機能した」と書かれていますが、私も2ファイルともパーミッションを666から777に変更しました。
これで全て完了です。ツールを閉じて、Nexus5をPCから外して電源を切ったらリカバリー起動してください。そしてTWRPでEFSのバックアップを取り、Wipe→Advanced Wipe→Dalvik CacheとCacheをWipeしましょう。LTE Band19を掴んでいるか確認する方法はNexus 5 Field Test Modeを起動してLTE Engineeringを開き、StateがConnected、Bandが19になっているか確かめることです。
Q&A
Q:カスタムROMを焼くとB19は掴まなくなりますか?
A:殆どのカスタムROMはEFSが含まれていないので影響はありません。もしEFSが含まれたROMでもB19対応済のEFSをTWRPで焼けば問題ありません
Q:ヨーロッパへ行くのでB20を掴めるようにする方法はありますか?
A:オリジナルのEFSを焼けばB20が掴めるようになります。その場合B19は掴みません
Q:TWRPも含めて全て消して戻す方法を教えてください
A:ファクトリーイメージを分解してfastbootコマンドを使って焼くことで初期化出来ます。例えばストックのAndroid6.0.1に戻す場合はこちらからzipファイルをダウンロードしてパソコン上で展開して焼きます。詳しくはこちらをご覧ください
最後に
あなたの改造したNexus5で電波を利用することは法律で禁止されています。もしその使用が技適厨に発見されてしまった場合、国家公務員によって捕らえられ、その一生を陽の当たらない暗い地下牢で過ごすことになります。
なのでNexus5は利用せず神棚に飾っておきましょう。
以上です。
参考にしたサイト
猿でもNexus5をLTE Band19に対応させるスレ [転載禁止]©2ch.net
Android端末の対応バンドの変更について(NTTdocomoプラスエリア対応など)
【LTE B19】Nexus 5(LG-D821)のNTTdocomoプラスエリア(800MHz)対応化について
Nexus 5 LG-D821をBand 19に対応させてみる [DFS Qualcomm Tool v17.10.2.00]