我想从/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.
任何人都知道如何解决这个问题?
答案 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甚至不是关于星系的有效命令)。