Android Q CTS记录(MTK)

 

CtsBluetoothTestCases

android.bluetooth.cts.BluetoothLeScanTest#testBasicBleScan

android.bluetooth.cts.BluetoothLeScanTest#testOpportunisticScan

android.bluetooth.cts.BluetoothLeScanTest#testScanFilter

分析: 由于蓝牙信标定位失败引起

检查定位(Location)是否开启

测试设备周围存在多个蓝牙设备

安装 TxEddystone-UID-release.apk至辅助机,并开启,测试通过

CtsDevicePolicyManagerTestCases

com.android.cts.devicepolicy.DeviceOwnerTest#testCreateAndManageUser_SwitchUser

解决方法:配置好ADB环境,让CTS创建新用户时连接不会断开

CtsPermissionTestCases

android.permission.cts.NoSystemFunctionPermissionTest#testSendSms    

android.permission.cts.SmsManagerPermissionTest#testSendMultipartTextMessage

android.permission.cts.SmsManagerPermissionTest#testSendDataMessage

android.permission.cts.SmsManagerPermissionTest#testSendTextMessage

解决方法:插上可以正常使用的手机SIM卡测试即可通过

CtsAppSecurityHostTestCases

android.appsecurity.cts.AdoptableHostTest#testEjected

需要打入补丁ALPS04929698

diff --git a/arch/arm/boot/dts/mt6771.dts b/arch/arm/boot/dts/mt6771.dts

index 1e4d4a1..1dfa9b9 100644

--- a/arch/arm/boot/dts/mt6771.dts

+++ b/arch/arm/boot/dts/mt6771.dts

@@ -37,7 +37,7 @@

                           cgroup.memory=nosocket,nokmem \

                           androidboot.hardware=mt6771 \

                           firmware_class.path=/vendor/firmware \

-                           page_owner=on";

+                          page_owner=on loop.max_part=7";

        };



        cpus {

diff --git a/arch/arm64/boot/dts/mediatek/mt6771.dts b/arch/arm64/boot/dts/mediatek/mt6771.dts

index 8e84093..24684b1 100644

--- a/arch/arm64/boot/dts/mediatek/mt6771.dts

+++ b/arch/arm64/boot/dts/mediatek/mt6771.dts

@@ -36,7 +36,7 @@

 vmalloc=400M slub_debug=OFZPU swiotlb=noforce page_owner=on \

 cgroup.memory=nosocket,nokmem \

 androidboot.hardware=mt6771 \

-firmware_class.path=/vendor/firmware";

+firmware_class.path=/vendor/firmware loop.max_part=7";

                 kaslr-seed = <0 0>;

        };

CtsAppTestCases

android.app.cts.SystemFeaturesTest#testSensorFeatures
java.lang.AssertionError: PackageManager#hasSystemFeature(android.hardware.sensor.barometer) returns true but SensorManager#getSensorList(6) shows sensors [] expected:&lt;true&gt; but was:&lt;false&gt;

解决方法:找到对应的ProjectConfig.mk将控制android.hardware.sensor.barometer.xml的宏CUSTOM_KERNEL_BAROMETER设置为no重新编译测试可通过.

CtsOmapiTestCases

android.omapi.cts.OmapiTest#testOpenBasicChannelNullAid    
java.lang.AssertionError: Unexpected Exception java.io.IOException: Secure Element is not present.
android.omapi.cts.OmapiTest#testATR    
java.lang.AssertionError: Could not open session
android.omapi.cts.OmapiTest#testSecurityExceptionInTransmit    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testWrongAid    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testOpenBasicChannelNonNullAid    
java.lang.AssertionError: Unexpected Exception java.io.IOException: Secure Element is not present.
android.omapi.cts.OmapiTest#testSegmentedResponseTransmit    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testSelectableAid    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testStatusWordTransmit    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testTransmitApdu    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testGetReaders    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testP2Value    
java.lang.AssertionError
android.omapi.cts.OmapiTest#testLongSelectResponse

解决办法: 找到对应的ProjectConfig.mk将MTK_OMAPI_SUPPORT=yes改为no

