Android学习笔记--GMS认证中常见的fail项及解决方法

#############################################################

cts测试的一些命令:
    sudo chmod a+x copy_media.sh
    ./copy_media.sh all
    adb install CtsDeviceAdmin.apk
    ./cts-traded
     run cts --plan CTS   //CTS全量测试
     run cts -c .... -m ..... // 单项测试
     run cts --continue-session sessionID //fail项测试
 
#############################################################

 cts测试前需要注意的事项:
   1)  固定版本:BUILD_FINGERPRINT
     baseline/build/core/Makefile
     baseline/vendor/XXX/m2222/区域选择/buildinfo.sh

           echo "ro.build.fingerprint=Aaaa/ass/ass:$PLATFORM_VERSION/$BUILD_ID/$BF_BUILD_NUMBER:$TARGET_BUILD_VARIANT/$BUILD_VERSION_TAGS"
     vendor/vvv/XXX/m2222/ProjectConfig.mk
           MTK_SIGNATURE_CUSTOMIZATION=yes;

     vendor/XXX/m2222/区域选择/gms.mk

          修改clientID及gms包的版本

   2) 查看手机 flash的大小
       当>=1G时确认下是否需要使用多用户~
   3) 手机助手会影响很多网络问题过不了
        vendor/myos/configs/p2222/区域/configs.mk
           MYOS_APE_PHONEASSIST_SUPPORT=yes--->no
          
#############################################################
 
cts测试遇到的问题点:
   1) -testExternalStorageNone/testExternalStorageRead/testExternalStorageWrite
            测试sd卡存储功能的,在测试的时候可以将sd卡格式化再测试;
            多用户的话,由于几个宏控的设置导致sd卡不能存储,mtk那边release了一个sdcard0.c文件,需要修改一下~
               设置:platform.xml文件不需要修改

                     *.rc文件将export前面的#去掉:device/xxxx/vvvv2342_34c_r/init.project.rc


   2) -testBuildFingerprint
            没有固定版本号的报错信息;
            修改: baseline/vendor/XXX/m2222/区域选择/ProjectConfig.mk和buildinfo.sh
        其中ProjectConfig.mk是将宏控打开:MTK_SIGNATURE_CUSTOMIZATION = yes
            buildinfo.sh中将echo "ro.build.fingerprint=$BUILD_FINGERPRINT" 修改成

                    echo "ro.build.fingerprint=Xxxx/xx/xxx:$PLATFORM_VERSION/$BUILD_ID/$BF_BUILD_NUMBER:$TARGET_BUILD_VARIANT/ $BUILD_VERSION_TAGS"


   3) -testOctane

            设置默认浏览器为chrome


   4) -testDumpProtected/testTrafficStatsForLocalhost

            多测试几便就能通过~


   5) -testNoAttributesAfterLastPublicAttribute/testDnsWorks

            前者可以豁免,后者是将网络转换成IPV6就可以测试通过;


   6) -testGetWithId/testGet       
           跑单项抓log,根据log信息来确定问题点:
           run cts -c android.media.cts.CamcorderProfileTest -m testGetWithId

           adb logcat > ./testGet_FAIL.txt    一般问题是在某些像素的照片不支持所导致~

    Log里的关键字可以搜索(1024x768)is not supported

           更改该文件baseline/vendor/mediatek/proprietary/custom/xxxx/hal/D1/sendepfeature/xxx_mipi_raw/config.ftbl.xxx_mipi_raw.h


   7) -testBatchAndFlush/testBatchAndFlushWithMultipleSensors
       陀螺仪和传感器方面的测试,首先确认机型是否支持该项功能,然后再进行测试修改;
       如果支持传感器功能则需要进行校准后进行测试该项,否则将宏关闭,多测试几遍会pass。
        baseline/vendor/XXX/m2222/区域选择/ProjectConfig.mk
                CUSTOM_KERNEL_GYROSCOPE = yes-->将yes删掉
             安装GameCube.apk做一下校准,过程:安装GameCube.apk-->进入GameCube.apk -->选择“orienttion Sensor” -->"Raw Output" -->查看Accurcy的值

    正常的为: high / medium /low,若看到的是unkonw, 可以拿手机在各个方向晃几下,显示正常了再开始测试即可。(尽可能离机箱远一些)

       

   8) -testAeRegions/testAfRegions/testTakePicture/testTouchForFocus/testBurstVideoSnapshot

           这几项使用来测试相机的,首先保证测试的环境:光线充足,摄像头未被遮挡等;


   9)-testIsRunning/- testGetAnimatedFraction/testGetAnimatedValue/testGetAnimatedValue_PropertyName
          动画播放fail,首先确认设置-->开发者选项-->窗口动画缩放/动画程序时长调整/过渡动画缩放是否设置为1x

         setting-->Developer options-->Window animation scale/Transition animation scale/Animation duration scale-->1x


  10) -testIsRunning
       googe patch的问题
         修改:baseline/frameworks/av/media/libstagefright/ACodec.cpp
             #define MP3_MULTI_FRAME_COUNT_IN_ONE_INPUTBUFFER_FOR_PURE_AUDIO 2
             #define MP3_MULTI_FRAME_COUNT_IN_ONE_INPUTBUFFER_FOR_VIDEO 1
             #define MP3_MULTI_FRAME_COUNT_IN_ONE_OUTPUTBUFFER_FOR_PURE_AUDIO 2
             #define MP3_MULTI_FRAME_COUNT_IN_ONE_OUTPUTBUFFER_FOR_VIDEO 1

         将原来的1修改成2;


  11)-testOtherH263FlexArbitraryH/testOtherH263FlexArbitraryW/testOtherH263FlexMaxMax/testOtherH263SurfNearMaxMax....

           fail的原因是263有些音频格式不支持,修改:baseline/device/mediatek/xxxx/media_codecs.xml


  12)-testNoAttributesAfterLastPublicAttribute
          查看此次做了什么修改,需要还原才能解决。
       可以从此路径开始搜索 baseline/vendor/xxxx/requirment/区域/app/Mms/res/xml/notificationpreferences.xml

#############################################################

GTS测试
  1)--com.google.android.webview.xts.WebViewTest
           testWebViewFrameworkConfigSettingIsSet/testWebViewIsPreinstalled/testWebViewIsSignedWithCorrectKeys/testWebViewIsSystem
      修改:vendor/google/products/gms.mk
            或者vendor/XXX/m2222/区域选择/gms.mk
          PRODUCT_PREBUILT_WEBVIEWCHROMIUM := no-->yes

     这些测试项都是测试是否有正确安装GMS包的webview,除了改成yes 之外,把相关部分复原为gms.mk中的原始的设定, 重新 build 后进行测试;


  2)--testSecurityPatchFound
      修改:baseline/vendor/XXX/m2222/区域选择/buildinfo.sh

     加上:echo "ro.build.version.security_patch=$PLATFORM_SECURITY_PATCH"


  3)--com.google.android.xts.afw.AfwRequiredAppsOverlaysTest
         testContactsRequiredManagedDeviceOverlay/testDialerRequiredManagedDeviceOverlay/testLauncherRequiredManagedDeviceOverlay
     修改:1.baseline/vendor/google/products/gms_overlay/packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml
           2.baseline/vendor/google/products/gms_overlay/packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml
       1.添加: com.android.contacts
                com.android.dialer
                com.ape.launcher3
                 去掉:
       2.添加:com.android.contacts
                去掉













           
        

你可能感兴趣的:(Android学习笔记)