とりあえず、V10bでのroot化について自分なりに情報をまとめてみた。
root権限の取得(一時的なroot化)
/data/local.propにro.kernel.qemu=1を書いておけばADB接続時にroot権限が使えるが、L-01Dの/dataディレクトリは一般ユーザーが読み書き出来ない上に/data/local.propも存在しない。
しかし、Wi-Fiのチェックを付けた際に作成される/data/misc/wifi/configは一般ユーザーでも読み書き出来るので、これを/data/local.propへのシンボリックリンクにして作成する。
suコマンドの準備(恒久的なroot化)
/や/systemはシステム標準のmountコマンドで再マウントした直後に端末再起動が発生するので、別途準備したbusyboxで書き込み可能に再マウントする。
/system/xbinや/sbinにsuをコピーすると直後に端末再起動が発生する。ファイル名を変えると問題ない。これは/system/bin/seccmmondが監視して行なっているのでリネームして退避させることで回避する。
ただし、起動時に/system/bin、/system/xbinからsuをチェックして消すようなので、起動時に実行される/system/etc/install-recovery.shを作って、起動後にsuのチェックが終わるのを待ってからsuのコピーを行うようにする。
やってみる
/data/local.propを作ったトコでPCとのUSBケーブルは外さずに電源を切る。電源が切れて電池の充電アニメーションが始まったら電源ボタンを押して電源を入れる。LGロゴが表示されたタイミング(docomoロゴが表示される前)でadb shell出来るみたいでプロンプトは既に#になっていたけど、一旦exitで終了。
ロック画面になってSDカードのスキャンが終わったところで、adb shellして、ddコマンドで/dev/block/mmcblk0p1(firmware)、mmcblkp14(baseband)、mmcblkp8(boot)、mmcblkp13(recovery)、mmcblkp27(system)をバックアップ。あと念の為に、busyboxを/data/local/binに入れて/systemと/system/appをbusyboxのtarで固めてバックアップ。
ちなみにroot権限が無いと/dev/block/mmcblk0p1等のデバイスファイルを扱うことが出来ないのでバックアップが取れない。
バックアップした各ファイルのファイルサイズとハッシュ値は以下の通り。
boot.img 10.0 MB (10,485,760 バイト) CRC32: 58785A98 MD5: 8F283603E91165F22DBFFBBD1094F991 SHA-1: 15638291C13EBA06749695E94BC06BD041E9306B recovery.img 16.0 MB (16,777,216 バイト) CRC32: 88AA8BE5 MD5: 42BAEE682F6F3AC59A27B4D28728C2F0 SHA-1: 823AE9C67FEC8ED87094CC1E5D21789D9168FE22 baseband.img 32.0 MB (33,554,432 バイト) CRC32: A46038BD MD5: AFCF2DC44582096CABFE5C41B1D8CA4B SHA-1: D2085D22D9184695B7C3F3275CAB5A6A3072C506 firmware.img 32.0 MB (33,554,432 バイト) CRC32: 8BCDD6A8 MD5: EE906E5EF9CA064B01E4746161C81043 SHA-1: C366F8F503FF40F065753C1EDA339C2F8EE474BF system.img 512 MB (536,870,912 バイト) CRC32: 1E2892EA MD5: 0F42568B0CBBB353EF703F20A8CF9344 SHA-1: 7AFB8FC05C150D65439D26C64AF873F891FEA956