現在時刻 - 2017年11月22日(水) 08:11


G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

カーネルやカスタムROMに関する話題・質問はこちらへ

モデレータ: Samsungモデレータ

  • 作成者
  • メッセージ

scoty755

  • 記事: 41
  • 登録日時: 2013年5月27日(月) 13:28

G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年2月20日(木) 19:15

L-01Fもisaiもさっぱり売れてないのが全く理解出来ません。どちらもよく出来た端末なのに…。
それならばカスタムで盛り上げてしまおうというのが、このトピックのテーマです。

[root化の準備]
L-01Fもisaiも既にroot化が可能となっております。
ワンクリックツールを作れば一発なのですが、ソースのコンパイル作業も楽しみの一つだと思っていますので、あえてこの場ではその手順から紹介したいと思います。
この作業にはAndroid NDKとgitおよびadbコマンドが必要ですのでそれらが使える環境にしておいてください。adbコマンドはAndroid SDKを導入する事により使えるようになります。

今回はfi01さんが作ってくれたbackdoor_mmap_toolsを使ってroot化する手段を取ります。
まずはソースコードのリポジトリ(レポジトリ)をクローンしてくる必要があります。
この時git cloneだけだとサブモジュールまではダウンロードされないので--recursiveオプションを付けます。
コード: 全て選択
git clone --recursive https://github.com/scoty755/backdoor_mmap_tools.git

これでサブモジュールも含めてクローンが完了します。

※手順を簡素化するために一部内容を書き換えました。[2014年2月24日]

続いてコンパイルです。
backdoor_mmap_toolsのフォルダ内でプロンプトを開いている状態でコンパイルのためのコマンドを打ちます。
コード: 全て選択
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

この時コンパイルエラーが発生したら上手くサブモジュールがダウンロード出来ていない可能性がありますので、--recursiveオプションがちゃんと付いているかを確認した上で再度git cloneしてください。

無事コンパイル出来たらbackdoor_mmap_tools/libs/armeabi以下のディレクトリに
いくつかのバイナリが出来ているはずですので、今回はその中から
・install_backdoor
・disable_ccsecurity
の2つを使いますのでroot化したい端末に送り込みます。さらにデバイス情報のデータベースとなるdevice.dbも必要なのでこれも送ります。
コマンドは
コード: 全て選択
adb push libs/armeabi/install_backdoor /data/local/tmp
adb push libs/armeabi/disable_ccsecurity /data/local/tmp
adb push device_database/device.db /data/local/tmp

これで端末側に送り込めました。あとはshellで実行してやるだけです。
コード: 全て選択
adb shell
cd /data/local/tmp
chmod 755 *
./install_backdoor
./disable_ccsecurity

これで$マークが#に変わり一時的なroot化が完了しました。

※backdoor_mmap_toolsにて一時rootになれない場合があるようですのでfi01さんのunlock_security_moduleとandroid-rooting-toolsさんのandroid_run_root_shellを使う方法も追記しておきます。
使うソースはこちら
コード: 全て選択
git clone --recursive https://github.com/scoty755/unlock_security_module.git
git clone --recursive https://github.com/scoty755/android_run_root_shell.git

コンパイル方法はbackdoor_mmap_toolsと同じです。
コンパイル完了後
unlock_security_module/libs/armeabiにunlock_security_module
android_run_root_shell/libs/armeabiにrun_root_shell
がそれぞれ生成されますのでdevice.dbと一緒に端末側に送り込みます。
コード: 全て選択
adb push unlock_security_module /data/local/tmp
adb push run_root_shell /data/local/tmp
adb push device.db /data/local/tmp

あとはadb shellでバイナリを実行すれば一時rootになります。
コード: 全て選択
adb shell
cd /data/local/tmp
chmod 755 *
./unlock_security_module
./run_root_shell