CtsSecurityTestCases

android.security.cts.PackageSignatureTest#testPackageSignatures

解决办法:将build/make/target/product/security下的所有google公用签名文件替换为自己生成 的私有化签名文件,生成规则参考build/make/target/product/security/README.

 

CtsCameraTestCase

android.hardware.camera2.cts.StaticMetadataTest#testCapabilities

解决办法:修改对应相机的metadata文件

vendor/mediatek/proprietary/custom/mt6771/hal/imgsensor_metadata/ov13853_mipi_raw/config_static_metadata_project.h 
index 77fb2c9..c68e8c9 100755
@@ -43,6 +43,7 @@ STATIC_METADATA2_BEGIN(PLATFORM, PROJECT, SENSOR_DRVNAME_OV13853_MIPI_RAW)
     //==========================================================================
     CONFIG_METADATA_BEGIN(MTK_REQUEST_AVAILABLE_CAPABILITIES)//new
         CONFIG_ENTRY_VALUE(MTK_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE, MUINT8)
+	CONFIG_ENTRY_VALUE(MTK_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR, MUINT8)
         CONFIG_ENTRY_VALUE(MTK_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING, MUINT8)
         CONFIG_ENTRY_VALUE(MTK_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS, MUINT8)
     CONFIG_METADATA_END()

android.hardware.camera2.cts.BurstCaptureTest#testYuvBurst

解决办法:修改对应相机的metadata文件

vendor/mediatek/proprietary/custom/mt6771/hal/imgsensor_metadata/gc5035_mipi_raw/config_static_metadata.tuning_3a.gc5035mipiraw.h 
index 269d0f1..4fea200 100644
@@ -95,8 +95,12 @@ STATIC_METADATA2_BEGIN(DEVICE, TUNING_3A, SENSOR_DRVNAME_GC5035_MIPI_RAW)
     CONFIG_METADATA_END()
     //==========================================================================
     CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES)
+        CONFIG_ENTRY_VALUE(10, MINT32)
+        CONFIG_ENTRY_VALUE(10, MINT32)
         CONFIG_ENTRY_VALUE(15, MINT32)
         CONFIG_ENTRY_VALUE(15, MINT32)
+        CONFIG_ENTRY_VALUE(15, MINT32)
+        CONFIG_ENTRY_VALUE(20, MINT32)
         CONFIG_ENTRY_VALUE(20, MINT32)
         CONFIG_ENTRY_VALUE(20, MINT32)
         CONFIG_ENTRY_VALUE(5, MINT32)

android.hardware.camera2.cts.ExtendedCameraCharacteristicsTest#testAvailableStreamConfigs

vendor/mediatek/proprietary/custom/mt6771/hal/imgsensor_metadata/ov13853_mipi_raw/config_static_metadata_project.h 
index bf33368..0d0ffc6 100755
@@ -142,7 +142,7 @@ STATIC_METADATA2_BEGIN(PLATFORM, PROJECT, SENSOR_DRVNAME_OV13853_MIPI_RAW)
         CONFIG_ENTRY_VALUE(4208, MINT64)//CONFIG_ENTRY_VALUE(4096, MINT64)        // width
         CONFIG_ENTRY_VALUE(3120, MINT64)//CONFIG_ENTRY_VALUE(3072, MINT64)        // height
         CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)   // output
