Деинсталлировать пакеты невидимые в Android - PullRequest
1 голос
/ 15 июля 2010

Я хочу удалить некоторые бесполезные приложения из /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 ]

3 голосов
/ 15 июля 2010

Не имеет значения, есть ли у вас root-доступ или нет.Вы не сможете удалить что-либо в / system, не перемонтировав это как чтение / запись./ system только для чтения.

вам нужно будет выполнить что-то вроде этого:

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

, затем выполнить pm uninstall package и, наконец, вернуть точку монтирования обратно только для чтения.1008 *

chmod не меняет того факта, что все в / system доступно только для чтения.это означает, что НИЧЕГО не имеет права изменять или удалять файлы.Вы должны перемонтировать его, чтобы удалить его.просто к вашему сведению, вы можете отредактировать исходный вопрос, чтобы добавить свой манифест, но мне это не нужно, я знаю, что это ваша проблема.

если / system только для чтения, вы даже не сможете сделать rm /system/somefile.ext.вы получите ошибку, что / system только для чтения.То же самое, вероятно, происходит, когда запускается pm uninstall, и он просто предполагает, что у него есть проблема с разрешениями, которой он и является.

0 голосов
/ 17 июля 2010

Как я только что прочитал, / system на galaxy s есть на складе. Я согласен с вами, что / система должна быть смонтирована раньше, но так как я тестирую на Galaxy S, это не может решить ошибку, опубликованную выше. (mount - даже недопустимая команда в галактике).

...