2012年10月6日土曜日

Motorola RAZR i XT890: rooted




まだ実機は手に入ってないのですが、xda-developersのmember、mattlgroffさんが実機で試してくれました。
私がやった事、どっから入手したのか分からないXT890 Stock boot.imgのUnpack、default.propのro.secure=0化とRepackです。
unsecured kernel作ったって事です。

そもそもなんでunsecured kernelが使えるのか?というところですが、RAZR i XT890はBootloader Unlockが可能なモデルです。


Unlock手順についてはこちらを



RAZR i XT890 boot.imgのUnpack/Repack方法についてざっくり書きます。

Unpack

  1. バイナリエディタでboot.imgを開く
  2. "1F 8B 08"で検索する。
    数件ヒットするかと思いますがramdiskの部分は"Failed to allocate space for phdrs"と書かれているところの少し下になります。
    "1F 8B 08"はgzipのヘッダー
  3. "1F 8B 08"から後半の"FF"で埋められてるエリアの手前までをコピー
  4. 3.でコピーしたものをramdisk.cpio.gzという名前で保存
    gzipで圧縮されたcpioって事ですね。
  5. ramdisk.cpio.gzを展開する…Windows環境でも7-Zip等で展開出来ます。
Repack

  1. gzip圧縮されたcpioを作る。名前はramdisk_mod.cpio.gzとします
    作業はLinux環境で行う。
    cd ramdisk_mod
    find | cpio -H newc -o | gzip -9 > ramdisk_mod.cpio.gz
    
  2. バイナリエディタでramdisk_mod.cpio.gzを開く
  3. ramdisk_mod.cpio.gzをboot.imgの抜き出した部分に上書きし、保存
    ファイルサイズをオリジナルのboot.imgと同じにしてあげる必要があります。
    "00"で埋めてあげればOKです。
こんな感じです。
Motorolaさん、XT890のkernel sourceはよ!