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:<true> but was:<false>
解决方法:找到对应的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;