卸载在Android中不可见的软件包

时间:2010-07-15 02:46:27

标签: android packages uninstall root

我想从/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.

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

如果您具有root访问权限,则无关紧要。如果不将它重新安装为读/写,您将无法在/ system中卸载任何内容。 / system是readonly。

你必须运行这样的东西:

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

然后执行你的pm uninstall package,最后将挂载点恢复为readonly。

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

chmod并没有改变/ system中所有内容都是readonly的事实。这意味着NOTHING有权修改或删除文件。你必须重新安装才能删除它。只是一个FYI,您可以编辑原始问题以添加清单,但我不需要它,我知道这是您的问题。

如果/ system是readonly,你甚至不能做rm /system/somefile.ext。你会得到一个/ system只读的错误。当pm uninstall运行时,可能会发生同样的事情,并且它只是假设它是一个权限问题,它就是这样。

答案 1 :(得分:0)

正如我刚刚读到的那样,星系上的/系统是股票的。 我同意你的意见/系统必须先安装,但是 因为我正在测试一个星系,这无法解决发布的错误 以上。 (mount甚至不是关于星系的有效命令)。