-        CONFIG_ENTRY_VALUE(100000000, MINT64)   // frame duration
+        CONFIG_ENTRY_VALUE(50000000, MINT64)   // frame duration
         CONFIG_ENTRY_VALUE(0, MINT64)           // stall duration
 /*
         CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64) //9mp 16:9

android.hardware.cts.CameraTest#testJpegThumbnailSize

vendor/mediatek/proprietary/custom/mt6771/hal/imgsensor_metadata/ov13853_mipi_raw/config_static_metadata_project.h 
index 0d0ffc6..e8a70b0 100755
@@ -55,8 +55,8 @@ STATIC_METADATA2_BEGIN(PLATFORM, PROJECT, SENSOR_DRVNAME_OV13853_MIPI_RAW)
     CONFIG_METADATA_BEGIN(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_WITH_DURATIONS)
 	
         CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_BLOB, MINT64) //13mp 4:3
-        CONFIG_ENTRY_VALUE(4208, MINT64)//CONFIG_ENTRY_VALUE(4096, MINT64)        // width
-        CONFIG_ENTRY_VALUE(3120, MINT64)//CONFIG_ENTRY_VALUE(3072, MINT64)        // height
+        CONFIG_ENTRY_VALUE(4096, MINT64)        // width
+        CONFIG_ENTRY_VALUE(3072, MINT64)        // height
         CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)   // output
         CONFIG_ENTRY_VALUE(50000000, MINT64)    // frame duration
         CONFIG_ENTRY_VALUE(33333333, MINT64)    // stall duration
@@ -139,8 +139,8 @@ STATIC_METADATA2_BEGIN(PLATFORM, PROJECT, SENSOR_DRVNAME_OV13853_MIPI_RAW)
         CONFIG_ENTRY_VALUE(33333333, MINT64)    // stall duration
 		
         CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64) //13mp 4:3
-        CONFIG_ENTRY_VALUE(4208, MINT64)//CONFIG_ENTRY_VALUE(4096, MINT64)        // width
-        CONFIG_ENTRY_VALUE(3120, MINT64)//CONFIG_ENTRY_VALUE(3072, MINT64)        // height
+        CONFIG_ENTRY_VALUE(4096, MINT64)        // width
+        CONFIG_ENTRY_VALUE(3072, MINT64)        // height
         CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)   // output
         CONFIG_ENTRY_VALUE(50000000, MINT64)   // frame duration
         CONFIG_ENTRY_VALUE(0, MINT64)           // stall duration

CtsProviderUiTestCase

android.providerui.cts.MediaStoreUiTest#testImageCaptureWithInadequeteLocationPermissions

android.providerui.cts.MediaStoreUiTest#testGetDocumentUri

android.providerui.cts.MediaStoreUiTest#testGetDocumentUri_ThrowsWithoutPermission

android.providerui.cts.MediaStoreUiTest#testGetDocumentUri_Symmetry

解决办法:申请patch:ALPS05016434

CtsMediaTestCases

android.media.cts.NativeImageReaderTest#testTakePictures

------------- device/mediatek/mt6771/media_codecs_performance.xml -------------
index 731ed92..9cacb15 100755
@@ -137,10 +137,10 @@ Only the three quirks included above are recognized at this point:
             <Limit name="measured-frame-rate-352x288" range="590-1299" />
         </MediaCodec>
         <MediaCodec name="OMX.MTK.VIDEO.DECODER.AVC" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="180-360" />
-            <Limit name="measured-frame-rate-720x480" range="640-1280" />
-            <Limit name="measured-frame-rate-1280x720" range="720-1440" />
-            <Limit name="measured-frame-rate-1920x1080" range="980-2040" />
+            <Limit name="measured-frame-rate-320x240" range="833-1833" />
+            <Limit name="measured-frame-rate-720x480" range="324-713" />
+            <Limit name="measured-frame-rate-1280x720" range="186-409" />
+            <Limit name="measured-frame-rate-1920x1080" range="113-248" />
         </MediaCodec>
          <MediaCodec name="OMX.MTK.VIDEO.DECODER.HEVC" type="video/hevc" update="true">
             <Limit name="measured-frame-rate-352x288" range="812-1786" />

 vendor/mediatek/proprietary/hardware/mtkcam/include/mtkcam/utils/metastore/CaptureSessionParameters.h 
new file mode 100644
index 00000000..5cea9e9
@@ -0,0 +1,65 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein is
+ * confidential and proprietary to MediaTek Inc. and/or its licensors. Without
+ * the prior written permission of MediaTek inc. and/or its licensors, any
+ * reproduction, modification, use or disclosure of MediaTek Software, and
+ * information contained herein, in whole or in part, shall be strictly
+ * prohibited.
+ *
+ * MediaTek Inc. (C) 2019. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ * ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
+ * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+ * NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
+ * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+ * INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
+ * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+ * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+ * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
+ * SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
+ * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
+ * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
+ * RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
+ * MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+ * CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek
+ * Software") have been modified by MediaTek Inc. All revisions are subject to
+ * any receiver's applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef _MTK_HARDWARE_MTKCAM_INCLUDE_MTKCAM_UTILS_METASTORE_CAPTURESESSIONPARAMETERS_H
+#define _MTK_HARDWARE_MTKCAM_INCLUDE_MTKCAM_UTILS_METASTORE_CAPTURESESSIONPARAMETERS_H
+
+#include <mtkcam/utils/metadata/IMetadata.h>
+
+namespace NSCam {
+
+class CaptureSessionParameters final
+{
+public:
+    /**
+     * \fn static bool CaptureSessionParameters::isReconfigurationRequired()
+     * const IMetadata &oldSessionParams, const IMetadata &newSessionParams)
+     * \brief Check whether complete stream reconfiguration is required
+     *
+     * Given the previous and the new session values, returns stream
+     * reconfiguration is required or not.
+     *
+     * \param[in] oldSessionParams the previous session parameters
+     * \param[in] newSessionParams the new session parameters
+     */
+    static bool isReconfigurationRequired(
+        const IMetadata& oldSessionParams, const IMetadata& newSessionParams);
+}; // class CaptureSessionParameters
+
+} // namespace NSCam
+
+#endif // _MTK_HARDWARE_MTKCAM_INCLUDE_MTKCAM_UTILS_METASTORE_CAPTURESESSIONPARAMETERS_H

