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.
5.0-lollipop
browser
webview
Clémentine
źródło
źródło
Odpowiedzi:
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łacom.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_webViewPackageName
zmiennej zasobu. Powinien znajdować się/res/values/strings.xml
w .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.
źródło