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


30

Eliminé una aplicación del sistema (com.android.mms) y tengo el .apk necesario para restaurarla, sin embargo, no se instalará a través de los canales estándar (ejecutar el .apk me da "aplicación no instalada"). ¿Cuál es la forma correcta de instalar el .apk de una aplicación del sistema?

Respuestas:


41

Tendrá que empujar el .apk al teléfono a la partición del sistema a la carpeta /system/appo /system/priv-appcuando use Android 4.3 adb. Puede encontrar más información adbaquí: http://android-dls.com/wiki/index.php?title=ADB .

Para poder escribirle /system, probablemente tenga que volver a montarlo lectura-escritura:

adb shell
su
mount -o rw,remount /system

O hágalo completamente desde el ADB del host:

adb root
adb remount

Ahora puedes 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

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

Después de haber colocado el .apkdebe reiniciar su dispositivo. Por ejemplo con adb reboot.


Sí, pensé que este sería el camino a seguir, lo intenté, dice una mala firma. Utilicé el Mms.apk que es parte de la rom .zip que utilicé para instalar el Android actual en ejecución.
Dmitriy Likhten

2
Hermosa respuesta Gracias. Un comentario, no pude "mv my-app.apk / system / app". Recibí un error "falló en 'XXX.apk' - Enlace entre dispositivos". Pude CP y RM el apk como se describe en android.stackexchange.com/questions/75920/…
Michael Levy

1
Considere usarlo en cplugar de hacerlo mvporque se está moviendo entre diferentes sistemas de archivos y no es compatible con todas las mvversiones
Andrés

esto no actualiza los permisos de Android con la ubicación de la apk, que se requiere para los paquetes que usan la apk
paIncrease

5

Carl Parker escribe sobre esto en Android Authority :
(parcialmente reproducido aquí en caso de que la publicación original no funcione)

Para aplicaciones instaladas en el dispositivo

  • Suponiendo que haya instalado la aplicación en su dispositivo, vaya al enlace de Google Play Store de la aplicación y tome nota de las palabras después de "? Id =" e ignore el resto.
  • Conecte su dispositivo a la computadora mediante un cable USB.
  • Abra el símbolo del sistema en su computadora y escriba los siguientes comandos:
adb remount 
adb shell 
su 
cd /data/app/ 
  • Escriba el comando ls appfilename*(donde "nombre del archivo de la aplicación" 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.
  • Ingrese el siguiente comando:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • El dispositivo ahora se reiniciará. Su aplicación ahora se guarda como una aplicación del sistema.

Para aplicaciones cuyos APK están en el disco duro de la PC

  • Abra un símbolo del sistema en su computadora y navegue hasta donde se encuentra el archivo APK.
  • Habilite la depuración de USB en su dispositivo y conéctelo a la computadora mediante un cable USB.
  • Ingrese los siguientes comandos:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

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


3

tenga en cuenta que cuando juegue con adb, instalará aplicaciones a través del nombre del archivo del paquete (es decir, en el símbolo del sistema, escriba> adb install myFile.apk)

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

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

Ayudará a agregar adb a su RUTA para que pueda ir al directorio donde está el archivo .apk y escribir adb install myFile.apk.


¡Gracias! No sabía acerca de la mecánica de desinstalación :)
Dmitriy Likhten

No lo he probado con las aplicaciones del sistema, pero para las aplicaciones habituales /system/bin/pm(Package Manager) la utilidad funcionó para mí. Me gusta pm install -r myFile.apk( -rpara "reemplazar"). De esta manera, no necesita desinstalar ni conocer el nombre del paquete.
Alexander Malakhov el

0

Necesita tener instalado el SDK de Android (o al menos una herramienta que se llama adb). Además, debe permitir "Instalaciones no comerciales" en su dispositivo.

Una vez hecho esto, cambie a la carpeta que contiene el archivo con una consola. Luego conecta tu teléfono (a través de USB) y ejecutaadb install appname.apk


Ver los comentarios de otras respuestas. Ya tengo habilitadas las instalaciones que no son de mercado desde que instalé swype :)
Dmitriy Likhten
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.