Webview del sistema Android instalado pero no utilizado por las aplicaciones

16

Descargué e instalé la última versión del sistema Android WebView de la tienda de aplicaciones en mi tableta Android (con 5.0.2).

Pero las aplicaciones siguen usando la versión anterior de webview (39.0.0.0).

¿Cómo puedo hacer que cambien?

Para obtener información, he intentado deshabilitar la anterior, y se vuelve a habilitar cuando abro una aplicación que usa webview.

Clémentine
fuente
2
Por curiosidad, ¿cómo sabes qué versión de Webview está usando una aplicación?
DukeSilversJazz
1
He estado probando con varias aplicaciones, como Droidscript y WebView Browser y visité whatsmyuseragent
Clémentine
He leído la fuente de Lollipop, y esto no debería estar sucediendo. Debería usar lo último a menos que el fabricante haya reemplazado la clase WebViewFactory por la suya. ¿Qué dispositivo / modelo exacto y qué versión suministrada por el fabricante está ejecutando?
Mufasa
Hola Musafa, ¿por qué borraste tu respuesta?
Clémentine
Estoy usando tabletas de bajo costo, y probé en varias marcas (digiflip de flipkart, time2), voy a probar el lenovo TAB 2 A7 en los próximos días
Clémentine

Respuestas:

19

No puedes cambiar esto sin root.

El marco del sistema está codificado para usar un paquete específico para aplicaciones que solicitan un componente WebView. Por defecto (en AOSP) usa el valor com.android.webview, que es la versión que se compila durante el proceso de compilación de AOSP. En dispositivos de fabricantes que modifican este componente, el nombre del paquete puede diferir. En cualquier caso, para reemplazar el WebView que se envió con su dispositivo, debe modificar este valor para que sea com.google.android.webview.

La forma "a mano" de hacer esto sería extraer el archivo framework-res.apk de su dispositivo, descompilarlo y cambiar el valor de la config_webViewPackageNamevariable del recurso. Debería estar ubicado /res/values/strings.xmldentro de .apk. Una vez que hayas hecho esto, deberías volver a empaquetar todo y llevar el nuevo .apk a tu dispositivo, reemplazando el anterior.

Un método alternativo que puede intentar es instalar el marco Xposed y luego usar el módulo WebViewGoogle . Si utiliza una ROM personalizada, también puede encontrar un paquete que modifique de forma permanente los componentes necesarios del marco (o puede crearse para utilizar WebView de Google de forma predeterminada).

Mi hipótesis sería que esta restricción existe en parte porque el sistema se basa en una implementación de WebView que existe de alguna forma, por lo que si un usuario pudiera modificarla, podría romper el sistema de manera extraña. También habría implicaciones de seguridad al permitir que las aplicaciones anulen el WebView del sistema, como un mal actor que intenta proporcionar una maliciosa sin que el usuario lo sepa.

Como un punto de explicación adicional: la razón por la cual System WebView está disponible en Play Store para empezar es porque los dispositivos Nexus (y posiblemente otros) se envían preinstalados y configurados para usarlo. Es, en efecto, el sistema WebView para esos dispositivos. Por lo tanto, Google puede proporcionar actualizaciones de WebView para estos dispositivos a través de Play Store, por lo que las OTA del sistema completo no son necesarias solo para actualizar el navegador / WebView. Hay otros componentes que Google ha migrado a Play Store actualizando de manera similar, con el razonamiento esencialmente de que es más rápido. Teléfono y Contactos fueron dos de los más recientes, con el artículo vinculado que proporciona algunos detalles adicionales sobre por qué Google ha adoptado este enfoque.

eldarerathis
fuente
1
Gracias por esta explicación ... pero, ¿para qué sirve esta aplicación webview del sistema Android?
Clémentine
1
Los dispositivos @ Clémentine Nexus (posiblemente otros) se envían con él preinstalado y configurado para usarlo. Es, en efecto, el sistema WebView para esos dispositivos. Por lo tanto, Google puede proporcionar actualizaciones de WebView para estos dispositivos a través de Play Store, por lo que las OTA del sistema completo no son necesarias solo para actualizar el navegador / WebView. Hay otros componentes que Google ha migrado a Play Store actualizando de manera similar, con el razonamiento esencialmente de que es más rápido.
eldarerathis
1
¿Por qué todas las tabletas que ejecutan lollipop o un sistema operativo más nuevo no usan esto como su sistema predeterminado WebView, parece un desperdicio!
Clémentine
1
@ Clémentine El control de Google sobre terceros fabricantes es algo limitado. Probablemente podrían optar por usar el WebView de código cerrado de Google al igual que los dispositivos Nexus, pero pueden optar por no hacerlo por cualquier razón. No estoy seguro de los detalles sobre cómo Google otorga licencias de sus aplicaciones de código cerrado a los OEM, pero esos términos (cualesquiera que sean) podrían ser un factor en la decisión del fabricante.
eldarerathis
Gracias por toda esta información. Arrojando luz sobre muchas preguntas que tenía en el fondo de mi mente. Buscará una tableta que la tenga preinstalada en ese momento.
Clémentine