1*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project 2*795d594fSAndroid Build Coastguard Worker// 3*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*795d594fSAndroid Build Coastguard Worker// 7*795d594fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*795d594fSAndroid Build Coastguard Worker// 9*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*795d594fSAndroid Build Coastguard Worker// limitations under the License. 14*795d594fSAndroid Build Coastguard Worker 15*795d594fSAndroid Build Coastguard Workerpackage { 16*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 17*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 18*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 19*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 20*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 21*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 22*795d594fSAndroid Build Coastguard Worker} 23*795d594fSAndroid Build Coastguard Worker 24*795d594fSAndroid Build Coastguard Worker// This native library contains JNI support code for the ART Service Java 25*795d594fSAndroid Build Coastguard Worker// Language library. 26*795d594fSAndroid Build Coastguard Workercc_defaults { 27*795d594fSAndroid Build Coastguard Worker name: "libartservice_defaults", 28*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 29*795d594fSAndroid Build Coastguard Worker host_supported: true, 30*795d594fSAndroid Build Coastguard Worker srcs: [ 31*795d594fSAndroid Build Coastguard Worker "native/service.cc", 32*795d594fSAndroid Build Coastguard Worker ], 33*795d594fSAndroid Build Coastguard Worker export_include_dirs: ["native"], 34*795d594fSAndroid Build Coastguard Worker shared_libs: [ 35*795d594fSAndroid Build Coastguard Worker "liblog", // Used by "JNIHelp.h". 36*795d594fSAndroid Build Coastguard Worker "libnativehelper", 37*795d594fSAndroid Build Coastguard Worker ], 38*795d594fSAndroid Build Coastguard Worker target: { 39*795d594fSAndroid Build Coastguard Worker android: { 40*795d594fSAndroid Build Coastguard Worker compile_multilib: "first", 41*795d594fSAndroid Build Coastguard Worker }, 42*795d594fSAndroid Build Coastguard Worker }, 43*795d594fSAndroid Build Coastguard Worker} 44*795d594fSAndroid Build Coastguard Worker 45*795d594fSAndroid Build Coastguard Workercc_library { 46*795d594fSAndroid Build Coastguard Worker name: "libartservice", 47*795d594fSAndroid Build Coastguard Worker defaults: ["libartservice_defaults"], 48*795d594fSAndroid Build Coastguard Worker apex_available: [ 49*795d594fSAndroid Build Coastguard Worker "com.android.art", 50*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 51*795d594fSAndroid Build Coastguard Worker ], 52*795d594fSAndroid Build Coastguard Worker shared_libs: [ 53*795d594fSAndroid Build Coastguard Worker "libart", 54*795d594fSAndroid Build Coastguard Worker "libartbase", 55*795d594fSAndroid Build Coastguard Worker "libarttools", 56*795d594fSAndroid Build Coastguard Worker "libbase", 57*795d594fSAndroid Build Coastguard Worker ], 58*795d594fSAndroid Build Coastguard Worker} 59*795d594fSAndroid Build Coastguard Worker 60*795d594fSAndroid Build Coastguard Workercc_library { 61*795d594fSAndroid Build Coastguard Worker name: "libartserviced", 62*795d594fSAndroid Build Coastguard Worker defaults: [ 63*795d594fSAndroid Build Coastguard Worker "libartservice_defaults", 64*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 65*795d594fSAndroid Build Coastguard Worker ], 66*795d594fSAndroid Build Coastguard Worker apex_available: [ 67*795d594fSAndroid Build Coastguard Worker "com.android.art", 68*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 69*795d594fSAndroid Build Coastguard Worker ], 70*795d594fSAndroid Build Coastguard Worker shared_libs: [ 71*795d594fSAndroid Build Coastguard Worker "libartd", 72*795d594fSAndroid Build Coastguard Worker "libartbased", 73*795d594fSAndroid Build Coastguard Worker "libarttools", 74*795d594fSAndroid Build Coastguard Worker "libbase", 75*795d594fSAndroid Build Coastguard Worker ], 76*795d594fSAndroid Build Coastguard Worker} 77*795d594fSAndroid Build Coastguard Worker 78*795d594fSAndroid Build Coastguard Workerjava_defaults { 79*795d594fSAndroid Build Coastguard Worker name: "service-art-defaults", 80*795d594fSAndroid Build Coastguard Worker defaults: [ 81*795d594fSAndroid Build Coastguard Worker "framework-system-server-module-defaults", 82*795d594fSAndroid Build Coastguard Worker ], 83*795d594fSAndroid Build Coastguard Worker sdk_version: "system_server_current", 84*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 85*795d594fSAndroid Build Coastguard Worker srcs: [ 86*795d594fSAndroid Build Coastguard Worker "java/**/*.java", 87*795d594fSAndroid Build Coastguard Worker ], 88*795d594fSAndroid Build Coastguard Worker libs: [ 89*795d594fSAndroid Build Coastguard Worker "androidx.annotation_annotation", 90*795d594fSAndroid Build Coastguard Worker "aconfig-annotations-lib", 91*795d594fSAndroid Build Coastguard Worker "art-aconfig-flags-java-lib", 92*795d594fSAndroid Build Coastguard Worker "auto_value_annotations", 93*795d594fSAndroid Build Coastguard Worker "sdk_module-lib_current_framework-configinfrastructure", 94*795d594fSAndroid Build Coastguard Worker "sdk_module-lib_current_framework-permission-s", 95*795d594fSAndroid Build Coastguard Worker // TODO(b/256866172): Transitive dependency, for r8 only. 96*795d594fSAndroid Build Coastguard Worker "framework-statsd.stubs.module_lib", 97*795d594fSAndroid Build Coastguard Worker // TODO(b/256866172): Transitive dependency, for r8 only. This module 98*795d594fSAndroid Build Coastguard Worker // always refers to the jar in prebuilts/sdk. We can't use 99*795d594fSAndroid Build Coastguard Worker // "framework-connectivity.stubs.module_lib" here because it's not 100*795d594fSAndroid Build Coastguard Worker // available on master-art. 101*795d594fSAndroid Build Coastguard Worker "sdk_module-lib_current_framework-connectivity", 102*795d594fSAndroid Build Coastguard Worker ], 103*795d594fSAndroid Build Coastguard Worker static_libs: [ 104*795d594fSAndroid Build Coastguard Worker "android.content.pm.flags-aconfig-java-export", 105*795d594fSAndroid Build Coastguard Worker "art-statslog-art-java", 106*795d594fSAndroid Build Coastguard Worker "artd-aidl-java", 107*795d594fSAndroid Build Coastguard Worker "dexopt_chroot_setup-aidl-java", 108*795d594fSAndroid Build Coastguard Worker "modules-utils-build", 109*795d594fSAndroid Build Coastguard Worker "modules-utils-package-state", 110*795d594fSAndroid Build Coastguard Worker "modules-utils-shell-command-handler", 111*795d594fSAndroid Build Coastguard Worker "service-art-proto-java", 112*795d594fSAndroid Build Coastguard Worker ], 113*795d594fSAndroid Build Coastguard Worker plugins: [ 114*795d594fSAndroid Build Coastguard Worker "auto_value_plugin", 115*795d594fSAndroid Build Coastguard Worker ], 116*795d594fSAndroid Build Coastguard Worker} 117*795d594fSAndroid Build Coastguard Worker 118*795d594fSAndroid Build Coastguard Worker// Used by tests to allow tests to mock the right classes. 119*795d594fSAndroid Build Coastguard Workerjava_library { 120*795d594fSAndroid Build Coastguard Worker name: "service-art-pre-jarjar", 121*795d594fSAndroid Build Coastguard Worker defaults: ["service-art-defaults"], 122*795d594fSAndroid Build Coastguard Worker installable: false, 123*795d594fSAndroid Build Coastguard Worker visibility: [ 124*795d594fSAndroid Build Coastguard Worker "//visibility:override", 125*795d594fSAndroid Build Coastguard Worker "//visibility:private", 126*795d594fSAndroid Build Coastguard Worker ], 127*795d594fSAndroid Build Coastguard Worker} 128*795d594fSAndroid Build Coastguard Worker 129*795d594fSAndroid Build Coastguard Worker// Provides the API and implementation of the ART Service class that will be 130*795d594fSAndroid Build Coastguard Worker// loaded by the System Server. 131*795d594fSAndroid Build Coastguard Workerjava_sdk_library { 132*795d594fSAndroid Build Coastguard Worker // This target is named 'service-art' to conform to the naming conventions 133*795d594fSAndroid Build Coastguard Worker // for JAR files in the System Server. 134*795d594fSAndroid Build Coastguard Worker name: "service-art", 135*795d594fSAndroid Build Coastguard Worker defaults: [ 136*795d594fSAndroid Build Coastguard Worker "service-art-defaults", 137*795d594fSAndroid Build Coastguard Worker "framework-system-server-module-optimize-defaults", 138*795d594fSAndroid Build Coastguard Worker ], 139*795d594fSAndroid Build Coastguard Worker permitted_packages: [ 140*795d594fSAndroid Build Coastguard Worker "com.android.server.art", 141*795d594fSAndroid Build Coastguard Worker ], 142*795d594fSAndroid Build Coastguard Worker dex_preopt: { 143*795d594fSAndroid Build Coastguard Worker profile: "art-profile", 144*795d594fSAndroid Build Coastguard Worker }, 145*795d594fSAndroid Build Coastguard Worker visibility: [ 146*795d594fSAndroid Build Coastguard Worker "//art:__subpackages__", 147*795d594fSAndroid Build Coastguard Worker "//frameworks/base/services/core", 148*795d594fSAndroid Build Coastguard Worker ], 149*795d594fSAndroid Build Coastguard Worker apex_available: [ 150*795d594fSAndroid Build Coastguard Worker "com.android.art", 151*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 152*795d594fSAndroid Build Coastguard Worker ], 153*795d594fSAndroid Build Coastguard Worker jarjar_rules: "jarjar-rules.txt", 154*795d594fSAndroid Build Coastguard Worker optimize: { 155*795d594fSAndroid Build Coastguard Worker proguard_flags_files: ["proguard.flags"], 156*795d594fSAndroid Build Coastguard Worker }, 157*795d594fSAndroid Build Coastguard Worker aconfig_declarations: [ 158*795d594fSAndroid Build Coastguard Worker "art-aconfig-flags", 159*795d594fSAndroid Build Coastguard Worker ], 160*795d594fSAndroid Build Coastguard Worker} 161*795d594fSAndroid Build Coastguard Worker 162*795d594fSAndroid Build Coastguard Workerjava_library { 163*795d594fSAndroid Build Coastguard Worker name: "service-art-proto-java", 164*795d594fSAndroid Build Coastguard Worker proto: { 165*795d594fSAndroid Build Coastguard Worker type: "lite", 166*795d594fSAndroid Build Coastguard Worker }, 167*795d594fSAndroid Build Coastguard Worker srcs: [ 168*795d594fSAndroid Build Coastguard Worker "proto/**/*.proto", 169*795d594fSAndroid Build Coastguard Worker ], 170*795d594fSAndroid Build Coastguard Worker sdk_version: "system_server_current", 171*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 172*795d594fSAndroid Build Coastguard Worker apex_available: [ 173*795d594fSAndroid Build Coastguard Worker "com.android.art", 174*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 175*795d594fSAndroid Build Coastguard Worker ], 176*795d594fSAndroid Build Coastguard Worker} 177*795d594fSAndroid Build Coastguard Worker 178*795d594fSAndroid Build Coastguard Workerjava_library { 179*795d594fSAndroid Build Coastguard Worker name: "art-statslog-art-java", 180*795d594fSAndroid Build Coastguard Worker srcs: [ 181*795d594fSAndroid Build Coastguard Worker ":art-statslog-art-java-gen", 182*795d594fSAndroid Build Coastguard Worker ], 183*795d594fSAndroid Build Coastguard Worker libs: [ 184*795d594fSAndroid Build Coastguard Worker "framework-statsd.stubs.module_lib", 185*795d594fSAndroid Build Coastguard Worker ], 186*795d594fSAndroid Build Coastguard Worker sdk_version: "system_server_current", 187*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 188*795d594fSAndroid Build Coastguard Worker apex_available: [ 189*795d594fSAndroid Build Coastguard Worker "com.android.art", 190*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 191*795d594fSAndroid Build Coastguard Worker ], 192*795d594fSAndroid Build Coastguard Worker} 193*795d594fSAndroid Build Coastguard Worker 194*795d594fSAndroid Build Coastguard Workergenrule { 195*795d594fSAndroid Build Coastguard Worker name: "art-statslog-art-java-gen", 196*795d594fSAndroid Build Coastguard Worker tools: ["stats-log-api-gen"], 197*795d594fSAndroid Build Coastguard Worker cmd: "$(location stats-log-api-gen) --java $(out) --module art --javaPackage com.android.server.art --javaClass ArtStatsLog", 198*795d594fSAndroid Build Coastguard Worker out: ["java/com/android/server/art/ArtStatsLog.java"], 199*795d594fSAndroid Build Coastguard Worker} 200*795d594fSAndroid Build Coastguard Worker 201*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 202*795d594fSAndroid Build Coastguard Worker name: "art_libartservice_tests_defaults", 203*795d594fSAndroid Build Coastguard Worker defaults: ["libartservice_defaults"], 204*795d594fSAndroid Build Coastguard Worker srcs: [ 205*795d594fSAndroid Build Coastguard Worker "native/service_test.cc", 206*795d594fSAndroid Build Coastguard Worker ], 207*795d594fSAndroid Build Coastguard Worker static_libs: [ 208*795d594fSAndroid Build Coastguard Worker "libgmock", 209*795d594fSAndroid Build Coastguard Worker ], 210*795d594fSAndroid Build Coastguard Worker} 211*795d594fSAndroid Build Coastguard Worker 212*795d594fSAndroid Build Coastguard Worker// Version of ART gtest `art_libartservice_tests` for host. 213*795d594fSAndroid Build Coastguard Worker// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete. 214*795d594fSAndroid Build Coastguard Workerart_cc_test { 215*795d594fSAndroid Build Coastguard Worker name: "art_libartservice_tests", 216*795d594fSAndroid Build Coastguard Worker device_supported: false, 217*795d594fSAndroid Build Coastguard Worker defaults: [ 218*795d594fSAndroid Build Coastguard Worker "art_gtest_defaults", 219*795d594fSAndroid Build Coastguard Worker "art_libartservice_tests_defaults", 220*795d594fSAndroid Build Coastguard Worker ], 221*795d594fSAndroid Build Coastguard Worker shared_libs: [ 222*795d594fSAndroid Build Coastguard Worker "libarttools", 223*795d594fSAndroid Build Coastguard Worker "libbase", 224*795d594fSAndroid Build Coastguard Worker ], 225*795d594fSAndroid Build Coastguard Worker} 226*795d594fSAndroid Build Coastguard Worker 227*795d594fSAndroid Build Coastguard Worker// Standalone version of ART gtest `art_libartservice_tests`, not bundled with the ART APEX on 228*795d594fSAndroid Build Coastguard Worker// target. 229*795d594fSAndroid Build Coastguard Workerart_cc_test { 230*795d594fSAndroid Build Coastguard Worker name: "art_standalone_libartservice_tests", 231*795d594fSAndroid Build Coastguard Worker defaults: [ 232*795d594fSAndroid Build Coastguard Worker "art_standalone_gtest_defaults", 233*795d594fSAndroid Build Coastguard Worker "art_libartservice_tests_defaults", 234*795d594fSAndroid Build Coastguard Worker ], 235*795d594fSAndroid Build Coastguard Worker static_libs: [ 236*795d594fSAndroid Build Coastguard Worker "libarttools", 237*795d594fSAndroid Build Coastguard Worker "libbase", 238*795d594fSAndroid Build Coastguard Worker ], 239*795d594fSAndroid Build Coastguard Worker test_config_template: ":art-gtests-target-standalone-non-multilib-template", 240*795d594fSAndroid Build Coastguard Worker} 241*795d594fSAndroid Build Coastguard Worker 242*795d594fSAndroid Build Coastguard Workerandroid_test { 243*795d594fSAndroid Build Coastguard Worker name: "ArtServiceTests", 244*795d594fSAndroid Build Coastguard Worker 245*795d594fSAndroid Build Coastguard Worker // Include all test java files. 246*795d594fSAndroid Build Coastguard Worker srcs: [ 247*795d594fSAndroid Build Coastguard Worker "javatests/**/*.java", 248*795d594fSAndroid Build Coastguard Worker ], 249*795d594fSAndroid Build Coastguard Worker 250*795d594fSAndroid Build Coastguard Worker libs: [ 251*795d594fSAndroid Build Coastguard Worker "sdk_module-lib_current_framework-configinfrastructure", 252*795d594fSAndroid Build Coastguard Worker ], 253*795d594fSAndroid Build Coastguard Worker 254*795d594fSAndroid Build Coastguard Worker static_libs: [ 255*795d594fSAndroid Build Coastguard Worker "androidx.test.ext.junit", 256*795d594fSAndroid Build Coastguard Worker "androidx.test.ext.truth", 257*795d594fSAndroid Build Coastguard Worker "androidx.test.runner", 258*795d594fSAndroid Build Coastguard Worker "artd-aidl-java", 259*795d594fSAndroid Build Coastguard Worker "framework-annotations-lib", 260*795d594fSAndroid Build Coastguard Worker // We need ExtendedMockito to mock static methods. 261*795d594fSAndroid Build Coastguard Worker "mockito-target-extended-minus-junit4", 262*795d594fSAndroid Build Coastguard Worker "modules-utils-package-state", 263*795d594fSAndroid Build Coastguard Worker "service-art-pre-jarjar", 264*795d594fSAndroid Build Coastguard Worker // Statically link against system server to allow us to mock system 265*795d594fSAndroid Build Coastguard Worker // server APIs. This won't work on master-art, but it's fine because we 266*795d594fSAndroid Build Coastguard Worker // don't run this test on master-art. 267*795d594fSAndroid Build Coastguard Worker "services.core", 268*795d594fSAndroid Build Coastguard Worker ], 269*795d594fSAndroid Build Coastguard Worker 270*795d594fSAndroid Build Coastguard Worker jni_libs: [ 271*795d594fSAndroid Build Coastguard Worker "libartservice", 272*795d594fSAndroid Build Coastguard Worker // The two libraries below are required by ExtendedMockito. 273*795d594fSAndroid Build Coastguard Worker "libdexmakerjvmtiagent", 274*795d594fSAndroid Build Coastguard Worker "libstaticjvmtiagent", 275*795d594fSAndroid Build Coastguard Worker ], 276*795d594fSAndroid Build Coastguard Worker compile_multilib: "first", 277*795d594fSAndroid Build Coastguard Worker 278*795d594fSAndroid Build Coastguard Worker // TODO: This module should move to sdk_version: "system_server_current" when possible, 279*795d594fSAndroid Build Coastguard Worker // as this will restrict the APIs available to just that expected system API. For now, 280*795d594fSAndroid Build Coastguard Worker // a compileOnly / runtimeOnly split for dependencies doesn't exist in the build system 281*795d594fSAndroid Build Coastguard Worker // and so it's not possible to enforce. 282*795d594fSAndroid Build Coastguard Worker min_sdk_version: "31", 283*795d594fSAndroid Build Coastguard Worker 284*795d594fSAndroid Build Coastguard Worker test_suites: ["general-tests"], 285*795d594fSAndroid Build Coastguard Worker test_config: "ArtServiceTests.xml", 286*795d594fSAndroid Build Coastguard Worker} 287*795d594fSAndroid Build Coastguard Worker 288*795d594fSAndroid Build Coastguard Workerfilegroup { 289*795d594fSAndroid Build Coastguard Worker name: "libartservice_protos", 290*795d594fSAndroid Build Coastguard Worker srcs: [ 291*795d594fSAndroid Build Coastguard Worker "proto/**/*.proto", 292*795d594fSAndroid Build Coastguard Worker ], 293*795d594fSAndroid Build Coastguard Worker visibility: [ 294*795d594fSAndroid Build Coastguard Worker "//cts/hostsidetests/compilation", 295*795d594fSAndroid Build Coastguard Worker ], 296*795d594fSAndroid Build Coastguard Worker} 297