0

次のコマンドを使用して、エミュレータを手動でルート化しました

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system
adb push su /system/xbin/su
adb shell chmod 06755 /system
adb shell chmod 06755 /system/xbin/su
adb install superuser.apk

正常にルート化され、su コマンドが機能していますが、エミュレーターを閉じてから再びエミュレーターを開くと、su コマンドが機能しません。これを克服するために、上記のコマンドをプログラムで実行するためのサンプルアプリを作成したいと思います

Runtime.getRuntime().exec();

上記のコマンドをプログラムで実行する方法を教えてください。

4

1 に答える 1

1

エミュレーターは、ADB シェルがルートとして実行されるという点で、すぐにルート化されます。

あなたが行ったことはそれを「ルート化」することではなく、既存のルートシェルを使用して一般的なハックをインストールし、アプリケーションプログラムがヘルパータスクをルートとして実行できるようにすることです。

ただし、ルートとしてヘルパーを起動する機能がまだないデバイス上のアプリケーションからこれを行うことはできません。そのため、ルート ヘルパーをインストールするためにルートが必要であるという循環依存または鶏と卵の問題に悩まされます。 .

悪用するセキュリティ ホール (または既存の意図的な権限昇格メカニズム) を見つけることなく、デバイスまたはエミュレーターでこれを行うことはできません。

でも:

  • エミュレータの状態を永続的にする方法を読んで、手動で一度だけ行うことができます

  • デバイス/エミュレーターではなく、開発マシンで実行されているスクリプトからコマンドを発行できます

于 2013-02-05T06:06:31.847 に答える