[GUIDE] How to change IMEI on Snapdragon devices https://gist.github.com/uragiristereo/7668e067e3b0525d6e4d4b12d9f71344
Pixel3で幸い同じデバイスだったので、ほとんどこの通り。一部通らないところがあったので変更した。
以下は自分用に和訳と要約したものだけど、間違えてるかもしれないので基本的に元のを見た方がいい。
用意するもの
- 自己責任の心
- BLUされたrootedなPixel3、自分のは国内版シングルSIMでビルドはSP1A.210812.016.C1 (他の似たチップセットの似たデバイスでも同様にやれるかは知らない)
- 自分が所持しているデバイスのIMEI
- adbやドライバ類をちゃんと入れておく
- QFIL (githubの元ページより)
- QCN IMEI Writer (githubの元ページより。パスワードがかかってるのでpassも控えておく)
A. EFSパーティションをバックアップ。これがstockのIMEIを含むデータ。 TWRP起動 adb pull /dev/block/bootdevice/by-name/modemst1 adb pull /dev/block/bootdevice/by-name/modemst2 adb pull /dev/block/bootdevice/by-name/fsg adb pull /dev/block/bootdevice/by-name/fsc B. QCNファイルをバックアップ。 デバイスを通常起動、diagモードに入る adb shell su resetprop ro.bootmode usbradio resetprop ro.build.type userdebug setprop sys.usb.config diag,diag_mdm,adb USBモードを変更してUSBモードをリロード (ここでデバイスマネージャを見てポート(COMとLPT)にスマホがあるか確認した方がいい) QFILのソフトウェアを起動してデバイスのCOMポートを選択 Tools→QCN Backup Restoreを選択、stockのQCNファイルを指定 Backup QCNを押す。 D. QCNファイル改変(先にこっち) diagモードに入る(B.と同じ) QCN IMEI Toolを起動 Load QCNから、保存したQCNを選択 1,2番目のフィールドが入力されてるはず。シングルSIMなら1番目だけ。 3番目のフィールドに書き換えたいIMEIを入力。(デュアルSIMなら4番目にも?) Replace and export QCN、で保存。 C. EFSパーティションを初期化 EFSパーティションをリセットしないと書き換えが成功しないため必要。 TWRPに入る。 EFSパーティションをリセット adb shell dd if=/dev/zero of=/dev/block/bootdevice/by-name/modemst1 dd if=/dev/zero of=/dev/block/bootdevice/by-name/modemst2 dd if=/dev/zero of=/dev/block/bootdevice/by-name/fsg dd if=/dev/zero of=/dev/block/bootdevice/by-name/fsc reboot ↑これがwrite error: No space left on device.で通らない。代案。 TWRPからfastbootを起動(bootloaderからだとエラー出た) fastboot erase modemst1 fastboot erase modemst2 fastboot erase fsg fastboot erase fsc 再起動すると、電波を掴まなくなる。IMEIが空だとそうなる。「*#06#」を入力すると、004~のIMEIが見えるはず。 E. 編集したQCNファイルを書き戻す diagモードに入る QFILのソフトウェアを起動してデバイスのCOMポートを選択 Tools→QCN Backup Restoreを選択、書き換え済みのQCNファイルを指定 Restore QCNを押す。 通常再起動 IMEI書き換え完了!
stockのIMEIを書き戻したいとき TWRPに入る。 windowsでEFSパーティションファイルと同じ位置でcmd起動 以下を実行 adb push modemst1 /tmp adb push modemst2 /tmp adb push fsg /tmp adb push fsc /tmp adb shell dd if=/tmp/modemst1 of=/dev/block/bootdevice/by-name/modemst1 dd if=/tmp/modemst2 of=/dev/block/bootdevice/by-name/modemst2 dd if=/tmp/fsg of=/dev/block/bootdevice/by-name/fsg dd if=/tmp/fsc of=/dev/block/bootdevice/by-name/fsc 通常再起動 書き戻し完了!
adb shellから/dev/zeroをddするのは失敗したのに、バックアップしたstockのmodemst1等を書き戻すときはddが成功したの、助かるけど解せん。まぁ通ればいいか。
なんとなくだけど、Nexus5Xのときに使ったQPSTのツールでもQCNファイルの読み書きはできるような気がする。2つのツールで読み出しファイルには相違があるので、ちょっと怪しいけど。
IMEI制限があるSIMを挿して、通話通信することができるのを確認。ちょろいぜ。そのうちカスロム焼く予定だけど、もしNG例などを観測したら追記します。観測したら。
参考