Android学习笔记--GMS认证(常见的cts—fail及解决方法)

GMS认证
 一、lunch桌面的google应用排序要求:
Google apps folder should contain applications in the following order from left to right; top to bottom.Google Chrome, Gmail, Google+, Google Maps, Google Play Music, Google Play Movies, Google Play Books, Google Play Newsstand, Google Play Games, Google Drive, YouTube, Google Plus Photos, Hangouts
 二、 测试命令
1)全量测试:
 run cts –plan CTS
2) fail项测试:
  l  r
  run cts –continue-session session ID

3)单测试某个case:
a.run cts -c class name -m case name
比如:run cts -c android.hardware.cts.CameraGLTest -m testCameraToSurfaceTextureMetadata
b.  run cts -t class name#case name ,
如:run cts -t android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata
4)测试一个包:
a.  run cts -c class name; 比如:run cts -c android.hardware.cts.CameraGLTest
b.  run cts -p class name,

比如: start --plan CTS -p android.hardware.cts.CameraGLTest
5)fail项测试:
    add derivedplan -r fail -s 0 -p xie//导出fail项
    run cts --plan xie//测试fail项



三、 CTS_fail总结
1)android.view.accessibility.cts.AccessibilityManagerTest
-- testAddAndRemoveAccessibilityStateChangeListener    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testGetAccessibilityServiceList    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testGetEnabledAccessibilityServiceList    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testGetEnabledAccessibilityServiceListForType    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testGetInstalledAccessibilityServicesList    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testInterrupt    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testIsTouchExplorationEnabled    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testSendAccessibilityEvent    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)
-- testAndroidTestCaseSetupProperly    fail    junit.framework.AssertionFailedError: Accessibility should have been enabled by the test runner. expected:<1> but was:<0> at junit.framework.Assert.fail(Assert.java:50)

android.view.accessibility.cts.AccessibilityServiceInfoTest
-- testAccessibilityServiceInfoForEnabledService    fail    junit.framework.AssertionFailedError: There should be one speaking service. expected same:<1> was not:<0> at junit.framework.Assert.fail(Assert.java:50)
首先确认手机是否是低内存的,如果是请关闭内存优化:
修改: ProjectConfig.mk
修改记录:-CONFIG_LOWMEMORY = yes
+CONFIG_LOWMEMORY = n
o

2)testBatchScan
android.bluetooth.cts.BluetoothLeScanTest
-- testBatchScan    fail    junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:48)
-- testOpportunisticScan    fail    junit.framework.AssertionFailedError: Scan results shouldn't be empty at junit.framework.Assert.fail(Assert.java:50)
-- testScanFilter    fail    junit.framework.AssertionFailedError: Scan results shouldn't be empty at junit.framework.Assert.fail(Assert.java:50)
该项测试是测试bluetooth的需要测试环境要包含三个或者三个以上的BLE设备,一般也可以安装apk来模拟BLE设备

3)test4_1MeasurePeakRms
android.media.cts.VisualizerTest
-- test4_1MeasurePeakRms    fail    junit.framework.AssertionFailedError: peak deviation in mB=2797 at junit.framework.Assert.fail(Assert.java:50)
-- test4_2MeasurePeakRmsLongMP3    fail    junit.framework.AssertionFailedError: peak deviation in mB=2813 at junit.framework.Assert.fail(Assert.java:50)
关闭besloundness再测试,这个菜单位于Settings/sound&notification/sound enhancement ,默认是开启的。
Note:
xxxxx的DRC(BesLoudness)会在AudioEffect之前处理。该CTS测试项会在AudioEffect中取出data并计算PeakRms。由于DRC会对gain值产生影响,而CTS测试对gain值有所限制,所以BES_LOUDNESS_MUSICDRC_SB_GAIN会影响最终CTS测试的结果


4)testLiveWallpaperFeature
android.app.cts.SystemFeaturesTest
-- testLiveWallpaperFeature    fail    junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should return true for android.software.live_wallpaper at junit.framework.Assert.fail(Assert.java:50)
从问题上可以看出是需要判定需要设置 android.software.live_wallpaper为真,修改:
packages/wallpapers/LivePicker/ android.software.live_wallpaper.xml文件修改为真


5)testCameraFeatures
android.app.cts.SystemFeaturesTest
-- testCameraFeatures        fail    junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return true for android.hardware.camera.autofocus at junit.framework.Assert.fail(Assert.java:50)
        
修改路径: android.hardware.camera.xml:    
<feature name="android.hardware.camera.autofocus" />
<!--feature name="android.hardware.camera.autofocus" /--
>

