Android TV 认证简介

    技术2025-12-12  17

    Android TV是在2014年6月26日Google I/O上推出的,专门为TV和机顶盒产品设计的应用程序服务包。基于Android AOSP版本,加上GTVS包就可以编译出来Android TV的Firmware。和AOSP相比,Android TV提供如下内容:

    • Leanback Launcher

    • Google Services(Google Play,YouTube,Play Movie&TV, Play Games, etc.)

    • Search and Assistant

    • Google Cast

    • GOTA

    Android TV认证指的是整机认证,由ODM/OEM提交给Google做认证测试。 SOC厂家不需要做芯片级的认证。

     

    一、Android TV 认证流程

    1. 签完NDA后,可以访问Google的Help Center

    2. 签完ACC后,Google会建立Project Tracker

    3. 签完TADA后,可以从Google下载到GTVS包,并开通APFE(Android Partner Frontend)的访问权限

    • GTVS包由Google提供

    • Google Partner通过APFE来上传测试报告,也可以通过APFE来查询认证状态

    4. 向Google申请白名单

    5. 基于SOC release的ATV code, 加上GTVS包,编译出Android TV的Firmware

    6. ODM/OEM完成CTS, CTS veriry, GTS, VTS, Smoking test测试,并上传报告到APFE

    7. 寄机器给Google或Harman测试

    目前只有Harman和和硕这两家第三方Android TV认证实验室

     

    GMS包需要google开通权限后才能下载,编译Android TV版本的步骤如下:

    1. 获取GMS包,解压到vendor/目录

    2.source build/envsetup.sh

    export BOARD_COMPILE_ATV=true

    lunch marconi-userdebug

    make otapackage

     

    二.客制化

    虽然添加了GMS包后编译的Android TV版本包含了几乎所有的apk及功能,但是还需要进行一些客制化才可以使用

    1.Leanback Launcher上增加状态图标(Android TV官网叫微件),比如增加inputs,电池电量,wifi图标等

     

     

     

    图 1. 主屏幕与系统栏中的微件

     

    图 2. 系统栏中的打开TV 输入面板的开关

    Tv Inputs的图标按照Google要求是必须显示的(盒子项目不需要)相关代码公版中已经默认加入,需要在device中加入该apk的编译配置

    公版代码:vendor/amlogic/common/prebuilt/LauncherCustomization/res/raw/configuration.xml

    其他图标比如wifi需要客户自己写一个apk,代码可以参考https://github.com/Jetson-TK1-AndroidTV/LeanbackCustomizer

    文档可以参考https://support.google.com/androidpartners_androidtv/answer/7549452?hl=zh-Hans&ref_topic=7549694,里面有相关的介绍

     

    2.蓝牙语音遥控器适配Google Assistant

    Google Assistant需要用到蓝牙语音遥控器,需要根据遥控器修改audio hal

     

    3.应用排序要求

    Google强制要求launcher上UI图标排序,需要写一个apk并且增加xml的配置,需要排序的主要是分为收藏应用和应用视图.

    收藏应用行

    OEM 可以设置收藏应用行的现成顺序,用户以后可以移动、收藏或取消收藏这些应用。

    Google 保留槽位 5 (YouTube) 和 6(Play 影视)。有关更多详情,请参阅 GTVS 要求。最多现成放置了 8 个应用(包括 YouTube 和 Play 影视,必须放置这两个应用)。建议将 Live TV 应用放置在第一个槽位中。

     

    图 3. 收藏应用排序要求

    应用视图

    通过“应用”图标、可选的遥控器按钮或长按主屏幕键即可打开应用视图。应用视图包含:

    推广横幅 - 由 Google Play 控制“所有应用”网格可选的 OEM 推荐行单独的“游戏”网格

     

    图 4.主屏幕应用视图与“应用”图标以及遥控器上的“应用”按钮的插图

     

     

    4.PAI开机向导应用推荐

     

    图 5. PAI应用推荐界面要求

     

    图 6. PAI APK客制化流程

    Google详细介绍网页:https://support.google.com/androidpartners_androidtv/answer/7507868?hl=zh-Hans

    具体流程如下:

    ①将demo源码放到vendor/amlogic/common/apps路径下

    ②修改vendor/amlogic/common/apps/PlayAutoInstallConfig下stub和test下面AndroidManifest.xml中的包名,2个 xml修改后的包名必须完全一样

    ③修改res-test/xml/下的default_layout.xml,替换成需要预装的apk信息

    ④mm编译,会生成2个apk,其中PlayAutoInstallConfig.apk是必须预装到系统中的/system/app下,PlayAutoInstallConfig-test.apk和default_layout.xml需要上传到APFE中

     

    5.客制化OBBE开机向导(非认证需求)

    在Google TV项目中印度客户提出印度当地的网络较差,要求我们提供在OBBE的联网和登录界面可以支持跳过整个开机向导的功能,而Google也支持较大程度的客制化满足不同OEM厂商的要求

    具体可以参考Google ATV介绍:

    https://support.google.com/androidpartners_androidtv/answer/6188677?hl=zh-Hans&ref_topic=7507141

     

    图 7. 设置向导流程中的自定义选项。

    Google提供的demo中功能非常丰富,可以直接添加activity,但是如果只是支持skip网络和登录的功能,只需要增加2个xml中的config配置即可

    <!-- 是否允许用户跳过默认的网络设置步骤。--> <bool name="show_skip_network"></bool>

    <!-- 是否允许用户跳过 Google 帐号登录步骤。--> <bool name="show_skip_signin"></bool>

     

    三、白名单

    项目开发过程中需要用到的白名单如下:

    1.开机向导需要白名单,否则登陆账号无法跳过

    需要烧录usid,也就是Google要求的串号ro.serialno

    2.google cast需要白名单,否则无法使用cast功能

    可以用iphone直接下载个youtube,和测试平台连接相同的wifi后即可测试

    3.youtube付费视频需要白名单,否则最高只能播放到480P

    该项测试主要在smoke test中,只需要看youtube中是否能到1080P以上

     

    四、GTVS认证测试

    一、smoke test

    这个认证主要是根据google提供的excel表格进行的主观测试,由于文档中的描述比较简洁,如果测试时的侧重点不同,得到的结果也不同,所以人为影响非常大!

    举例1:

    Search Live TV app content with Remote Control button

     

    这一条哈曼那边得到的要求如果进入tv app,需要将tv app中搜索到的内容置顶显示,但是实际上tv app的内容是显示在youtube下面。我们总共对比过Google自家的产品google Nexus player,google主导的Atom soundbar,以及TV公版,均是排序不满足置顶要求。

    解决办法:向Google提bug,然后附上详细理由,最后Google同意waive,拿到waive id后让客户提供给Harman,附到测试报告中,最后让Google决定

     

    举例2:

    Youtube 付费视频最大只能播放到480P,无法选择4K

    该问题是需要客户向Google申请专门的白名单.

     

    举例3:

    google cast无法连接成功,或者卡顿严重经常断开连接

    cast功能主要是依赖Google白名单,如果无法连接,需要找Google排查下白名单是否添加成功,之前就遇到device name与其他产品相同,而Google没有检查出来

     

    举例4:

    YouTube付费视频可以达到1080P,但是Play Movie中只能到720P

    我们测试发现在HD的屏并且OSD的buffer是720P时,play movie只能到720P,但是相同软件的OSD 720P的板子接1080P的屏,play movie确能到1080P,咨询Google回复这个是正常的行为,所以play movie的分辨率不只是和白名单有关,还受屏幕分辨率的影响!

     

    二、GTVS自动化测试

    该测试全部都是自动化测试,主要包含CTS, CTS veriry, GTS, VTS,Cts-on-gsi,sts。

    需要注意的地方是:

    1.测试网络

    如果fail项中出现net等网络字样,可能与IPV6相关

     

    2.waive id

     

    3.测试手法

    如果有些case全部测试无法pass,可以通过跑单例再次进行测试,harman实验室是支持单例的测试报告

     

    4.BTS测试

    BTS测试需要用out目录下编译生成的fastboot-falshall这个zip包,将这个zip包提供给Google,他们会进行一个安全性扫描,如果缺少合并关键性的security patch,则会出现fail项。

     

    Processed: 0.013, SQL: 9