Android CTS测试Fail项修改总结(四)

Android5.1上的测试

1、android.security.cts.SELinuxDomainTest# testInitDomain fail

打印的log

junit.framework.AssertionFailedError: Expected 1 process in SELinux domain "u:r:init:s0" Found
"[
pid: "1" proctitle: "/init" label: "u:r:init:s0" vsize: 1327104,
pid: "298" proctitle: "/system/bin/immvibed" label: "u:r:init:s0" vsize: 1765376
]"
expected:<1> but was:<2> at junit.framework.Assert.fail(Assert.java:50) 

这个是典型的L 版本SELinux Test 问题.

android.security.cts.SELinuxDomainTest 有1项fail,

-- testInitDomain

junit.framework.AssertionFailedError: Expected 1 process in SELinux domain "u:r:init:s0" Found "[pid: "1" proctitle: "/init" label: "u:r:init:s0" vsize: 1327104, pid: "298" proctitle: "/system/bin/immvibed" label: "u:r:init:s0" vsize: 1765376]" expected:<1>
but was:<2> at junit.framework.Assert.fail(Assert.java:50)

其关键原因是因为 Google 强调系统关键进程的SELinux Context 必须唯一, 系统关键进程包括如 init, vold, surfaceflinger, netd, servicemanager, drmserver 等等. 一旦发现有多个process 同时使用这些关键的domain 则SELinux Test fail.

为此要求,系统关键进程启动长时间运行的process, 必须进行domain 切换. 否则将无法通过Google CTS test.

典型情况就是通过init 启动某个 service, 而没有对这个service 进行domain 切换. 比如贵司这个问题中 suntrold_32 这个 service 没有进行domain 切换, 成而无法通过测试.

下面是一个简单的demo.

情景: 定义一个init 启动的service, demo_service, 对应的执行档是/system/bin/demo.

(1). 创建一个demo.te 在/device/mediatke/common/sepolicy 目录下, 然后在/device/mediatke/common/BoardConfig.mk 的BOARD_SEPOLICY_UNION 宏中新增 demo.te

(2). 定义demo 类型,init 启动service 时类型转换, demo.te 中

type demo, domain;

type demo_exec, exec_type, file_type;

init_daemon_domain(demo)

(3). 绑定执行档 file_context 类型

/system/bin/demo u:object_r:demo_exec:s0

(4). 根据demo 需要访问的文件以及设备, 定义其它的权限在demo.te 中.

典型情况就是通过init 启动某个 service, 而没有对这个service 进行domain 切换. 比如这个问题中immvibed 这个 service 没有进行domain 切换, 从而无法通过测试.只需按照demo修改即可.

时间: 2024-08-16 14:07:46

Android CTS测试Fail项修改总结(四)的相关文章

Android4.4 CTS测试Fail项修改总结(一)

1.测试android.webkit.cts.GeolocationTest Fail 提示: cts-tf > run cts --class android.webkit.cts.GeolocationTest 12-13 16:55:23 I/TestInvocation: Starting invocation for 'cts' on build '4.4_r3' on device 385b4e4a 12-13 16:55:23 I/385b4e4a: Created result

监听Android CTS测试项解决方案(一)

前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证是获得Google推出的 Android 系统中 Android Market 服务的前提.CTS 兼容性测试的主要目的和意义在于使得用户在 Android 系统的应用过程中,有更好的用户体验,并展现出 Android 系统的优越特性:使得 Android 应用程序编写者更容易编写高质量的应用程序:充分展现

监听Android CTS测试项解决方案(二)

二,监听当前测试项是否是Accelerometer Measurement Test测试项 通过第一种方式介绍的,我们可以得到当前处于活动状态的Activity类似监听CTS测试当前的测试项.但是由于是监听Android系统中所有Activity,因此会大大降低系统的性能,因此这里有一种效率更高的方式来精确定位当前CTS正在测试的测试项,而不会对系统造成很大的影响.(当然不能修改CTS源码,我们需要使用Android提供的原生CTS APK进行验证) 那么我们这里以Accelerometer M

Android CTS测试

一什么是CTS CTS简介:Compatibility Test suite系列兼容测试 google定义了一个兼容性规范(Compatible Definition),而CTS就是为了确保某个测试符合该规范.从而基于Android的应用程序能在基于同一个api版本的设备上面运行.通过CTS测试的device可以获得android的商标,并且享受android market的权限. 例如手机.平板电脑.车载娱乐系统:严格来说需要下载第三方应用的Android系统都要通过CTS测试,才能达到兼容性

Android 4.0.3 CTS 测试

Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.android.com/compatibility/downloads.html 1.1.2.下载所需文件 选择对应Android版本的CDD文档(介绍CTS测试),CTS测试包下载(测试包会不断更新),android-cts-verifier-4.0.3_r1-linux_x86-arm.zip,an

【转】Android 4.0.3 CTS 测试

原文网址:http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.android.com/compatibility/downloads.html 1.1.2.下载所需文件 选择对应Android版本的CDD文档(介绍CTS测试),CTS测试包

Android CTS測试Fail项改动总结(四)

Android5.1上的測试 1.android.security.cts.SELinuxDomainTest# testInitDomain fail 打印的log junit.framework.AssertionFailedError: Expected 1 process in SELinux domain "u:r:init:s0" Found "[ pid: "1" proctitle: "/init" label: &qu

求助,Help!!!关于android CTS TV测试的fail问题。。。

============问题描述============ android测试里的测试项基本上都是针对android手机写的,但是我现在做的是android 4.0.3电视的cts测试,测试用例里面很多针对电话.短信.GPS.camera等fail项,这该怎么解决呢???没有没办法让测试时遇到这些电视没有的功能时跳过不测这些case呢??? ============解决方案1============ 把你希望测试的项 添加到 out/host/linux-x86/cts/android-cts/r

Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析

    CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机.传感器等.由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能,    CTS Verifier总共包含以下15个功能: · Camera · Clock · Device administration · Features · Hardware · Job scheduler · Location ·