※isaiをv10b、L-01Fを11kにアップデートされた方はこちらを参考にして頂くとroot化出来るかもしれません(未検証です)
scoty755 さんが書きました:[LGL22をv10bにアップデートした場合]
本日配信が開始されましたLGL22向けのアップデート(v10b)を適用されますと、記事内で解説しているそのままの方法ではroot化が不可能になります。しかしandroid-rooting-toolsさんのandroid_get_essential_addressを使って脆弱性の利用に必要なアドレスを特定するとroot化が出来る可能性があります。
※もしも出来なかったらごめんなさいです…。
まずはandroid_get_essential_addressのソースを取得してbackdoor_mmap_toolsと同じようにコンパイルします。
コード: 全て選択
git clone --recursive  https://github.com/android-rooting-tools/android_get_essential_address.git

コンパイルが出来たらandroid_get_essential_address/libs/armeabiにget_essential_addressが生成されますのでandroid_get_essential_address/device_database内にあるdevice.dbと一緒にadbでpushして実行します。
コード: 全て選択
adb push get_essential_address /data/local/tmp
adb push device.db /data/local/tmp
adb shell
cd /data/local/tmp
chmod 755 *
./get_essential_address

get_essential_address実行後device.dbに必要な情報が格納されますのでbackdoor_mmap_toolsまたはunlock_security_module + run_root_shellを使用する事で一時root化が出来ると思います。
その際上書きされてしまいますのでdevice.dbはpushしないでください。

またget_essential_addressを実行した際に表示されるメッセージをここに貼りだして頂けると嬉しいです。
最後に編集したユーザー scoty755 [ 2014年3月18日(火) 03:24 ], 累計 6 回

scoty755

  • 記事: 41
  • 登録日時: 2013年5月27日(月) 13:28

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年2月20日(木) 20:29

[パーティションのバックアップ]
どのメーカー・機種においても同じことが言えるのですがroot化したらすぐにアレコレするのではなく、まずはパーティションをバックアップ!
これが必要不可欠です。忘れずにやっておきましょう。

パーティションのバックアップには権限が必要なので一時root状態でおこないます。
コード: 全て選択
adb shell
cd /data/local/tmp
./install_backdoor
./disable_ccsecurity


※unlock_security_moduleとrun_root_shellの組み合わせの場合はこちら
コード: 全て選択
adb shell
cd /data/local/tmp
./unlock_security_module
./run_root_shell


次にパーティション構成を調べます。
コード: 全て選択
cd /dev/block/platform/msm_sdcc.1/by-name
ls -l

これでどのパーティションがどこにマウントされているかの情報が取得出来ます。

それではパーティションの構成がわかったところでバックアップをしましょう。
調べてみるとisaiもL-01Fと同様のパーティション番号・構成でした。
ここからはバックアップするフォルダ名の関係でL-01Fとisaiでそれぞれコマンドが違ってきます。
(バックアップフォルダ名はL-01Fの場合backup_L01F_V10C、isaiの場合backup_LGL22_V10Aとします。)

