7 votos

¿Cómo puedo eliminar los permisos huérfanos que impiden la reinstalación de una aplicación en Android lollipop?

Tengo un teléfono ZTE en el que no puedo reinstalar facebook mediante Google Play Store: me aparece el famoso error -505 desconocido.

Si instalo un apk de facebook descargado usando adb obtengo el siguiente error.

pkg: /data/local/tmp/com.facebook.katana.apk Failure [INSTALL_FAILED_DUPLICATE_PERMISSION
perm=com.facebook.katana.permission.RECEIVE_ADM_MESSAGE pkg=com.facebook.katana]

Según la salida de

pm list packages

Así que el problema parece ser causado por permisos perdidos que se han quedado atrás y están impidiendo que facebook se reinstale.

Listando los permisos de facebook sobre adb obtengo lo siguiente

adb shell pm list permissions | grep facebook
permission:com.facebook.katana.permission.CROSS_PROCESS_BROADCAST_MANAGER
permission:com.facebook.permission.prod.FB_APP_COMMUNICATION
permission:com.facebook.receiver.permission.ACCESS
permission:com.facebook.katana.permission.RECEIVE_ADM_MESSAGE
permission:com.facebook.katana.provider.ACCESS
permission:com.facebook.katana.permission.C2D_MESSAGE
permission:com.facebook.permission.debug.SYSTEM_COMMUNICATION

La desinstalación mediante adb no elimina estos permisos. adb uninstall o adb uninstall -k com.facebook.katana

No veo la entrada parcial de facebook 'no instalado' en settings/apps/downloaded que algunos usuarios reportan. Mi aplicación de configuración, aparentemente personalizada, no permite acceder a las funciones multiusuario, lo que según algunas personas está relacionado con problemas similares.

¿Puedo limpiar estos permisos con adb? pm revoke no lo hará tal vez debido a las limitaciones de Lollipop. Actualmente no tengo acceso Root y soy reacio a Root el teléfono.

adb shell pm revoke com.facebook.katana com.facebook.katana.permission.RECEIVE_ADM_MESSAGE
Operation not allowed: java.lang.SecurityException: Permission com.facebook.katana.permission.RECEIVE_ADM_MESSAGE is not
 a changeable permission type

PASOS ADICIONALES DE DIAGNÓSTICO:

Para eliminar la posibilidad de un APK inválido utilicé la aplicación Google Play Store para instalar la aplicación de facebook y al mismo tiempo monitoricé el sistema utilizando logcat en su configuración más detallada. Buscando facebook en el registro se encuentran los siguientes mensajes de error que son muy similares a los errores de instalar el APK directamente arriba:

    [ 10-26 01:14:26.615   662: 1360 V/ActivityManager ]
Broadcast: Intent { act=com.android.launcher.action.ACTION_PACKAGE_INSTALLING dat=package:com.facebook.katana flg=0x10 pkg=com.google.android.googlequicksearchbox } ordered=false userid=0 callerApp=ProcessRecord{142b6192 2619:com.android.vending/u0a14}

[ 10-26 01:14:43.492   662:  704 W/PackageManager ]
Package com.facebook.katana attempting to redeclare permission com.facebook.katana.permission.RECEIVE_ADM_MESSAGE already owned by com.facebook.katana

[ 10-26 01:14:43.975  2619: 2619 E/Finsky   ]
[1] 2.onReceive: Error -505 while installing com.facebook.katana: INSTALL_FAILED_DUPLICATE_PERMISSION: Package com.facebook.katana attempting to redeclare permission com.facebook.katana.permission.RECEIVE_ADM_MESSAGE already owned by com.facebook.katana

[ 10-26 01:14:43.975  2619: 2619 W/Finsky   ]
[1] 3.installFailed: Install failure of com.facebook.katana: -505 null

"permission com.facebook.katana.permission.RECEIVE_ADM_MESSAGE ya propiedad de com.facebook.katana".

¿Significa esto que tengo algún tipo de APK remanente de una instalación anterior de com.facebook.katana (facebook se instaló previamente y luego se desinstaló)? ¿O significa que los permisos del dispositivo aún contienen alguna referencia a una aplicación com.facebook.katana inexistente? ¿Hay alguna otra medida que pueda tomar para diagnosticar este problema?

EDIT - Bloqueo apk parece ser parcialmente desinstalado sistema bloatware facebook aplicación

Si intenta listar paquetes de terceros desinstalados, sus archivos apk e instaladores usando adb:

adb shell pm list packages -f -i -u -3 

Veo una entrada para facebook

package:/system/vendor/operator/app/facebook/facebook.apk=com.facebook.katana installer=null

Las únicas otras entradas de terceros en el sistema parecen haber sido bloatware preinstalado en el teléfono. twitterappforzte es un buen ejemplo...

  package:/system/vendor/operator/app/CleanMaster/CleanMaster.apk=com.cleanmaster.mguard installer=null
  package:/system/vendor/operator/app/twitterappforzte/twitterappforzte.apk=com.twitter.android installer=null

Usando ADB es evidente que hay un archivo apk todavía presente aquí que presumiblemente está bloqueando la nueva instalación:

shell@P182A20:/system/vendor/operator/app/facebook $ ls -l 
drwxr-xr-x root     shell             2015-03-20 09:30 arm
-rw-r--r-- root     root     26450949 2015-03-20 09:30 facebook.apk

facebook no aparece si filtro las aplicaciones desinstaladas listando sólo las desactivadas.

He intentado tirar de este archivo bloatware facebook.apk desde el teléfono a mi disco local y volver a instalar usando adb pero me sale fallos de instalación.

C:\Program Files (x86)\Minimal ADB and Fastboot>adb install facebook.apk
5155 KB/s (26450949 bytes in 5.010s)
        pkg: /data/local/tmp/facebook.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]

Intentando desactivar/activar el paquete remanente usando ADB falla con error de seguridad, presumiblemente porque es una aplicación de sistema.

C:\Program Files (x86)\Minimal ADB and Fastboot>adb shell pm disable com.facebook.katana
Error: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=16143, uid=2000, package uid=10098

Enormes deméritos por pésima ingeniería a ZTE aquí. Pre-instalación de facebook y twitter archivos apk con procedencia desconocida que no se puede actualizar y evitar que las versiones actualizadas play store de ser instalado. Gran manera de poner agujeros de seguridad en sus teléfonos.

¿Hay alguna manera de volver a instalar este archivo apk bloatware del sistema que está muy presente todavía? Si no, ¿es posible marcar esta aplicación parcialmente "desinstalada" como desactivada para que no interfiera con las nuevas instalaciones?

2 votos

¿Puedes intentar instalar su APK usando Package installer? Pulse sobre el APK y acepte Instalar. Supongo que puede fallar aquí también, pero estoy interesado en los mensajes de error. Utilice logcat para registrar la instalación.

0 votos

Gracias por la sugerencia, no conocía esta herramienta. Lo intentaré mañana cuando vuelva a tener acceso físico al dispositivo.

0 votos

Intenta hacer un hard reset en tu teléfono, no un restablecimiento de fábrica. Un restablecimiento completo solucionará muchos problemas de Android y conservará los datos, la configuración, etc. Un restablecimiento de fábrica borrará tus datos y configuraciones.

0voto

Intenta hacer un hard reset en tu teléfono, no un restablecimiento de fábrica. Un restablecimiento completo solucionará muchos problemas de Android y conservará los datos, la configuración, etc. Un restablecimiento de fábrica borrará los datos y la configuración.

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