攻撃は最大の防御なり

50代おやじの適当なブログです。

S-OFFされたSensationにオフィシャルOTAを当てたいんだよー

2011-08-05 10:51:18 | HTC Sensation
俺のSensationはRevolutionaryが発表された後に買った物ですが、
家に届いて一時間も経たない内にS-OFFされてrootedになっていました。

で、翌日位に「アップデートが可能になりました」の通知が・・・
この通知ってpush配信なんですかねぇ?
Androidのバージョンが上がるアップデートじゃないので入れなくて良いと言えばそれまでですが、当てたくなるのが人の世。
でもS-OFFされていると普通の方法じゃ入れられないんですよねー。面倒くさいw

OTAパッケージにはsystem配下をフルワイプして入れる物と、差分パッチを当てる物があります。
今回、俺がいれたのは差分パッチの方ね。
update-scriptを読むと大体こんなシーケンスになっていました。

・入っているROMはアップデート対象のバージョンだよね?
・ブートローダーは変更していないよな?でもsuper CIDの機体だったら許す
・デバイス名はpyramidだよね?
・パッチ対象のファイルは変更していないよね?
・じゃあパッチあてる
・パーミッションも直しちゃおうね
・bootloader,boot,recovery,radio辺りも上書いちゃうよー

チェックの所で引っ掛かるとassertします。
scriptを変更しちゃえば通るけど、出来ればそのまま通したいよね。
俺の場合はbootloaderを変更しているのと、kernel変更に合わせてwifiモジュールを変更している点が引っ掛かりますね。

取り敢えずsuper CIDが設定してファイルを元に戻せば良いことが分かりました。
CIDというのはcountry IDの事で、通常はデバイスのリージョンに合わせた物が設定されています。
これのせいで例えばUK版にはAsia版のROMが入れられないようになっているんですね。
super CIDってのはテスト用にこのリージョン制限が掛からないようにするCIDの事です。

clockworkmod recoveryに入ってadbからCIDを確認してみます。

adb shell mount /system
adb shell /system/bin/getprop ro.cid

結果は空でした。ここでcidを上書いて騙します。

adb shell /system/bin setprop ro.cid 11111111

これでOTAをインストしてやればOK。
もし入れ換えたファイルが引っ掛かる様なら、途中でエラーと共にファイル名が表示されるので入れ換えて再実行しましょう。
これで見事インストが出来ましたが一つ落とし穴があります。
最後の方でrecoveryやらを書き換えるwrite_firmware_imageはclockworkmod recoveryではダミーになっていて実際実行されません。
入れたい人は自分で入れないと駄目です。俺の場合はradioだけ書き換えることにしました。
fastbootから入れるのでadbのカレントにOTAの中のfirmware.zipからradio.imgを抽出しておきます。

adb reboot bootloader
fastboot flash radio radio.img

あっ?fastbootって標準じゃ入っていないんだっけ?ググればすぐ見つかると思います。
このfastbootからのリカバリは覚えておいて損はないです。
例えばOSが起動しなくなってRecoveryにも入れない。bootloaderしか起動出来なくなった時は

fastboot flash radio radio.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot flash recovery recovery.img

これで復旧出来るでしょう。
各imgの元ネタはclockworkmod recoveryでバックアップしておいたものでも良いですし
最悪はOTAやRUUのrom.zipから抽出したものでも大丈夫です。
実際fastbootからのリカバリの方が使いやすいんだよねw
母艦は容量気にせずにバックアップ保存できるしね。

では、良いAndroidライフを。

最新の画像もっと見る

7 コメント

コメント日が  古い順  |   新しい順
ご挨拶(ペコリ) (nisay)
2011-08-07 18:45:56
こんにちわ初めましてnisayと申します。
私も極最近衝動的にUK版を購入したスマホ超初心者です。
今後、こちらの記事を参考にさせていただきAndroidライフを楽しみたいと思っております。
HTC Sensation関連の記事をいくつか書かれていますが、まったく理解できないのが実情です・・・。(情けないです)

そんなことで、今後解らないことを質問させていただいてもよろしいでしょうか・・・?
返信する
Unknown (アレ)
2011-08-07 22:33:05
私は全ての人に楽しくAndroidを使って頂ける事を望んでいます。