L-01Fの場合
まずは本体ストレージ内にバーティションイメージをバックアップ。
コード: 全て選択
dd if=/dev/block/mmcblk0p1 of=/sdcard/backup_L01F_V10C/mmcblk0p1_modem bs=4096
dd if=/dev/block/mmcblk0p2 of=/sdcard/backup_L01F_V10C/mmcblk0p2_sbl1 bs=4096
dd if=/dev/block/mmcblk0p3 of=/sdcard/backup_L01F_V10C/mmcblk0p3_dbi bs=4096
dd if=/dev/block/mmcblk0p4 of=/sdcard/backup_L01F_V10C/mmcblk0p4_DDR bs=4096
dd if=/dev/block/mmcblk0p5 of=/sdcard/backup_L01F_V10C/mmcblk0p5_aboot bs=4096
dd if=/dev/block/mmcblk0p6 of=/sdcard/backup_L01F_V10C/mmcblk0p6_rpm bs=4096
dd if=/dev/block/mmcblk0p7 of=/sdcard/backup_L01F_V10C/mmcblk0p7_boot bs=4096
dd if=/dev/block/mmcblk0p8 of=/sdcard/backup_L01F_V10C/mmcblk0p8_tz bs=4096
dd if=/dev/block/mmcblk0p9 of=/sdcard/backup_L01F_V10C/mmcblk0p9_pad bs=4096
dd if=/dev/block/mmcblk0p10 of=/sdcard/backup_L01F_V10C/mmcblk0p10_modemst1 bs=4096
dd if=/dev/block/mmcblk0p11 of=/sdcard/backup_L01F_V10C/mmcblk0p11_modemst2 bs=4096
dd if=/dev/block/mmcblk0p12 of=/sdcard/backup_L01F_V10C/mmcblk0p12_pad1 bs=4096
dd if=/dev/block/mmcblk0p13 of=/sdcard/backup_L01F_V10C/mmcblk0p13_misc bs=4096
dd if=/dev/block/mmcblk0p14 of=/sdcard/backup_L01F_V10C/mmcblk0p14_persist bs=4096
dd if=/dev/block/mmcblk0p15 of=/sdcard/backup_L01F_V10C/mmcblk0p15_recovery bs=4096
dd if=/dev/block/mmcblk0p16 of=/sdcard/backup_L01F_V10C/mmcblk0p16_fsg bs=4096
dd if=/dev/block/mmcblk0p17 of=/sdcard/backup_L01F_V10C/mmcblk0p17_fsc bs=4096
dd if=/dev/block/mmcblk0p18 of=/sdcard/backup_L01F_V10C/mmcblk0p18_ssd bs=4096
dd if=/dev/block/mmcblk0p19 of=/sdcard/backup_L01F_V10C/mmcblk0p19_pad2 bs=4096
dd if=/dev/block/mmcblk0p20 of=/sdcard/backup_L01F_V10C/mmcblk0p20_encrypt bs=4096
dd if=/dev/block/mmcblk0p21 of=/sdcard/backup_L01F_V10C/mmcblk0p21_drm bs=4096
dd if=/dev/block/mmcblk0p22 of=/sdcard/backup_L01F_V10C/mmcblk0p22_sns bs=4096
dd if=/dev/block/mmcblk0p23 of=/sdcard/backup_L01F_V10C/mmcblk0p23_felica bs=4096
dd if=/dev/block/mmcblk0p24 of=/sdcard/backup_L01F_V10C/mmcblk0p24_laf bs=4096
dd if=/dev/block/mmcblk0p25 of=/sdcard/backup_L01F_V10C/mmcblk0p25_fota bs=4096
dd if=/dev/block/mmcblk0p26 of=/sdcard/backup_L01F_V10C/mmcblk0p26_mpt bs=4096
dd if=/dev/block/mmcblk0p27 of=/sdcard/backup_L01F_V10C/mmcblk0p27_seclog bs=4096
dd if=/dev/block/mmcblk0p28 of=/sdcard/backup_L01F_V10C/mmcblk0p28_OneSeg bs=4096
dd if=/dev/block/mmcblk0p29 of=/sdcard/backup_L01F_V10C/mmcblk0p29_dbibak bs=4096
dd if=/dev/block/mmcblk0p30 of=/sdcard/backup_L01F_V10C/mmcblk0p30_rpmbak bs=4096
dd if=/dev/block/mmcblk0p31 of=/sdcard/backup_L01F_V10C/mmcblk0p31_tzbak bs=4096
dd if=/dev/block/mmcblk0p32 of=/sdcard/backup_L01F_V10C/mmcblk0p32_rct bs=4096
dd if=/dev/block/mmcblk0p33 of=/sdcard/backup_L01F_V10C/mmcblk0p33_system bs=4096
dd if=/dev/block/mmcblk0p34 of=/sdcard/backup_L01F_V10C/mmcblk0p34_cache bs=4096
dd if=/dev/block/mmcblk0p35 of=/sdcard/backup_L01F_V10C/mmcblk0p35_tombstones bs=4096
dd if=/dev/block/mmcblk0p36 of=/sdcard/backup_L01F_V10C/mmcblk0p36_spare bs=4096
dd if=/dev/block/mmcblk0p37 of=/sdcard/backup_L01F_V10C/mmcblk0p37_userdata bs=4096
dd if=/dev/block/mmcblk0p38 of=/sdcard/backup_L01F_V10C/mmcblk0p38_grow bs=4096

