1

から役に立たないアプリをアンインストールしたい/system。私はスーパーアクセスとDELETE_PACKAGEマニフェストの許可を持っています。しかし、私が走るとき

Runtime.exec("pm uninstall package")

私は得る

ERROR/AndroidRuntime(10981): java.lang.SecurityException: Neither user 10094 nor current process has android.permission.DELETE_PACKAGES.

誰もがこれを解決する方法を知っていますか?

4

2 に答える 2

3

root アクセス権があるかどうかは関係ありません。読み取り/書き込みとして再マウントしない限り、/system 内のものをアンインストールすることはできません。/system は読み取り専用です。

次のようなものを実行する必要があります。

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

次に、を実行しpm uninstall package、最後にマウントポイントを読み取り専用に戻します。

mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system 

chmod は、/system 内のすべてが読み取り専用であるという事実を変更しません。つまり、ファイルを変更または削除する権限は何もありません。削除するには、再マウントする必要があります。参考までに、元の質問を編集してマニフェストを追加できますが、それは必要ありません。それがあなたの問題であることはわかっています。

/system が読み取り専用の場合、実行することさえできませんrm /system/somefile.ext。/system が読み取り専用であるというエラーが表示されます。おそらく実行時に同じことが起こっpm uninstallており、パーミッションの問題を想定しているだけです。

于 2010-07-15T03:38:43.783 に答える
0

読んだばかりのように、galaxy s の /system は rw at stock です。/system を事前にマウントする必要があることに同意しますが、galaxy s でテストしているため、上記のエラーを解決できません。(mount は、galaxy s では有効なコマンドでさえありません)。

于 2010-07-16T20:51:35.287 に答える