そらりすめも

XperiaのショップROMについて(その1)

2023-05-08

XDAで話題(?)になっていたXperiaのショップROMについて検証する

XDA のスレッドで書かれていることについて検証してみる。

  1. SO-02Kなのに表示上はG8441になっている
  2. Bootloaderはロックされている。
  3. 国内機なのでそもそもBootloaderアンロックが許可されていない。

手元で似たような状態を再現できそうな端末としてXperia 5(SO-01M)があるのでそれで検証を行う。

まずはAndroid(Xperia)のロック状態の起動についておさらい

以下の3つ(+α)の検証が通れば大体起動してきます。

bootイメージとsystemパーティションは触ると確実に起動しなくなるのでそれ以外の領域が改変されていると推測されます。

XDAスレッドではパーティション領域が改変されているのでは?といわれていたのでそれが本当に行えるかどうか確認していきます。

まず、AVB(vbmetaパーティション)で検証対象になっているパーティションを調べていきます。

postmarketos Wiki にわかりやすい方法が書いてあるので参考にしましょう

avbtool info_image --image /path/to/vbmeta.img
Minimum libavb version:   1.0
Header Block:             256 bytes
Authentication Block:     576 bytes
Auxiliary Block:          3968 bytes
Public key (sha1):        50ee685e1edbfe1aebbe0bbe119524ab0e8b528f
Algorithm:                SHA256_RSA4096
Rollback Index:           0
Flags:                    0
Rollback Index Location:  0
Release String:           'avbtool 1.1.0'
Descriptors:
    Chain Partition descriptor:
      Partition Name:          system
      Rollback Index Location: 1
      Public key (sha1):       c53a0b8c0f11335347d3bc10ad54c576eee98ef3
    Prop: com.android.build.boot.fingerprint -> 'docomo/bahamut_docomo/bahamut_docomo:11/RKQ1.200928.002/1:user/dev-keys'
    Prop: com.android.build.boot.os_version -> '11'
    Prop: com.android.build.boot.security_patch -> '2021-10-01'
    Prop: com.android.build.boot.security_patch -> '2021-10-01'
    Prop: com.android.build.vendor.fingerprint -> 'docomo/bahamut_docomo/bahamut_docomo:11/RKQ1.200928.002/1:user/dev-keys'
    Prop: com.android.build.vendor.os_version -> '11'
    Prop: com.android.build.vendor.security_patch -> '2021-10-01'
    Prop: com.android.build.vendor.security_patch -> '2021-10-01'
    Prop: com.android.build.dtbo.fingerprint -> 'docomo/bahamut_docomo/bahamut_docomo:11/RKQ1.200928.002/1:user/dev-keys'
    Hash descriptor:
      Image Size:            54771712 bytes
      Hash Algorithm:        sha256
      Partition Name:        boot
      Salt:                  aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7
      Digest:                25f39ff9f76866974ee9e34d0a7b1b8c30111fbebd40bcd870dfbae3c12f8b09
      Flags:                 0
    Hash descriptor:
      Image Size:            279295 bytes
      Hash Algorithm:        sha256
      Partition Name:        dtbo
      Salt:                  aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7
      Digest:                c388e78ced1e518d79ae4cb816e9c99a77458c8ed2f03a830e36b7f8ca1ac2ce
      Flags:                 0
    Hash descriptor:
      Image Size:            4096 bytes
      Hash Algorithm:        sha256
      Partition Name:        rdimage
      Salt:                  aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7
      Digest:                6eb8c4e1bce842d137f18b27beb857d3b43899d178090537ad7a0fbe3bf4126a
      Flags:                 0
    Hashtree descriptor:
      Version of dm-verity:  1
      Image Size:            1056714752 bytes
      Tree Offset:           1056714752
      Tree Size:             8327168 bytes
      Data Block Size:       4096 bytes
      Hash Block Size:       4096 bytes
      FEC num roots:         2
      FEC offset:            1065041920
      FEC size:              8421376 bytes
      Hash Algorithm:        sha1
      Partition Name:        vendor
      Salt:                  aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7
      Root Digest:           d661d18e83fd8a45eac500816c42818bdcaa70ef
      Flags:                 0

system、boot、dtbo、rdimage、vendorのみが記載されていて確かにoemパーティションは記載されていません。

ではここから実際に書き換えて起動できるか試していきましょう。

手元のSO-01MはqUnlock toolを用いてアンロックされているため、手っ取り早い方法で改変していきます。

magiskでroot環境を用意し、改変した後にoem領域を除いてStockに戻してみます。

なお実際のXDAの機種では一時ルートを使っているのではないかなと推測しています。

まずJ8270のROMにあるOEMイメージを端末に焼いてみます。

J8270

とりあえずJ8270由来の

ro.product.locale=en-US

を維持したまま、Bootloaderをロックすることができました。

次の記事ではOEM領域をもっと本本格的に書き換えていこうと思います。


comments powered by Disqus