blob: 2988a1d9472e3c3d14bbcd2b417108a027aaff83 [file] [log] [blame]
// Copyright (C) 2019 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.
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
apex {
name: "com.android.os.statsd",
defaults: ["com.android.os.statsd-defaults"],
manifest: "apex_manifest.json",
}
apex_defaults {
bootclasspath_fragments: ["com.android.os.statsd-bootclasspath-fragment"],
systemserverclasspath_fragments: ["com.android.os.statsd-systemserverclasspath-fragment"],
jni_libs: [
"libstats_jni",
],
native_shared_libs: [
"libstatspull",
"libstatssocket",
],
binaries: ["statsd"],
compile_multilib: "both",
prebuilts: [
"com.android.os.statsd.init.rc",
"current_sdkinfo",
],
name: "com.android.os.statsd-defaults",
defaults: ["r-launched-apex-module"],
key: "com.android.os.statsd.key",
certificate: ":com.android.os.statsd.certificate",
}
apex_key {
name: "com.android.os.statsd.key",
public_key: "com.android.os.statsd.avbpubkey",
private_key: "com.android.os.statsd.pem",
}
android_app_certificate {
name: "com.android.os.statsd.certificate",
// This will use com.android.os.statsd.x509.pem (the cert) and
// com.android.os.statsd.pk8 (the private key)
certificate: "com.android.os.statsd",
}
prebuilt_etc {
name: "com.android.os.statsd.init.rc",
src: "statsd.rc",
filename: "init.rc",
installable: false,
}
// ==========================================================
// Make libstatssocket available to unbundled modules
// ==========================================================
sdk {
name: "statsd-module-sdk",
bootclasspath_fragments: ["com.android.os.statsd-bootclasspath-fragment"],
systemserverclasspath_fragments: ["com.android.os.statsd-systemserverclasspath-fragment"],
native_shared_libs: [
"libstatssocket",
],
}
// Encapsulate the contributions made by the com.android.os.statsd to the bootclasspath.
bootclasspath_fragment {
name: "com.android.os.statsd-bootclasspath-fragment",
contents: ["framework-statsd"],
apex_available: ["com.android.os.statsd"],
// The bootclasspath_fragments that provide APIs on which this depends.
fragments: [
{
apex: "com.android.art",
module: "art-bootclasspath-fragment",
},
],
// Additional stubs libraries that this fragment's contents use which are
// not provided by another bootclasspath_fragment.
additional_stubs: [
"android-non-updatable",
],
hidden_api: {
max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
// The following packages contain classes from other modules on the
// bootclasspath. That means that the hidden API flags for this module
// has to explicitly list every single class this module provides in
// that package to differentiate them from the classes provided by other
// modules. That can include private classes that are not part of the
// API.
split_packages: [
"android.app",
"android.os",
"android.util",
],
// The following packages and all their subpackages currently only
// contain classes from this bootclasspath_fragment. Listing a package
// here won't prevent other bootclasspath modules from adding classes in
// any of those packages but it will prevent them from adding those
// classes into an API surface, e.g. public, system, etc.. Doing so will
// result in a build failure due to inconsistent flags.
package_prefixes: [
"com.android.internal.statsd",
],
},
}
systemserverclasspath_fragment {
name: "com.android.os.statsd-systemserverclasspath-fragment",
standalone_contents: ["service-statsd"],
apex_available: ["com.android.os.statsd"],
}