再度書き込ませていただきます。 (1)zergRushで、一時rootはとれるようです。 (2)is04でうまくいってるkmemを使っても、 /systemをrwでremountするときに失敗してしまいます。 (3)dmesgで調べると以下のようになっています。 <4>[ 2045.080200] remount of system as rw is not permitted remountする方法はないでしょうか?
IS04rootスレからの出張です。 機種が違えばマウントポイントも違うと思います。 以下の2つのコマンドの実行結果、出せる方いらっしゃいませんか? $ cat /proc/mtd $ mount
13 :
それから、kmemの機能は、メモリ上で条件に合う文字列を書き換えるのですが、 見つけた場合は以下のような表示が出ます。 Found 'system' on xxxxxxxx Modified 'system'->'syst@m' これを利用して、まずIS11T上でkmemが機能するのかどうか、 まずか確認してみるのはどうでしょう。 たとえばこう… s を見つけて s に書き換える、という $ kmem c0000000 40000 s s Found 's' on xどこかアドレスx Modified 's'->'s' 上記のような表示が出るなら、とりあえずkmemは使えると判断できるかと。
>>17 >>18 14〜16 で投稿したスマホ初心者です。 zurgRushで一時rootをとって # ./kmem 1c200000 40000 s s とすると cannot mmap 一時rootを取っていない状態で $ ./kmem 1c200000 40000 s s とすると cannot open /dev/kmem となります。やはり、remount対策がされているのでしょうか?
20 :
>>19 IS04で同じエラーが出るケースがあった、アドレス範囲が間違ってるとそれ出る。 do_mount のアドレス先頭付近を指定して試してみてください。 >>6 の情報によると、おそらく c0000000 以降なら行けると思います。 あとごめん、 s s より a a の方が、多分ヒットしやすいと思います。
21 :
>>20 ご指摘通りしてみました。 # ./kmem c01619c4 40000 a a mmap(C01619C4): start C0161000 len:000409C4 cannot mmap ・ ・ ・ 「cannot mmap」が 10回連続して出力されます。
>>27 んお? なんか違うね。 以下やってみて。 1.zurgRushで一時root取る。 2.adb shell 実行して、rootユーザの#プロンプトを確認。 3.kmemを置いた場所にcdしてから、 4.kmem c01619c4 898 system syst@m (スラッシュを無しにするって事) どうかな? さっきis11tのカーネルソースをgetしてremount拒否のとこを確認したのよ。 そしたら、if name="system" みたいになっててね。 "/system" じゃぁhitしない。"system" ならhitするかも、ってとこ。 >strncpy(top, mnt->mnt_mountpoint->d_name.name, __PATH_MAX); >if (!strcmp(top, "system")) { > printk("umount of system is not permitted\n"); > return -EPERM; >} んでは。
29 :
>>28 すまぬ。 4.が微妙に間違い。 4../kmem c01619c4 898 system syst@m (スラッシュを無しにするって事)
30 :
>>29 何度もありがとうございます。rootを取り、# cd /data/local 後、 # ./kmem c01619c4 898 system syst@m # mount -o remount,rw /dev/block/mtdblock1 /system mount: Operation not permitted
31 :
確認すべきは T do_mountの次の行がT sys_mountとは限らないことです。 T sys_mountはIS04の場合で他の機種では違う可能性もあります。 あとは/systemのblockをmtdblock1としていますがこれはmount等で 確認をされたのでしょうか? そうでなければ一応ターミナルからmountを打ち正しいブロックを 指定してみて下さい。
32 :
>>30 もうちょっとだけ粘ってみましょう。 kmem for is11t special test build ttp://www1.axfc.net/uploader/File/so/72002.dat パスは is11t コマンド名をkmemからkmem11tに変えてます。 今度のコマンドラインは以下で。 ./kmem11t c01619c4 898 system syst@m 実行して表示される全てを知らせて下さい。 チラ裏: kmem11tの変更点。 ・置換文字列検索の手抜きの為、0x80で始まるアドレス帯しか見てなかった。 ・これを0xC0を見るようにした。。。手抜きに手抜きを重ねたってことですw remountコマンドですが、初回マウントではないので色々端折って以下で行けない? mount -o remount,rw /system /system
33 :
>>32 kmem作者様、貴重なお時間を割いていただき、 申し訳ありません。 # ./kmem11t c01619c4 898 system syst@m ./kmem11t c01619c4 898 system syst@m mmap(C01619C4): start C0161000 len:0000125C Hit pointer on C0ED0000. Hit pointer on C064373D. Found 'system' on C064373D Modified 'system'->'syst@m' Hit pointer on C064C6BC. Hit pointer on C064C6E6. Hit pointer on C064C6FB. Hit pointer on C0812324. Hit pointer on C0557B94. Hit pointer on C064C657. 次にリマウントしてみました。 # mount -o remount,rw /system /system や # mount -o remount,rw /dev/block/mtdblock1 /system で 今度はエラーメッセージが出ませんが、マウントできないようです? (Titanium Backup、ES ファイルエクスプローラーで確認)
34 :
>>33 えっと、マウントできないようです、というのは何を見て判断されたのでしょう? # mount と入力すれば現在のマウント状態が表示されますのでソレを貼っちゃってくださいな。