以下、完全に自己責任。
間違い以外の指摘・質問受け付けない。
おk?おk!(ズドン!!)
ちなみにすでに公式OTA当ててしまった人は以下の方法では無理なので、枕を涙で濡らしてください(ぉ)。
そのうち誰かがhackしてくれるかもしれません。
以下、大きい画像を大量に貼ってるので劇重注意。一応減色してるけど。
0.最初に3.xでrootを取る
ここでは、すでに3.xでrootを取得済みで、「S.onyTablet.S [ALLinONE]」(以下AiO)最新版DL&展開済みという前提でいく。
3.xのroot取得方法はQua1ia: Sony Tablet Pのroot権限を取得する方法。等を参考に。
あと、技術系の英語は読めるのも前提で。
また、必須ではないがESファイルエクスプローラと端末アプリは入れておいたほうがいい(以下のやり方だと必要になる)。
署名にはJava(JRE)が要るが、Androidのroot取ろうってぐらいなんだから当然入ってるだろう。
以下のAiO画面はすべてver 3.1のものなので、今後のバージョンアップでメニュー等が変わる可能性は大いにある。
メニュー項目の数字だけを見ずにしっかりと読んで意味を把握してから行おう。
少なくともAiO配布元の英語説明が意味わからんというのであればやめておいたほうがいい。単に3.xでroot取るよりは難しい。
1.AiOでrescue-backdoor入れる
これがないとカスタムROMの作成ができない。
最後に再起動して終了。
2.公式ICSダウンロード
アップデートをDLするところまで行う。当ててしまったらアウト。もはやrootはあきらめるしかない。
3.カスタムROM作成準備
AiOはソニタブS用なので、SDカードのパスが/mnt/sdcard2になってる。
しかしソニタブPは/mnt/sdcard。
バッチファイルを書き換えてもいいが、漏れがあると怖いのでシンボリックリンクを張る。
通常/mnt以下は読み取り専用なので、ESファイルエクスプローラで書き込みマウントしてからadb shell→su→cd /mnt→ln -s sdcard
sdcard2。
さらに、OTAのファイルをSDカードに入れておかないといけないようだ。
先に4まで進めてしまって後から気付いた(ぉ)。
OTAのファイルをコピーしてくれるんじゃないのか…。
root shellで「cp /cache/ota/signed-nbx02_009-ota-120510023.zip
/mnt/sdcard/update.zip」
4.AiOでカスタムROM作成
最初のメニューで3→1。
まずは画像で流れをまとめる。
↑DEVICE POWERED OFFのところで電源が落ちるので、指示通りリカバリモードに入る。
(この画像はすでに_hacked_recovery.zipを展開した後、update.zip展開直前)
↑ボリューム下で2番目を選択
↑1回目は_hack_recovery.zipを選ぶ(この写真はミスってupdate.zip準備前に撮影したものなので、update.zipがない)
↑_hack_recovery.zipを展開。これに限らず、リカバリモードで作業するときはバッテリを装着した上でACアダプタを接続しておこう。
↑いきなりエラーになるので焦るが、これで成功。AiOから介入可能になっている。
↑再度同じ手順で今度はupdate.zipを選択、展開する。
もし、_hack_recovery.zipっを展開した後に電源断や再起動をしてしまったらもう一度3.の最初からやり直す。
↑AiOが介入してインストール失敗(展開は完了)。
展開した復号済みZIPがmicroSDにコピーされ、再起動。
その後手動でZIPをPCのAiOに持ってきて、rootを当てるところまで進めた。
↑一つ上の画像の状態からyを選択して進め、rooted ICS ROMが出来上がって署名するところまで進んだ。
後は署名終わるの待つだけ。
基本的に表示される英語を読んで手順通りやっていけばいいんだが、躓きやすいところだけメモ。
DEVICE POWERED OFFと表示されるけど電源が落ちなかった。
何故かerror: device not foundとか出てたので、adb接続が切れたのかもしれない。
/sdcard/_hack_recovery.zipが作成されていれば(「DONE. Its saved in '/sdcard/_hack_recovery.zip' for future use.」が出てる)問題ないはず。
ここで電源を落としてリカバリモードに入るために一旦USBケーブルを抜いた。
→ケーブルの接続不良のようだ。新しいケーブルでやったら電源落ちるところまで自動だった。- リカバリモードの時、電源とボリューム上を押すが、電源から手を離さないとそのまま落ちる。
電源が入って1秒ぐらい経過してから、ボリューム上を押したまま電源ボタンを離せばうまくいった。 - 間違えて最初にupdate.zipを当てないように!!
どうなるかわからないが、たぶん普通に公式ICSが入ってしまい取り返しがつかなくなる。 - hack_recovery.zipを当てる場面でインストールが失敗する。
一瞬ドキッとするが、AiOの画面をよく見ると「it will fail - thats ok!」と書いてある。
つまりこれは必ず失敗するというわけだ。次の前準備らしい。
ここでUSBケーブルを再度接続したらShell enabled!と出て次に進んだ。 - hack_recovery.zip失敗後に再度Updateを選べと書いてあるが、これは2回選ばないといけない。
1回目で下のほうにあったエラー表示が消えて再び3択が出る。
順調に進んでいたのだが、ケーブルの接触不良(ソニタブPのジャックと相性が悪いらしい)でerror: device not foundが止まらなくなる。
この後の手順はどうやら公式OTAを解凍→当てる寸前でブロックらしいので、接続が切れてると普通に公式ICSになってしまう。
そこで一旦中断して通常起動し、再度4の手順を行った。
相性のいいケーブルを使っていればそんなことしなくていいのでここはあくまで私専用メモってことで。
ちなみに再起動すると/mnt/sdcard2のシンボリックリンクが消失するので、再度作り直す(なので実質3からやり直し)。
もし、「error: device not found」が表示されたら即座に中断してやり直すべき。
でも、update解凍中に起こったらもう不運としか言いようがないが…。
update.zipを当てると、うまく行けば「Installation aborted.」と表示されて一見失敗に見える。
しかしこれこそが成功。むしろ普通に通ったらアウト。
AiOの画面にもそういった意味の表示がされている。
終わったら再起動する。ここからまた躓きそうなポイントを書く。
- 本来なら自動コピーされるはずの解凍済みファイルが、SDのパスがソニタブSと違うので失敗する。
なので、マニュアルでAiOのPC側フォルダにコピーする。詳細はAiOの画面に出てる。
ここでDDMSやadb shellを使おうとすると、AiOがおかしくなる可能性が高いため、タブレット側からESファイルエクスプローラ等でPCに飛ばす。 - またEXTERNAL SD not availableになるが、今度はAiO実行中なのでadb shellできないため、タブレット側の端末アプリでシンボリックリンクを張り直す。
一旦ESファイルエクスプローラで/をRWマウントさせてから、ホームボタンで戻って端末アプリに切り替えてsu、後は3.に書いてある手順で。
カスタムROM作成までしばらくかかるので放置。
終わったら署名するか訊いてくるのでy。これはPC側にJavaが必要。
以上の手順のうち、decrypted_update.zipにrootパッチを当てる作業と、署名する作業は別メニューで用意されている。
そのため、実はEXTERNAL SD not
availableになった時点で一旦AiOを終了し、DDMSでコピーしてくるという手もある(私は面倒だったので上記の方法でそのまま進めた)。
同じくJavaがなくて署名できなくても、後から署名だけ可能。
5.カスタムROMをコピー
AiOの__signedフォルダに作成されているcustom_update_signed.zipをタブレットのSDカードにコピー。
この時、ついでにupdate.zipとdecrypted_update.zipを別のフォルダに退避しておくといいだろう。
あるいは削除してもいいかもしれないが、それは無事rooted ICSになってからでも遅くない。
_hack_recovery.zipはこの後使うのでまだ残しておく。
6.カスタムROM適用
AiO起動して、最初のメニューで3→4。
4.と同じようにリカバリモード入る→_hack_recovery.zip→カスタムROMの順で当てていく。
AiO自体は_hack_recovery.zip当てた時点で終了してるっぽい?
終わったら普通にICS当てた時と同じように起動してくるので待つ。
7.アップデート通知を無効にする(オプション)
ここまででrooted ICSは成功しているはずだが、何故か公式ICSがシステムアップデートとして通知される。
うっかりこれを当ててしまうと折角の苦労が水の泡、そして二度とrootが取れなくなる(現時点では)。
そこで、AiOのTweaks and Mods→Toggle OTA system updates and notifications
[enable/disable]でシステムアップデートと通知を無効化しておく。
それにしても、公式でイメージまで用意されてて簡単にrootやカスタムROM焼けるXOOMをノーマルで使い、わざわざ危険を冒してまでソニタブPでrootを取るってのは我ながら変わってるなぁと思う。
まあ、XOOMは初Androidということもあり、まずは非rootで慣れていこうと思ってたし、有料ゲーム入れたので下手にroot取って起動しなくなっても困ると思ったからな。