本体ストレージへのイメージ保存が完了しますので、これをPC側にコピー。
コード: 全て選択
adb pull /sdcard/backup_L01F_V10C backup_L01F_V10C


isai LGL22の場合
本体ストレージ内にバーティションイメージをバックアップ。
コード: 全て選択
dd if=/dev/block/mmcblk0p1 of=/sdcard/backup_LGL22_V10A/mmcblk0p1_modem bs=4096
dd if=/dev/block/mmcblk0p2 of=/sdcard/backup_LGL22_V10A/mmcblk0p2_sbl1 bs=4096
dd if=/dev/block/mmcblk0p3 of=/sdcard/backup_LGL22_V10A/mmcblk0p3_dbi bs=4096
dd if=/dev/block/mmcblk0p4 of=/sdcard/backup_LGL22_V10A/mmcblk0p4_DDR bs=4096
dd if=/dev/block/mmcblk0p5 of=/sdcard/backup_LGL22_V10A/mmcblk0p5_aboot bs=4096
dd if=/dev/block/mmcblk0p6 of=/sdcard/backup_LGL22_V10A/mmcblk0p6_rpm bs=4096
dd if=/dev/block/mmcblk0p7 of=/sdcard/backup_LGL22_V10A/mmcblk0p7_boot bs=4096
dd if=/dev/block/mmcblk0p8 of=/sdcard/backup_LGL22_V10A/mmcblk0p8_tz bs=4096
dd if=/dev/block/mmcblk0p9 of=/sdcard/backup_LGL22_V10A/mmcblk0p9_pad bs=4096
dd if=/dev/block/mmcblk0p10 of=/sdcard/backup_LGL22_V10A/mmcblk0p10_modemst1 bs=4096
dd if=/dev/block/mmcblk0p11 of=/sdcard/backup_LGL22_V10A/mmcblk0p11_modemst2 bs=4096
dd if=/dev/block/mmcblk0p12 of=/sdcard/backup_LGL22_V10A/mmcblk0p12_pad1 bs=4096
dd if=/dev/block/mmcblk0p13 of=/sdcard/backup_LGL22_V10A/mmcblk0p13_misc bs=4096
dd if=/dev/block/mmcblk0p14 of=/sdcard/backup_LGL22_V10A/mmcblk0p14_persist bs=4096
dd if=/dev/block/mmcblk0p15 of=/sdcard/backup_LGL22_V10A/mmcblk0p15_recovery bs=4096
dd if=/dev/block/mmcblk0p16 of=/sdcard/backup_LGL22_V10A/mmcblk0p16_fsg bs=4096
dd if=/dev/block/mmcblk0p17 of=/sdcard/backup_LGL22_V10A/mmcblk0p17_fsc bs=4096
dd if=/dev/block/mmcblk0p18 of=/sdcard/backup_LGL22_V10A/mmcblk0p18_ssd bs=4096
dd if=/dev/block/mmcblk0p19 of=/sdcard/backup_LGL22_V10A/mmcblk0p19_pad2 bs=4096
dd if=/dev/block/mmcblk0p20 of=/sdcard/backup_LGL22_V10A/mmcblk0p20_encrypt bs=4096
dd if=/dev/block/mmcblk0p21 of=/sdcard/backup_LGL22_V10A/mmcblk0p21_drm bs=4096
dd if=/dev/block/mmcblk0p22 of=/sdcard/backup_LGL22_V10A/mmcblk0p22_sns bs=4096
dd if=/dev/block/mmcblk0p23 of=/sdcard/backup_LGL22_V10A/mmcblk0p23_felica bs=4096
dd if=/dev/block/mmcblk0p24 of=/sdcard/backup_LGL22_V10A/mmcblk0p24_laf bs=4096
dd if=/dev/block/mmcblk0p25 of=/sdcard/backup_LGL22_V10A/mmcblk0p25_fota bs=4096
dd if=/dev/block/mmcblk0p26 of=/sdcard/backup_LGL22_V10A/mmcblk0p26_mpt bs=4096"
dd if=/dev/block/mmcblk0p27 of=/sdcard/backup_LGL22_V10A/mmcblk0p27_seclog bs=4096
dd if=/dev/block/mmcblk0p28 of=/sdcard/backup_LGL22_V10A/mmcblk0p28_OneSeg bs=4096
dd if=/dev/block/mmcblk0p29 of=/sdcard/backup_LGL22_V10A/mmcblk0p29_dbibak bs=4096
dd if=/dev/block/mmcblk0p30 of=/sdcard/backup_LGL22_V10A/mmcblk0p30_rpmbak bs=4096
dd if=/dev/block/mmcblk0p31 of=/sdcard/backup_LGL22_V10A/mmcblk0p31_tzbak bs=4096
dd if=/dev/block/mmcblk0p32 of=/sdcard/backup_LGL22_V10A/mmcblk0p32_rct bs=4096
dd if=/dev/block/mmcblk0p33 of=/sdcard/backup_LGL22_V10A/mmcblk0p33_system bs=4096
dd if=/dev/block/mmcblk0p34 of=/sdcard/backup_LGL22_V10A/mmcblk0p34_cache bs=4096
dd if=/dev/block/mmcblk0p35 of=/sdcard/backup_LGL22_V10A/mmcblk0p35_tombstones bs=4096
dd if=/dev/block/mmcblk0p36 of=/sdcard/backup_LGL22_V10A/mmcblk0p36_spare bs=4096
dd if=/dev/block/mmcblk0p37 of=/sdcard/backup_LGL22_V10A/mmcblk0p37_userdata bs=4096
dd if=/dev/block/mmcblk0p38 of=/sdcard/backup_LGL22_V10A/mmcblk0p38_grow bs=4096

