Y700 Gen2のTB320FC_CN_ZUI_16.0.336は特殊versionだった
今年(2024年)の8月ごろY700 Gen2がCN ROM,GLOBAL ROMともにZUI16へupdateされて本格的にRegion Rockが導入されました。(この時はまだnec romはzui15でRegion Rockなし)
そんなときにxdaへ以下の投稿がありました。
※画面は翻訳して出力しています。
朗報です。新しいファームウェアをインストールした場合でも、ブートローダーをロックすることは完全に可能です。たとえば、私はしばらくの間グローバル ROM (ロールバック インデックス "1717545600") を使用していましたが、その後、中国語 ROM (ロールバック インデックス "1714867200") に切り替えました。より低い番号にするとブートローダーをロックすることは不可能だと主張する人がいます。しかし、私はそうしました。したがって、ファームウェアは実際には ROM ごとにロールバック インデックスを追跡している (したがって、グローバル インデックスは中国語インデックスと競合しない) と想定しています。
実際この時、Rollback Indexはcn romよりglobal romの方が先行していてglobal romまで上げていた場合、今までの常識ではcn romへ戻しbootloadeをlockするとanti rollbackにかかるとされていました。
自分もそう思っていたのであまり気にしていませんでした。
実際この投稿を確認するためにやってみるとanti rollbackにならなく上記の投稿通りになったので正直おどろきました。
今までの常識がなにか間違っていたのでは?ということになりました。
rollback indexはシステム的にひとつでcn rom, global rom, nec romで流用していると思われていましたが上記投稿では各々別に存在すると推測され、結果から自分もそうとしか考えられませんでした。
ちなみにglobal romとnec romの間ではrollback indexが低いとanti rollbackになる事は同じだったのでcn romとその他で別れていると思いました。
そして現在、2024/12/6 cn romが正式リリースはまだですが中国で最終テストが行われてるみたいです。差分のotaが手に入ったのでupdateしてみました。
cn romとglobalのrollback indexが同じになる予定です。他のrom同志で同じになるのは去年の年末にcn romとnec romで同じになり年明け二週間で配信が中止になった以来です。(その時cn romとnec romでbootloader lock状態で移動でき遊んでたんですが)それ以降necは1日、cn rom, global romは5日にして決して同じ日にならない様に運用を変更しています。
後で分かったんですがgrobalとcn romが同じ5日なのはglobalは最初からregion lockが導入されていたのためなのかな?
さてここからが本題です。
私は最近Gen2端末本体側のrollback indexの確認方法を考えていたのですが偶然あることに気づきました。
TB320FC_CN_ZUI_16.0.336はrollback indexのチェックをしていないのでは?
そう仮定するとすべてのつじつまがあうんです。
その仮説を立証する為にテストをしました。
※cn romはv15.0.774からregion lockが導入されています。
err_a
err_b
通常起動した場合、bootloader lockの状態で最新のv16.0.617以外はanti rollbackで起動しません。
しかしv16.0.336が起動しています。
abl.imgをv16.0.336に変更した場合、v15.0.737以外が起動します。
v15.0.737はregion lock前のromなのでerrorが出るのは予想できました。
abl.imgをv16.0.617に変更した場合v16.0.617以外はすべてerror。
これが本来の結果です。
最後にabl.imgをすべて元に戻してbootloader unlockで起動。
bootloader unlockするとanti rollbackのcheckはskipするので全versionで起動するのは予定通りです。
この結果から
cn rom v16.0.336はanti rollbackのcheckは行っていないと推測できます。
これは、ユーザーをcn romへ戻すための暫定的な処置だったのではと私は思いました。
そして次のversionではもとに戻っています。
なのでrollback indexの考え方は元々考え方で正しいと思います。
region単位で管理されているのではなく、一つのものを流用している。