Nexus7(2012)+TWRPv2.6.0.0でJWR66V→JWR66Yにアップデートできないとき

数ヶ月間謎のままだけどようやく解決方法をみつけた。

TWRP v2.6.0.0 で Nexus7 の Android 4.3 JWR66V→JWR66Y のアップデートが失敗する件について
http://d.hatena.ne.jp/xr0038/touch/20130829/1377771183

「Nexus7 update 4.3 twrp」とかでぐぐってもRoot化の方法!みたいなのしか出てこなくて困った。
「twrp update」という線でぐぐったらビンゴ上記記事を見つけました。
手順は記載済みですが少し補足しながらまとめます。

発生事象
TWRP導入済みのNexus7(2012)でビルド番号JWR66V(Android4.3)からJWR66Y(同)のアップデートをするため
通知バーから再起動し、TWRPからInstall→/cache/xxxx.zipを選んでも途中でエラーになる。

原因
install時に使用するシェル(/system/etc/install-recovery.sh)のファイル属性(immutable)に問題がある。

解決策
問題のシェルのファイル属性を変更する。

手順
1.Nexus7を再起動し、TWRPを起動します。
*1
*2

2.TWRPホームからMountを選び、Systemをマウントする(☒にする)
*3

3.TWRPホームからAdvancedを選び、Terminal Commandを選ぶ

4.ターミナルの開始ディレクトリを選択しろと言われるので/system/etcを選択し、Selectを押す

5.下記のコマンドを実行する

chattr -i install-recovery.sh

*4

6.TWRPホームからInstallを選び、/cache配下にある長いファイル名のZip(アップデートファイル)を選択する
*5

7.Swipe to Confirm Flashをスライドして書き込みを始めるとほどなくしてインストールが終わる

8.Successfulと表示されていることを確認し、Reboot Systemで再起動する
*6

9.ビルド番号が上がっていることを確認


うーむ、助かった。

*1:通知バーから更新のインストールを選べば自動的にTWRPが起動

*2:もしくは電源投入時にボリュームダウンボタンを押しながら電源ボタン長押しで電源投入→ブートローダーでRecovery modeで起動

*3:選んだらTWRPホームへバックキーで戻る

*4:コマンドを打ったらTWRPホームへバックキーx2で戻る

*5:XXXXXXXXXX.signed-nakasi-JWR66Y-from-JWR66V.XXX.zip みたいなの

*6:再rootする場合はDo Not Fixではなくて下部のSwipeをスライド