本体ストレージへのイメージ保存が完了しますので、これをPC側にコピー。
コード: 全て選択
adb pull /sdcard/backup_LGL22_V10A backup_LGL22_V10A


PC側にバックアップイメージが保存されたbackup_L01F_V10Cまたはbackup_LGL22_V10Aというフォルダが出来ますので無くさないように大切に保管してください。
最後に編集したユーザー scoty755 [ 2014年3月13日(木) 08:12 ], 累計 2 回

aka56513

  • 記事: 2
  • 登録日時: 2014年3月03日(月) 16:48
  • お住まい: Oita

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月03日(月) 17:00

scoty755様

初めまして。aka56513と申します。本日よりisaiユーザーとなりroot化について検索してこのページにたどり着きました。
早速ですがroot化でご教授頂きたくメッセージさせて頂きました。

下記3つのファイルを/data/local/tmpに送り込み、shellで実行したのですが、#マークに変わりません。
・install_backdoor
・disable_ccsecurity
・device.db

tmpでlsし、3つのファイルがフォルダ内にある事を確認しました。
#マークに変わらないので複数回記事にあるコマンドを実行したのですが下記の様に表示されます。
下記メッセージで何か私の不足が御座いましたらご指摘頂ければ幸いです。

shell@android:/data/local/tmp $ ./install_backdoor
./install_backdoor
You have already installed backdoor mmap.
1|shell@android:/data/local/tmp $ ./disable_ccsecurity
./disable_ccsecurity
Already disabled??
Unlock anyway.

ご多忙の中大変恐縮で御座いますが、宜しくお願い致します。

scoty755

  • 記事: 41
  • 登録日時: 2013年5月27日(月) 13:28

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月03日(月) 20:02

aka56513様 購入頂きまして真にありがとうございます。

それならば、fi01さんのunlock_security_moduleとandroid-rooting-toolsさんのandroid_run_root_shellを使ってみてください。
こちらならば確実にroot化出来ると思います。
コード: 全て選択
git clone --recursive https://github.com/fi01/unlock_security_module.git
git clone --recursive https://github.com/android-rooting-tools/android_run_root_shell.git


コンパイル方法はbackdoor_mmap_toolsと同じです。コンパイルが完了しましたらunlock_security_moduleとrun_root_shell、さらにbackdoor_mmap_toolsで使用したdevice.dbを/data/local/tmpにpushしてください。
pushしたらchmod 755 *して
./unlock_security_module
./run_root_shell
の順で実行してください。

aka56513

  • 記事: 2
  • 登録日時: 2014年3月03日(月) 16:48
  • お住まい: Oita

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月04日(火) 12:16

scoty755様

早速のご回答ありがとうございました。
無事にroot化出来ました。
プログラムの事はさっぱり分からないのですが、今回の作業で
開発者気分になる事ができ、とても楽しかったです :D

redc0mrade

  • 記事: 8
  • 登録日時: 2013年7月04日(木) 09:47

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月04日(火) 13:02

こんにちは、LGL22のroot化を調べている内にたどりついた者です。 
run_root_shellでadb上で#になることは出来ましたが、この状態ではまだsuを/system/bin にpushするのはまだまだですよね・・・? やってみたけど無理でした。 

scoty755

  • 記事: 41
  • 登録日時: 2013年5月27日(月) 13:28

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月05日(水) 00:48

永続的なroot化をおこなうためにはLSM(Linux Security Modules)を無効化する必要があります。
無効化は/system/bin/ccs-auditdをテキトーなファイルで上書きする事で可能です。
具体的なやり方は以下のとおり(アップデートで強制的にroot権限が剥奪されてしまう可能性もありますので、安全策としてここではsuバイナリで上書きします)
su/busyboxバイナリはこちらを使ってください。
https://www.mediafire.com/?40pd3h8b93c7n8p
adb push unlock_security_module /data/local/tmp
adb push run_root_shell /data/local/tmp
adb push device.db /data/local/tmp
adb push su /data/local/tmp
adb push busybox /data/local/tmp
adb shell
cd /data/local/tmp
chmod 755 *
./unlock_security_module
./run_root_shell
./busybox dd if=/system/bin/ccs-auditd of=/sdcard/ccs-auditd
mount -o rw,remount /dev/block/mmcblk0p33 /system
./busybox dd if=/data/local/tmp/su of=/system/bin/ccs-auditd
./busybox dd if=/data/local/tmp/su of=/system/xbin/su
chmod 4755 /system/bin/ccs-auditd
chmod 4755 /system/xbin/su
mount -o ro,remount /dev/block/mmcblk0p33 /system
です。
本体ストレージに純正のccs-auditdがバックアップされるので無くさないように大切に保管してください。
root化を要するアプリ使用により今後のアップデートが適用出来なくなる可能性がありますので事前に必ずパーティションのバックアップをしてください。

redc0mrade

  • 記事: 8
  • 登録日時: 2013年7月04日(木) 09:47

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月05日(水) 15:59

scoty755さん 
丁寧な説明ありがとうございました!途中エラーがあったりしましたが試行錯誤の上superuserのインストールも完了しました!
これでisai生活も捗りそうです

redc0mrade

  • 記事: 8
  • 登録日時: 2013年7月04日(木) 09:47

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月05日(水) 20:15

って思ったら再起動させたらsuが無効になることが判明・・
su自体は/system/xbinに残っていますが再起動させるとLSMが生きているせいかsuperuserがsuにアクセス出来ない状態になります。
adbよりrun_root_shellでsuになり
mount -o rw,remount /dev/block/mmcblk0p33 /system
を実行させることによってsuperuserが再びsuにアクセスできるようになることが分かりました。

この一連の作業をboot時に処理さえできればPC無しで出来るようになると思いますが・・・そんなに単純ではないですよね・・・

scoty755

  • 記事: 41
  • 登録日時: 2013年5月27日(月) 13:28

Re: G2 JAPAN MODEL(L-01F/isai LGL22)販売促進計画

投稿記事2014年3月05日(水) 23:05

それならば
./busybox dd if=/data/local/tmp/su of=/system/bin/ccs-auditd
のところを
./busybox cp /data/local/tmp/su /system/bin/ccs-auditd
としてやってください。
これで完全に上書き出来ると思います
次へ

Return to 開発全般