Android-System Webview installiert, aber nicht von Apps verwendet

16

Ich habe die neueste Version des Android-Systems WebView aus dem App Store auf mein Android-Tablet heruntergeladen und installiert (unter 5.0.2).

Apps verwenden jedoch weiterhin die alte Webview-Version (39.0.0.0).

Wie kann ich sie dazu bringen, zu wechseln?

Zur Information, ich habe versucht, die alte zu deaktivieren. Sie wird wieder aktiviert, wenn ich eine App öffne, die Webview verwendet.

Clémentine
quelle
2
Woher wissen Sie aus Neugier, welche Version von Webview eine App verwendet?
DukeSilversJazz
1
Ich habe mit verschiedenen Apps wie Droidscript und WebView Browser getestet und whatsmyuseragent
Clémentine am
Ich habe die Lollipop-Quelle durchgelesen, und das sollte nicht passieren. Es sollte die neueste Version verwendet werden, es sei denn, der Hersteller hat die WebViewFactory-Klasse durch eine eigene ersetzt. Welches Gerät / Modell und welche vom Hersteller gelieferte Version verwenden Sie genau?
Mufasa
Hallo Musafa, warum hast du deine Antwort gelöscht?
Clémentine
Ich benutze Low-Cost-Tablets und habe verschiedene Marken ausprobiert (Digiflip von flipkart, time2). In den kommenden Tagen werde ich das Lenovo TAB 2 A7 testen
Clémentine

Antworten:

19

Sie können dies nicht ohne root ändern.

Der Systemrahmen ist hart codiert ein bestimmtes Paket für Anwendungen zu verwenden , das eine Komponente WebView fordern. Standardmäßig (in AOSP) wird der Wert verwendet com.android.webview, bei dem es sich um die Version handelt, die während des AOSP-Erstellungsprozesses kompiliert wird. Bei Geräten von Herstellern, die diese Komponente ändern, kann der Paketname abweichen. Unabhängig davon müssen Sie diesen Wert ändern, um das mit Ihrem Gerät gelieferte WebView zu ersetzen com.google.android.webview.

Die Methode "von Hand" besteht darin, die Datei framework-res.apk von Ihrem Gerät abzurufen , sie zu dekompilieren und den Wert der config_webViewPackageNameRessourcenvariablen zu ändern . Es sollte sich in /res/values/strings.xmlder .apk befinden. Sobald Sie dies getan haben, müssen Sie alles neu packen und die neue APK-Datei auf Ihr Gerät übertragen, wobei die alte ersetzt wird.

Eine alternative Methode, die Sie versuchen können, besteht darin, das Xposed-Framework zu installieren und dann das WebViewGoogle-Modul zu verwenden . Wenn Sie ein benutzerdefiniertes ROM verwenden, können Sie möglicherweise auch ein Paket finden, mit dem die erforderlichen Framework-Komponenten dauerhaft geändert werden (oder das standardmäßig für die Verwendung von Google WebView erstellt wurde).

Meine Hypothese wäre, dass diese Einschränkung teilweise besteht, weil das System auf einer WebView-Implementierung beruht, die in irgendeiner Form vorhanden ist. Wenn sie also von einem Benutzer geändert werden könnte, könnte dies das System auf seltsame Weise beschädigen. Das Ermöglichen, dass Apps das WebView des Systems außer Kraft setzen, würde auch Sicherheitsrisiken mit sich bringen, z. B. wenn ein schlechter Akteur versucht, einen böswilligen bereitzustellen, ohne dass der Benutzer dies weiß.

Zur weiteren Erklärung: Der Grund, warum das System WebView im Play Store verfügbar ist, ist, dass Nexus-Geräte (und möglicherweise andere) bereits vorinstalliert und für die Verwendung konfiguriert sind. Tatsächlich ist es das System-WebView für diese Geräte. Auf diese Weise kann Google WebView-Updates für diese Geräte über den Play Store bereitstellen, sodass keine vollständigen System-OTAs erforderlich sind, nur um den Browser / WebView zu aktualisieren. Es gibt andere Komponenten, die Google auf ähnliche Weise auf Play Store-Aktualisierungen migriert hat, mit der Begründung, dass sie im Wesentlichen schneller sind. Telefon und Kontakte waren zwei der neueren, wobei der verlinkte Artikel einige zusätzliche Details darüber enthält, warum Google diesen Ansatz gewählt hat.

eldarerathis
quelle
1
Vielen Dank für diese Erklärung .. aber was nützt diese Android-System-Webview-App dann?
Clémentine
1
@ Clémentine Nexus-Geräte (möglicherweise auch andere) sind bereits vorinstalliert und für die Verwendung konfiguriert. Tatsächlich ist es das System-WebView für diese Geräte. Auf diese Weise kann Google WebView-Updates für diese Geräte über den Play Store bereitstellen, sodass keine vollständigen System-OTAs erforderlich sind, nur um den Browser / WebView zu aktualisieren. Es gibt andere Komponenten, die Google auf ähnliche Weise auf Play Store-Aktualisierungen migriert hat, mit der Begründung, dass sie im Wesentlichen schneller sind.
Eldarerathis
1
Warum verwenden alle Tablets, auf denen Lollipop oder ein neueres Betriebssystem ausgeführt wird, dies nicht als Standardsystem für WebView? Das klingt nach Verschwendung!
Clémentine
1
@ Clémentine Googles Kontrolle über Dritthersteller ist etwas eingeschränkt. Sie könnten sich wahrscheinlich dafür entscheiden, Googles Closed-Source-WebView genau wie Nexus-Geräte zu verwenden, entscheiden sich aber möglicherweise aus irgendeinem Grund dafür, dies nicht zu tun. Ich bin mir nicht sicher, wie Google seine Closed-Source-Anwendungen an OEMs lizenziert, aber diese Bedingungen (wie auch immer) könnten bei der Entscheidung des Herstellers eine Rolle spielen.
Eldarerathis
Danke für all diese Infos. Ich gab Licht auf viele Fragen, die ich im Hinterkopf hatte. Werde nach einem Tablet suchen, auf dem es dann vorinstalliert ist.
Clémentine