1*b7c941bbSAndroid Build Coastguard Worker# Copyright (C) 2015 The Android Open Source Project 2*b7c941bbSAndroid Build Coastguard Worker# 3*b7c941bbSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*b7c941bbSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*b7c941bbSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*b7c941bbSAndroid Build Coastguard Worker# 7*b7c941bbSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*b7c941bbSAndroid Build Coastguard Worker# 9*b7c941bbSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*b7c941bbSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*b7c941bbSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*b7c941bbSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*b7c941bbSAndroid Build Coastguard Worker# limitations under the License. 14*b7c941bbSAndroid Build Coastguard Worker 15*b7c941bbSAndroid Build Coastguard Worker# 16*b7c941bbSAndroid Build Coastguard Worker# Builds a package which can be instrumented to retrieve information about the device under test. 17*b7c941bbSAndroid Build Coastguard Worker# 18*b7c941bbSAndroid Build Coastguard Worker 19*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_PACKAGE := com.android.compatibility.common.deviceinfo 20*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_INSTRUMENT := androidx.test.runner.AndroidJUnitRunner 21*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_USES_LIBRARY := android.test.runner 22*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_USES_OPTIONAL_LIBRARIES += \ 23*b7c941bbSAndroid Build Coastguard Worker androidx.window.extensions \ 24*b7c941bbSAndroid Build Coastguard Worker androidx.window.sidecar 25*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_PERMISSIONS += \ 26*b7c941bbSAndroid Build Coastguard Worker android.permission.ACCESS_FINE_LOCATION \ 27*b7c941bbSAndroid Build Coastguard Worker android.permission.READ_PHONE_STATE \ 28*b7c941bbSAndroid Build Coastguard Worker android.permission.WRITE_EXTERNAL_STORAGE 29*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_ACTIVITIES += \ 30*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).AppStandbyDeviceInfo \ 31*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).BiometricsDeviceInfo \ 32*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).ClientIdDeviceInfo \ 33*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).ConfigurationDeviceInfo \ 34*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).ConnectivityDeviceInfo \ 35*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).CpuDeviceInfo \ 36*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).DefaultAppDeviceInfo \ 37*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).DeviceIdleDeviceInfo \ 38*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).FeatureDeviceInfo \ 39*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).GenericDeviceInfo \ 40*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).GlesStubActivity \ 41*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).GnssDeviceInfo \ 42*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).GraphicsDeviceInfo \ 43*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).HapticsDeviceInfo \ 44*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).InputDeviceInfo \ 45*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).KeystoreAttestationDeviceInfo \ 46*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).LocaleDeviceInfo \ 47*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).MediaDeviceInfo \ 48*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).MediaOutputDeviceInfo \ 49*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).MemoryDeviceInfo \ 50*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).PackageDeviceInfo \ 51*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).PermissionDeviceInfo \ 52*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).ScreenDeviceInfo \ 53*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).StorageDeviceInfo \ 54*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).UserDeviceInfo \ 55*b7c941bbSAndroid Build Coastguard Worker $(DEVICE_INFO_PACKAGE).VintfDeviceInfo \ 56*b7c941bbSAndroid Build Coastguard Worker com.android.compatibility.common.util.DummyActivity 57*b7c941bbSAndroid Build Coastguard Worker 58*b7c941bbSAndroid Build Coastguard Workerifeq ($(DEVICE_INFO_MIN_SDK),) 59*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_MIN_SDK := 8 60*b7c941bbSAndroid Build Coastguard Workerendif 61*b7c941bbSAndroid Build Coastguard Worker 62*b7c941bbSAndroid Build Coastguard Workerifeq ($(DEVICE_INFO_TARGET_SDK),) 63*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_TARGET_SDK := 17 64*b7c941bbSAndroid Build Coastguard Workerendif 65*b7c941bbSAndroid Build Coastguard Worker 66*b7c941bbSAndroid Build Coastguard Worker# Add the base device info 67*b7c941bbSAndroid Build Coastguard WorkerLOCAL_STATIC_JAVA_LIBRARIES += compatibility-device-info compatibility-device-util-axt 68*b7c941bbSAndroid Build Coastguard Worker 69*b7c941bbSAndroid Build Coastguard Worker# Generator of APK manifests. 70*b7c941bbSAndroid Build Coastguard WorkerMANIFEST_GENERATOR_JAR := $(HOST_OUT_JAVA_LIBRARIES)/compatibility-manifest-generator.jar 71*b7c941bbSAndroid Build Coastguard WorkerMANIFEST_GENERATOR := $(JAVA) -jar $(MANIFEST_GENERATOR_JAR) 72*b7c941bbSAndroid Build Coastguard Worker 73*b7c941bbSAndroid Build Coastguard Worker# Generate the manifest 74*b7c941bbSAndroid Build Coastguard Workermanifest_xml := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/AndroidManifest.xml 75*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_INFO_PERMISSIONS := $(foreach permission, $(DEVICE_INFO_PERMISSIONS),-r $(permission)) 76*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_INFO_ACTIVITIES := $(foreach activity,$(DEVICE_INFO_ACTIVITIES),-a $(activity)) 77*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_USES_LIBRARY := $(DEVICE_INFO_USES_LIBRARY) 78*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_USES_OPTIONAL_LIBRARIES := $(foreach library,$(DEVICE_INFO_USES_OPTIONAL_LIBRARIES),-lo $(library)) 79*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_PACKAGE := $(DEVICE_INFO_PACKAGE) 80*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_INSTRUMENT := $(DEVICE_INFO_INSTRUMENT) 81*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_MIN_SDK := $(DEVICE_INFO_MIN_SDK) 82*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): PRIVATE_TARGET_SDK := $(DEVICE_INFO_TARGET_SDK) 83*b7c941bbSAndroid Build Coastguard Worker 84*b7c941bbSAndroid Build Coastguard Worker# Regenerate manifest.xml if the generator jar, */cts-device-info/Android.mk, or this file is changed. 85*b7c941bbSAndroid Build Coastguard Worker$(manifest_xml): $(MANIFEST_GENERATOR_JAR) $(LOCAL_PATH)/Android.mk cts/build/device_info_package.mk 86*b7c941bbSAndroid Build Coastguard Worker $(hide) echo Generating manifest for $(PRIVATE_NAME) 87*b7c941bbSAndroid Build Coastguard Worker $(hide) mkdir -p $(dir $@) 88*b7c941bbSAndroid Build Coastguard Worker $(hide) $(MANIFEST_GENERATOR) \ 89*b7c941bbSAndroid Build Coastguard Worker $(PRIVATE_INFO_PERMISSIONS) \ 90*b7c941bbSAndroid Build Coastguard Worker $(PRIVATE_INFO_ACTIVITIES) \ 91*b7c941bbSAndroid Build Coastguard Worker -l $(PRIVATE_USES_LIBRARY) \ 92*b7c941bbSAndroid Build Coastguard Worker $(PRIVATE_USES_OPTIONAL_LIBRARIES) \ 93*b7c941bbSAndroid Build Coastguard Worker -p $(PRIVATE_PACKAGE) \ 94*b7c941bbSAndroid Build Coastguard Worker -i $(PRIVATE_INSTRUMENT) \ 95*b7c941bbSAndroid Build Coastguard Worker -s $(PRIVATE_MIN_SDK) \ 96*b7c941bbSAndroid Build Coastguard Worker -t $(PRIVATE_TARGET_SDK) \ 97*b7c941bbSAndroid Build Coastguard Worker -o $@ 98*b7c941bbSAndroid Build Coastguard Worker 99*b7c941bbSAndroid Build Coastguard Worker# Reset variables 100*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_MIN_SDK := 101*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_TARGET_SDK := 102*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_PACKAGE := 103*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_INSTRUMENT := 104*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_PERMISSIONS := 105*b7c941bbSAndroid Build Coastguard WorkerDEVICE_INFO_ACTIVITIES := 106*b7c941bbSAndroid Build Coastguard Worker 107*b7c941bbSAndroid Build Coastguard WorkerLOCAL_FULL_MANIFEST_FILE := $(manifest_xml) 108*b7c941bbSAndroid Build Coastguard Worker# Disable by default 109*b7c941bbSAndroid Build Coastguard WorkerLOCAL_DEX_PREOPT := false 110*b7c941bbSAndroid Build Coastguard WorkerLOCAL_PROGUARD_ENABLED := disabled 111*b7c941bbSAndroid Build Coastguard Worker 112*b7c941bbSAndroid Build Coastguard Worker# Don't include this package in any target 113*b7c941bbSAndroid Build Coastguard WorkerLOCAL_MODULE_TAGS := optional 114*b7c941bbSAndroid Build Coastguard Worker# And when built explicitly put it in the data partition 115*b7c941bbSAndroid Build Coastguard WorkerLOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) 116*b7c941bbSAndroid Build Coastguard Worker 117*b7c941bbSAndroid Build Coastguard Worker 118*b7c941bbSAndroid Build Coastguard Worker#TODO(b/72620511) remove this condition when AtsDeviceInfo can be built with SDK again 119*b7c941bbSAndroid Build Coastguard Workerifneq ($(LOCAL_PRIVATE_PLATFORM_APIS),true) 120*b7c941bbSAndroid Build Coastguard WorkerLOCAL_SDK_VERSION := current 121*b7c941bbSAndroid Build Coastguard Workerendif 122*b7c941bbSAndroid Build Coastguard Worker 123*b7c941bbSAndroid Build Coastguard Workerinclude $(BUILD_CTS_SUPPORT_PACKAGE) 124