星期三, 三月 22, 2023

163 类原生 安卓13 webview, 将 com.android.webview 转换为 com.google.android.webview

装了个lineageos改的安卓类原生, 名叫 crdroid, 都用了快一个月了, 今天才发现webview包名是 com.android.webview, 我服了, 这就说明我没法直接用apk更新成 google play 上的 webview. 

方法有两种, 第一种是安装 lineageos 自己维护的, 但是更新较慢, 可能一个大版本才更新一次.  webview: https://www.apkmirror.com/apk/lineageos/android-system-webview-2/


第二种是利用 adb shell settings 将 webview 提供者改为 com.google.android.webview. 

在电脑上的adb命令行中输入
adb shell settings put global webview_provider com.google.android.webview


或者在手机命令行(如MT文件管理器)中输入
sudo
settings put global webview_provider com.google.android.webview

put完以后, 可以用get查询一下: 

adb shell settings get global webview_provider
settings get global webview_provider

如果返回的是 com.google.android.webview 就说明改好了. 它这个更改是长期的, 不会重启后丢失. 


还有一种办法是反编译改 /system/framework/framework-res.apk -> res/xml/config_webview_packages.xml , 用MT改, 改完不要自动签名. 
但是我发现这种方法并不适用 类原生 crdroid android 13, 因为在这个xml中, stable beta dev canary aosp 这五个版本都存在, 且都为true. 而且还有签名信息. 

如果你在使用第二种方法的时候安装完重启之后, 在 开发者选项 - webview实现 里面看不到新版本, 也有可能是签名的问题, 不是核心破解的那种签名, 我的理解是, 你的webview apk的签名和framework res xml里的签名对不上, 所以不显示, 我的就是这种情况. 从apkmirror下载的200MB的111核就不行, 从apkpure下载的xapk用MT转换成apk的也不行, apkpure直接下载的apk包(armv7+v8)的就可以. 


这篇博文中提到的方法均参考自 https://gitee.com/akenclub/android-web-view 感谢作者提供的方法, 终于能用上 google play 的 webview 了!

0 条评论: