当前位置: 首页 > news >正文

深入解析:Android16 【GSI】CtsMediaCodecTestCases等一些列Media测试存在Failed项

Android16 【GSI】CtsMediaCodecTestCases等一些列Media测试存在Failed项

一、前言

Android EDLA最近测试爆一大堆GSI CtsMediaXXXCases 的报错,刚开始不确定是哪里修改导致的问题。

后面多看一些日志和回退一些对策确认是Media编解码修改导致。

这些报错不仅在CTS 测试有,GSI 测试也有;

CTS测试通过后,GSI是不一定测试通过的;

因为测试GSI已经烧录了Google提供的system.ing会去除部分framework的修改;

【CTS】一些列Media测试存在Failed项:

https://blog.csdn.net/wenzhi20102321/article/details/157763004

修改GSI前可以先看看CTS的修改;

其实不烧录GSI镜像,也是可以使用命令测试GSI的测试项;只是不一定准确;

测试CTS和GSI测试项,都是使用同一个套件,只是测试的命令会有点不同;

烧录GSI镜像后,系统prop属性基本都清除了,那么需要如何修改判断呢?

本文主要一些分析参考,有遇到类似的可以看看。

二、分析修改

1、报错查看

一些列GSI报错如下:

在这里插入图片描述

其实GSI只是烧录了gsi固件,具体测试的套件还是cts的,所以报错的模块也是cts的。

部分报错如下:

CtsMediaRecorderTestCases:

在这里插入图片描述

CtsMediaMiscTestCases:

在这里插入图片描述

CtsMediaEncoderTestCases:

在这里插入图片描述

CtsMediaDecoderTestCases:

在这里插入图片描述

CtsMediaAudioTestCases:

在这里插入图片描述

CtsMediaV2TestCases:

在这里插入图片描述

上面只能看出一些大概测试意图,看不出具体报错信息,

如果要看具体报错堆栈,需要查看具体报告或者重测该项查看result中的html文件报告;

比如:

在这里插入图片描述

能看到更多一点堆栈信息,再看logcat日志估计能看到更多相关信息。

上面的报错可能是和修改如下代码会导致:

//这个是AML方案的
vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencComp.cpp
vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencIntfImpl.cpp
修改一下参数值比如:
C2Color::MATRIX_UNSPECIFIED 变成 C2Color::MATRIX_BT709 或者 C2Color::MATRIX_BT601

这个主要是修改4K编解码参数或者优化视频转码与优化编码性能会涉及到的代码;

比如:安兔兔跑分视频转码失败,需要进行优化系统编解码,就需要修改上面的代码。

因为烧录GSI主要就是去掉system的一些应用和属性、framework的部分修改;

但是cpp部分很多逻辑还是存在的,所以会造成一些Failed项。

2、分析修改

虽然烧录GSI镜像后,安装卸载应用的一些监听没了,无法设置自定义prop属性了;

但是烧录gsi镜像后,系统属性 ro.product.system.device 会变成 generic

console:/ $ getprop | grep system.device
[ro.product.system.device]: [t7_an400] //烧录gsi会变成:generic
console:/ $

可以在代码中通过这个判断属性可以判断是否跳过一些自定义修改的逻辑代码;

比如:

vendor/amlogic/common/codec2/vendorcomponents/videoencoder/C2VencIntfImpl.cpp

    char ctsValue[128] = {0};char gsiValue[128] = {0};property_get("persist.skg.isinstall.cts", ctsValue, "false"); //自定义cts 属性判断property_get("ro.product.system.device", gsiValue, "false"); //gsi 属性判断if((strcmp(ctsValue, "true") == 0) || (strcmp(gsiValue, "generic") == 0)){ //原生逻辑} else { //自定义的代码功能逻辑}

这个只是参考修改。

三、其他

1、小结

其实只要影响到原生的流程就可能会爆Failed项错误;

修改编解码的代码可能会报很多cts和gsi的Failed项错误;

gsi解决方法就是:去除该功能或者通过prop属性ro.product.system.device测试的时候跳过某项功能逻辑。

2、Android EDLA CTS、GTS等各项测试命令汇总

上面的不同测试类型,需要下载不同的测试套件进行测试,测试后会有测试报告。

不同的测试项是对应不同的套件的,并且不同的套件,测试的命令也是有差异的;

主要是gsi和sts测试比较特殊。

https://blog.csdn.net/wenzhi20102321/article/details/157554964

3、单刷system.img指令

下面是Android16 烧录system镜像的参考命令:

adb reboot bootloader
fastboot flashing unlock
fastboot reboot fastboot
fastboot erase system
fastboot flash system system.img //从Google网址下载
fastboot -w
fastboot reboot

不管是user版本固件还是debug版本的固件,烧录gsi 的system镜像后,都是会变成user版本系统。

http://www.jsqmd.com/news/444493/

相关文章:

  • SSRF基础----pikachu
  • Codepilot 接入飞书指南
  • docker突然无法启动
  • 【工具推荐】DiskGenius官网下载:硬盘分区+数据恢复神器,一键拯救误删文件 - xiema
  • 深入解析:OpenEBS — 云原生 CNS 高性能存储
  • 北京酒水回收哪家靠谱?避坑+高价变现,选对本地老牌更安心 - 宁夏壹山网络
  • C语言:2026.3.6(文件)
  • 北京万腾老酒回收丨专业老酒、名酒、礼品全品类回收 - 宁夏壹山网络
  • 2026年广州示波器探头高压放大器标杆厂家最新推荐:示波器差分探头、示波器电流探头、差分探头、电流探头、交直流示波器电流探头、交直流电流探头、广州德肯电子国产测量仪器新标杆 - 海棠依旧大
  • 20260305紫题训练总结 - Link
  • P7516 [省选联考 2021 A/B 卷] 图函数 - Link
  • LeetCode经典算法面试题 #104:二叉树的最大深度(深度优先搜索、广度优先搜索等多种实现方案详细解析) - 教程
  • 2026雅思托福线上vs线下机构深度对比:多次元成首选标杆 - 速递信息
  • 中国到东南亚SD-WAN网络服务选型指南:企业东南亚出海组网优选方案 - 速递信息
  • 11.盛最多水的容器
  • 新托福时代的选择智慧:如何精准避坑,锁定高效提分机构? - 速递信息
  • 2026年数据线工厂行业趋势报告:三大核心力量重塑未来 - 速递信息
  • 位置编码(Positional Encoding)
  • 二分算法2-二分答案
  • 分治算法——求逆序对
  • word文档生成技术实现
  • C++游戏开发之旅 25
  • 使用vLLM部署Qwen/Qwen3.5-35B-A3B-FP8并且在DIFY中调用
  • ElasticSearch常见问题和注意事项
  • 一文搞懂LockSupport原理
  • Windows 安装 OpenClaw 踩坑全记录:Node、Git、CMake、VS Build Tools 一次解决
  • Flutter 三方库 preact_signals 的鸿蒙化适配指南 - 掌控极致信号响应、Signals 架构实战、鸿蒙级精密状态指控专家
  • 别只盯着模型参数了:聊聊多模态时代最容易被忽视的一件事——训练数据准备
  • 看懂“单词规律”的算法之美:为什么简单的模式匹配,其实很深