星期三, 三月 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 了!

星期六, 三月 04, 2023

162 红米k20pro 刷 crDroid 安卓13 取消data分区加密

下载firmware V12.5.6.0.RFKCNXM, https://xiaomifirmwareupdater.com/firmware/raphael/
下载android 13 rom, https://crdroid.net/raphael/9
下载magisk 25.2, https://github.com/topjohnwu/Magisk/releases, 把下载的apk改名为zip就是magisk刷机包了. 

1, 把 firmware, rom, magisk 三个zip包复制到 /sdcard/ 下面. 

=====双清+刷入系统↓=====
2, 进twrp recovery, 格式化data分区. 

3, 按照 1firmware, 2rom 的顺序, 把zip包依次刷入, 3magisk先不刷. 

=====取消data分区加密↓=====
4, 在twrp的界面中挂载vendor分区. 然后在电脑上打开adb, 进入 adb shell. 
cp /vendor/etc/fstab.qcom /sdcard/
然后再把fstab.qcom拷出来, 用adb的push取出文件也行. (提一嘴, 这和本文无关.一些老emmc设备好像都没有加密, 我的mimax安卓10和mi6x安卓11都没有加密)

5, 把拷出来的fstab.qcom文件打开, 找到 /data 段, 可能有两条. 一条ext4一条f2fs, 去掉
,fileencryption=ice
,fileencryption=ice
这两条, 注意逗号, 别出现两个逗号连在一起的情况了. (许多教程连后面的什么wrappedkey也带上了, 我实际测试发现只需要把fileencryption参数去掉即可, 在twrp下, data分区可以挂载, 也可以操作里面的文件. 如果加密的话, twrp无法挂载data, 挂载界面勾不上 ☑ Data )


然后放在sdcard下, 用命令拷回去. 或者用push也行. 



完成之后可以用cat看一眼, 
cat /vendor/etc/fstab.qcom

6, 继续在adb shell里输入代码. 
echo 'KEEPFORCEENCRYPT=false' >>/cache/.magisk
回车
echo 'KEEPVERITY=false' >/cache/.magisk
回车

7, 回到手机上, 在twrp里安装magisk包. 完成后重启系统. 

8, 在下一步下一步设置引导完成之后, 进入 设置-安全-更多安全设置-加密与凭据 这里, 查看"加密手机"的状态, 应该是"手机未加密"了. 

更新系统之后, 在重启之前需要重新修改一遍, 用MT文件管理器等有root权限的改. 不然就会出现 Can't load android system. Your data may be corrupt.

=====刷机完毕=====

为什么不用twrp (wzsx150版)里面的取消强制加密? 因为这个刷机包在操作过这项之后, 会卡在第一屏, 动画一直转但进不去系统. 所以花了一下午时间捋顺了手工修改的方法.