https://naba-san.hatenablog.com/


P-01D root の取得とか仕込み関係 (2012/05/21版アップデート対応)

fastboot で shell root 取ったり、そっから ROM イメージのバックアップ取ったりする方法。
まだ情報が揃いきってないので、随時内容は追加します。ここで掲載している情報には比較的古い情報も混ざっています。検証が中途半端だったり怪しい部分もありますので、参照される方は眉に唾をつけて読んで下さい。素人さんにはtoolkitの利用をお勧めします。
まとめwikiにも情報投下してます。よろしければそちらもどうぞ。

【警告】

お手持ちの P-01D が素敵な文鎮になる可能性を秘めた作業を紹介しています。

文鎮になったとしても、絶対にdocomoショップに駆け込んだりしない人だけ先に進んで下さい。

端末の root 取得には文鎮化が付き物です。

【キーワード】
Panasonic, P-01D, P01D, root, fastboot, Ver 0.62, Ver 0.65,
2011年12月6日, 2011年12月22日, 2012年3月26日, 2012年5月21日
07.0087.0062, 07.0093.0065, 07.0096.0065, 07.0102.0065, 07.0105.0065

一般ピーポーは廻れ右してお帰り下さい。

fastboot による shell root の取得

執筆時点の最新版ビルド 07.0105.0065 (ベースバンドバージョン Ver 0.65) にて動作を確認しています。fastboot が使える限り、zergRush が使えないビルドでも対応できると思います。

必要なもの

1. P-01D 向けの boot.img (書き換え前でも書き換え後でも可、書き換え手順は日記の最後にあります)
2. Android SDK 一式

大まかな手順

1. デバッグモードから fastboot モードを起動
2. 編集済み boot.img*1 を P-01D に読み込ませて起動する
これだけですが、boot.img の入手が rooted でないと難しいので、ちょっと面倒。

http://www5216u.sakura.ne.jp/p01d/20120624/boot.rebuild_no-rosecure.img

