You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android12 GSI自定义ROM下系统录屏应用报unsupported size错误排查求助

Android 12 GSI录屏unsupported size错误排查方向
  • 编码器优先级配置排查
    修改scrcpy默认编码器为c2.android.avc.encoder后问题解决,说明系统默认优先调用的AVC硬件编码器存在能力上报异常。执行dumpsys media.codec | grep 'video/avc'查看所有AVC编码器的排序,若厂商硬件编码器排在通用软件编码器c2.android.avc.encoder之前,基本可判定是硬编码器配置问题。
    验证方案:root后修改/system/etc/media_codecs.xml,将c2.android.avc.encoder的节点移到其他AVC编码器之前,或临时注释掉有问题的厂商硬编码器节点,重启后测试录屏功能。
  • 屏幕参数与编码器能力匹配排查
    报错触发在getSupportedFrameRatesFor调用环节,说明编码器不认可对齐后的屏幕尺寸:
    1. 执行dumpsys window displays获取当前设备实际分辨率,确认是否存在分辨率虚标、动态切换分辨率未同步的问题
    2. 执行dumpsys media.codec | grep -A30 'c2.android.avc.encoder'查看编码器的宽高对齐要求、最大支持宽高参数,对比屏幕分辨率是否满足对齐规则,部分厂商硬编码器要求宽高必须为128/256的整数倍,对齐计算后的尺寸仍然超出支持范围就会触发报错
  • 刷新率参数兼容排查
    代码逻辑会传入当前屏幕刷新率查询编码器支持范围,若你的设备使用90/120Hz等高刷模式,或者编码器上报的帧率范围存在异常,也会触发参数校验失败。可临时将屏幕刷新率锁定为60Hz后重试录屏,排查是否为刷新率兼容问题。
  • GSI媒体配置适配排查
    GSI自带通用媒体配置未适配目标设备的硬件编码器能力,可提取目标设备官方原生ROM中的/system/etc/media_codecs.xml、/system/etc/media_codecs_performance.xml、/system/etc/media_profiles.xml三个配置文件,替换到GSI对应目录,修复硬编码器的能力上报错误。

临时替代方案:若无法修改系统配置,可通过LSPosed等Hook框架,拦截ScreenMediaRecorder类的编码器选择逻辑,强制指定使用c2.android.avc.encoder,无需修改SystemUI源码即可解决问题。

内容的提问来源于stack exchange,提问作者Jericho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:15:04