Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  Android.bp   Sprache: unbekannt

 
Spracherkennung für: .bp vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
    default_visibility: [
        "//device:__subpackages__",
        "//platform_testing:__subpackages__",
        "//tools/netsim:__subpackages__",
        ":__subpackages__",
    ],
}

cc_defaults {
    name: "rootcanal_defaults",
    tidy: true,
    tidy_checks: [
        "-*",
        "readability-*",

        "-readability-function-size",
        "-readability-identifier-length",
        "-readability-implicit-bool-conversion",
        "-readability-magic-numbers",
        "-readability-use-anyofallof",
    ],
    tidy_checks_as_errors: [
        "readability-*",
    ],
    tidy_flags: [
        "--header-filter=^.*(model|include|net|desktop)\\/(.(?!\\.pb\\.h))*$",
    ],
    sanitize: {
        address: true,
        all_undefined: true,
        misc_undefined: ["bounds"],
    },
    c_std: "c99",
    cpp_std: "c++20",
    cflags: [
        "-DGOOGLE_PROTOBUF_NO_RTTI",
        "-Wall",
        "-Werror",
        "-Wextra",
        "-fvisibility=hidden",
    ],
    include_dirs: [
        "tools/rootcanal/include",
    ],
    header_libs: [
        "libbase_headers",
        "pdl_cxx_packet_runtime",
    ],
    generated_headers: [
        "rootcanal_bredr_bb_packets_cxx_gen",
        "rootcanal_hci_packets_cxx_gen",
        "rootcanal_link_layer_packets_cxx_gen",
    ],
}

filegroup {
    name: "lib_sources",
    srcs: [
        "lib/crypto/crypto.cc",
        "lib/hci/address.cc",
        "lib/hci/pcap_filter.cc",
        "lib/log.cc",
    ],
}

// This library should be added as `whole_static_libs`
// as it uses static registration and all object
// files needs to be linked
cc_library_static {
    name: "libbt-rootcanal",
    defaults: ["rootcanal_defaults"],
    host_supported: true,
    proprietary: true,
    srcs: [
        ":lib_sources",
        "model/controller/acl_connection.cc",
        "model/controller/acl_connection_handler.cc",
        "model/controller/bredr_controller.cc",
        "model/controller/controller_properties.cc",
        "model/controller/dual_mode_controller.cc",
        "model/controller/le_acl_connection.cc",
        "model/controller/le_advertiser.cc",
        "model/controller/le_controller.cc",
        "model/controller/sco_connection.cc",
        "model/controller/vendor_commands/le_apcf.cc",
        "model/devices/baseband_sniffer.cc",
        "model/devices/beacon.cc",
        "model/devices/device.cc",
        "model/devices/hci_device.cc",
        "model/devices/link_layer_socket_device.cc",
        "model/devices/sniffer.cc",
        "model/hci/h4_data_channel_packetizer.cc",
        "model/hci/h4_parser.cc",
        "model/hci/hci_sniffer.cc",
        "model/hci/hci_socket_transport.cc",
        "model/setup/async_manager.cc",
        "model/setup/device_boutique.cc",
        "model/setup/phy_device.cc",
        "model/setup/phy_layer.cc",
        "model/setup/test_channel_transport.cc",
        "model/setup/test_command_handler.cc",
        "model/setup/test_model.cc",
        "net/posix/posix_async_socket.cc",
        "net/posix/posix_async_socket_connector.cc",
        "net/posix/posix_async_socket_server.cc",
    ],
    export_header_lib_headers: [
        "pdl_cxx_packet_runtime",
    ],
    export_include_dirs: [
        ".",
        "include",
    ],
    export_generated_headers: [
        "rootcanal_hci_packets_cxx_gen",
        "rootcanal_link_layer_packets_cxx_gen",
    ],
    export_static_lib_headers: [
        "librootcanal_config",
    ],
    whole_static_libs: [
        "librootcanal_config",
        "librootcanal_rs",
    ],
    shared_libs: [
        "libbase",
        "libcrypto",
        "libprotobuf-cpp-full",
    ],
}

// This library implements a foreigh function interface over DualModeController
// compatible with Python or Rust.
cc_library_host_shared {
    name: "lib_rootcanal_ffi",
    defaults: [
        "rootcanal_defaults",
    ],
    sanitize: {
        address: false,
    },
    srcs: [
        ":lib_sources",
        "model/controller/acl_connection.cc",
        "model/controller/acl_connection_handler.cc",
        "model/controller/bredr_controller.cc",
        "model/controller/controller_properties.cc",
        "model/controller/dual_mode_controller.cc",
        "model/controller/ffi.cc",
        "model/controller/le_acl_connection.cc",
        "model/controller/le_advertiser.cc",
        "model/controller/le_controller.cc",
        "model/controller/sco_connection.cc",
        "model/controller/vendor_commands/le_apcf.cc",
        "model/devices/device.cc",
        "model/setup/async_manager.cc",
    ],
    export_include_dirs: [
        ".",
        "include",
    ],
    stl: "libc++_static",
    static_libs: [
        "libcrypto",
        "libprotobuf-cpp-full",
        "librootcanal_config",
    ],
    whole_static_libs: [
        "libbase",
        "liblog",
        "librootcanal_rs",
    ],
    cflags: [
        "-fexceptions",
    ],
}

