Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cbda34e authored by William Escande's avatar William Escande
Browse files

Offer a new apex name in the tree without changing default built apex

Keys have been generated with
$ANDROID_BUILD_TOP/system/apex/tools/create_apex_skeleton.sh -m com.android.bt

Bug: 383863941
Test: m .
Flag: Exempt
Change-Id: Iedf9654111941391606bca1f16fbcbea25691b46
parent 90cef83f
Loading
Loading
Loading
Loading
+124 −8
Original line number Diff line number Diff line
// Copyright (C) 2024 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 {
    // 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"],
    default_applicable_licenses: ["Android-Apache-2.0"],
}

linker_config {
@@ -13,7 +22,8 @@ linker_config {
    installable: false,
}

// Mainline bluetooth apex module.
// Legacy Bluetooth apex prior to Baklava
// TODO b/383863941 delete
apex {
    name: "com.android.btservices",
    defaults: ["t-launched-apex-module"],
@@ -121,7 +131,6 @@ bootclasspath_fragment {
            "com.android.bluetooth",
        ],
    },

}

systemserverclasspath_fragment {
@@ -129,3 +138,110 @@ systemserverclasspath_fragment {
    standalone_contents: ["service-bluetooth"],
    apex_available: ["com.android.btservices"],
}

// Mainline bluetooth apex module.
apex {
    name: "com.android.bt",
    defaults: ["b-launched-apex-module"],
    // TODO b/356727632: remove min_sdk_version as this is set from b-launched-apex-module
    min_sdk_version: "35",
    manifest: "manifest.json",
    bootclasspath_fragments: ["com.android.bt-bootclasspath-fragment"],
    systemserverclasspath_fragments: ["com.android.bt-systemserverclasspath-fragment"],
    file_contexts: ":com.android.bt-file_contexts",
    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",
        "interop_database.conf",
    ],
    key: "com.android.bt.key",
    certificate: ":com.android.bt.certificate",
    updatable: true,
    compressible: false,
    visibility: ["//packages/modules/common/build"],
}

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

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

    // 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.bt-systemserverclasspath-fragment",
    standalone_contents: ["service-bluetooth-new"],
    apex_available: ["com.android.bt"],
}

apex/key.pem

deleted100644 → 0
+0 −52
Original line number Diff line number Diff line
-----BEGIN PRIVATE KEY-----
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
/cAk+1ZkOAzn5RIZNaFGw2FKHds1ODQ=
-----END PRIVATE KEY-----

apex/key/Android.bp

0 → 100644
+16 −0
Original line number Diff line number Diff line
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

apex_key {
    name: "com.android.bt.key",
    public_key: "com.android.bt.avbpubkey",
    private_key: "com.android.bt.pem",
    visibility: ["//packages/modules/Bluetooth/apex"],
}

android_app_certificate {
    name: "com.android.bt.certificate",
    certificate: "com.android.bt",
    visibility: ["//packages/modules/Bluetooth/apex"],
}
+1.01 KiB

File added.

No diff preview for this file type.

+52 −0
Original line number Diff line number Diff line
-----BEGIN PRIVATE KEY-----
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
OAbnJ6ncUN/kW2Ycz7J+ojDBHxcp
-----END PRIVATE KEY-----
Loading