---- vendor/mediatek/proprietary/hardware/mtkcam/utils/metastore/Android.mk ----
index 5f6e8d4..c070b2e 100644
@@ -56,6 +56,7 @@ ifeq ($(MTKCAM_IP_BASE),1)
 #-----------------------------------------------------------
 LOCAL_WHOLE_STATIC_LIBRARIES += libmtkcam_metastore.static
 LOCAL_WHOLE_STATIC_LIBRARIES += libmtkcam_metastore.request
+LOCAL_WHOLE_STATIC_LIBRARIES += libmtkcam_metastore.session
 #
 
 #-----------------------------------------------------------

 vendor/mediatek/proprietary/hardware/mtkcam/utils/metastore/sessionParameters/Android.mk 
new file mode 100644
index 00000000..88a5f3c
@@ -0,0 +1,17 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libmtkcam_metastore.session
+LOCAL_PROPRIETARY_MODULE := true
+LOCAL_MODULE_OWNER := mtk
+
+LOCAL_SRC_FILES := CaptureSessionParameters.cpp
+
+LOCAL_HEADER_LIBRARIES := libmtkcam_headers
+
+LOCAL_SHARED_LIBRARIES := \
+	libmtkcam_ulog \
+	libmtkcam_metadata
+
+include $(MTK_STATIC_LIBRARY)

 vendor/mediatek/proprietary/hardware/mtkcam/utils/metastore/sessionParameters/CaptureSessionParameters.cpp 
