AndroidシステムのWebviewがインストールされているが、アプリで使用されていない


16

Androidタブレット(5.0.2を実行)のアプリストアから最新バージョンのAndroidシステムWebViewをダウンロードしてインストールしました。

ただし、アプリは引き続き古いwebviewバージョン(39.0.0.0)を使用します。

どうすればそれらを切り替えることができますか?

情報については、古いものを無効にしてみましたが、webviewを使用するアプリを開くと再び有効になります。


2
好奇心から、アプリが使用しているWebviewのバージョンをどのように知るのですか?
デュークシルバージャズ

1
DroidscriptやWebView Browserなどのいくつかのアプリでテストしていて、whatsmyuseragent
Clémentine16年

Lollipopのソースを読みましたが、これは起きないはずです。製造元がWebViewFactoryクラスを独自のものに置き換えていない限り、最新のものを使用する必要があります。正確なデバイス/モデルおよびメーカー提供のバージョンを実行していますか?
ムファサ

こんにちはMusafaなぜあなたの答えを削除したのですか?
クレメンタイン

、私は数日中にレノボTAB 2 A7にしようとするつもりだ私は、低コストのタブレットを使用している、と私はいくつかのブランド(フリップカートからdigiflip、TIME2)にしようとした
クレメンタイン

回答:


19

ルートなしではこれを変更できません。

システムフレームワークは、WebViewコンポーネントを要求するアプリケーションに特定のパッケージを使用するようにハードコーディングされています。デフォルトでは(AOSPで)、値com.android.webviewAOSPビルドプロセス中にコンパイルされるバージョンを使用します。このコンポーネントを変更するメーカーのデバイスでは、パッケージ名が異なる場合があります。とにかく、デバイスに同梱されているWebViewを置き換えるには、この値をに変更する必要がありますcom.google.android.webview

これを行う「手作業」の方法は、デバイスからframework-res.apkファイルを取り出し、逆コンパイルし、config_webViewPackageNameリソース変数の値を変更することです。/res/values/strings.xml.apk内に配置する必要があります。これを行ったら、すべてを再パッケージ化し、新しい.apkをデバイスにプッシュして、古いものを置き換える必要があります。

別の方法として、Xposed フレームワークインストールしてから、WebViewGoogleモジュールを使用する方法があります。カスタムROMを使用する場合、必要なフレームワークコンポーネントを永続的に変更するパッケージを見つけることもできます(または、デフォルトでGoogleのWebViewを使用するようにビルドされる場合があります)。

私の仮説は、システムが何らかの形で存在するWebView実装に依存しているため、この制限が部分的に存在し、ユーザーがそれを変更できる場合、奇妙な方法でシステムを破壊する可能性があるというものです。また、悪意のあるユーザーがユーザーに気付かれずに悪意のあるユーザーを提供しようとするなど、アプリがシステムWebViewをオーバーライドできるようにすることには、セキュリティ上の影響もあります。

さらなる説明のポイントとして:システムWebViewがPlayストアで最初に利用できる理由は、Nexusデバイス(および場合によっては他のデバイス)がプレインストールされ、それを使用するように構成されているためです。つまり、これらのデバイスのシステムWebViewです。したがって、GoogleはPlay Storeを介してこれらのデバイスのWebView更新を提供できるため、ブラウザ/ WebViewを更新するだけで完全なシステムOTAは必要ありません。Googleが同様の方法でPlayストアの更新に移行した他のコンポーネントがありますが、本質的にはより高速であるという理由があります。電話と連絡先は最近の2 つで、リンクされた記事には、Googleがこのアプローチを採用した理由に関する追加の詳細が記載されています。


1
この説明をありがとう..しかし、このアンドロイドシステムのwebviewアプリの使用は何ですか?
クレメンタイン

1
@ClémentineNexusデバイス(おそらく他のデバイス)は、プリインストールされて使用するように構成されて出荷されます。つまり、これらのデバイスのシステムWebViewです。したがって、GoogleはPlay Storeを介してこれらのデバイスのWebView更新を提供できるため、ブラウザ/ WebViewを更新するだけで完全なシステムOTAは必要ありません。Googleが同様の方法でPlayストアの更新に移行した他のコンポーネントがありますが、本質的にはより高速であるという理由があります。
-eldarerathis

1
なぜすべてのタブレットがlollipopまたは新しいOSを実行しており、これをデフォルトのシステムWebViewとして使用していないのは無駄に聞こえます!
クレメンタイン

1
@Clémentineサードパーティのメーカーに対するGoogleの管理は、ある程度制限されています。Nexusデバイスと同様に、おそらくGoogleのクローズドソースWebViewを使用することを選択できますが、何らかの理由で使用しないこともできます。GoogleがクローズドソースアプリケーションをOEMにどのようにライセンスするかについての詳細は定かではありませんが、それらの条件(どのようなものであっても)はメーカーの決定の要因になる可能性があります。
eldarerathis

このすべての情報をありがとう。私が心の奥底で持っていた多くの質問に光を当てています。それが事前にインストールされているタブレットを探しています。
クレメンタイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.