Core's Blog

何か、いろいろ書く。

XperiaのROM焼きで、はまったので注意点を書くひとり言。

突然

そうだ、Xperia XZ(601SO)をOreoにしよう。

と思い立った訳です。

いくつかハマったので備忘録として残しておきます。

で、具体的な手順とかはあちこちで紹介されているので注意点を主に残していきたいと思います。

 

 

SBは、アプデする気がない。

SoftBankは基本的にAndroid端末のアプデをする気がないので、大抵の機種はメジャーアップデートが1回で終わります。他のキャリアは大抵2回くらい来ます。

今回筆者が弄った601SOも例外ではなく、F833X, SOV34, SO-01JにOreoが降った中Nougatに取り残されていました。

これを解決するべく、FlashToolでSOV34化と同時にOreo化してしまおうと考えた訳です。

 

論から言えば、現在は不可。

何にハマったかというと、単刀直入に書きましょう。SOV34に対してのOreoのOTA配信が終了してしまっています。つまり、SOV34をOreoにすることができないので、601SOのNFCを生かしつつOreoにアプデすることは叶わなくなったということです。

f:id:kamabocoblog:20210407210601p:plain

Android7の状態でSOV34を接続するとこうなる。

基本的にau版のAndroid端末のアップデートファイルの配布期間は修理受付終了までとなっています。SOV34の修理受付は2021/3/31で終了しているので、筆者は1週間だけ間に合わなかった。もっと早く確認しておけばよかった。

f:id:kamabocoblog:20210407214823p:plain

Xperia™ XZ(エクスペリア エックスゼット) SOV34 OSアップデート情報 | 製品アップデート情報 | au

f:id:kamabocoblog:20210407210642p:plain

修理受付対応状況 | スマートフォン・携帯電話をご利用の方 | au

ということで、他キャリアへの焼き変え→OTAでのバージョンアップを狙っている場合は修理受付期間に気を付けましょう。

じゃあFTF焼けば良いじゃんっ、となりますがこれには罠があります。

 

内版は、2度目はOTAのみ。

まず、XperiaはOTAと修復用のファームウェアの2種類を配布しています。それぞれどういうものかというと

OTA

端末単体でのアップデートに使用するファイル。(厳密にはファイルのダウンロードだけならXperia Companionでもできる。その後端末にファイルをコピーしてアップデートされる。)簡単に言えば現在動作しているファームウェアに上書きされる形のアップデートのため、ファイルサイズが比較的軽量です。

復用

OTAが端末単体(+Xperia Companion)でのアップデートに用いられるのに対して、こちらは完全にPCの使用を必須とするファイル。ファームウェア丸ごとなのでファイルサイズが大きいですが、システムに異常をきたしていたり、そもそも起動しなかったりというトラブルに対処しやすいというメリットがあります。

公式の技ではありませんが、OTAのように一つ一つアップデートを重ねる必要がないので、初期ビルド→最終ビルドまで飛ばして適用する、という技が使えます。(稀に機種によってはブリックする)

俗に言うFTFですが、これはFlashToolという非公式ツールで用いられる際の呼び名であり、正しい名称ではありません。

 

話を戻して、国内キャリアはどういう訳か2度目のメジャーアップデートはOTAのみでしか配信していません。

例えばXZの場合、SOV34はAndroid 6.0→7.0→8.0.0と2度メジャーアップデートがされているので8.0.0はOTAのみでしか配信されていません。つまり、一気にOreoに上げる、という荒業が使えないのです。

601SOはメジャーアップデートが1度しか行われていないので、すべてのバージョンでOTAと修復用ファイルが配布されています。

また、海外版はメジャーアップデート回数にかかわらずすべて修復用ファイルも提供されています。

 

状、702SOとかでは使える。

XZがつぶれた現状需要がないように見えるこの術ですが、601SOのようにSBだけメジャーアップデートが1度しかきていない機種には使えます。具体的には702SO(XZ2)がこれにあたります。しかしXZに比べてXZ2はXBootを採用していたり、A/Bパーティションを採用していたりとFlashToolがうまく動いてくれないことがあり難易度が高いです。NewFlasherの方が安定するかもしれません。

 

それ以外のこの近辺の機種はどうしたのかというと

602SO→型落ちチップだったため、全キャリア揃って1度しか降っていない