new file mode 100644
index 00000000..fc7bbd8
@@ -0,0 +1,78 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein is
+ * confidential and proprietary to MediaTek Inc. and/or its licensors. Without
+ * the prior written permission of MediaTek inc. and/or its licensors, any
+ * reproduction, modification, use or disclosure of MediaTek Software, and
+ * information contained herein, in whole or in part, shall be strictly
+ * prohibited.
+ *
+ * MediaTek Inc. (C) 2019. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ * ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
+ * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+ * NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
+ * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+ * INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
+ * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+ * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+ * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
+ * SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
+ * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
+ * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
+ * RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
+ * MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+ * CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek
+ * Software") have been modified by MediaTek Inc. All revisions are subject to
+ * any receiver's applicable license agreements with MediaTek Inc.
+ */
+
+#define LOG_TAG "CaptureSessionParams"
+
+#include <mtkcam/utils/std/ULog.h>
+#include <mtkcam/utils/metastore/CaptureSessionParameters.h>
+#include <mtkcam/utils/metadata/client/mtk_metadata_tag.h>
+
+CAM_ULOG_DECLARE_MODULE_ID(MOD_UTILITY);
+
+namespace NSCam {
+
+bool CaptureSessionParameters::isReconfigurationRequired(
+    const IMetadata& oldSessionParams, const IMetadata& newSessionParams)
+{
+    bool needReconfig = true;
+
+    // NOTE: Please define your state machine
+    //       and put your implementations under the custom parts, which
+    //       receive the old and the new session parameters and
+    //       return the corresponding result per state transition.
+
+    // Check EIS metadata
+    {
+        const IMetadata::IEntry oldEISEntry =
+            oldSessionParams.entryFor(MTK_CONTROL_VIDEO_STABILIZATION_MODE);
+        const IMetadata::IEntry newEISEntry =
+            newSessionParams.entryFor(MTK_CONTROL_VIDEO_STABILIZATION_MODE);
+
+        if (oldEISEntry.isEmpty() && !newEISEntry.isEmpty())
+        {
+            if (newEISEntry.itemAt(0, Type2Type<MUINT8>()) ==
+                MTK_CONTROL_VIDEO_STABILIZATION_MODE_OFF)
+            {
+                needReconfig = false;
+            }
+        }
+    }
+
+    return needReconfig;
+}
+
+} // namespace NSCam

 vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/device/3.x/device/CameraDevice3SessionImpl.cpp 
index ae7937e..89f75f7 100644
@@ -40,6 +40,7 @@
 #include <cutils/properties.h>
 #include <mtkcam/utils/std/ULog.h> // will include <log/log.h> if LOG_TAG was defined
 #include <mtkcam/utils/metadata/client/mtk_metadata_tag.h>
+#include <mtkcam/utils/metastore/CaptureSessionParameters.h>
 
 CAM_ULOG_DECLARE_MODULE_ID(MOD_CAMERA_DEVICE);
 //
@@ -1305,7 +1306,17 @@ Return<void>
 ThisNamespace::
 isReconfigurationRequired(const hidl_vec<uint8_t>& oldSessionParams, const hidl_vec<uint8_t>& newSessionParams, isReconfigurationRequired_cb _hidl_cb)
 {
-    _hidl_cb(Status::METHOD_NOT_SUPPORTED, true);
+    IMetadata oldMetadata;
+    IMetadata newMetadata;
+    mStaticInfo.mMetadataConverter->convertFromHidl((void*)(&oldSessionParams), oldMetadata);
+    mStaticInfo.mMetadataConverter->convertFromHidl((void*)(&newSessionParams), newMetadata);
+    bool needReconfig = true;
+
+    if (!CaptureSessionParameters::isReconfigurationRequired(oldMetadata, newMetadata)) {
+        needReconfig = false;
+    }
+
+    _hidl_cb(Status::OK, needReconfig);
 
     return Void();
 }

 

CtsViewTestCases

android.view.cts.DisplayRefreshRateTest#testRefreshRate

屏的刷新率不够,将屏驱动dsi.PLL_CLOCK值改大一点,注意这个值最好+5逐步验证,一次加太大了可能GSI测试的时候又报错了

CtsHiddenApiBlacklistDebugClassTestCases

android.signature.cts.api.current.HiddenApiTest#testSignatureMethodsThroughJni

repackaged.junit.framework.AssertionFailedError:  
extra_method:    java.util.List android.nfc.NfcAdapter.getSupportedOffHostSecureElements()    Error: Hidden method accessible through JNI
extra_method:    void android.nfc.cardemulation.ApduServiceInfo.setOffHostSecureElement(java.lang.String)    Error: Hidden method accessible through JNI
extra_method:    void android.nfc.cardemulation.ApduServiceInfo.unsetOffHostSecureElement()    Error: Hidden method accessible through JNI
ClassLoader hierarchy

