1. 程式人生 > >Android學習筆記--GMS認證中常見的fail項及解決方法

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.新增: <item>com.android.contacts</item>
                <item>com.android.dialer</item>
                <item>com.ape.launcher3</item>
                 去掉:<!--item>com.google.android.contacts</item--> <!-- Google Contacts -->
       2.新增:<item>com.android.contacts</item>
                去掉<!--item>com.google.android.contacts</item--> <!-- Google Contacts -->