System Android Webview zainstalowany, ale nie używany przez aplikacje

16

Pobrałem i zainstalowałem najnowszą wersję systemu Android WebView ze sklepu z aplikacjami na moim tablecie z Androidem ( wersja 5.0.2).

Ale aplikacje nadal używają starej wersji Webview (39.0.0.0).

Jak mogę zmusić ich do zmiany?

Aby uzyskać informacje, próbowałem wyłączyć starą, a ona zostaje ponownie włączona po otwarciu aplikacji korzystającej z widoku internetowego.

Clémentine
źródło
2
Z ciekawości, skąd wiesz, z której wersji Webview korzysta aplikacja?
DukeSilversJazz
1
Testowałem z kilkoma aplikacjami, takimi jak Droidscript i WebView Browser, i odwiedziłem whatsmyuseragent
Clémentine
Przeczytałem źródło Lollipop i to nie powinno się zdarzyć. Powinien używać najnowszych, chyba że producent zastąpił klasę WebViewFactory własną. Jakie dokładnie urządzenie / model i wersję dostarczoną przez producenta używasz?
Mufasa,
Cześć Musafa, dlaczego usunąłeś swoją odpowiedź?
Clémentine
Używam tanich tabletów i wypróbowałem kilka marek (digiflip z flipkart, time2), zamierzam wypróbować lenovo TAB 2 A7 w najbliższych dniach
Clémentine

Odpowiedzi:

19

Nie możesz tego zmienić bez rootowania.

Struktura systemu jest na stałe zakodowana w celu użycia określonego pakietu dla aplikacji żądających komponentu WebView. Domyślnie (w AOSP) używa wartości com.android.webview, która jest wersją kompilowaną podczas procesu kompilacji AOSP. W urządzeniach producentów modyfikujących ten komponent nazwa pakietu może się różnić. Niezależnie od tego, aby zastąpić WebView dostarczony z urządzeniem, musisz zmodyfikować tę wartość, aby była com.google.android.webview.

Ręcznym ” sposobem wykonania tego byłoby pobranie pliku framework-res.apk z urządzenia, jego dekompilacja i zmiana wartości config_webViewPackageNamezmiennej zasobu. Powinien znajdować się /res/values/strings.xmlw .apk. Gdy to zrobisz, musisz ponownie spakować wszystko i wcisnąć nowy plik .apk na urządzenie, zastępując stary.

Alternatywną metodą, którą możesz spróbować, jest instalacja frameworka Xposed, a następnie użycie modułu WebViewGoogle . Jeśli używasz niestandardowej pamięci ROM, możesz także znaleźć pakiet, który trwale zmodyfikuje niezbędne komponenty frameworka (lub może zostać zbudowany domyślnie do korzystania z Google WebView).

Moja hipoteza byłaby taka, że ​​to ograniczenie istnieje po części dlatego, że system opiera się na implementacji WebView istniejącej w jakiejś formie, więc jeśli może zostać zmodyfikowany przez użytkownika, może w dziwny sposób uszkodzić system. Mogłyby również mieć wpływ na bezpieczeństwo zezwalanie aplikacjom na przesłonięcie systemowego WebView, na przykład złego aktora próbującego dostarczyć złośliwego, bez wiedzy użytkownika.

W ramach dalszego wyjaśnienia: powodem, dla którego System WebView jest dostępny w Sklepie Play na początek, jest to, że urządzenia Nexus (i ewentualnie inne) są dostarczane z preinstalowanym i skonfigurowanym do korzystania z niego. W rzeczywistości jest to system WebView dla tych urządzeń, dlatego Google jest w stanie zapewnić aktualizacje WebView dla tych urządzeń za pośrednictwem Sklepu Play, dzięki czemu pełne OTA systemu nie są konieczne tylko do aktualizacji przeglądarki / WebView. Istnieją inne składniki, które Google migrowało do Play Store, aktualizując w podobny sposób, przy czym zasadniczo jest to szybsze. Telefon i kontakty były dwiema nowszymi, a link do artykułu zawierał dodatkowe szczegóły na temat tego, dlaczego Google zastosowało to podejście.

eldarerathis
źródło
1
Dzięki za wyjaśnienie ... ale jaki jest pożytek z tej aplikacji webview systemu Android?
Clémentine,
1
@ Urządzenia Clémentine Nexus (ewentualnie inne) są dostarczane z preinstalowanym i skonfigurowanym do używania urządzeniem. W rzeczywistości jest to system WebView dla tych urządzeń, dlatego Google jest w stanie zapewnić aktualizacje WebView dla tych urządzeń za pośrednictwem Sklepu Play, dzięki czemu pełne OTA systemu nie są konieczne tylko do aktualizacji przeglądarki / WebView. Istnieją inne składniki, które Google migrowało do Play Store, aktualizując w podobny sposób, przy czym zasadniczo jest to szybsze.
eldarerathis
1
dlaczego wszystkie tablety z systemem Lollipop lub nowszym systemem operacyjnym nie używają tego jako domyślnego systemu WebView, brzmi jak marnotrawstwo!
Clémentine
1
@ Clémentine Kontrola Google nad zewnętrznymi producentami jest nieco ograniczona. Prawdopodobnie mogliby zdecydować się na użycie WebView Google'a z zamkniętym źródłem, tak jak robią to urządzenia Nexus, ale z dowolnego powodu mogą tego nie robić. Nie jestem pewien szczegółów dotyczących tego, w jaki sposób Google udziela licencji OEM na aplikacje zamknięte, ale te warunki (niezależnie od tego, jakie mogą być) mogą być czynnikiem wpływającym na decyzję producenta.
eldarerathis
Dzięki za wszystkie te informacje. Rzucając światło na wiele pytań, które miałem na myśli. Będzie wtedy szukał tabletu, który ma go wstępnie zainstalowany.
Clémentine,