ニュース

OnePlus One(A0001)をDIAGモードでPCに接続する

 OnePlus One(A0001)をDIAGモードでPCに接続する方法です。

 DIAGモードへの変更方法、ドライバのインストール方法などを書いています。

※root化済みであることが必要です

2014/11/12,10/28,3…「再起動すると書き換えたNV領域の値が戻ってしまい変更が維持されない」を更新
2014/9/30…以前より簡単に切り替える方法があったため更新

今回の接続方法について

  Nexus 4やNexus 7(2013)では、端末をroot化しておけばどのようなROMでもコマンドプロンプトから簡単にDIAGモードで接続することができます。OnePlus Oneでも同様に簡単に接続することができます

 しかし、OnePlus Oneでは同様に行っても、接続することができません。
 今回の方法は、端末内の「init.qcom.usb.rc」ファイルに記載されているDIAGモードへの切り替えコマンドを、スクリプトを使って端末上で実行することで、diagモードへ切り替えます。

再起動すると書き換えたNV領域の値が戻ってしまい変更が維持されない

 特定のKernelを使用していると、NV領域の値を書き換えても端末初期値に戻ってしまい変更が維持されません
 少なくとも、「CyanogenMod 11S XNPH38R」以降、「mahdi-2.8」以降に含まれているKernelと「franco.Kernel r27」以降でそのような現象が発生しています。
 また、NV領域変更後にそれらのROMやKernelを一度でも導入した場合、端末初期値に戻ってしまいます。
 どうやら、2014年10月初旬~中旬以降のソースコードを使用しているKernelでは、NV領域への書き込みが制限されてしまっているようです。
 ちなみに、franco.kernelのchangelogにはr27でCAFコードの更新を統合しているそうなので、もしかしたらそれが原因なのかもしれません。(QualcommがNVの書き込み制限をその更新に統合した可能性)

~2014/11/12追記~
 「/system/bin」にある「rmt_storage」というファイルを差し替えることで、値を維持することが出来ます。
 こちらのページから「replaceRMT_STORAGE.zip」をダウンロードし、値を変更する前にカスタムリカバリなどから書き込んで下さい。(もしくは、zipを解凍して手動で差し替えて下さい)
 値の変更は、差し替え後に行って下さい。

DIAGモードに接続できる環境

  • AOSPベースのROM(mahdi ROM 2.7で確認済み)
    ※Color OSでは確認していません。
  • root化がされている

手順

必要なファイルの準備

 今回必要なファイルは以下になります。
  1. DIAGモード用ドライバ
     OnePlus One用のドライバが無いため、HTC向けの物を書き換えて利用します。こちらの「HTC Diag Drivers.zip」をダウンロードして、解凍しておきます。
 以前より簡単にDIAGモードへ切り替える方法があったため、以下の2つは不要です。
  1. DIAGモード切り替え用スクリプト
     こちらから「oneplusone_diag_enable.sh」をダウンロードし、端末の内部ストレージに移動しておきます。
  2. Script Manager(スクリプト実行アプリ)
     こちらから端末にインストールしておく。

DIAGモード切り替え用スクリプトについて

 「oneplusone_diag_enable.sh」の内容は下の通りです。
#!/system/bin/sh

stop adbd
echo 0 > /sys/class/android_usb/android0/enable
echo 0123456789ABCDEF > /sys/class/android_usb/android0/iSerial
echo 05C6 > /sys/class/android_usb/android0/idVendor
echo 676C > /sys/class/android_usb/android0/idProduct
echo diag > /sys/class/android_usb/android0/f_diag/clients
echo tty > /sys/class/android_usb/android0/f_serial/transports
echo diag,adb > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
start adbd
 これは、端末内のファイル(/init.qcom.usb.rc)の、「on property:sys.usb.config=diag,adb」の部分に書かれているコマンド(下の画像の部分) に基づいています。
 同じように「init.qcom.usb.rc」が存在する端末なら、今回の方法が使用できるかもしれません。