6)testBurstVideoSnapshot
-- testBurstVideoSnapshot    fail    com.android.ex.camera2.exceptions.TimeoutRuntimeException: Timed out after 3000 ms waiting for state(s) SESSION_CLOSED at com.android.ex.camera2.utils.StateWaiter.waitForAnyOfStates(StateWaiter.java:164)
-- testVideoSnapshot    fail    junit.framework.AssertionFailedError: Wait for a capture result timed out in 3000ms at junit.framework.Assert.fail(Assert.java:50)
一般是由于光照等原因导致的,打灯进行重新测试。
要求:
1  亮度要求:后摄:不要将平板直接放在桌子上进行测试,后摄被遮挡,一般后摄的fps因为外部光源较弱就会被降低,最好放在支架上,后摄可以对着明亮的电脑屏幕或者灯光;
  前摄: 不要在平板上前摄盖着东西,或者因为全测时间很长,在夜晚关闭灯光放在黑暗环境下去测试,这样前摄的fps也很可能被降低,摄最好也对着灯光。
  明亮环境: 可以打开camera,在main log中搜索aaa_state_camera_preview: lv, 此值一般要在60以上。
2  帧率要求:最好preview,capture都可以达到30fps, 建议preview的帧率至少在24fps以上,capture的帧率在15fps以上。
3  Driver部分:
   1 )理论fps值:此方面需要和sensor FAE或者datasheet确定设置寄存器的代码,确定sensor输出的理论fps值。
   2 ) 提高driver性能:
      减少延时: camera sensor driver减少上电延时和driver init/preview/capture/setting/feature control等的延时:
尽可能在符合camera sensor spec的基础上减少延时;
      camera sensor driver I2C speed提高:
默认的I2C speed应该是100K, 如果camera sensor可支持,可以尝试提高到400K来测试,这样camera driver中读写I2C的速度会提高到之前的4倍;
     camera driver在不影响画面显示的情况下尽可能减少delay frame:
         如下的数值尽可能减少:
         .cap_delay_frame = 3,
         .pre_delay_frame = 3,
         .video_delay_frame = 3,  
实际中,可以先都改为0来测试cts是否可以pass, 如果可以pass, 再查看camera preview/capture/video开始显示画面时是否有黑屏/绿屏/杂线的问题,如果有,可以酌情。
修改路径:
baseline/kernel-3.10/drivers/misc/xxxxx/mach/xxxx/xxxx/
baseline/vendor/xxxxx/proprietary/platform/xxxxx/hardware/xxxxxcam/core/featureio/pipe/aaa/aaa_hal.cpp
baseline/vendor/xxx/xxx/ccccccc/hal/sendepfeature
/
7) testOctane
-- testOctane    fail    Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details
设置默认浏览器为chrome

8) testOwnerChangedBroadcast
com.android.cts.devicepolicy.CustomDeviceOwnerTest
-- testOwnerChangedBroadcast    fail    junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:48)

com.android.cts.devicepolicy.LauncherAppsSingleUserTest
-- testLauncherCallbackPackageAddedMainUser    fail    junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:48)
-- testLauncherCallbackPackageChangedMainUser    fail    junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:48)
-- testLauncherCallbackPackageRemovedMainUser    fail    junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:48)
修改:ProjectConfig.mk(关闭低内存的内存优化)
修改记录:-CONFIG_LOWMEMORY = yes
+CONFIG_LOWMEMORY = no


9)testLiveWallpaperFeature
android.app.cts.SystemFeaturesTest
-- testLiveWallpaperFeature    fail    junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return true for android.software.live_wallpaper at junit.framework.Assert.fail(Assert.java:50)
修改:baseline/packages/wallpapers/LivePicker/android.software.live_wallpaper.xml
修改记录:-    <feature name="android.software.live_wallpaper" />
•    <!--feature name="android.software.live_wallpaper" /-
->

10)testNeverallowRules107
android.cts.security.SELinuxNeverallowRulesTest
-- testNeverallowRules107        fail    junit.framework.AssertionFailedError: The following errors were encountered when validating the SELinuxneverallow rule: neverallow system_server sdcard_type:file { { getattr open read ioctl lock } { open append write } };

路径:baseline/device/xxxxx/common/sepolicy/system_server.te
      baseline/external/sepolicy/system_server.te
撤回提交记录:

git revert 。。。。。


