2010-07-15 21 views
1

Je veux désinstaller certaines applications inutiles de /system. J'ai super accès, et la permission DELETE_PACKAGE dans le manifeste. Mais quand je lanceDésinstaller des paquets invisibles dans Android

Runtime.exec("pm uninstall package")

Je reçois

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

Quelqu'un sait comment résoudre ce problème?

+1

Montrez-nous votre AndroidManifest.xml s'il vous plaît ... – Cristian

Répondre

3

Cela n'a pas d'importance si vous avez un accès root ou non. Vous ne pourrez pas désinstaller quoi que ce soit dans/system sans le remonter en lecture/écriture./Le système est en lecture seule.

vous devrez exécuter quelque chose comme ceci:

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

puis faites votre pm uninstall package, et enfin mettre le point de montage arrière à lecture seule. Chmod ne change pas le fait que tout dans/system est en lecture seule. cela signifie que RIEN n'a les permissions pour modifier ou supprimer des fichiers. vous devez le remonter pour l'enlever. juste un FYI, vous pouvez modifier votre question originale pour ajouter votre manifeste, mais je n'en ai pas besoin, je sais que c'est votre problème. Si le système est en lecture seule, vous ne pourrez même pas faire rm /system/somefile.ext. vous obtiendrez une erreur que/systemon est en lecture seule. La même chose se produit probablement lorsque pm uninstall s'exécute, et il suppose simplement que c'est un problème d'autorisations, ce qu'il est en quelque sorte.

+0

ceci est mon manifeste ... Fr4gg0r

+2

http://pastebin.org/397207 ici lisible par l'homme;) je tente le .. – Fr4gg0r

+0

remount Je pense que remount ne peut pas résoudre l'exception de la sécurité .. I essayé chmod 777/système/app/the_app qui devrait avoir le même effet que le remontage ou? – Fr4gg0r

0

Comme je viens de le lire,/système sur les galaxies est rw en stock. Je suis d'accord avec vous que/système doit être monté avant, mais comme je teste sur une galaxie s cela ne peut pas résoudre l'erreur affichée ci-dessus. (le montage n'est même pas une commande valide sur les galaxies).

+0

Je peux vous assurer,/system is not rw, sur la galaxie, ou n'importe quel appareil d'ailleurs. un utilisateur peut faire un rm -f -r/système et effacer tout le périphérique./system being rw ne va pas arriver. Il peut s'agir du démarrage initial de rw @, mais le script init change cela. vous pourriez faire un 'montage' depuis le terminal et il affichera les points de montage et s'ils sont ro/rw. –