/dev/mtd からの boot.img の取得用にどうぞ。(えっ?
※ ビルド番号により boot.img は異なるので、異なるバージョンの boot.img の上書きは推奨しない。上記は実機からの boot.img の取得等の目的に限って使用すること。

作業手順
  • fastboot モードへの移行

デバッグモードで接続した PC から、コマンドプロンプトで以下を実行。docomoロゴで停止するのは正常。

D:\#P-01D\Custom> adb reboot bootloader
D:\#P-01D\Custom> fastboot devices
? fastboot

  • boot.img の転送・起動

docomo ロゴの表示が一瞬消えたりを繰り返しながら起動すればおk。

D:\#P-01D\Custom> fastboot boot boot.img
downloading 'boot.img'...
OKAY [ 0.999s]
booting...
OKAY [ 0.133s]
finished. total time: 1.134s

  • 確認

adb で shell を開き、プロンプトの表示を確認する。
【成功例】

D:\#P-01D\Custom>adb shell
#

【失敗例】

D:\#P-01D\Custom>adb shell
$

stock ROM の生イメージ取得

後からの初期化とかに使うので、su とかを突っ込む前に取得を強く推奨。shell root から下記を実行。

# mkdir /mnt/sdcard/p01d/
# mkdir /mnt/sdcard/p01d/raw_dump/
# cd /dev/mtd
# dd if=mtd0 of=/mnt/sdcard/p01d/raw_dump/mtd0.bin bs=4096
# dd if=mtd1 of=/mnt/sdcard/p01d/raw_dump/mtd1.bin bs=4096
# dd if=mtd2 of=/mnt/sdcard/p01d/raw_dump/mtd2.bin bs=4096
# dd if=mtd3 of=/mnt/sdcard/p01d/raw_dump/mtd3.bin bs=4096
# dd if=mtd4 of=/mnt/sdcard/p01d/raw_dump/mtd4.bin bs=4096
# dd if=mtd5 of=/mnt/sdcard/p01d/raw_dump/mtd5.bin bs=4096
# dd if=mtd6 of=/mnt/sdcard/p01d/raw_dump/mtd6.bin bs=4096
# dd if=mtd7 of=/mnt/sdcard/p01d/raw_dump/mtd7.bin bs=4096
# dd if=mtd8 of=/mnt/sdcard/p01d/raw_dump/mtd8.bin bs=4096
# dd if=mtd9 of=/mnt/sdcard/p01d/raw_dump/mtd9.bin bs=4096
# dd if=mtd10 of=/mnt/sdcard/p01d/raw_dump/mtd10.bin bs=4096
# dd if=mtd11 of=/mnt/sdcard/p01d/raw_dump/mtd11.bin bs=4096
# dd if=mtd12 of=/mnt/sdcard/p01d/raw_dump/mtd12.bin bs=4096
# dd if=mtd13 of=/mnt/sdcard/p01d/raw_dump/mtd13.bin bs=4096
# dd if=mtd14 of=/mnt/sdcard/p01d/raw_dump/mtd14.bin bs=4096
# dd if=mtd15 of=/mnt/sdcard/p01d/raw_dump/mtd15.bin bs=4096
# dd if=mtd16 of=/mnt/sdcard/p01d/raw_dump/mtd16.bin bs=4096
# dd if=mtd17 of=/mnt/sdcard/p01d/raw_dump/mtd17.bin bs=4096
# dd if=mtd18 of=/mnt/sdcard/p01d/raw_dump/mtd18.bin bs=4096
# dd if=mtd19 of=/mnt/sdcard/p01d/raw_dump/mtd19.bin bs=4096
# dd if=mtd20 of=/mnt/sdcard/p01d/raw_dump/mtd20.bin bs=4096
# dd if=mtd21 of=/mnt/sdcard/p01d/raw_dump/mtd21.bin bs=4096
# dd if=mtd22 of=/mnt/sdcard/p01d/raw_dump/mtd22.bin bs=4096
# cat /proc/mtd >/mnt/sdcard/p01d/raw_dump/proc_mtd.log

/system と /data のバックアップ

消しちゃいけないファイル消しちゃった時とか、特定のファイル復元する時に使う。tgz で固めるだけだが、P-01D には busybox とかが入ってないくさいので、どっかから落としてくること。

下記は、busybox を /data/local/tmp/ に配置したものと仮定した場合の手順。

# chmod 755 /data/local/tmp/busybox
# mkdir /mnt/sdcard/p01d/
# /data/local/tmp/busybox tar cvzf /mnt/sdcard/p01d/system.tgz /system
# /data/local/tmp/busybox tar cvzf /mnt/sdcard/p01d/data.tgz /data

作業が多くてめんどい

中に入ってる runme.bat を立ち上げるだけの誰にでもできる簡単なお仕事です。

p01d_shellroot.zip

bootloader 用のドライバとかが必要なので、初めての人は Panasonic のページから adb ドライバを落とし直しておくと幸せになれますね。

root の取得

su とか busybox とか好きなものを /system/bin に、Superuser.apk を /system/app に突っ込むだけ。
面倒な人は shell root 取った状態で Xperia 2011 Easy rooting toolkit あたりを実行すれば全部入るはず。

手動でやりたい人も、これ落としてきて .bat ファイルの中身見れば何となく分かる。zergRush の作業は飛ばしてOK。

全部まとめてやってほしい

上の shell root 取得キットと Xperia 2011 Easy rooting toolkit をミックスしてくれた人達がいるのでご紹介。
- P-01Dをroot化する - ごりぽんソフトウェア (system.tgz と mtd0.bin と mtd6.bin のバックアップ付き)
- http://www1.axfc.net/uploader/Ne/so/135918 (root 取るだけ)
大多数の人は、これ一つで事足りるはず。(system.tgz からの system.img の生成手順は wiki に落としてあります。使い方は自分で調べてね)

まとめてtoolkit化しました。root 取得の他、下記で説明する CWM Recovery や、system.tgz を使ったリカバリというかリストアっぽい事ができます。

boot.img の編集

やるべき事は、boot.img に含まれる ramdisk/default.prop の ro.secure を 0 に書き換えること。ついでに ro.debuggable とか persist.service.adb.enable あたりも 1 にしておくと良いかもしれない。但し意味は無いかもしれない。

boot.img の解体手順とかは先行日記を参照のこと。

boot.img の詰め直しには、次のようにパラメータを指定するとよさげ。

./mkbootfs ramdisk |gzip -c >boot.img-ramdisk_rebuild.gz
./mkbootimg --kernel boot.img-kernel --ramdisk boot.img-ramdisk.gz --cmdline 'console=ttyMSM1 androidboot.hardware=qcom' --base 0x13800000 --pagesize 4096 --ramdiskaddr 0x14800000 -o boot.rebuild.img

857さんと859さん、ありがとう。

CWM Recovery の作り方とか焼き方とか

新しい日記を参照

Factory Reset の手順

recoveryの復帰には「stock ROM の生イメージ取得」の手順で得た生イメージ(mtd0.binmtd6.bin)が必要。
system および data の復帰には CWM Recovery のバックアップが必要(system.tgz 等でも代用可)。

system のリカバリ

【対象】system, data (通常ブートで読み書きが生じるパーティション全般)
shell rooted な recovery イメージを焼いておくこと。「CWM Recovery の作り方とか焼き方とか」で配布するイメージでも可。

  • shell root が利用可能な recovery を本体に焼く。flash_image は P-01D の stockROMに入ってる。

# cd /mnt/sdcard/p01d
# flash_image recovery mtd6.rebuild.cwm-recovery.test11.cm-ics_based.key-fix.img
# flash_image cwm-recovery.test27.cm-ics_based.fb-rgbx_8888.no-swap.img

  • recovery モードで立ち上げる(「起動モードまとめ」参照)。

recovery と同様の手順で flash_image で system を焼く。焼くのは「stock ROM の生イメージ取得」で得た生イメージ。
ここで配布してる CWM Recovery は flash_image 入りなので、下記の手順はそれを使う前提。

# umount /sys
# mount -t vfat -o rw /dev/block/mmcblk0p1 /sdcard
# cd /sdcard/p01d
# flash_image system mtd1.bin

recovery

【対象】recovery, boot (通常ブートで読み書きが生じないパーティション)

起動モードまとめ

好きなの選んで起動して下さい(一部手順を間違えて掲載してました)。

  • 通常起動
  • recovery モード
    • 電源キー長押し/USB接続で電源投入⇒(振動直後)音量下キー⇒recovery が立ち上がる *2
    • adb reboot recovery
    • fastboot reboot
  • fastboot モード
    • 電源キー+音量上キー長押しで電源投入⇒docomoロゴで停止 (正常,bootloader デバイスが認識される)
    • adb reboot bootloader
    • fastboot reboot-bootloader



日記はここで途切れている‥

*1:ro.secure=0

*2:音量下キー+電源キー/USB接続長押しでの電源投入はNG。Qualcomm CDMA Technologies MSM が認識されたら fastboot モードでの起動に失敗してるので、一度バッテリーを抜いてリトライ。