// Generate the python parser+serializer backend for
// packets/link_layer_packets.pdl.
genrule {
    name: "link_layer_packets_python3_gen",
    defaults: ["pdl_python_generator_defaults"],
    cmd: "$(location :pdlc) $(in) |" +
        " $(location :pdl_python_generator)" +
        " --output $(out) --custom-type-location py.bluetooth",
    srcs: [
        "packets/link_layer_packets.pdl",
    ],
    out: [
        "link_layer_packets.py",
    ],
}

// Generate the python parser+serializer backend for
// rust/llcp_packets.pdl.
genrule {
    name: "llcp_packets_python3_gen",
    defaults: ["pdl_python_generator_defaults"],
    cmd: "$(location :pdlc) $(in) |" +
        " $(location :pdl_python_generator)" +
        " --output $(out) --custom-type-location py.bluetooth",
    srcs: [
        "rust/llcp_packets.pdl",
    ],
    out: [
        "llcp_packets.py",
    ],
}

// Generate the python parser+serializer backend for
// hci_packets.pdl.
genrule {
    name: "hci_packets_python3_gen",
    defaults: ["pdl_python_generator_defaults"],
    cmd: "$(location :pdlc) $(in) |" +
        " $(location :pdl_python_generator)" +
        " --output $(out) --custom-type-location py.bluetooth",
    srcs: [
        "packets/hci_packets.pdl",
    ],
    out: [
        "hci_packets.py",
    ],
}

cc_test_host {
    name: "rootcanal_hci_test",
    defaults: [
        "rootcanal_defaults",
    ],
    srcs: [
        "test/controller/le/le_add_device_to_filter_accept_list_test.cc",
        "test/controller/le/le_add_device_to_periodic_advertiser_list_test.cc",
        "test/controller/le/le_add_device_to_resolving_list_test.cc",
        "test/controller/le/le_clear_filter_accept_list_test.cc",
        "test/controller/le/le_clear_periodic_advertiser_list_test.cc",
        "test/controller/le/le_clear_resolving_list_test.cc",
        "test/controller/le/le_create_connection_cancel_test.cc",
        "test/controller/le/le_create_connection_test.cc",
        "test/controller/le/le_extended_create_connection_test.cc",
        "test/controller/le/le_periodic_advertising_create_sync_cancel_test.cc",
        "test/controller/le/le_periodic_advertising_create_sync_test.cc",
        "test/controller/le/le_remove_device_from_filter_accept_list_test.cc",
        "test/controller/le/le_remove_device_from_periodic_advertiser_list_test.cc",
        "test/controller/le/le_remove_device_from_resolving_list_test.cc",
        "test/controller/le/le_scanning_filter_duplicates_test.cc",
        "test/controller/le/le_set_address_resolution_enable_test.cc",
        "test/controller/le/le_set_advertising_enable_test.cc",
        "test/controller/le/le_set_advertising_parameters_test.cc",
        "test/controller/le/le_set_extended_advertising_data_test.cc",
        "test/controller/le/le_set_extended_advertising_enable_test.cc",
        "test/controller/le/le_set_extended_advertising_parameters_test.cc",
        "test/controller/le/le_set_extended_scan_enable_test.cc",
        "test/controller/le/le_set_extended_scan_parameters_test.cc",
        "test/controller/le/le_set_extended_scan_response_data_test.cc",
        "test/controller/le/le_set_periodic_advertising_data_test.cc",
        "test/controller/le/le_set_periodic_advertising_enable_test.cc",
        "test/controller/le/le_set_periodic_advertising_parameters_test.cc",
        "test/controller/le/le_set_random_address_test.cc",
        "test/controller/le/le_set_scan_enable_test.cc",
        "test/controller/le/le_set_scan_parameters_test.cc",
        "test/controller/le/rpa_generation_test.cc",
    ],
    local_include_dirs: [
        ".",
    ],
    shared_libs: [
        "libbase",
        "libcrypto",
        "libprotobuf-cpp-full",
    ],
    static_libs: [
        "libbt-rootcanal",
    ],
}

