NEC MEDIAS (N-04C) 2.3.3/A1022001 root奪取手順

2011/12/04PDA::Android

お約束

本記事に記載されている事項はメーカーの保証対象外の操作なります。
本記事に記載されている操作を行った場合、端末が故障する恐れがあります。
本記事を参考にする場合はすべて自己責任でお願いします。著者は一切の責任を負いかねます。


前提条件

  • Android SDKがインストールされている
  • N-04CのUSBドライバがインストールされている

必要なもの


以下のものは必須ではありませんが、あると幸せになれます。


環境

  • N-04C ビルドA1022001
  • 母艦: Windows XP Professional SP3
    • Android SDK
  • N-04C USBドライバ 1.0.5.0 (N-04C_Install_V1_0_5_0.exe)
  • zergRush v1 (DooMLoRD_v1_ROOT-zergRush-busybox-su.zip)
  • IS03 root switch 1.3.4 (IS03rootsw134.apk)
  • N-04C rootkit, sysunlock.koは上記リンクにて配布されているものを利用。

N-04C root化でできること

  • root権限を要求するアプリケーションの実行
  • カメラ無音化
  • NAND領域の書き換え

N-04C root化で現状できなかったこと(課題)

  • 無線LAN ad-Hoc接続

利用したwpa_supplicantが悪かったのか、wpa_supplicantを差し替えると正常に起動しなくなり(赤面状態)、システムリカバリを実行する必要があります。

  • テザリング時APN強制書き換えの無効化

/data/data/com.android.providers.settings/databases/settings.db
secureテーブルにtether_dun_required=0としてもAPN強制書きかえを無効化することができませんでした。


root奪取手順

1. 事前準備

設定 > アプリケーション > 開発
"USBデバッグ"をオンに

母艦とUSBで接続します。

2. zergRushによるroot奪取

zergRushをN-04Cの/data/local/tmpへ配置
> adb push zergRush /data/local/tmp/
adbシェルへ落ちる
> adb shell
zergRushの転送確認
$ ls -l /data/local/tmp
-rw-rw-rw shell    shell           23052 2011-10-21  17:20 zergRush
zergRushへ実行権限付与
$ chmod 755 /data/local/tmp/zergRush
zergRush実行
$ /data/local/tmp/zergRush

[**] Zerg rush - Android 2.2/2.3 local root
[**] (C) 2011 Revolutionary. All rights reserved.

[**] Parts of code from Gingerbreak, (C) 2010-2011 The Android Exploid Crew.

[+] Found a GingerBread ! 0x00015118
[*] Scooting ...
[*] Sending 149 zerglings ...
[+] Zerglings found a way to enter ! 0x10
[+] Overseer found a path ! 0x000152f8
[*] Sending 149 zerglings ...
[+] Zerglings caused crash (good news): 0x40119cd4 0x0054
[*] Researching Metabolic Boost ...
[+] Speedlings on the go ! 0xafd25611 0xafd390bf
[*] Popping 24 more zerglings
[*] Sending 173 zerglings ...

[+] Rush did it ! It's a GG, man !
[+] Killing ADB and restarting as root... enjoy!

これで /data/local/tmp/sh を実行することでrootへスイッチすることができるようになりました。

3. N-04C rootkitの導入

N-04C rootkitを予め展開しておきます。

N-04C rootkitに含まれるlocal.propをSDカードのルートに配置
> adb push local.prop /sdcard/local.prop
N-04C rootkitに含まれるdata_localディレクトリ配下のファイル全てを/data/localに配置
> adb push n04c_rootkid/data_local /data/local/
adbシェルに落ちる
> adb shell
rootにスイッチ
$ /data/local/tmp/sh
local.propを/data/local.propにコピー
# cat /sdcard/local.prop > /data/local.prop
/data/local/autoexec.shのパーミッション変更
# chmod 555 /data/local/autoexec.sh
確認。以下のようになっていればOKです
# ls -l /data/local*
-r-xr-xr-x shell    shell         196 2011-06-10 19:32 autoexec.sh
-rw-rw-rw- shell    shell      735308 2010-11-29 22:52 busybox
-rw-rw-rw- shell    shell        3520 2011-06-10 19:28 libemoji-wrapper.so
-rw-rw-rw- shell    shell       26264 2011-04-02 04:32 su
-rw-rw-rw- shell    shell       76232 2011-04-01 21:59 _su
drwxrwx--x shell    shell             2011-12-04 15:45 tmp
-rw-rw-rw- root     shell         138 2011-12-04 15:47 local.prop
端末再起動
# reboot

4. Superuser, IS03rootswのインストール

N-04C rootkitに含まれているSuperuser.apkをインストール
> adb install Superuser.apk
1858 KB/s (133400 bytes in 0.070s)
        pkg: /data/local/tmp/Superuser.apk
Success
IS03rootswをインストール
> adb install IS03rootsw134.apk
1353 KB/s (69397 bytes in 0.050s)
        pkg: /data/local/tmp/IS03rootsw134.apk
Success

以上でNAND領域の変更を伴わない範囲でのroot奪取は完了となります。
多くのroot権限を要するアプリケーションは、本環境でそのまま利用できないため実行前にIS03rootswでroot化を行なっておく必要があります。

NAND領域書き換え可能とする手順

前提

  • rooted環境
  • SDカードのルートディレクトリにsysunlock.koが配置されている

NANDアンロック手順

