package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "system_bt_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["system_bt_license"],
}

linker_config {
    name: "btservices-linker-config",
    src: "linker.config.json",
    installable: false,
}

// Mainline bluetooth apex module.
apex {
    name: "com.android.btservices",
    defaults: ["t-launched-apex-module"],
    manifest: "apex_manifest.json",
    bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"],
    systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"],
    compat_configs: [
        "bluetooth-compat-config",
        "bluetoothapk-platform-compat-config",
        "framework-bluetooth-compat-config",
    ],
    apps: ["Bluetooth"],

    multilib: {
        first: {
            // Extractor process runs only with the primary ABI.
            jni_libs: [
                "libbluetooth_jni",
            ],
        },
    },

    prebuilts: [
        "audio_set_configurations_bfbs",
        "audio_set_configurations_json",
        "audio_set_scenarios_bfbs",
        "audio_set_scenarios_json",
        "bt_did.conf",
        "bt_stack.conf",
        "btservices-linker-config",
        "interop_database.conf",
    ],
    key: "com.android.btservices.key",
    certificate: ":com.android.btservices.certificate",
    updatable: true,
    compressible: false,
}

apex_key {
    name: "com.android.btservices.key",
    public_key: "com.android.btservices.avbpubkey",
    private_key: "com.android.btservices.pem",
}

android_app_certificate {
    name: "com.android.btservices.certificate",
    certificate: "com.android.btservices",
}

sdk {
    name: "btservices-module-sdk",
    apexes: [
        // Adds exportable dependencies of the APEX to the sdk,
        // e.g. *classpath_fragments.
        "com.android.btservices",
    ],
}

// Encapsulate the contributions made by the com.android.bluetooth to the bootclasspath.
bootclasspath_fragment {
    name: "com.android.btservices-bootclasspath-fragment",
    contents: ["framework-bluetooth"],
    apex_available: ["com.android.btservices"],

    // 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",
    ],

    // Additional hidden API flag files to override the defaults. This must only be
    // modified by the Soong or platform compat team.
    hidden_api: {
        max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
        max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"],
        unsupported: ["hiddenapi/hiddenapi-unsupported.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.bluetooth",
        ],

        // 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: [
            "android.bluetooth.le",
            "com.android.bluetooth",
        ],
    },

}

systemserverclasspath_fragment {
    name: "com.android.btservices-systemserverclasspath-fragment",
    standalone_contents: ["service-bluetooth"],
    apex_available: ["com.android.btservices"],
}
