Système Android Webview installé mais non utilisé par les applications

16

J'ai téléchargé et installé la dernière version du système Android WebView à partir de l'App Store sur ma tablette Android (exécutant 5.0.2).

Mais les applications continuent à utiliser l'ancienne version de WebView (39.0.0.0).

Comment puis-je les inciter à changer?

Pour info, j'ai essayé de désactiver l'ancien, et il est réactivé lorsque j'ouvre une application qui utilise WebView.

Clémentine
la source
2
Par curiosité, comment savez-vous quelle version de Webview une application utilise?
DukeSilversJazz
1
J'ai testé avec plusieurs applications, telles que Droidscript et WebView Browser et visité whatsmyuseragent
Clémentine
J'ai lu la source Lollipop, et cela ne devrait pas se produire. Il doit utiliser la dernière version, sauf si le fabricant a remplacé la classe WebViewFactory par la leur. Quel appareil / modèle exact et quelle version fournie par le fabricant utilisez-vous?
Mufasa
Salut Musafa pourquoi avez-vous supprimé votre réponse?
Clémentine
J'utilise des tablettes bon marché, et j'ai essayé sur plusieurs marques (digiflip de flipkart, time2), je vais essayer sur le lenovo TAB 2 A7 dans les prochains jours
Clémentine

Réponses:

19

Vous ne pouvez pas changer cela sans root.

La structure du système est codée en dur pour utiliser un package spécifique pour les applications qui demandent un composant WebView. Par défaut (dans AOSP), il utilise la valeur com.android.webview, qui est la version qui est compilée pendant le processus de génération AOSP. Sur les appareils des fabricants qui modifient ce composant, le nom du package peut différer. Quoi qu'il en soit, afin de remplacer la WebView fournie avec votre appareil, vous devez modifier cette valeur pour qu'elle soit com.google.android.webview.

La façon «manuelle» de procéder consiste à extraire le fichier framework-res.apk de votre appareil, à le décompiler et à modifier la valeur de la config_webViewPackageNamevariable de ressource. Il doit être situé /res/values/strings.xmldans le .apk. Une fois que vous avez fait cela, vous devrez tout reconditionner et pousser le nouveau .apk sur votre appareil, en remplaçant l'ancien.

Une autre méthode que vous pouvez essayer consiste à installer le cadre Xposed , puis à utiliser le module WebViewGoogle . Si vous utilisez une ROM personnalisée, vous pouvez également être en mesure de trouver un package qui modifiera de manière permanente les composants de framework nécessaires (ou il peut être construit pour utiliser WebView de Google par défaut).

Mon hypothèse serait que cette restriction existe en partie parce que le système repose sur une implémentation WebView existante sous une forme quelconque, donc si elle pouvait être modifiée par un utilisateur, elle pourrait casser le système de manière étrange. Il y aurait également des implications de sécurité à permettre aux applications de remplacer le WebView du système, comme un mauvais acteur tentant de fournir un programme malveillant à l'insu de l'utilisateur.

À titre d'explication supplémentaire: la raison pour laquelle la WebView système est disponible dans le Play Store pour commencer est que les appareils Nexus (et éventuellement d'autres) sont livrés préinstallés et configurés pour l'utiliser. Il s'agit en fait du système WebView pour ces appareils.Par conséquent, Google est en mesure de fournir des mises à jour WebView pour ces appareils via le Play Store afin que les OTA système complets ne soient pas nécessaires uniquement pour mettre à jour le navigateur / WebView. Il existe d'autres composants que Google a migrés vers la mise à jour du Play Store de la même manière, le raisonnement étant essentiellement qu'il est plus rapide. Le téléphone et les contacts étaient deux des plus récents, l'article lié fournissant des détails supplémentaires sur les raisons pour lesquelles Google a adopté cette approche.

eldarerathis
la source
1
Merci pour cette explication .. mais, à quoi sert alors cette application de visualisation Web du système Android?
Clémentine
1
@ Les appareils Clémentine Nexus (éventuellement d'autres) sont livrés pré-installés et configurés pour l'utiliser. Il s'agit en fait du système WebView pour ces appareils.Par conséquent, Google est en mesure de fournir des mises à jour WebView pour ces appareils via le Play Store afin que les OTA système complets ne soient pas nécessaires uniquement pour mettre à jour le navigateur / WebView. Il existe d'autres composants que Google a migrés vers la mise à jour du Play Store de la même manière, le raisonnement étant essentiellement qu'il est plus rapide.
eldarerathis
1
pourquoi toutes les tablettes exécutant lollipop ou un système d'exploitation plus récent n'utilisent-elles pas cela comme système par défaut WebView, cela ressemble à un gaspillage!
Clémentine
1
@ Clémentine Le contrôle de Google sur les fabricants tiers est quelque peu limité. Ils pourraient probablement choisir d'utiliser WebView de source fermée de Google comme les appareils Nexus, mais ils peuvent choisir de ne pas le faire pour une raison quelconque. Je ne suis pas sûr des détails concernant la façon dont Google concède sous licence leurs applications de source fermée aux OEM, mais ces termes (quels qu'ils soient) pourraient être un facteur dans la décision du fabricant.
eldarerathis
Merci pour toutes ces informations. Faire la lumière sur beaucoup de questions que j'avais en tête. Sera alors à la recherche d'une tablette préinstallée.
Clémentine