adbシェルに落ちる
>adb shell
rootになる
$ /dev/su
sysunlock.koをロードする
# insmod /sdcard/sysunlock.ko
ロードされているモジュールの確認
# lsmod
sysunlock 921 0 - Live 0xbf218000
sdex 41160 0 - Live 0xbf01b000 (P)
felica 22224 2 - Live 0xbf00f000
nim_driver 31202 0 - Live 0xbf000000
/system配下を書き換え可能で再マウント
# mount -o rw,remount /system /system

事後処理

重要! この手順を実行しないまま再起動を行うと正常起動しません!!

/systemを読み込み専用で再マウント
# mount -o ro,remount /system /system
sysunlockモジュールのアンロード
# rmmod sysunlock
sysunlockがアンロードされていることを確認する
# lsmod
sdex 41160 0 - Live 0xbf01b000 (P)
felica 22224 2 - Live 0xbf00f000
nim_driver 31202 0 - Live 0xbf000000

カメラ無音化

N-04Cのカメラ無音化は/system/media/audio/uiの以下のファイルを無音のOggファイルで書き換えることで可能です。

  • camera_quick.ogg
  • camera_nom.ogg
  • camera_click.ogg

前提

  • 無音のOggファイルがSDカードのルートに格納されている。例: nosound.ogg
  • NAND領域書き換え可能とする手順が実行できる環境となっている

無音化手順

"NAND領域書き換え可能とする手順"の"NANDアンロック手順"まで実行。

オリジナルファイルのバックアップ先ディレクトリ(/sdcard/sounc.bak作成
# mkdir /sdcard/sounc.bak
ファイル確認
# ls -l /system/media/audio/ui
-rw-r--r-- root     root         5582 2011-10-09 03:00 VideoRecord.ogg
-rw-r--r-- root     root         4666 2011-10-09 03:00 Unlock.ogg
-rw-r--r-- root     root         9507 2011-10-09 03:00 movie_stop.ogg
-rw-r--r-- root     root         9374 2011-10-09 03:00 movie_start.ogg
-rw-r--r-- root     root         6585 2011-10-09 03:00 LowBattery.ogg
-rw-r--r-- root     root         4661 2011-10-09 03:00 Lock.ogg
-rw-r--r-- root     root         5194 2011-10-09 03:00 KeypressStandard.ogg
-rw-r--r-- root     root         7392 2011-10-09 03:00 KeypressSpacebar.ogg
-rw-r--r-- root     root         7972 2011-10-09 03:00 KeypressReturn.ogg
-rw-r--r-- root     root         6193 2011-10-09 03:00 KeypressDelete.ogg
-rw-r--r-- root     root         3994 2011-10-09 03:00 Effect_Tick.ogg
-rw-r--r-- root     root         5074 2011-10-09 03:00 camera_quick.ogg
-rw-r--r-- root     root         8485 2011-10-09 03:00 camera_nom.ogg
-rw-r--r-- root     root         4851 2011-10-09 03:00 camera_click.ogg
オリジナルファイルコピー
# /data/local/busybox cp /data/system/media/audio/ui/* /sdcard/sound.bak/
ファイル書き換え
# /data/local/busybox cp /sdcard/nosound.ogg /system/media/audio/ui/camera_quick.ogg
# /data/local/busybox cp /sdcard/nosound.ogg /system/media/audio/ui/camera_nom.ogg
# /data/local/busybox cp /sdcard/nosound.ogg /system/media/audio/ui/camera_click.ogg
パーミッション変更
# chmod 644 /system/media/audio/ui/*
書き換え確認
# ls -l /system/media/audio/ui/
-rw-r--r-- root     root         3990 2011-12-04 16:03 camera_click.ogg
-rw-r--r-- root     root         3990 2011-12-04 16:03 camera_nom.ogg
-rw-r--r-- root     root         3990 2011-12-04 16:03 camera_quick.ogg
-rw-r--r-- root     root         5582 2011-10-09 03:00 VideoRecord.ogg
-rw-r--r-- root     root         4666 2011-10-09 03:00 Unlock.ogg
-rw-r--r-- root     root         9507 2011-10-09 03:00 movie_stop.ogg
-rw-r--r-- root     root         9374 2011-10-09 03:00 movie_start.ogg
-rw-r--r-- root     root         6585 2011-10-09 03:00 LowBattery.ogg
-rw-r--r-- root     root         4661 2011-10-09 03:00 Lock.ogg
-rw-r--r-- root     root         5194 2011-10-09 03:00 KeypressStandard.ogg
-rw-r--r-- root     root         7392 2011-10-09 03:00 KeypressSpacebar.ogg
-rw-r--r-- root     root         7972 2011-10-09 03:00 KeypressReturn.ogg
-rw-r--r-- root     root         6193 2011-10-09 03:00 KeypressDelete.ogg
-rw-r--r-- root     root         3994 2011-10-09 03:00 Effect_Tick.ogg

"NAND領域書き換え可能とする手順"の"事後処理"を実行し、再起動を行った後にカメラを使った際に音が出なければ成功です。


NAND領域を操作した結果、正常起動しなくなった場合の復旧手順

後日記載


N-04C root化 Tips

利用できるコマンド

  • cd, pwd
  • chmod, chown
  • cat, dd
  • mv
  • mkdir
  • insmod, rmmod, lsmod

利用出来なかったコマンド

  • cp
  • chgrp

busyboxを使う

上記手順でroot化を行った場合、/data/local/busybox に配置されるのでこれを利用することが可能です。

suのパス

IS03rootsw経由ではなく、直接suを実行する場合、/dev/suを実行することでrootになれる。/data/local/tmp/shによるrootスイッチはフル権源が与えられていないような挙動をします。

参考