0

私は/etc/hosts/ファイルを変更しようとしています。そのために、外部ストレージに別のファイルを作成しcpてから、その場所に保存します。次のエラーメッセージが表示されます。

01-14 18:51:51.069: E/HostsActivity(5356): rm failed for /etc/hosts, Read-only file system
01-14 18:51:51.079: E/HostsActivity(5356): failed on '/mnt/sdcard/hosts' - Cross-device link

私は何をしますか?

RootToolsを使用しています。

私のコード:

        try {
            String fn = write_file("hosts", hostsData);
            RootTools.getShell(true).add(new Command(0, "rm /etc/hosts",  "mv " + fn + " /etc/hosts")
            {
                @Override
                public void output(int arg0, String arg1) {
                    // TODO Auto-generated method stub
                    Log.e("HostsActivity", arg1);
                }
            }).waitForFinish();
            tv_status.setText("Done");

        } catch (Exception ioe) {
            Log.e("HostsActivity", ioe.toString());
            tv_status.setText(ioe.toString());
        }

のアクティビティの最初にroot権限を要求しましたonCreate

if (!RootTools.isAccessGiven()) {
            TextView tv = new TextView(this);
            tv.setText("Root access not given. Please ensure root access.");
            setContentView(tv);
        }
    setContentView(R.layout.activity_hosts);
4

1 に答える 1

0

/ etcを再マウントする必要があります。デフォルトでは、読み取り専用のファイルシステムです。
/ etc / hostsのパーミッションを確認する必要があり、chmodコマンドを使用してファイルのパーミッションを修正する必要があるかもしれません。

于 2013-01-14T13:36:04.543 に答える