11)testNeverallowRules164
android.cts.security.SELinuxNeverallowRulesTest
-- testNeverallowRules164    fail    junit.framework.AssertionFailedError: The following errors were encountered when validating the SELinuxneverallow rule: neverallow system_server sdcard_type:file { { getattr open read ioctl lock } { open append write } };
修改:baseline/device/xxxxx/common/sepolicy/system_server.te
    修改记录:-allow system_server vfat:file read;
+#allow system_server vfat:file read;
+neverallow system_server sdcard_type:file rw_file_perms
;

11)testPlay00(分辨率低)
android.mediastress.cts.H264R1080pAacRepeatedPlayerTest
-- testPlay00    fail    junit.framework.AssertionFailedError: playback /storage/emulated/0/test/bbb_short/1920x1080/mp4_libx264_libfaac/bbb_short.ffmpeg.1920x1080.mp4.libx264_10000kbps_30fps.libfaac_stereo_192kbps_48000Hz.mp4 at junit.framework.Assert.fail(Assert.java:50)
修改:devices/x x x/vvvv/media_codecs_xxxxx_video.xml
       <MediaCodec name="OMX.MTK.VIDEO.DECODER.HEVC" type="video/hevc" >
-            <Limit name="size" min="16x16" max="1920x1088" />
+            <Limit name="size" min="16x16" max="1280x720" /
>

13)testCameraToSurfaceTextureMetadata
android.hardware.cts.CameraGLTest
-- testCameraToSurfaceTextureMetadata    fail    junit.framework.AssertionFailedError: Too many frame intervals out of frame rate bounds: 99, limit 4 at junit.framework.Assert.fail(Assert.java:50)
Camera的条件:
1.  保证前后摄像头都不要被遮挡。
2.  保证环境亮度,lv值至少在60以上。
在main log中搜索:aaa_state_camera_preview: lv
3.  保证preview的帧率至少在24fps以上,capture的帧率在15fps以上
4.  feature table中,preview size跟picture 的size满足如下条件:
1)preview size的最大值不能大于picture size的最大值。
2)preview size 最大值的比例跟picture size的最大值比例要保持一致,比例差值不大于+-0.001。
( 不建议preview size 最大值配置跟picture size最大值一样,因为preview size设置过大,会比较耗memory,很可能出现out of memory的情况,建议比例一致即可,preview size 最大值配置跟屏幕分辨率接近就行)。
3)picture size跟preview size的宽高必须是16的倍数
5  Feature Table fps range:
请根据camera sensor的能力来填写fps range信息。Google CTS要求至少有一条range是在min <= 15, max >= 30, 且必须有fixed fps: 30;还有一个原则是: 最小不要小于5fps.
另外,由于video mode night需要15fps, video可能还需要20fps.
 一般的配置如下(Base: 1000x):
(5000,30000),
(15000,15000),     // 如果fps性能偏差,可以改成(5000,15000)
(20000,20000),
(30000,30000),     //  一定需要有
如支持PIP, 还需要配置:(24000,24000)
Driver需要实现对于max framerate的控制,这个其实就是Fixed Framerate的含义。
因为Camera Sensor可能在不同光源下fps会自动调整,默认我们在足够明亮的环境下,所以设定max framerate其实就是指把sensor固定在max framerate这种fps下。当然,实际上,会有一定误差。
RAW Sensor:
实现SENSOR_FEATURE_SET_MAX_FRAME_RATE_BY_SCENARIO
SENSOR_FEATURE_GET_DEFAULT_FRAME_RATE_BY_SCENARIO
YUV Sensor:
实现SENSOR_FEATURE_SET_VIDEO_MODE
有些driver中会hardcode写死支持某些特定fps, 这种情况就需要根据情况修正或者放宽fps range.
修改:
1.    baseline/kernel-3.18/drivers/misc/xxxxx/imgsensor/src/XXXX/camera_project/XXX
2.    baseline/vendor/xxxxx/proprietary/custom/XXXX/hal/sendepfeature(后置摄像头)
3.    baseline/vendor/xxxxx/proprietary/custom/XXXX/hal/sendepfeature(前置摄像头各种size的更改尤其是fps的修改


14)android.hardware.camera2.cts.RecordingTest
android.hardware.camera2.cts.RecordingTest
-- testBasicRecording    fail    junit.framework.AssertionFailedError: Frame rate range [20, 20] (for profile ID 2) must be one of the camera device available FPS range! at junit.framework.Assert.fail(Assert.java:50)
-- testRecordingFromPersistentSurface    fail    junit.framework.AssertionFailedError: Frame rate range [20, 20] (for profile ID 2) must be one of the camera device available FPS range! at junit.framework.Assert.fail(Assert.java:50)
1.     查看设备信息
Camera:CAM[1]:xxxxxmipiraw   (后置摄像头)main camera  
         CAM[2]:xxxxxxxxxxxxxxx(前置摄像头)sub camera