誰でも最初は初心者です。
質問等は遠慮せずにどうぞ。
返信する
Unknown (936)
2011-12-26 11:11:30
こんにちわ

初歩的な質問になるのですが radio.img は何が含まれているイメージファイルなのでしょうか?

教えて頂いた boot.img , recovery.img の展開ツールでは展開できませんでした…。

発端は アップデートがありましてそこに下記3イメージがありました。
・boot.img
・radio.img
・recovery.img
http://homar.blog.fc2.com/blog-entry-68.html

ちなみに前回のアップデートは recovery.img のみでした。
http://homar.blog.fc2.com/blog-entry-2.html

私はS-OFFしていて問題なくアップデートを適応、root 環境再構築できましたが、
S-ON (非 root 端末)の場合アップデート適応後Revolutionary にて S-OFF作業を弾かれるそうです。

そこで radio.img が邪魔をしていると考えました。
よって今回のアップデートを適応した S-ON (非 root 端末)が S-OFF → root 化するにあたり、
以前の RUU から radio.img を抜き取り適応すれば S-OFFできるんじゃないかな?との結論に達しました。

radio.img が怪しいと睨んだのは感なのでなんとも言えませんが…(笑)
返信する
Unknown (936)
2011-12-26 11:16:43
書き忘れました…
前回・今回のアップデート共に S-OFF & root 化端末において Recovery が標準に戻され su の権限が無くなります。

回復は リカバリーを ClockworkMod Recovery に変更後
adb にて su の権限を戻すことでアップデート適応しつつ
S-OFF & root 化端末にすることができます。
返信する
Unknown (936)
2011-12-27 09:10:22
すいません。
過去記事拝見しました。
radio.imgは通信関連だったのですね。
全然検討違いでした。S-OFFも出来てる人と出来ていない人がいて信憑性は低いです。

boot.img を見比べてみましたが例の個人情報送信アプリ CIQ 関連の行が削除されていました。

■init.supersonic.rc

on init
#for CIQ ipc
mkdir /app-cache/ciq 0711 root system
mkdir /app-cache/ciq/socket 0777 root system


# HTC IPC server
service htcipcd /system/bin/htcipcd
user root
group root system

# CIQ backend daemon
service iqd /system/bin/iqd
user root
group root system

# CIQ frontend daemon
service iqfd /system/bin/iqfd
user root
group root system

お騒がせしました<m(__)m>
返信する
Unknown (アレ)
2011-12-27 17:07:25
このコメントを見落としていました。お返事が遅くなりすみません。
radio.imgはFAT16フォーマットで通信関連チップのファームが入っています。
(一応中身も覗けますが面白いものじゃないです。)

OTAを当てた後にS-OFF出来ない原因としては、firmware.zipの中にhbootが同梱されていて
Revolutionary対象外のbootloaderに書き換わった高いですが
今回のOTAにはhbootが入っていなかった様なので違いますね。
EVO 4G+用のbootloaderが使えるのであれば公式S-OFFしてしまえば後々面倒な事は無いと思います。

あと、OTAを当てるとfirmware.zipに入っている中身で書き換えられるのは仕様です。
純正recoveryを使用せず、ClockworkMod Recoveryを使ってOTAを当てると回避できますが
リソース同士の整合性が取れず、不安定になる事があるので面倒でも手動で戻しをした方が懸命ですね。
特にradio.imgとlibhtc_ril.so、libril.soの相性が悪いと通信不能になる場合があります。
返信する
Unknown (936)
2011-12-27 18:20:02
いえいえ^^
こちらこそちょっと調べれば分かることを
お聞きして申し訳ないです^^

S-OFFに関してもソース元が2chであるので
慎重に精査すべきでした…。
hbootがS-OFF関連のキーになるわけですね!!
覚えておきます~

今まで2回のアップデートをClockworkMod Recoveryから行っていましたが不安定になる場合もあるのですね。
なるほどなるほど。
今回のアップデートに標準recovery.imgが含まれているので純正に戻す手順も頭に入れておきます。

今回も色々と教えて頂きありがとうございました^^
返信する

コメントを投稿