49960
在 Android 11 及以上版本的 userdebug 固件中,开机后有时会出现 WebView 相关功能失效,导致无法使用。
问题原因
在 userdebug 固件中,WebView zygote 初始化时会调用 trace 接口。由于 debug tracefs 挂载的时间有时晚于 WebView zygote 的初始化,导致 WebView 无法获取到必要的权限,初始化失败,进而导致所有使用 WebView 的应用无法加载网页。
解决方案
在 userdebug 固件的 early init 阶段挂载 debug tracefs。
RK3588 Android11 SDK代码修改如下:
diff --git a/device/rockchip/common/init.rockchip.rc b/device/rockchip/common/init.rockchip.rc
index 3a681f2860..fe390beee7 100755
--- a/device/rockchip/common/init.rockchip.rc
+++ b/device/rockchip/common/init.rockchip.rc
@@ -88,7 +88,7 @@ service iprenew_bt-pan /system/bin/dhcpcd -n
oneshot
# Only mount debugfs on userdebug build
-on property:ro.debuggable=1
+on early-init && property:ro.debuggable=1
mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755
mount tracefs /sys/kernel/debug/tracing /sys/kernel/debug/tracing mode=755
chown system root /sys/kernel/debug/tracing