DIAGモード切り替え用スクリプトの実行(以前の内容なので実行不要)

  1. PCとUSB接続する。
  2. Script Managerを起動する。
  3. 下の画像のようなメッセージが表示されるので、「OK」をタップする。
  4. 下にスクロールして移動し、「oneplusone_diag_enable.sh」を表示させ、タップする。
  5. 上にあるSuアイコンをタップする。
  6. 上にある「Run」をタップする。
    ※root権限が要求された場合は許可して下さい。
 以上で、端末側の操作は終わりです。
 次に、PCにDIAGモード用のドライバをインストールします。

DIAGモードへの切り替え

  1. 端末が起動してUSBデバッグをONにし、「MTP」モードに変更する。
  2. コマンドプロンプトで「adb shell」と入力し、「Enter」キーを押す。
  3. 続いて、「su」と入力し、「Enter」キーを押す。
  4. 続いて、「setprop sys.usb.config diag,adb」と入力し、「Enter」キーを押す。
    ※端末上では何も起こっていないように見えますが、DIAGモードへ切り替わっているはずです。

DIAGモード用ドライバのインストール

 OnePlus One用のドライバが無いため、HTC向けの物を書き換えて利用します。
  1. デバイスマネージャを開く。
  2. 「ほかのデバイス」の項に、「One A0001」が2つ表示されていることを確認する。
    ※導入しているROMによって表記が異なる可能性があります。
  3. 2つのうち、上の「One A0001」をダブルクリックし、開く
  4. プロパティが表示されるので、「詳細」タブをクリックする。
  5. 「プロパティ(P)」の項目から「ハードウェアID」を選択する。
  6. 「値(V)」の「USB\VID_05C6&PID_676C&MI_00」をクリックして選択し、右クリックして「コピー」をクリックする。
    ※ここの値が異なる場合は、もう1つの方の「One A0001」で手順3~6を行って下さい。
  7. OK」をクリックして、プロパティを閉じる。
  8. ダウンロードして解凍した「HTCDiagDrivers」にある「Win x64」(又は、Win x86)フォルダを開く
    ※使用しているWindowsに合わせて選択して下さい。
  9. フォルダ内にある「HtcUsbMdmV64.ini」(又は、「htcdiag.ini」)をダブルクリックし、開く。
  10. [Models.NTamd64]」の項にある「USB\VID_0BB4&PID_0B03&MI_00」を「USB\VID_05C6&PID_676C&MI_00」に書き換える。
    ※「htcdiag.ini」の場合は、「[Models]」の項にある適当なもの(例えば、一番上の「USB\VID_0BB4&PID_0C07&MI_02」)を書き換えて下さい。
  11. 保存して、閉じる。
  12. デバイスマネージャを開き、手順2と同じ「One A0001」をダブルクリックし、開く
  13. ドライバーの更新(U)...」をクリックする。
  14. 下の「コンピュータを参照してドライバー ソフトウェアを検索します(R)」をクリックする。
  15. 下の「コンピューター上のデバイス ドライバーの一覧から選択します(L)」をクリックする。
  16. すべてのデバイスを表示」が選択されていることを確認し、「次へ(N)」をクリックする。
  17. ディスク使用(H)」をクリックする。
  18. フロッピー ディスクからインストール」が表示されるので、「参照(B)」をクリックし、手順10で編集したiniファイルを選択し、「開く(O)」をクリックする。
  19. OK」をクリックする。
  20. 上の「HTC USB Modem」を選択し、「次へ(N)」をクリックする。
  21. はい」をクリックする。
  22. 下の「このドライバー ソフトウェアをインストールします(I)」をクリックする。
  23. インストールが終わるまで、待つ。
  24. 閉じる(C)」をクリックする。
  25. 閉じる」をクリックする。
  26. モデム」の項に、「HTC USB Modem」が表示されていることを確認する。
 以上が、OnePlus OneをDIAGモードでPCに接続する方法です。
Powered by Blogger.