g03 で kingroot 導入後OTAアプデができなくなったので無理やりアプデした話(続)

g03 で kingroot 導入後OTAアプデができなくなったので無理やりアプデした話

の続きです。

2, OTAアップデートファイル(update.zip)を取得し中身を改変、TWRPからインストール

先述した通り、OTAアップデートは system ファイルが改変されていると適用することができません。
このupdate.zipファイルは何をしているかというと、アプデートファイル適用前に apply_batch_check という関数で system ファイル並びにアップデート対象となるファイルに改変がないかチェックしています。
そこでどうするか。アップデートファイル(update.zip)の中身自体を書き換えてインストール可能にしてしまえばよいというわけです。

それでは早速 update.zip ファイルの取得を行いましょう。
まず kingroot から superSU に乗り換えたとはいえ、system ファイル自体は改変されたままです。そのため通常のOTAアップデート手順ではアップデートできません。ここまでは先述したとおりです。
が通常の手順でもアップデートファイルの取得自体は正常に行うことができます(インストールは行いませんが)
なのでまず途中まで通常通りのアップデート手順を踏みます。

アプリ一覧から『システムアップデート』を選択し、アップデートを行って下さい。
***アップデートファイルをDL中ですという表示がでるので完了するまで待つ***
→ダウンロード完了後にここでダウンロードしたファイル(update.zip)は /cache/fota/ 以下のディレクトリに保存されているので、rootエクスプローラやESファイルエクスプローラのroot権限、adbコマンドなどでSDカードなどに退避させてください(アップデート失敗時に再ダウンロードすることになってしまうため)。

退避ができましたら早速 update.zip の中身をいじっていきます。
以下が update.zip のファイル構成です。

update.zip —- META-INF
—- patch
—- system
—- その他 bootの書き換えファイル等

中身みるとわかりますが、OTAアプデの実体は、既存ファイルからの差分アップデートという形をとっています。
こうすることでアップデートファイル自体の容量を減らしていますが、それにともない既存ファイルに修正がないかチェックも必要になるというわけです。
で、肝心のsystemファイルに変更が無いかチェックするファイルが \META-INF\com\google\android\updater-script
です。
若干説明を端折りますがこのファイルのチェック記述部分の行を全て削除してしまえばよいです。
具体的には apply_batch_check のある行、とファイルチェックを行っていそうな行を全て削除してしまいましょう。

これで保存すれば既存ファイルのチェックがなくなるので、system ファイルに改変があっても無理やりアップデート可能になります。

無理やりアップデートしてもよいかという話しなのですが、Kingrootを使ってアップデートできなくなってしまった方であれば基本問題ないはずです。というのも Kingroot は Android OS が致命的なエラーを引き起こしかねないファイルに手を加えている形跡があまり無いからです。
見てみると /bin/debaggerd など改変しても特に問題ない(?)ファイルへの変更が多いですね。

そしてドドメに改変した update.zip を TWRP からインストール。
完了後、無事ビルド番号が新しいものに変更されていればイントール成功です。お疲れ様でした。

※ XDAフォーラムなどいろいろ見ましたが、update.zip のチェック部分を改変して無理やりアップデートしている例がほとんどなかったので手こずりました。
Edify script で書かれているためでしょうか。。まぁとりあえずアプデしてメモリリーク問題が治っていたのでよかったです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です