2012-03-16 8 views
6

Estoy implementando una demostración para desinstalar de manera silenciosa una aplicación del dispositivo.¿Cómo otorgar permisos de sistema a mi aplicación de Android?

En adb shell, puedo usar pm uninstall packagename para realizar la tarea, pero cuando escribí el código obtuve algún permiso denegado.

He estado buscando en Google por un tiempo, y he descubierto que para obtener el permiso DELETE_PACKAGES, tengo que firmar mi aplicación con el mismo certificado que el sistema.

Entonces, ¿alguien me puede dar algunos consejos sobre cómo hacer esto? O bien, ¿puedo hacer para que mi aplicación se ejecute como servicio del sistema?

Respuesta

2

Mucho mejor que una desinstalación silenciosa de alguna manera es bricking la aplicación. Hay algunas maneras en que esto se puede hacer, pero básicamente se realiza un seguimiento del primer día que lo usaron, y el programa no funciona. Alternativamente, podría configurarse para funcionar hasta cierto día, después del cual ya no funcionará. This question responde cómo hacerlo.

+1

bueno, el "jefe" me dijo que hiciera esta investigación, así que, en realidad, no tengo otra opción aquí ... –

1

Si su aplicación no se encuentra en "/ system/app", el permiso "DELETE_PACKAGES" no funcionará. Compila tu aplicación con el código fuente o prueba con "root";)

+0

Hola trébol, decidí compilar mi aplicación con el código fuente, y obtuve este error: java.security.cert.CertificateParsingException: campos firmados no válidos, ¿qué sucede aquí? –

+0

Agregué esta línea en mi archivo Android.mk, LOCAL_CERTIFICATE: = plataforma; y usé paquetes de mmm/app/test/para construir esta aplicación. –

+0

¿Tu aplicación utiliza acciones de certificado? Sabes que nunca he visto esta excepción antes. O cambiar la plataforma para compartir e intentar "crear" el código fuente ~ – Clover

4

No puedes hacer esto, a menos que estés construyendo tu propio firmware (ROM). Si es así, simplemente tome la llave que firma la ROM y firme su apk con ella. Si tiene un teléfono rooteado, también puede copiar el apk en /system/app para obtener el permiso.

+0

gracias, pero no estoy construyendo mi propio firmware. ¿Puedo construir mi aplicación con la fuente? –

+1

Podría, pero si la ROM en el dispositivo no está firmada con la misma clave, no funcionará. Si está utilizando el firmware estándar (de un operador, etc.), la única forma es rootear el teléfono y copiarlo '/ system/app'. O puede pedirles (¡muy bien!) Que lo firmen :) –

+0

¡bien, cópielo en/system/app suena como una buena opción, gracias! –

-3

Tengo experiencia acerca de cómo obtener el permiso para leer una aplicación Navegador de Favoritos

  1. Abra la AndroidManifest.xml de esa aplicación que desea agregar el permiso para ello.

2.Somewhere entre

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
</manifest> 

añadir este código

<uses-permission android:name="..." /> 

3. Para llenar el ... here ir Por ejemplo el siguiente código permitirá a aplicación para obtener marcador historia

+0

Esta pregunta parece que se trata de otorgar permisos de sistema restringidos en lugar de permisos públicos normales. – Sam

Cuestiones relacionadas