// Implement the Bluetooth official LL test suite for root-canal.
python_test_host {
    name: "rootcanal_ll_test",
    main: "test/main.py",
    srcs: [
        ":hci_packets_python3_gen",
        ":link_layer_packets_python3_gen",
        ":llcp_packets_python3_gen",
        "py/bluetooth.py",
        "py/controller.py",
        "test/HCI/*.py",
        "test/HCI/AEN/*.py",
        "test/LL/*.py",
        "test/LL/CIS/CEN/*.py",
        "test/LL/CIS/PER/*.py",
        "test/LL/CON_/CEN/*.py",
        "test/LL/CON_/INI/*.py",
        "test/LL/CON_/PER/*.py",
        "test/LL/CS/*.py",
        "test/LL/CS/CEN/*.py",
        "test/LL/CS/CEN/INI/*.py",
        "test/LL/CS/PER/INI/*.py",
        "test/LL/CS/PER/REF/*.py",
        "test/LL/DDI/ADV/*.py",
        "test/LL/DDI/SCN/*.py",
        "test/LL/SEC/ADV/*.py",
        "test/LMP/*.py",
        "test/LMP/LIH/*.py",
        "test/main.py",
    ],
    data: [
        ":lib_rootcanal_ffi",
    ],
    libs: [
        "typing_extensions",
    ],
    test_options: {
        unit_test: true,
    },
}

// test-vendor unit tests for host
cc_test_host {
    name: "rootcanal_test_host",
    srcs: [
        "test/async_manager_unittest.cc",
        "test/h4_parser_unittest.cc",
        "test/invalid_packet_handler_unittest.cc",
        "test/pcap_filter_unittest.cc",
        "test/posix_socket_unittest.cc",
    ],
    local_include_dirs: [
        "include",
    ],
    shared_libs: [
        "libbase",
        "libcrypto",
        "libprotobuf-cpp-full",
    ],
    static_libs: [
        "libbt-rootcanal",
    ],
    cflags: [
        "-fvisibility=hidden",
    ],
    target: {
        darwin: {
            enabled: false,
        },
    },
}

// Linux RootCanal Executable
cc_binary_host {
    name: "root-canal",
    defaults: ["rootcanal_defaults"],
    srcs: [
        "desktop/root_canal_main.cc",
        "desktop/test_environment.cc",
    ],
    shared_libs: [
        "libbase",
        "libunwindstack",
    ],
    whole_static_libs: [
        "libbt-rootcanal",
    ],
    static_libs: [
        "breakpad_client",
        "libcrypto",
        "libgflags",
        "libprotobuf-cpp-full",
    ],
    target: {
        // TODO(b/181290178) remove it when sanitize option is supported by linux_bionic as well
        linux_bionic: {
            sanitize: {
                address: false,
                cfi: false,
                all_undefined: false,
            },
        },
        darwin: {
            enabled: false,
        },
    },
}

genrule {
    name: "rootcanal_hci_packets_cxx_gen",
    tools: [
        ":pdl_cxx_generator",
        ":pdlc",
    ],
    cmd: "set -o pipefail;" +
        " $(location :pdlc) $(in) |" +
        " $(location :pdl_cxx_generator)" +
        " --namespace bluetooth::hci" +
        " --include-header hci/address.h" +
        " --output $(out)",
    srcs: [
        "packets/hci_packets.pdl",
    ],
    out: [
        "packets/hci_packets.h",
    ],
}

genrule {
    name: "rootcanal_link_layer_packets_cxx_gen",
    tools: [
        ":pdl_cxx_generator",
        ":pdlc",
    ],
    cmd: "set -o pipefail;" +
        " $(location :pdlc) $(in) |" +
        " $(location :pdl_cxx_generator)" +
        " --namespace model::packets" +
        " --include-header hci/address.h" +
        " --using-namespace bluetooth::hci" +
        " --output $(out)",
    srcs: [
        "packets/link_layer_packets.pdl",
    ],
    out: [
        "packets/link_layer_packets.h",
    ],
}

genrule {
    name: "rootcanal_link_layer_packets_rust_gen",
    defaults: ["pdl_rust_generator_defaults"],
    srcs: ["packets/link_layer_packets.pdl"],
    out: ["link_layer_packets.rs"],
}

genrule {
    name: "rootcanal_bredr_bb_packets_cxx_gen",
    tools: [
        ":pdl_cxx_generator",
        ":pdlc",
    ],
    cmd: "set -o pipefail;" +
        " $(location :pdlc) $(in) |" +
        " $(location :pdl_cxx_generator)" +
        " --namespace bredr_bb" +
        " --include-header hci/address.h" +
        " --using-namespace bluetooth::hci" +
        " --output $(out)",
    srcs: [
        "packets/bredr_bb_packets.pdl",
    ],
    out: [
        "packets/bredr_bb_packets.h",
    ],
}

genrule {
    name: "rootcanal_hci_packets_rust_gen",
    defaults: ["pdl_rust_generator_defaults"],
    srcs: ["packets/hci_packets.pdl"],
    out: ["hci_packets.rs"],
}

[Dauer der Verarbeitung: 0.18 Sekunden, vorverarbeitet 2026-06-27]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik