# # Copyright (C) 2010 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) LOCAL_MULTILIB := both LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-Iaidl-files-under, src) \ ../ForceStopHelperApp/src/com/android/cts/forcestophelper/Constants.java LOCAL_AIDL_INCLUDES := \ frameworks/native/aidl/gui LOCAL_USE_AAPT2 := true LOCAL_STATIC_JAVA_LIBRARIES := android-ex-camera2 \ compatibility-common-util-devicesidelib \ cts-sensors-tests \ cts-location-tests \ cts-camera-performance-tests \ ctstestrunner-axt \ apache-commons-math \ androidplot \ ctsverifier-opencv \ core-tests-support \ androidx.legacy_legacy-support-v4 \ mockito-target-minus-junit4 \ mockwebserver \ compatibility-device-util-axt \ platform-test-annotations \ cts-security-test-support-library \ cts-midi-lib LOCAL_STATIC_ANDROID_LIBRARIES := \ androidx.legacy_legacy-support-v4 LOCAL_JAVA_LIBRARIES += telephony-common LOCAL_JAVA_LIBRARIES += android.test.runner.stubs LOCAL_JAVA_LIBRARIES += android.test.base.stubs LOCAL_JAVA_LIBRARIES += android.test.mock.stubs LOCAL_JAVA_LIBRARIES += voip-common LOCAL_PACKAGE_NAME := CtsVerifier LOCAL_PRIVATE_PLATFORM_APIS := true LOCAL_JNI_SHARED_LIBRARIES := \ libctsverifier_jni \ libctsnativemidi_jni \ libaudioloopback_jni \ LOCAL_PROGUARD_FLAG_FILES := proguard.flags LOCAL_DEX_PREOPT := false -include cts/error_prone_rules_tests.mk include $(BUILD_PACKAGE) # Build CTS verifier framework as a libary. include $(CLEAR_VARS) define java-files-in $(sort $(patsubst ./%,%, \ $(shell cd $(LOCAL_PATH) ; \ find -L $(1) -maxdepth 1 -name *.java -and -not -name ".*") \ )) endef LOCAL_MODULE := cts-verifier-framework LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages android.support.v4 LOCAL_SDK_VERSION := current LOCAL_MIN_SDK_VERSION := 19 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res LOCAL_SRC_FILES := \ $(call java-files-in, src/com/android/cts/verifier) \ $(call all-Iaidl-files-under, src) LOCAL_STATIC_JAVA_LIBRARIES := androidx.legacy_legacy-support-v4 \ compatibility-common-util-devicesidelib \ compatibility-device-util-axt include $(BUILD_STATIC_JAVA_LIBRARY) # opencv library include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \ ctsverifier-opencv:libs/opencv3-android.jar include $(BUILD_MULTI_PREBUILT) pre-installed-apps := \ CtsEmptyDeviceAdmin \ CtsEmptyDeviceOwner \ CtsPermissionApp \ CtsForceStopHelper \ NotificationBot # Apps to be installed as Instant App using adb install --instant pre-installed-instant-app := CtsVerifierInstantApp other-required-apps := \ CtsVerifierUSBCompanion \ CtsVpnFirewallAppApi23 \ CtsVpnFirewallAppApi24 \ CtsVpnFirewallAppNotAlwaysOn apps-to-include := \ $(pre-installed-apps) \ $(pre-installed-instant-app) \ $(other-required-apps) define apk-location-for $(call intermediates-dir-for,APPS,$(1))/package.apk endef # Builds and launches CTS Verifier on a device. .PHONY: cts-verifier cts-verifier: CtsVerifier adb $(pre-installed-apps) $(pre-installed-instant-app) adb install -r $(PRODUCT_OUT)/data/app/CtsVerifier/CtsVerifier.apk \ $(foreach app,$(pre-installed-apps), \ && adb install -r -t $(call apk-location-for,$(app))) \ && adb install -r --instant $(call apk-location-for,$(pre-installed-instant-app)) \ && adb shell "am start -n com.android.cts.verifier/.CtsVerifierActivity" # # Creates a "cts-verifier" directory that will contain: # # 1. Out directory with a "android-cts-verifier" containing the CTS Verifier # and other binaries it needs. # # 2. Zipped version of the android-cts-verifier directory to be included with # the build distribution. # cts-dir := $(HOST_OUT)/cts-verifier verifier-dir-name := android-cts-verifier verifier-dir := $(cts-dir)/$(verifier-dir-name) verifier-zip-name := $(verifier-dir-name).zip verifier-zip := $(cts-dir)/$(verifier-zip-name) # turned off sensor power tests in initial L release #$(PRODUCT_OUT)/data/app/CtsVerifier.apk $(verifier-zip): $(verifier-dir)/power/execute_power_tests.py #$(PRODUCT_OUT)/data/app/CtsVerifier.apk $(verifier-zip): $(verifier-dir)/power/power_monitors/monsoon.py # Copy the necessary host-side scripts to include in the zip file: #$(verifier-dir)/power/power_monitors/monsoon.py: cts/apps/CtsVerifier/assets/scripts/power_monitors/monsoon.py | $(ACP) # $(hide) mkdir -p $(verifier-dir)/power/power_monitors # $(hide) $(ACP) -fp cts/apps/CtsVerifier/assets/scripts/power_monitors/*.py $(verifier-dir)/power/power_monitors/. # #$(verifier-dir)/power/execute_power_tests.py: cts/apps/CtsVerifier/assets/scripts/execute_power_tests.py | $(ACP) # $(hide) mkdir -p $(verifier-dir)/power # $(hide) $(ACP) -fp cts/apps/CtsVerifier/assets/scripts/execute_power_tests.py $@ cts : $(verifier-zip) $(verifier-zip) : $(HOST_OUT)/CameraITS $(verifier-zip) : $(foreach app,$(apps-to-include),$(call apk-location-for,$(app))) $(verifier-zip) : $(call intermediates-dir-for,APPS,CtsVerifier)/package.apk | $(ACP) $(hide) mkdir -p $(verifier-dir) $(hide) $(ACP) -fp $< $(verifier-dir)/CtsVerifier.apk $(foreach app,$(apps-to-include), \ $(ACP) -fp $(call apk-location-for,$(app)) $(verifier-dir)/$(app).apk;) $(hide) $(ACP) -fpr $(HOST_OUT)/CameraITS $(verifier-dir) $(hide) cd $(cts-dir) && zip -rq $(verifier-dir-name) $(verifier-dir-name) $(call dist-for-goals, cts, $(verifier-zip):$(verifier-zip-name)) include $(call all-makefiles-under,$(LOCAL_PATH))