701SO→何故か初期OSが1つ新しかったので、全キャリア揃って(ry

801SO→701SOと同じ

という感じで、あまり他のキャリア版に焼き変えるメリットがありません。挙げるとすれば、テザリング使えるようにするとか。

 

故、SB→auなのか。

色々な記事を見るとSB版の端末にau版のROMを焼いている例がほとんどだと思います。これは偶然ではなく、明確な理由があります。

 

docomo版は、そもそも焼けない。

docomo版のROMを焼きたい云々以前にFlashToolで焼こうとした段階で蹴られます。

これを説明するのに必要な前提として、XperiaファームウェアにはSOMCが署名をしていて第三者が手を加えた場合には焼けないように施されています。野良のFTFでも安全とか言われているのはこの辺の事情です。ただし著作権が絡むので二次配布ファイルの扱いは自己責任で。

何故かはわかりませんが、docomo版のXperiaだけこの署名が異なるのです。docomo版のXperiaに他のブランドのFTFを焼くことはできませんし、その逆の他ブランドのXperiaにdcmのFTFを焼くことはできません。

ただし、Z3以前の機種とA4は署名が共通なので相互に焼き変えることができます。

 

外版ROMは、NFCが使えなくなる。

NFCに限らず、国内キャリアXperiaに海外版ROMを焼いた場合はガラパゴス機能は一切使えなくなります。NFCが使えなくなるのは、国内版はFelicaを採用していて根本的に海外版と設計が違うことに起因します。

 

以上2点より、ガラパゴス機能を生かしつつ、アップデートが可能なのはau版に限られます。

 

者は、どうしたか。

わざわざSOV34のNを焼いたのですが、Oのアプデ配信が終了してしまった以上SOV34化しておくメリットがない。結局NFCよりもテザリングと手間の少なさを優先して海外版を焼きました。後述しますが、SOV34に焼き変えた601SOを純正ROMに戻すのはやや面倒です。海外版であれば一度のROM焼きでOreoまで上がるので手軽です。

ということで、以後筆者が直面した問題や注意点等を書き連ねていきます。

 

XperiFirmが、起動しない。

FlashToolとセットでXperiFirmがついてくるのですが、FlashTool経由だとXperiFirmが起動しない問題があります。セキュリティソフトに引っかかっている気配はありませんが、考えられるとしたら実は引っかかってるとか。XperiFirmは、XDAから単体でソフトをDLできる上、FTFの作成をする上でも型番等を自力で設定できた方が都合が良いです。ので、XDAから単品でDLします。リンクはしょっちゅう変わりそうだったので貼りません。 "XperiFirm xda" とかで調べれば出てくると思います。

 

FTFを、作る。

筆者は

FlashTool 0.9.33.0

Windows 10 Home 64bit 20H2

Xperia XZ 601SO

という環境で作業しました。

 

現在焼かれているROM型番は601SO

用意したROM(焼きたいROM)はF8331

として説明します。

 

XperiFimからDLしたものをFlashToolから作れば良いのですが、最近のバージョンのFlashToolは端末の型番とFTFの型番が一致してないと蹴ってしまうので小細工をします。

XperiFirmでDLしたらFlashToolを起動。

f:id:kamabocoblog:20210407211140p:plain

Tools→Bundles→Createと進みます。

f:id:kamabocoblog:20210407211535p:plain

Select source folderはXperiFirmでDLしたファームウェアがあるフォルダ、つまりSINファイルとかがあるフォルダを指定します。

Deviceはボックスをダブルクリックすると画像右側のようなウィンドウが出てくるので、そこから今使っている機種を選びたブルクリック、さらに詳細な型番を指定する画面が表示されますので、DLしたROMの型番ではなく、焼こうとしている端末の型番を選びます。画像ではF8331のROMをベースにFTFを作成しようとしていますが、601SO(現在焼かれているROMの型番)を選択する、という具合です。

Brandingは、直接ROM焼きに関与しないので正直なんでも良いです。が、矛盾してるファームを作成するので、Customized AU(Australiaの略)とかキャリア名とかわかりやすいものにしておきます。

Versionも同じく雑で構いませんが、混乱防止のために正確に打っておくことをお勧めします。R1EとかのR以下は割とどうでも良いです。

 

情報を打ちこんだら、folder listの中の項目をマウスをクリックしながら引っ張って選択します。すべて選択したら -> を押して、Createをクリック、しばらく待ちます。

FSCを追加するかみたいなメッセージが出てきたら はい を選択します。

f:id:kamabocoblog:20210407212346p:plain

Bundles creation finished とログに表示されたらROMを焼いていきます。

 

余談

f:id:kamabocoblog:20210407223335p:plain f:id:kamabocoblog:20210407223346p:plain

FTF作成の際の情報はDevice以外雑でもいいと書きましたが、理由はFlashするときのファームウェア選択でしかこれらの情報は使われないからです。自分で見分けられれば何でも構いません。

 

TAは、焼かない方がいい。

フルワイプと称してやたらめったら全て焼く人がいますが、ブリックの原因になるのでやめておいた方が良いです。

Misc TAは左側(Wipe)はすべてチェックをつけない、右側(Exclude)はすべてチェック。これで十分Full Wipeになります。

これらTAファイルは、基本的に個人で扱う際には関係のないファイル群です。SIMLOCK.TAのように直接ブリックの原因になるものや、焼く意味がなく時間の無駄になるものしか存在していません。むしろ事故防止のためにFTFを作る前に除外しておくか、XperiFirmでDLした時点で.taファイルはすべて削除して良いレベル。

f:id:kamabocoblog:20210407213348p:plain

これでFullWipeになります。

補足をすると、ELABELは技適表示のため除外しても問題ありません。

SIMLOCK.TAは基本的にグレーアウトしてFlashできないようになっていますが、何かの手違いでProモードになっていると普通に焼けるので注意。

 

601SOにSOV34のROMを焼こうとした際にpartitionでこけました。partitionだけ除外して焼いてみましたが、特に問題なく使えました。

f:id:kamabocoblog:20210407213629p:plain

 

力供給に、気を付ける。

省電力なノートPCや、PCケースについてるUSBポートにFlashmodeで接続すると、電力供給不足でXperiaが勝手に復帰することがあります。停電時等にFlashが中断されないという観点から筆者としてはノートPCをお勧めしていますが、デスクトップPCで作業する場合はマザーに直付けされているUSBポートを使用することを推奨します。絶対ではありません。フロントポートで問題なく動作しているのであれば、それで大丈夫です。

 

さて、筆者の場合は601SO→F8331(Oreo)に一発で上がるためここで作業は終了です。ここから先は小技とか、SB版に戻すときの注意点を書いていきます。

 

NFCが、暴走した場合。

SB端末にauのROMを焼いた場合NFCが暴走してオンオフを繰り返すことがあります。タイミングよくNFCアイコンを押せばオフにできるのですがその状態でも暴走しており、地味にバッテリーを消費します。一時的なものとはいえ鬱陶しい、という場合はUSBデバッグをONにして、PCのコマンドプロンプト

adb shell pm uninstall -k --user 0 com.android.nfc

を実行します。ただしADB環境が整っていること、Andorid 6.0以上であることが条件です。

有効にしたい場合は

adb shell cmd package install-existing com.android.nfc

を実行します。

 

OTAは、PC経由推奨。

繰り返しになりますが国内キャリアは二度目以降はOTAでしか配信しないので、OTAをします。その際に本体でアプデをかけるとPlayストアがアプリ更新を初めて本体ファームのDLが遅くなったり、バッテリーを消費したりするので、初期設定が済んだらMTPでPCに接続してXperia Companionでアップデートをすることをお勧めします。当然、Xperia側のWi-Fiは切っておきます。

また、すべてのアップデートを適用したらBaseband焼くとかする場合は焼いてから、端末側で初期化をかけることをお勧めします。

 

SB版に、戻す場合。

・端末自体は601SO

・現在焼かれているOSはSOV34

として解説していきます。

 

まず、Devices→Auto Syncと進み、Offを選択します。

f:id:kamabocoblog:20210407221246p:plain

 

次に

C:\Users\ユーザー名\.flashTool\devices\F83XX

を開いて、39.fscというファイルをメモ帳で開きます。

そして

uploadImage:carrier

と、1行書き加えます。

書き込む位置はopenTAとcloseTAに挟まれた区間かつ何かしらuploadImageという行がある前後であればどこでも大丈夫です。筆者はuploadImage:elabelの下に追加しています。

f:id:kamabocoblog:20210407221800p:plain

 

XperiFirmで、601SOのROMをDLします。DLした後、やはり偽装が必要なので

f:id:kamabocoblog:20210407220828p:plain

このようにしてFTFをつくります。Deviceのフィールドには現在焼かれているROMの型番を設定してください。

f:id:kamabocoblog:20210408200614p:plain

DeviceがF8331ですが気にしないでください。

Createを押した後、FSCを追加するか問われるので はい を選択します。

その後はいつも通り、今作ったFTFをフルワイプでFlashするだけです。

f:id:kamabocoblog:20210408200957p:plain

ログを確認して、Processing carrier.sinがあるか確認してみてください。

 

こんな面倒なことをする理由は、SoftBank版のXperiaにはcarrierと呼ばれる独自の領域が存在します。FlashTool、Xperia Companion共にこの領域はFlashしてくれないため、ここで説明したように手動で、FlashToolがcarrier.sinを焼くように仕向ける必要があります。

601SOでこの領域を焼かなかった場合、ChameleonWorkflowというアプリが暴走してプチ文鎮状態となります。

そして今回編集したFSCの実態は、ブリック防止のためにXperia Companionを参考に、各ファイルのFlash順序を記しているものになります。先述の通りXperia Companionはこのcarrierを無視するため、それを参考にしているFlashToolもスキップしてしまいます。