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/區域選擇/
修改clientID及gms包的版本
當>=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) -testIsRunninggooge 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.AfwRequiredAppsOverlaysTesttestContactsRequiredManagedDeviceOverlay/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 -->