2

Androidファイルシステムを読み取り専用ではなく読み取り書き込みとして再マウントする必要があります。コマンドプロンプトでそれを行う方法と、アプリケーション開発のためにそれを行う方法も知っています。

しかし、私はAndroidのソースコードを微調整することに夢中です。

Process proc=Runtime.getRuntime.exec("su"); 

それは動作しません。したがってandroid.os.process、同じ目的でオブジェクトを使用する必要があり、ここで立ち往生しています。誰かがそれを手伝ってくれます。

4

2 に答える 2

0
  1. スーパーユーザー アクセスを取得するには、次のコードを試してください (スーパーユーザーがインストールされた root化された電話が必要です)。

    try {
        // Perform su to get root privledges
        Process p = Runtime.getRuntime().exec("su");
    
        DataOutputStream os = new DataOutputStream(p.getOutputStream());
    
        os.writeBytes("<..... here you may write commands ....>\n");
    
        // Close the terminal
        os.writeBytes("exit\n");
        os.flush();
    } catch (IOException e) {
        toastMessage("not root");
    }
    
  2. スーパーユーザーのアクセス権を取得したら、次をadbd使用して TCP ポートでリッスンを開始できます。

    setprop service.adb.tcp.port 5555
    adbd &
    setprop service.adb.tcp.port -1
    
  3. 選択したポートへの TCP 接続を開き、remountコマンドを発行します。

于 2012-05-10T07:55:30.913 に答える
0

実際、あなたが何をしようとしているのか理解するのは難しいです。ただし、Android ソース (aosp) を微調整している場合は、init.rc(system/core/rootdir の下にある) ファイルを変更してシステム イメージ rw を取得する方が簡単です。ランタイム中に状態を変更したい場合は、独自のネイティブ アプリケーションを作成し (たとえば、run-as コマンドを調べる)、その中でプロセスの uid を変更し、それを suid にして、ソースに埋め込む必要があります。 、アプリケーションから呼び出します。

于 2012-05-10T08:45:01.237 に答える