読者です 読者をやめる 読者になる 読者になる

どせいたんさき。

ナスダヨー

Nexus7 を Jerry Beans 4.2.2 にヴァージョンアップ

目的

Nexus7 に Jerry Beans 4.2.2 をインストールしたい.

問題

/system 以下のファイルをいじっているせいで patch がうまく当たらない.

解決方法

エラーメッセージを見る限りパッチを当てるのに失敗しているのは /system/etc/fallback_fonts.xml のみ.これは以前『Chrome for Android (Jelly Beans 4.2) で中華フォントから脱出する - どせいけいさんき。』にて変更したファイルである.おそらく checksum の値が変わってしまっているためパッチがうまく当たらないようだ.

解決方法としては正しい /system/etc/fallback_fonts.xml をダウンロードして,今のファイルと置き換えてしまうというやり方がある.しかし,正しいバージョンの fallback_fonts.xml を探すのが億劫なので今回はパッチ自体をいじることにした.

ダウンロードしたパッチは zip ファイルとして /cache に保存されていた.明らかに長い名前で ビルド番号 from ビルド番号 という書式が含まれていればおそらくそれがヴァージョンアップのためのパッチファイルである.まずは adb を使って手元に取り寄せる.

sudo ./adb pull /cache/6ece895ecb23.signed-nakasi-JDQ39-from-JOP40D.6ece895e.zip .

展開すると中身は以下のようになっている(ディレクトリは作られないので注意!).

6ece895ecb23.signed-nakasi-JDQ39-from-JOP40D.6ece895e.zip
  - bootloader.raw
  - META-INF/
  - patch/
  - recovery/
  - system/

META-INF/com/google/android/updater-script にどのようにしてパッチを当てるかの情報が, patch/ 以下に実際のパッチファイルが含まれている.そこで,updater-script を編集して fallback_fonts.xml が含まれる操作を全て削除する.そしてzip ファイルの中にある update-script を編集した updater-script で上書きする.

cp 6ece895ecb23.signed-nakasi-JDQ39-from-JOP40D.6ece895e.zip ./update.zip
zip -u ./update.zip META-INF/com/google/android/updater-script

あとは Nexus7 の中に再度保存して CWM で install zip from sdcard を選択すればよい.署名の認証でエラーが起こることもあるが自らの責任のもとで気にせずインストールする.なお,ヴァージョンアップが完了して再起動するときに,

"ROM may flash stock recovery on boot. Fix?"

と聞かれるので "Yes, disable recovery flash" を選択しないとインストールした ClockworkMod Recovery がデフォルトのリカバリで上書きされてしまった気がする. root 権限についても同様の質問があり, "Yes" を選択しないと SuperSU が無効化されてしまうはず.

というわけで fallback_fonts.xml を保持したままなんとか Jerry Beans 4.2.2 に更新することができました.最後に記念のスクリーンショットを 2 枚ほどぱしゃり.