系统自带webview太旧?教你如何更新内置webview!

最近在折腾安卓的时候遇到了需要更新webview的情况,在网上查找教程踩了不少坑。这篇文章中记录了我尝试成功的一些方法。


方案一:利用 GooglePlay 商店更新 webview

对于有 GAPPS 的用户来说,直接使用 GooglePlay 商店更新显然是最合适的选择。只需要在谷歌商店中找到 "Android webview" ,点击更新。基本就大功告成了。如果仍然没有切换到新版 webview 的话可以在安卓的开发者设置中切换一下。


方案二:自行更新webview(需要root)

如果你的机器上没有或不想安装 GAPPS 。那大概率就需要使用 root 更新了。这大概分为以下三步:

  • 安装新版 webview
  • 将新的 webview 转为系统应用
  • 修改 framework,添加新 webview

下面我们展开说明

首先在网络上找一个适合你机型的 webview 安装包。想用的版本可以自行选择。你也可以用我的安装包。
随后在目录 /data/app 中找到刚刚安装的 webview(路径可以使用 MT管理器 的 “安装包提取” 功能,在应用程序详细信息中找到 APK 路径)。随后将整个 webview 的文件夹移动到 /system/app/ 目录下。完成后推荐重启一下系统,重启完成后查看系统应用中是否出现新安装的 webview

最后是修改系统文件。(后面的教程会基于 “MT管理器” 介绍)
我们首先打开 /system/framework/ 目录,找到 framework-res.apk 。单击打开详情面板,选择 “查看” 进入 APK 内部结构。打开 APK 内的 /res/xml/ 目录,找到并编辑 config_webview_packages.xml
在配置文件中模仿之前的添加如下一段新的字段:

<webviewprovider
        availableByDefault="true"
        description="Google Android WebView"
        packageName="com.google.android.webview"/>

添加完成后,文件的结构应该和下面类似

<?xml version="1.0" encoding="utf-8"?>
<webviewproviders>
    <webviewprovider
        availableByDefault="false"
        description="Android WebView"
        packageName="com.android.webview" />
    <webviewprovider
        availableByDefault="true"
        description="Google Android WebView"
        packageName="com.google.android.webview" />
</webviewproviders>

编辑完成后保存并退出,并将更改写入到压缩包。此处注意不要勾选 “自动签名” ! 如果已经签名请使用MT管理器生成的 bak 文件恢复备份并重新修改配置文件。

做完以上步骤后重启设备。不出意外的话,开发者设置中已经会出现新的 webview 了。


后记

后来在网上又看到有无需root的方法,貌似是使用 ADB 重新挂载 /system 分区来获得写入权限。设备没有 root 的玩家可以尝试一下这种方法。修改的过程还是一样的。因为我自己没有尝试过这种方法,所以就不将这种方法写入教程了。

New Comment

Comments

暂无评论