Cómo desinstalar una aplicación del sistema usando el comando de desinstalación adb (NO eliminar mediante rm o de otra manera)

12

Tengo que mencionar esto para evitar posibles confusiones, esta pregunta no es duplicada. Esta pregunta es específica para usar adb para desinstalar un paquete . Hay varias preguntas similares, pero todas son diferentes de esta, ya que se centran en eliminar una aplicación por cualquier medio.

No proporcione respuestas con el comando "rm" para eliminar los archivos del paquete. Además, las respuestas relacionadas con nombres de paquetes mal formados o retornos de carro finales. Creo que están casi todos cubiertos en todas las otras preguntas.

Tenía pm uninstallfuncionalidad pero después de la actualización de ROM. Algunas cosas ya no se desinstalarán. Por ejemplo, las siguientes dos aplicaciones del sistema (que
eliminé en la ROM anterior, mejorando significativamente el rendimiento general): /system/priv-app/SecurityCenter/SecurityCenter.apk=com.miui.securitycenter
/system/app/Updater/Updater.apk= com.android.updater

Ahora recibo un error al intentar pm desinstalarlos: Error [DELETE_FAILED_INTERNAL_ERROR]

Pero otras aplicaciones del sistema (que no se desinstalarán a través de la interfaz normal de Android) se desinstalan mediante un pm uninstallcomando. Ejemplo:
/system/priv-app/Browser/Browser.apk=com.android.browser

Entonces, ambas son aplicaciones del sistema, ¿cuál podría ser la diferencia entre ellas?

Como referencia, actualicé MIUI 8.1.6.0 a 8.5.3.0, y reinstalé TWRP y SuperSU. Esta pregunta no es específica de mi ROM, ya que veo que otras personas están en la misma situación. Pero parece que tengo la ventaja de poder desinstalar algunas aplicaciones del sistema. Y estoy dispuesto a contribuir, para encontrar una solución para todos, para desinstalar cualquier aplicación.

Intenté: mount -o rw, remontaje / sistema
pero eso no lo resolvió.

Por favor ayuda con cualquier idea en el camino. ¡Gracias!


Update 1 - Confirmación de pasos para evitar problemas intermitentes
* Borró todas las particiones en TWRP
* ROM instalada más reciente (MIUI 8.5.3.0)
* Regresó a TWRP, solo borró / Datos
* Restaurado / Datos de la versión respaldada de la ROM que vino con el dispositivo (MIUI 8.1.6.0)
* Ahora, después de iniciar el sistema operativo, la ROM se muestra como la última (MIUI 8.5.3.0) en la configuración

Ahora puedo desinstalar todas las aplicaciones que he probado. Incluso los más resistentes: Google APP, Updater, Security.

Este Frankenstein .. err quiero decir que la ROM híbrida funciona bien hasta ahora, y ya he eliminado muchos paquetes del sistema, haciendo que el teléfono (Redmi 3S +) sea visiblemente más rápido. Pero aún me gustaría precisar qué estaba causando que esto se convirtiera en una solución genérica . Entonces, si no está roto, estoy dispuesto a romperlo, así que la próxima vez que se rompa sabremos qué lo está causando y cómo solucionarlo.

Update 2 -
* Borró todas las particiones y restauró todas las particiones de la ROM original.
* Restaurado a la configuración de fábrica (usando TWRP)
* y después de arrancar en ROM, regresó a TWRP e hizo otra copia de seguridad
* Usando el mismo escenario que en la Actualización 1 anterior, con la única excepción de usar / Datos desde aquí. pm desinstalar no funciona.

¿Alguna idea sobre las diferencias entre las dos particiones / Datos en las que debería centrarme?

Emil
fuente
1
AFAIK pm uninstallno se puede usar con aplicaciones del sistema. Como no está claro si realmente desea desinstalar o simplemente ocultar una aplicación (que mencionó pm disable), ¿podría pm hideser lo que realmente está buscando?
Izzy
@Izzy Sí, puede. Eso es lo que digo anteriormente, solo lo edité / lo hice un poco más claro. Quiero desinstalar por la tarde, pero lo que quise decir es que, antes de actualizar, podía hacer ambas cosas, desinstalar y deshabilitar las aplicaciones del sistema, incluso escribí buenos scripts para encargarme de todo después de la actualización.
Emil
Nunca he tenido éxito con las pm uninstallaplicaciones del sistema. Pero tengo una suposición: ¿su ROM anterior es una compilación de "ingeniería"? Supongo que funciona con una construcción ing (también conocida como desarrollo dev).
iBug
@iBug no, en realidad la ROM anterior era la que venía con este teléfono. La nueva ROM también es una actualización oficial del sitio del fabricante.
Emil
1
@Firelord Mi configuración de MIUI Optiomization ya estaba desactivada . device_owner.xml está ausente. device_policies.xml solo tiene estas líneas: <? xml version = '1.0' encoding = 'utf-8' standalone = 'yes'?> <directivas setup-complete = "true"> <active-password -stuff here- /> </policies>
Emil

Respuestas:

18

Logré agregar las opciones -k y --user al comando pm , por ejemplo:

pm uninstall -k --user 0 com.android.service

El comando se emitió como root, no es necesario volver a montar / system como rw. Android en el teléfono es 6.0 y el paquete es una aplicación del sistema. Sin la opción adicional me sale el error:

Failure [DELETE_FAILED_INTERNAL_ERROR]
RigacciOrg
fuente
1
Gracias. Para cualquiera que lea, algunas guías tienen un solo guión delante del usuario, lo que me estaba causando el error.
TrojanName
3

También funciona sin la opción -k (mantener la configuración del usuario):

pm uninstall --user 0 com.android.service

y sin abrir adb shell:

adb uninstall --user 0 com.android.service
Andrei Karcheuski
fuente
actualizado de miui 10 a miui 11. pero para algunos sistemas / aplicaciones privadas estos comandos fallan. por ejemplo, para com.miui.calculator
srv_sud