2.    路径:vendor/mediatek/proprietary/custom/xxxx/hal/sendepfeature/下修改对应的配置
//  Preview Frame Rate Range
    FTABLE_CONFIG_AS_TYPE_OF_USER(
        KEY_AS_(CameraParameters::KEY_PREVIEW_FPS_RANGE),
        SCENE_AS_DEFAULT_SCENE(
            ITEM_AS_DEFAULT_("30000,30000"),
            ITEM_AS_USER_LIST_(
            "(10000,30000)",
                "(15000,15000)",
            +   "(20000,20000)",
                "(24000,24000)",
                "(30000,30000)",
                "(60000,60000)",
                "(120000,120000)",
            )
        )
,
    )


15) android.hardware.cts.SensorBatchingTests

android.hardware.cts.SensorBatchingTests
-- testGravity_50hz_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Gravity Sensor', samplingPeriod=20000us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
-- testGravity_fastest_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Gravity Sensor', samplingPeriod=0us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
-- testLinearAcceleration_50hz_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Linear Acceleration Sensor', samplingPeriod=20000us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
-- testLinearAcceleration_fastest_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Linear Acceleration Sensor', samplingPeriod=0us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
-- testMagneticField_50hz_flush    fail    junit.framework.AssertionFailedError: WaitForFlush | sensor='MAGNETOMETER', samplingPeriod=20000us, maxReportLatency=10000000us | timeout=10000000us at junit.framework.Assert.fail(Assert.java:50)
-- testMagneticField_fastest_flush    fail    junit.framework.AssertionFailedError: WaitForFlush | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=10000000us | timeout=10000000us at junit.framework.Assert.fail(Assert.java:50)
-- testOrientation_50hz_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Orientation Sensor', samplingPeriod=20000us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
-- testOrientation_fastest_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Orientation Sensor', samplingPeriod=0us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
-- testRotationVector_50hz_batching    fail    junit.framework.AssertionFailedError: VerifySensorOperation | sensor='Rotation Vector Sensor', samplingPeriod=20000us, maxReportLatency=10000000us | Failed due to (insufficient events, ) at junit.framework.Assert.fail(Assert.java:50)
android.hardware.cts.SensorIntegrationTests
android.hardware.cts.SensorIntegrationTests
-- testAccelerometerMagneticFieldStopping    fail    junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: WaitForEvents | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=0us | requested=100, received=0, timeout=27222200us, at junit.framework.Assert.fail(Assert.java:50)
-- testGyroscopeMagneticFieldStopping    fail    junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: WaitForEvents | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=0us | requested=100, received=0, timeout=27222200us, at junit.framework.Assert.fail(Assert.java:50)
-- testMagneticFieldAccelerometerStopping    fail    junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: WaitForEvents | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=0us | requested=100, received=0, timeout=27222200us, at junit.framework.Assert.fail(Assert.java:50)
-- testMagneticFieldGyroscopeStopping    fail    junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: WaitForEvents | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=0us | requested=100, received=0, timeout=27222200us, at junit.framework.Assert.fail(Assert.java:50)
-- testMagneticFieldMagneticFieldStopping    fail    junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: WaitForEvents | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=0us | requested=100, received=0, timeout=27222200us, junit.framework.AssertionFailedError: WaitForEvents | sensor='MAGNETOMETER', samplingPeriod=0us, maxReportLatency=0us | requested=100, received=0, timeout=27222200us, at junit.framework.Assert.fail(Assert.java:50)
testBatchAndFlushWithMultipleSensors
android.hardware.cts.SensorTest
-- testBatchAndFlushWithMultipleSensors    fail    junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: WaitForEvents | sensor='Orientation Sensor', samplingPeriod=0us, maxReportLatency=10000000us | requested=500, received=0, timeout=26111000us, at junit.framework.Assert.fail(Assert.java:50)

    1)首先确认产品支持哪些传感器,对于支持的传感器测试不通过的采取:校准sensor
     需要首先在ftm模式下面吧sensor的项目都跑一遍,在界面中有cali字段的sensor都要跑一下这个cali校准,按下音量下键+电源键  进入ftm,点击item test,界面中就找sensor就好了。
    2)反之,如果产品不支持某些传感器,但是对应的测试项fail,将宏控关闭重新测试即可

 


17) 可以豁免的项:

