34 votos

¿Cómo puedo instalar correctamente una aplicación del sistema dado su .apk?

He eliminado una aplicación del sistema (com.Android.mms) y tengo el .apk necesario para restaurarla, sin embargo no se instala por los canales estándar (al ejecutar el .apk me da "aplicación no instalada"). ¿Cuál es la forma correcta de instalar el .apk de una aplicación de sistema?

47voto

jonesdavide Puntos 176

Tendrá que empujar el .apk al teléfono a la partición del sistema a la carpeta /system/app o /system/priv-app cuando se utiliza Android 4.3 con adb . Puede encontrar más información sobre adb aquí: http://Android-dls.com/wiki/index.php?title=ADB .

Para escribir a /system es probable que tengas que volver a montarlo en lectura-escritura:

adb shell
su
mount -o rw,remount /system

O bien, hacerlo completamente desde el ADB del host:

adb root
adb remount

Ahora puede colocar el .apk :

adb push my-app.apk /sdcard/
adb shell
su
cd /sdcard
mv my-app.apk /system/app
# or when using Android 4.3 or higher
mv my-app.apk /system/priv-app

Después, si las banderas no están ya establecidas, cambie los permisos. Todas las aplicaciones del sistema deben tener los permisos rw-r--r-- . También puedes cambiarlos a través de ADB con el comando chmod 644 /path_to/your_file . Aunque es bastante antiguo, esto puede ayudar

Después de haber colocado el .apk necesitas reiniciar tu dispositivo. Por ejemplo, con adb reboot .

0 votos

Sí, me imaginé que este sería el camino a seguir, lo probé, dice mala firma. Utilicé el Mms.apk que es parte de la rom .zip que utilicé para instalar el actual Android corriendo.

2 votos

Hermosa respuesta. Gracias. Un comentario, yo no era capaz de "mv mi-app.apk /system/app". Me dio un error "falló en 'XXX.apk' - Cross-device link". Yo era capaz de CP y RM el apk como se describe en Android.stackexchange.com/questions/75920/

2 votos

Considere la posibilidad de utilizar cp en lugar de mv porque te mueves entre diferentes sistemas de archivos y no es compatible con todos los mv versiones

6voto

Mindwin Puntos 378

Carl Parker escribe sobre ello en Android Authority :
(reproducido parcialmente aquí en caso de que el post original se caiga)

Para las aplicaciones instaladas en el dispositivo

  • Suponiendo que haya instalado la aplicación en su dispositivo, vaya al enlace de la aplicación en Google Play Store y fíjese en las palabras que aparecen después de "?id=" e ignora el resto.
  • Conecte su dispositivo al ordenador mediante un cable USB cable.
  • Abra el símbolo del sistema en su ordenador y escriba los siguientes comandos:
adb remount 
adb shell 
su 
cd /data/app/ 
  • Escriba el comando ls appfilename* (donde "appfilename" es el ID de la aplicación en Google Play Store; asegúrese de incluir el asterisco al final). Este comando mostrará el nombre de archivo APK completo de la aplicación.
  • Introduzca el siguiente comando:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • El dispositivo se reiniciará ahora. Su aplicación se ha guardado como una aplicación del sistema del sistema.

Para aplicaciones cuyos APKs están en el disco duro del PC

  • Abra un símbolo del sistema en su ordenador y navegue hasta donde se encuentra el archivo APK se encuentra el archivo APK.
  • Active la depuración USB en su dispositivo y conecte su dispositivo al ordenador mediante un cable USB.
  • Introduzca los siguientes comandos:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

El teléfono se reiniciará automáticamente. Su aplicación se guardará ahora como una aplicación del sistema.

3voto

Dr.Dredel Puntos 684

Tenga en cuenta que al jugar con adb instalará las aplicaciones a través de su nombre de archivo de paquete (es decir, en el símbolo del sistema escribirá >adb install myFile.apk)

pero los desinstalarás a través de su nombre de paquete (>adb uninstall com.this.that.otherthing)

No podrás instalar un paquete hasta que hayas desinstalado su predecesor.

Te ayudará añadir adb a tu PATH para que sólo tengas que ir al directorio donde está el archivo .apk y escribir adb install myFile.apk.

0 votos

Gracias. No sabía lo de la mecánica de desinstalación :)

0 votos

No he probado con las aplicaciones del sistema, pero sí con las aplicaciones habituales /system/bin/pm (Package Manager) me ha funcionado. Como pm install -r myFile.apk ( -r para "reemplazar"). De esta manera no es necesario desinstalar y conocer el nombre del paquete.

0voto

JimDaniel Puntos 4853

Necesitas tener instalado el SDK de Android (o al menos una herramienta que se llame adb). Además, necesitas permitir las "instalaciones fuera del mercado" en tu dispositivo.

Una vez hecho esto, se cambia a la carpeta que contiene el archivo con una consola. A continuación, conecta tu teléfono (vía USB) y ejecuta adb install appname.apk

0 votos

Ver los comentarios de otras respuestas. Ya tengo habilitada la instalación no comercial desde que tengo instalado swype :)

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X