Estoy usando una placa Android con una ROM personalizada basada en Android 4.4.2. Estaba intentando anular una aplicación /system/priv-app/ instalando una versión actualizada en la partición normal.
Mientras probaba me di cuenta de que la anulación sólo se mantiene hasta el reinicio, así que empecé a indagar en el código fuente de AOSP y me encontré con la llamada a disableSystemPackageLPw
que a su vez llama a writeLPr
.
Si writeLPr
espero ver mi paquete en el archivo "/data/system/packages.xml". Sin embargo, ese no es el caso aquí y por lo tanto sospecho que es la causa principal.
Sería estupendo conocer la opinión sobre el uso esperado de packages.xml de los usuarios de la comunidad para confirmar lo mismo.
1 votos
No me lo creo. ¿De dónde saca el sistema el apk antiguo después de haberlo sustituido?
1 votos
Como dijo @alecxs eso no debería ocurrir porque el nuevo apk se guarda inmediatamente en
/data/app
en la actualización. Los ajustes pueden estar almacenados en la caché durante algún tiempo. Intenta borrar los datos de la aplicación después de la actualización. O forzar la escriturapm
de los datos en caché:dumpsys package write
.0 votos
@alecxs El apk antiguo sigue en /system/priv-app. Basado en lo que leí en el código de escaneo de PackageManager. Se escanea el sistema de archivos para las rutas /system/priv-app, /system/app, /vendor/app y /data/app para registrar los paquetes instalados después del arranque. Dado que system/priv-app se escanea primero, el apk antiguo obtiene el oackage registrado y el apk en /data se trata como duplicado. Obtengo un registro que dice "Skipping duplicate package" en logcat desde la etiqueta "PackageManager",
0 votos
@IrfanLatif He probado otra placa Android. Allí pude comprobar que packages.xml tenía dos entradas para mi paquete; una con la etiqueta <paquete-actualizado> y otra con <paquete>. En esta placa Android mi actualización se mantiene tras el arranque como era de esperar. Y tampoco veo el registro de Duplicación de Salto. Así que en general he llegado a la conclusión de que es un problema específico de la ROM.
0 votos
Leí mal la pregunta. Pensé que había sobrescrito el apk en /system/priv-app
0 votos
El duplicado puede ser causado por una firma apk diferente
1 votos
@alecxs pude comunicarme con la persona que mantiene la ROM. packages.xml al no tener esa entrada fue la causa principal. Gracias