testDnsWorks、testNoListeningLoopbackTcp6Ports、testAll、testAll、testAll
android.net.cts.DnsTest
-- testDnsWorks    fail    junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:48)
android.security.cts.ListeningPortsTest
-- testNoListeningLoopbackTcp6Ports    fail    android.security.cts.ListeningPortsTest$ListeningPortsAssertionError: Found port listening on addr=127.0.0.1, port=52218, UID=10094 [com.google.android.youtube] in /proc/net/tcp6
Compatibility Test Package: android.voiceinteraction ABI: armeabi-v7a
Test    Result    Details
android.voiceinteraction.cts.VoiceInteractionTest
-- testAll    fail    junit.framework.AssertionFailedError: Failed to receive broadcast in 20000msec at junit.framework.Assert.fail(Assert.java:50)
Compatibility Test Package: android.voicesettings ABI: armeabi-v7a
Test    Result    Details
android.voicesettings.cts.AirplaneModeTest
-- testAll    fail    junit.framework.AssertionFailedError: Failed to receive broadcast in 20000msec at junit.framework.Assert.fail(Assert.java:50)

android.voicesettings.cts.BatterySaverModeTest
-- testAll    fail    junit.framework.AssertionFailedError: Failed to receive broadcast in 20000msec at junit.framework.Assert.fail(Assert.java:50)
android.voicesettings.cts.AirplaneModeTest
-- testAll fail junit.framework.AssertionFailedError: Failed to receive broadcast in 20000msec at junit.framework.Assert.fail(Assert.java:50)
android.voicesettings.cts.BatterySaverModeTest
-- testAll fail junit.framework.AssertionFailedError: Failed to receive broadcast in 20000msec at junit.framework.Assert.fail(Assert.java:50)
Only waive in low RAM project.
Voice recognition and related services will not be available on LOW RAM projects.
https://android-review.googlesource.com/#/c/196480/
[CTS 6.0_r2]android.voiceinteraction.cts.VoiceInteractionTest
-- testAll fail junit.framework.AssertionFailedError: Failed to receive broadcast in 20000msec at junit.framework.Assert.fail(Assert.java:50)     
Only waive in low RAM project.
Voice recognition and related services will not be available on LOW RAM projects.

https://android-review.googlesource.com/#/c/196480/


四   Verifier测试总结:
     1.     测试准备:
    安装apk:需要安装以下几个apk:NotificationBot.apk、CtsPermissionApp.apk、CtsVerifier.apk;
     2.     测试项:
     USB Accessory Test:
     在以下路径下打开终端执行/cts-usb-accessory:
      Projects/2500_mcl_mtn_za/cts_testing/android-cts-verifier$./cts-usb-accessory
     3. Data Backup Test
         1.安装CTS Verifier
         2.插入有效的SIM card
         3.使内置sdcard可用,(但不另插SD card).
         4.打开Wifi,并连接有效AP.
         5.进入CTS Verifier > 选择“Data Backup Test” > 选择 “OK” > 选择 “Generate Test Data” > 选择 “Settings” > 勾选“Back up my data”>点击Backup account>登录Google账户 >按“返回”键> 记录当前界面显示的数据。
         6.在PC端输入依次输入以下命令
           adb shell bmgr enable true
          adb shell bmgr enabled
          adb shell bmgr transport android/com.android.internal.backup.LocalTransport
           adb shell bmgr run(执行完这条命令,留出一定时间进行备份)
           adb uninstall com.android.cts.verifier
           adb install CtsVerifier.apk
         7.  再进入CTS verifier > 选择“Data Backup Test” > 选择 “OK” >记录当前界面显示的数据,并与第一次记录的数据进行对比。如果两份数据相同,则备份成功,否则失败。

     4. GPS Test
          打开wifi或者数据流量,开启location,屏幕保持常亮,进行测试~
     5. Notification Package Priority Test
         根据测试提示在settingSound&NotificationNotificationApp NotificationsCTS Verifier路径下分别设置:Allow peeking和Treat as priority;(该项测试一般是测试软件问题的);
     6. Hifi Ultrasound Microphone Test
           安静的测试环境下,两台手机一个录音一个进行播放进行测试;
     7.  Policy Serialization Test
          首先测试Keyguard Password Verification,一般Policy Serialization Test放在其后面进行测试,否则Policy Serialization Test测试会影响Keyguard Password Verification的测试结果。但是在某些项目中是不支持该项测试的。
     8. Bluetooth 和wifi
           两台同系统的机器,刷好mac地址,不一定要联网,两台机器交互着进行测试~
     9. Streaming Video Quality Verifier
           需要“翻墙”,先保证www.youtube.com可以正常播放视频 并对比机可以正常pass后,再开始测试。

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值