----------------------- frameworks/base/api/current.txt -----------------------
index 337322b..f654295 100644
@@ -30643,7 +30643,6 @@ package android.nfc {
     method @Deprecated public void enableForegroundNdefPush(android.app.Activity, android.nfc.NdefMessage);
     method public void enableReaderMode(android.app.Activity, android.nfc.NfcAdapter.ReaderCallback, int, android.os.Bundle);
     method public static android.nfc.NfcAdapter getDefaultAdapter(android.content.Context);
-    method @NonNull public java.util.List<java.lang.String> getSupportedOffHostSecureElements();
     method public boolean ignore(android.nfc.Tag, int, android.nfc.NfcAdapter.OnTagRemovedListener, android.os.Handler);
     method @Deprecated public boolean invokeBeam(android.app.Activity);
     method public boolean isEnabled();
@@ -30737,10 +30736,10 @@ package android.nfc.cardemulation {
     method public boolean isDefaultServiceForCategory(android.content.ComponentName, String);
     method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>);
     method public boolean removeAidsForService(android.content.ComponentName, String);
-    method public boolean setOffHostForService(@NonNull android.content.ComponentName, @NonNull String);
+    method @RequiresPermission(android.Manifest.permission.NFC) @NonNull public boolean setOffHostForService(@NonNull android.content.ComponentName, @NonNull String);
     method public boolean setPreferredService(android.app.Activity, android.content.ComponentName);
     method public boolean supportsAidPrefixRegistration();
-    method public boolean unsetOffHostForService(@NonNull android.content.ComponentName);
+    method @RequiresPermission(android.Manifest.permission.NFC) @NonNull public boolean unsetOffHostForService(@NonNull android.content.ComponentName);
     method public boolean unsetPreferredService(android.app.Activity);
     field public static final String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT";
     field public static final String CATEGORY_OTHER = "other";

------------ frameworks/base/core/java/android/nfc/NfcAdapter.java ------------
index 1be6c4b..bc698f9 100644
@@ -526,6 +526,7 @@ public final class NfcAdapter {
      * @return List<String> containing secure elements on the device which supports
      *                      off host card emulation. eSE for Embedded secure element,
      *                      SIM for UICC and so on.
+     * @hide
      */
     public @NonNull List<String> getSupportedOffHostSecureElements() {
         List<String> offHostSE = new ArrayList<String>();

--- frameworks/base/core/java/android/nfc/cardemulation/ApduServiceInfo.java ---
index ec77fcf..2c85a68 100644
@@ -452,7 +452,7 @@ public class ApduServiceInfo implements Parcelable {
         mDynamicAidGroups.put(aidGroup.getCategory(), aidGroup);
     }
 
-    @UnsupportedAppUsage
+
     public void setOffHostSecureElement(String offHost) {
         mOffHostName = offHost;
     }
@@ -461,7 +461,7 @@ public class ApduServiceInfo implements Parcelable {
      * Resets the off host Secure Element to statically defined
      * by the service in the manifest file.
      */
-    @UnsupportedAppUsage
+
     public void unsetOffHostSecureElement() {
         mOffHostName = mStaticOffHostName;
     }

---- frameworks/base/core/java/android/nfc/cardemulation/CardEmulation.java ----
index 1c2c33f..c6b9c39 100644
@@ -31,6 +31,7 @@ import android.os.RemoteException;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.util.Log;
+import android.annotation.RequiresPermission;
 
 import java.util.HashMap;
 import java.util.List;
@@ -362,6 +363,8 @@ public final class CardEmulation {
      * @param service The component name of the service
      * @return whether the registration was successful.
      */
+    @RequiresPermission(android.Manifest.permission.NFC)
+    @NonNull
     public boolean unsetOffHostForService(@NonNull ComponentName service) {
         NfcAdapter adapter = NfcAdapter.getDefaultAdapter(mContext);
         if (adapter == null) {
@@ -408,6 +411,8 @@ public final class CardEmulation {
      * @param offHostSecureElement Secure Element to register the AID to
      * @return whether the registration was successful.
      */
+    @RequiresPermission(android.Manifest.permission.NFC)
+    @NonNull
     public boolean setOffHostForService(@NonNull ComponentName service,
             @NonNull String offHostSecureElement) {
         boolean validSecureElement = false;

 

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值