2014年2月23日日曜日

Optimus G Pro(L-04E) root化②

上記のファイルを端末に転送します。
adbが必要になるので、androidSDKをPCに導入しておきます。

http://developer.android.com/sdk/index.html

ここから、自分のPCに合ったSDK Tools Onlyをダウンロードして、
インストールしておきます。

adb devices
で端末との通信を確立します。

それぞれを、
adb push XXX /data/local/tmp
で端末に転送します。

adb shell
で端末上の操作に移ります。

cd /data/local/tmp
でファイルを転送したフォルダに移動します。

chmod 755 XXX
で、disable_ccsecurity,get_essential_address,install_backdoor,run_root_shellに実行権限を付けます。

chmod 644 device.db
device.dbは実行権限必要ないので、読み書き可能にしておきます。

まずは、
./get_essential_address
を実行して、関数のアドレスを調べます。
しばらく時間がかかりますが、
コンソールに必要な情報が出てきます。

L04E10fで実行した結果はこちらです。
Essential address are:
  prepare_kernel_cred = 0xc009e3dc
  commit_creds = 0xc009dfb8
  remap_pfn_range = 0xc0113d08
  vmalloc_exec = 0xc012099c
  ptmx_fops = 0xc0fbc570

アドレスを登録しておくと、アドレスサーチの時間が短縮できる?ので、
device_databaseに登録しておきます。

device_databaseフォルダ内にある以下のソースで、
device_address.c
device_database.h
に先ほどの関数のアドレスと端末の情報を入力していきます。

記載方法は、
https://github.com/tkawajir/android_device_database/commit/594b4e45b91e73a4ef42bc9b9508ea1e210620c8
を参照してください。

sqlite3が必要になるので、
sudo apt-get install sqlite3
でインストールしておきます。

device_databaseフォルダで
make
を実行すると、新しいdevice.dbが作成されるので、
これを端末に再度転送します。

device.dbは情報を登録しなくても大丈夫です。