Android 4.4 CTS 代码修改日记
来源:互联网 发布:证大财富淘宝达人贷 编辑:程序博客网 时间:2024/06/08 10:05
1、直接设置问题
estUnknownSourcesOffByDe
fail
junit.framework.AssertionFailedError: Deviceshould not ship with 'Unknown Sources' enabled by default.expected:<0> butwas:<1> atandroid.provider.cts.Settings_SecureTest.testUnknownSourcesOffByD
这种fail最好解决,直接按照字面理解就OK,设置---安全---默认关闭:未知来源。
2、permission
-- testSensorFeatures
fail
junit.framework.AssertionFailedError:PackageManager#hasSystemFeature(android.hardware.sensor.accelerometer)returns true but SensorManager#getSensorList(1) shows sensors []expected:<true> butwas:<false> atandroid.app.cts.SystemFeaturesTest.assertFeatureForSensor(SystemFeaturesTest.java:300)
一般情况修改 - >
android.hardware.camera.xml,platform.xml等文件,这边的文件定义了设备具有的一些权限。
--------------------------------------------------------------------------------------------------------------------
junit.framework.AssertionFailedError: PackageManager#hasSystemFeature(android.hardware.sensor.light) returns true but SensorManager#getSensorList(5) shows sensors [] expected:<true> but was:<false>
原因:手机无光感
解决方法:去除..\mediatek\config\{PROJECT}\android.hardware.sensor.light.xml及
android.hardware.sensor.proximity.xml文件中相应选项
3、由测试而引起的非测试项出错
-- testRecordingHint
fail
java.lang.RuntimeException: start failed. atandroid.media.MediaRecorder.start(Native Method)
这种情况要根据Logcat去查看RuntimeException的具体错误。通常可以先不改,因为很难查错。
4、网络问题
-- test_isReachable
fail
java.net.UnknownHostException: Unable to resolvehost "www.google.com": No address associated with hostname atjava.net.InetAddress.lookupHostByName(InetAddress.java:426)
这类问题是由于国内的网络无法访问国外网站导致的,最好的办法就在公司搭建一个VPN,链接出去。
以下网络问题需要保证翻墙网络是畅通的
libcore.java.net.InetSocketAddressTest
-- test_isUnresolved fail junit.framework.AssertionFailedError at libcore.java.net.InetSocketAddressTest.test_isUnresolved(InetSocketAddressTest.java:144)
libcore.java.net.OldCookieHandlerTest
-- test_get_put fail junit.framework.AssertionFailedError at libcore.java.net.OldCookieHandlerTest.test_get_put(OldCookieHandlerTest.java:71)
libcore.java.net.OldSocketTest
-- test_ConstructorLjava_lang_StringI fail java.net.ConnectException: failed to connect to unknown.host/127.0.53.53 (port 0) after 90000ms: isConnected failed: ECONNREFUSED (Connection refused) at libcore.io.IoBridge.isConnected(IoBridge.java:249)
libcore.java.net.OldURLStreamHandlerTest
-- test_getHostAddress fail junit.framework.AssertionFailedError: Expected: <null> but was: fakehostname.fakedomain/220.250.64.228 at libcore.java.net.OldURLStreamHandlerTest.test_getHostAddress(OldURLStreamHandlerTest.java:59)
libcore.java.net.URLConnectionTest
-- testConnectViaHttpProxyToHttpsUsingBadProxyAndHttpResponseCache fail Test failed to run to completion. Reason: 'Failed to receive adb shell test output within 600000 ms. Test may have timed out, or adb connection to device became unresponsive'. Check device logcat for details
这几项是网络问题,请务必确认贵司的翻墙网络是畅通的,最好是拿一个三星的KK对比机确认server OK之后再测试即可~
libcore.java.net.InetAddressTest
-- test_getByName fail junit.framework.AssertionFailedError: 1.2.3.4. at libcore.java.net.InetAddressTest.test_getByName(InetAddressTest.java:185)贵司这项fail很可能是DNS被绑架了,
在测试CTS,建议贵司把dns server 配为 8.8.8.8 和 8.8.4.4, 避免运营商的劫持
贵司可以参考相关网页:http://rritw.com/a/bianchengyuyan/C__/20120920/226927.html
还有以下这些问题也是常见的网络问题
1. libcore.java.net.ConcurrentCloseTest
-- test_accept pass
-- test_connect pass
-- test_connect_nonBlocking pass
-- test_connect_timeout pass
-- test_read pass
-- test_read_multiple pass
-- test_recv pass
-- test_write pass
2.libcore.java.net.OldSocketTest
-- test_connectLjava_net_SocketAddressI pass
3.libcore.java.text.DateFormatSymbolsTest
-- test_getInstance_invalid_locale pass
4. android.media.cts.MediaCodecCapabilitiesTest
-- testAvcBaseline1 pass
-- testAvcBaseline12 pass
-- testAvcBaseline30 pass
-- testAvcHigh31 pass
-- testAvcHigh40 fail Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details
其中TestAvcHigh40 fail是因为没有合入4.4R3的一个patch, 徐申请一个patch
5. android.media.cts.AudioEffectTest
-- test1_0ConstructorFromType pass
6.android.net.cts.SSLCertificateSocketFactoryTest
-- testAccessProperties pass
-- testCreateSocket pass
-- test_createSocket_bind pass
-- test_createSocket_simple pass
-- test_createSocket_wrapping pass
-- testAndroidTestCaseSetupProperly pass
5、系统文件权限
-- testAllFilesInSysAreNotW
fail
junit.framework.AssertionFailedError: Foundwritable:
[/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_power,/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_en_file,/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_Calibrate] atandroid.permission.cts.FileSystemPermissionTest
testAllFilesInSysAreNotW
-- testNoSetuidTcpdump
fail
junit.framework.AssertionFailedError at
android.security.cts.BannedFilesTest.
assertNotSetugid(BannedFilesTest.java:59)
这些问题是系统文件权限的问题,解决方法比较土,就是全局搜索该文件,查看那些对该文件操作的脚本,然后修改即可。
上面两个fail的解决方法是:
a.
__ATTR(ts_power, 0777, NULL,ts_set_point),
__ATTR(ts_en_file, 0777, NULL,ts_set_point),
__ATTR(ts_ Calibrate, 0777,NULL, ts_set_point),
b.
{ 06755, ADD_ROOT, ADD_ROOT,“system/xbin/tcpdump”}
-------------------------------------------------------------------------------------------------
android.app.cts.SystemFeaturesTest-- testLocationFeatures
原因:未配置相对应功能(开启Location access中所有开关(gps和wifi))
解决方法:将..\frameworks\base\data\etc\android.hardware.location.gps.xml拷贝到
..\mediatek\config\{PROJECT}\android.hardware.location.gps.xml目录下并做修改
<permissions>
<feature name="android.hardware.location" /> ----打开
<feature name="android.hardware.location.network" /> ----打开
<feature name="android.hardware.location.gps" /> ---无GPS则关此项
</permissions>
6、这种情况最多的。
-- testFocusDistances
fail
junit.framework.ComparisonFailure:expected:<infinity> butwas:<auto> at
android.hardware.cts.CameraTest.testFocusDistancesByCame
(CameraTest.java:1386)
对于这个fail的原因是CTS对摄像头测试时,对摄像头进行参数设置,然后在读取参数后,参数出错。
这种情况要找到CameraTest源码,通常在source/cts/...下面,我们编译时没有编译到这里,仅查看代码,例如找到CameraTest.java,打开后找到1386行,行数一般情况下不会有出入,除非source下面的cts版本和下载的cts版本不一致才会找不到,找到testFocusDistancesByCame
其中camera CTS测试代码在:
source/cts/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
摄像头设置的相关代码在:Source/device/Samsung/exynos4/libcamera/下面,有SecCameraHWInterface_zoom.cpp、SecCameraHWInterface_zoom.h、SecCamera_zoom.cpp、SecCamera_zoom.h
找到之后通过修改后测试再修改后再测试直到CTS PASS。
(对于摄像头,应注意是几个摄像头,不然测试可能会对两个一起测试,这样就算一个摄像头调好了,能PASS了,另外一个过不了也是FAIL的。)
---------------------------------------------------------------------------
android.app.cts.SystemFeaturesTest#testCameraFeatures FAIL
junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return true for android.hardware.camera.autofocus
原因:手机无自动对焦功能
解决方法:去除..\mediatek\config\{PROJECT}\android.hardware.camera.xml文件中
<feature name="android.hardware.camera.autofocus" />
ro.sf.lcd_density=160可以通过测试,但是Blaze Launcher菜单显示不能全屏,考虑修改api
12.Libcore cts部分
13、DisplayRefreshRateTest
- mRefreshRate = fbDev->fps-5;
- mRefreshRate = fbDev->fps-5;
- mRefreshRate = fbDev->fps-4;
- mRefreshRate = fbDev->fps-4;
将相应的delay_ps这些文件进行设置权限,rw-r-r
15、
16、
公司的带宽比较大,但实际真正的带宽可能会小好多,导致去播放高清视频是会很卡,然后失败
解决方法:
参考8x25平台做法,在system.prop里面对带宽做限制:
media.httplive.max-bw = 360000
最大带宽限制在360000,这样,测试HLS的时候,就只会去播放200000的普通视频,基本可以通过。
17.
TITLE: android.provider.cts.MediaStore_Images_ThumbnailsTest -- testQueryExternalMiniThumbnails模块: CTS机型: 描述: 是缺少隐藏文件 一般是对应的/SDCARD/DCIM/.thumbnails/这个路径 18.<pre name="code" class="GENUDFRBOX changeScreenDescription">TITLE: com.android.cts.appsecurity.AppSecurityTests -- testExternalStorageWrite模块: CTS机型: 描述: <pre>需要修改<span lang="EN-US">frameworks/base/data/etc/platform.xml</span>文件成这样符合规范<span lang="EN-US"> <permission name="android.permission.WRITE_EXTERNAL_STORAGE" > <group gid="sdcard_r" /> <group gid="sdcard_rw" /> </permission> <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="media_rw" /> </permission></span>19.
TITLE: 1.android.permission.cts.FileSystemPermissionTest-- testSystemMountedRO_inits模块: CTS机型: 报错提示是 junit.framework.AssertionFailedError: /system is not mounted read-only at android.permission.cts.FileSystemPermissionTest.testSystemMountedRO_init(FileSystemPermissi描述:通过指令 adb shell 发现 mount | grep system 发现system的ex4 分区是rw权限 我们需要修改system的ex4 分区是ro即可<p></p>20.
TITLE: android.hardware.cts.SensorTest-- testSensorOperations模块: CTS机型: 描述: 比如 无指南针功能java.lang.NullPointerException at android.hardware.cts.SensorTest.testSensorOperations(SensorTest.java:107)一般根据代码可以查处对应的Senser无此功能,比如上面的log 我们能发现无指南针功能
21.CTS sensor 测试项失败分析
--------------------------------------------------------------------------------
【CTS】android.hardware.cts.SensorTest#testBatchAndFlush
【CTS】android.hardware.cts.SensorTest#testBatchAndFlushWithHandler
如果碰到上面两项的CTS测试项fail,请参考下面方法:
1. 请先确认是哪个sensor导致的fail,方法是看main_log:
如果CTS测试项成功会打印log:
TestRunner: started ···
TestRunner: finished ···
TestRunner: passed ···
如果失败的会只会打印 “TestRunner: started” 不会有 “TestRunner: passed” ,
所以可以搜索log “TestRunner” ,如果只有“started”而没有“passed”的说明此测试项fail了,
再搜索“SensorDevice” ,可以看到具体测试了哪些sensor,而最后一个sensor就是导致失败的sensor,
比如下面的log,可以看出是测试到handle=0x0000000d的sensor时失败了,然后再对照hwmsensor.h,确认是哪颗sensor
Line 16981: 09-23 10:38:51.672 3795 3807 I TestRunner: started: testBatchAndFlushWithHandler(android.hardware.cts.SensorTest)
Line 16996: 09-23 10:38:51.687 662 1349 D SensorService: SensorDevice::batch: ident=0x66e43b10, handle=0x00000000, flags=0, period_ns=200000000 timeout=0
Line 16999: 09-23 10:38:51.687 662 1349 D SensorService: SensorDevice::activate: ident=0x66e43b10, handle=0x00000000, enabled=1, count=2
Line 17258: 09-23 10:38:53.112 662 787 D SensorService: SensorDevice::activate: ident=0x66e43b10, handle=0x00000000, enabled=0, count=2
Line 17285: 09-23 10:38:53.123 662 1349 D SensorService: SensorDevice::batch: ident=0x66e43668, handle=0x0000000d, flags=0, period_ns=200000000 timeout=0
Line 17288: 09-23 10:38:53.123 662 1349 D SensorService: SensorDevice::activate: ident=0x66e43668, handle=0x0000000d, enabled=1, count=1
2.确认出问题的sensor硬件上是否存在,如果不存在的话请将改sensor的开关关闭,比如硬件上没有陀螺仪,
CUSTOM_KERNEL_GYROSOPE 就必须为空 。
目前碰到的多数原因都是在硬件不存在的情况下将开关打开了。
3.如果碰到msensor导致的失败,且不是上面的原因,请测试前将msensor先校准试一下
4.也有碰到测试时屏幕休眠, sensor被disable掉,进而导致测试失败,所以测试时请将手机stay awake,方法是将菜单
“设置---开发者选项---不锁定屏幕” 勾上 。
22.
TITLE: android.net.http.cts.ApacheHttpClientTest#testExecute_withMobile模块: CTS机型: 描述: 们分析是由于在断开wifi时,MTK加了一个对话框提示用户是要打开数据连接对话框,由于要打开该对话框,只能手动去选择打开数据流量导致修改如下:WIFI优选对话框是CMCC的spec要求,而且这个要求和CTS的测试冲突。对应的控制开关是 FeatureOption.OP01_CTS_COMPATIBLEFalse for CMCC load, TRUE for CTS load, default is FALSE.
23.
TITLE: android.webkit.cts.WebViewClientTest#testOnUnhandledKeyEvent 模块: CTS机型: 描述: 09-02 00:00:41.747 687 709 V Provider/Settings: from settings cache , name = default_input_method , value = com.touchtype.swiftkey/com.touchtype.KeyboardService 烦请贵司用Android default keyboard 输入法测试即可
24.
TITLE: android.security.cts.ListeningPortsTest --testNoRemotelyAccessibleListeningTcp6Portsandroid.security.cts.ListeningPortsTest$ListeningPortsAssertionError:Found port listening on addr=::, port=6259, UID=10014 [com.baidu.BaiduMap] in /proc/net/tcp6模块: CTS机型: 描述: 这是因为第三方apk 百度地图导致,去掉百度地图即可
25.
TITLE: android.telephony.cts.PhoneNumberUtilsTest -- testFormatMethods<div class="details">junit.framework.ComparisonFailure: expected:<222-333-444-555-666-[7777-888-9]999> but was:<222-333-444-555-666-[;777-888-;]999>at android.telephony.cts.PhoneNumberUtilsTest.testFormatMethods(PhoneNumberUtilsTest.java:195)</div>模块: CTS机型: 描述: 修改/frameworks/base/telephony/java/android/telephony/PhoneNumberUtils.java修改convertKeypadLettersToDigits这个方法即可
26.
1. android.provider.cts.ContactsProvider2_AccountRemovalTest 以下两个Fail 为google issue, 用Google Link向google申请waive即可
-- testAccountRemovalWithMergedContact_hasDeleteLogsForContacts
-- testAccountRemoval_hasDeleteLogsForContacts
Google link: https://android-review.googlesource.com/84112
android.provider.cts.ContactsProvider2_AccountRemovalTest
-- testAccountRemovalWithMergedContact_hasDeleteLogsForContacts
Google link: https://android-review.googlesource.com/84111
android.provider.cts.ContactsProvider2_AccountRemovalTest
-- testAccountRemoval_hasDeleteLogsForContacts fail
2. 以下测项均为google issue,MOL上已贴出通知
android.graphics.cts.BitmapFactoryTest
-- testDecodeFileDescriptor3
android.keystore.cts.KeyChainTest
-- testIsBoundKeyAlgorithm_RequiredAlgorithmsSupported
android.webkit.cts.WebViewTest
-- testLoadDataWithBaseUrl fail junit.framework.ComparisonFailure: expected:<http://[www.example.com/]> but was:<http://[localhost:-- testLoadUrlDoesNotStripParamsWhenLoadingContentUrls
3.com.android.cts.browser.BrowserBenchTest
-- testOctane
设置一个默认的浏览器即可
设置方法:
a.可以设置android 原生的浏览器: Browser
方法: 用短信的方式,发一个link到手机上,点击link 就可以设置一下默认浏览器
b. 需要设置google 的搜索引擎,
方法: 进入原生Browser -> setting -> Advanced -> Set search engine ->选择google
烦请按上述方法设置后再测试
4.android.webkit.cts.GeolocationTest
-- testSimpleGeolocationRequestAcceptAlways
-- testSimpleGeolocationRequestAcceptOnce
在setting里将location开关打开测试即可
5. 为fq.router2导致fail, 贵司自行导致,自行检查即可
(比如我们常见的百度地图导致Fail)
android.security.cts.ListeningPortsTest
-- testNoRemotelyAccessibleListeningTcpPorts fail
-- testNoRemotelyAccessibleListeningUdpPorts
27.
TITLE: android.net.cts.ConnectivityManagerTest -- testStartUsingNetworkFeature_enableHipri<div class="details">junit.framework.AssertionFailedError: Couldn't connect using hipri...at android.net.cts.ConnectivityManagerTest.testStartUsingNetworkFeature_enableHipri(ConnectivityManagerTest.java:294)</div>模块: CTS机型: 描述: 这条是测试的目的就是测其wifi和数据连接是否可以共存, 常见Fail,所以测试前需要以下步骤准备 1. 写入本机号码,写入有效的IMEI 2.本机给本机发短信,需要可以正常发送并正常接收 3.用同一张SIM卡在对比机测试通过后,再测待测手机
28.
TITLE: android.content.pm.cts.ResolveInfo_DisplayNameComparatorTest--testDisplayNameComparator<pre id="comment_text_2">junit.framework.AssertionFailedErroratandroid.content.pm.cts.ResolveInfo_DisplayNameComparatorTest.testDisplayNameComparator(ResolveInfo_DisplayNameComparatorTest.java:40)at java.lang.reflect.Method.invokeNative(Native Method)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)atandroid.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)atandroid.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1734)
模块: CTS机型: 描述: 这条需要检测第三方apk 在英语环境下是否能翻译,否则会Fail
- android 4.4 代码CTS修改日记
- Android 4.4 CTS 代码修改日记
- Android 5.0 CTS 代码修改日记
- Android 5.0 CTS 代码修改日记
- Android 4.4.3 -CTS IPv6回环测试失败 [CTS]android.net.ipv6.cts.PingTest - testLoopbackPing - fail
- Android CTS
- Android CTS
- Android CTS
- Android CTS
- android CTS
- Android CTS
- Android 2.3 CTS测试修改测试结果和调试方法
- Android 2.3 CTS测试修改测试结果和调试方法
- Android CTS测试修改测试结果和调试方法
- Android CTS 兼容性测试的Fail的一些修改
- Android CTS测试Fail项修改总结(四)
- Android CTS测试Fail项修改总结(四)
- Android 4.4 CTS testPinchIn & testPinchOut failed
- oracle数据库导入导出命令!
- IOS 四种保存数据的方式
- scanf中运用正则表达式
- 两种方法实现在HTML页面加载完毕后运行某个js
- 20141205,微软十二月安全补丁提前通知
- Android 4.4 CTS 代码修改日记
- JavaScript DOM 编程艺术(第2版)读书笔记(1)
- 移动硬盘Win8.1系统相关记录
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()作用
- MySQL中DATETIME、DATE和TIMESTAMP类型的区别
- android ContentResolver详解
- 检查tomcat是否已经启动命令
- JavaScript DOM 编程艺术(第2版)读书笔记(2)
- .Net 学习经验