summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Henri Chataing <henrichataing@google.com> 2023-06-26 02:28:56 -0700
committer Henri Chataing <henrichataing@google.com> 2023-06-27 08:01:31 +0000
commitb946d5d45eee04e1ff7318ee8ca72023c15f1de3 (patch)
treee15b799dc51062a11ac8bf4c823d991fb0ebe6e9
parentde99ef013606fc28305e5deb2bef5a0cbfb58516 (diff)
RootCanal: Add missing license headers
Test: m root-canal Bug: 253523050 Change-Id: I2724cca4344b15de83e79c8c55100ee5525618f3
-rw-r--r--tools/rootcanal/config.proto14
-rw-r--r--tools/rootcanal/include/hci/address.h26
-rw-r--r--tools/rootcanal/include/hci/address_with_type.h26
-rw-r--r--tools/rootcanal/include/hci/pcap_filter.h26
-rw-r--r--tools/rootcanal/lib/crypto/crypto.cc15
-rw-r--r--tools/rootcanal/lib/hci/address.cc26
-rw-r--r--tools/rootcanal/lib/hci/pcap_filter.cc26
-rw-r--r--tools/rootcanal/lib/log.cc4
-rw-r--r--tools/rootcanal/model/controller/controller_properties.cc1
-rw-r--r--tools/rootcanal/model/devices/scripted_beacon_ble_payload.proto14
-rw-r--r--tools/rootcanal/model/hci/h4_parser.cc2
-rw-r--r--tools/rootcanal/model/setup/async_manager.h16
-rw-r--r--tools/rootcanal/py/bluetooth.py14
-rw-r--r--tools/rootcanal/py/controller.py14
-rw-r--r--tools/rootcanal/rust/build.rs1
-rw-r--r--tools/rootcanal/rust/include/rootcanal_rs.h14
-rw-r--r--tools/rootcanal/rust/src/either.rs14
-rw-r--r--tools/rootcanal/rust/src/ffi.rs14
-rw-r--r--tools/rootcanal/rust/src/future.rs14
-rw-r--r--tools/rootcanal/rust/src/lib.rs14
-rw-r--r--tools/rootcanal/rust/src/llcp/iso.rs14
-rw-r--r--tools/rootcanal/rust/src/llcp/manager.rs14
-rw-r--r--tools/rootcanal/rust/src/llcp/mod.rs14
-rw-r--r--tools/rootcanal/rust/src/lmp/ec.rs47
-rw-r--r--tools/rootcanal/rust/src/lmp/manager.rs14
-rw-r--r--tools/rootcanal/rust/src/lmp/mod.rs14
-rw-r--r--tools/rootcanal/rust/src/lmp/procedure/authentication.rs16
-rw-r--r--tools/rootcanal/rust/src/lmp/procedure/encryption.rs16
-rw-r--r--tools/rootcanal/rust/src/lmp/procedure/features.rs16
-rw-r--r--tools/rootcanal/rust/src/lmp/procedure/legacy_pairing.rs16
-rw-r--r--tools/rootcanal/rust/src/lmp/procedure/mod.rs14
-rw-r--r--tools/rootcanal/rust/src/lmp/procedure/secure_simple_pairing.rs16
-rw-r--r--tools/rootcanal/rust/src/lmp/test/context.rs14
-rw-r--r--tools/rootcanal/rust/src/lmp/test/mod.rs14
-rw-r--r--tools/rootcanal/rust/src/lmp/test/sequence.rs14
-rw-r--r--tools/rootcanal/rust/src/packets.rs14
-rw-r--r--tools/rootcanal/scripts/scripted_beacon_test/run_test.sh13
-rw-r--r--tools/rootcanal/test/LL/CIS/CEN/BV_01_C.py14
-rw-r--r--tools/rootcanal/test/LL/CIS/CEN/BV_03_C.py14
-rw-r--r--tools/rootcanal/test/LL/CIS/CEN/BV_10_C.py14
-rw-r--r--tools/rootcanal/test/LL/CIS/CEN/BV_26_C.py14
-rw-r--r--tools/rootcanal/test/LL/CIS/PER/BV_01_C.py14
-rw-r--r--tools/rootcanal/test/LL/CIS/PER/BV_02_C.py14
-rw-r--r--tools/rootcanal/test/LL/CON_/CEN/BV_41_C.py14
-rw-r--r--tools/rootcanal/test/LL/CON_/CEN/BV_43_C.py14
-rw-r--r--tools/rootcanal/test/LL/CON_/PER/BV_40_C.py14
-rw-r--r--tools/rootcanal/test/LL/CON_/PER/BV_42_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_01_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_02_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_03_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_04_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_05_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_06_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_07_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_08_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_09_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_11_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_15_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_16_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_17_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_18_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_19_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_20_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_21_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_22_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_26_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/ADV/BV_47_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/SCN/BV_13_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/SCN/BV_14_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/SCN/BV_18_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/SCN/BV_19_C.py14
-rw-r--r--tools/rootcanal/test/LL/DDI/SCN/BV_79_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_01_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_02_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_142_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_143_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_144_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_149_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_78_C.py14
-rw-r--r--tools/rootcanal/test/LMP/LIH/BV_79_C.py14
-rw-r--r--tools/rootcanal/test/main.py14
-rw-r--r--tools/rootcanal/test/posix_socket_unittest.cc2
82 files changed, 1086 insertions, 107 deletions
diff --git a/tools/rootcanal/config.proto b/tools/rootcanal/config.proto
index 32b452ddc2..3510cc8f5e 100644
--- a/tools/rootcanal/config.proto
+++ b/tools/rootcanal/config.proto
@@ -1,3 +1,17 @@
+// Copyright 2023 Google LLC
+//
+// 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
+//
+// https://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.
+
syntax = "proto2";
package rootcanal.configuration;
diff --git a/tools/rootcanal/include/hci/address.h b/tools/rootcanal/include/hci/address.h
index 5c20295ea9..ff273cfa53 100644
--- a/tools/rootcanal/include/hci/address.h
+++ b/tools/rootcanal/include/hci/address.h
@@ -1,20 +1,18 @@
-/******************************************************************************
+/*
+ * Copyright 2022 The Android Open Source Project
*
- * Copyright 2022 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
*
- * 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
*
- * 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.
- *
- ******************************************************************************/
+ * 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.
+ */
#pragma once
diff --git a/tools/rootcanal/include/hci/address_with_type.h b/tools/rootcanal/include/hci/address_with_type.h
index b58d40a77d..1de5203ae2 100644
--- a/tools/rootcanal/include/hci/address_with_type.h
+++ b/tools/rootcanal/include/hci/address_with_type.h
@@ -1,20 +1,18 @@
-/******************************************************************************
+/*
+ * Copyright 2018 The Android Open Source Project
*
- * Copyright 2022 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
*
- * 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
*
- * 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.
- *
- ******************************************************************************/
+ * 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.
+ */
#pragma once
diff --git a/tools/rootcanal/include/hci/pcap_filter.h b/tools/rootcanal/include/hci/pcap_filter.h
index a6b3993984..a9897a270f 100644
--- a/tools/rootcanal/include/hci/pcap_filter.h
+++ b/tools/rootcanal/include/hci/pcap_filter.h
@@ -1,20 +1,18 @@
-/******************************************************************************
+/*
+ * Copyright 2022 The Android Open Source Project
*
- * Copyright 2022 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
*
- * 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
*
- * 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.
- *
- ******************************************************************************/
+ * 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.
+ */
#pragma once
diff --git a/tools/rootcanal/lib/crypto/crypto.cc b/tools/rootcanal/lib/crypto/crypto.cc
index 0477f6b802..44ed796517 100644
--- a/tools/rootcanal/lib/crypto/crypto.cc
+++ b/tools/rootcanal/lib/crypto/crypto.cc
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2023 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.
+ */
#include "crypto/crypto.h"
diff --git a/tools/rootcanal/lib/hci/address.cc b/tools/rootcanal/lib/hci/address.cc
index f528992879..dbb0288972 100644
--- a/tools/rootcanal/lib/hci/address.cc
+++ b/tools/rootcanal/lib/hci/address.cc
@@ -1,20 +1,18 @@
-/******************************************************************************
+/*
+ * Copyright 2018 The Android Open Source Project
*
- * Copyright 2022 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
*
- * 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
*
- * 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.
- *
- ******************************************************************************/
+ * 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.
+ */
#include "hci/address.h"
diff --git a/tools/rootcanal/lib/hci/pcap_filter.cc b/tools/rootcanal/lib/hci/pcap_filter.cc
index b8edda8995..edb81e42f3 100644
--- a/tools/rootcanal/lib/hci/pcap_filter.cc
+++ b/tools/rootcanal/lib/hci/pcap_filter.cc
@@ -1,20 +1,18 @@
-/******************************************************************************
+/*
+ * Copyright 2022 The Android Open Source Project
*
- * Copyright 2022 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
*
- * 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
*
- * 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.
- *
- ******************************************************************************/
+ * 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.
+ */
#include <hci/hci_packets.h>
#include <hci/pcap_filter.h>
diff --git a/tools/rootcanal/lib/log.cc b/tools/rootcanal/lib/log.cc
index a3cfb5bc70..98846513db 100644
--- a/tools/rootcanal/lib/log.cc
+++ b/tools/rootcanal/lib/log.cc
@@ -1,5 +1,3 @@
-#include "log.h"
-
/*
* Copyright 2023 The Android Open Source Project
*
@@ -16,6 +14,8 @@
* limitations under the License.
*/
+#include "log.h"
+
#include <fmt/color.h>
#include <array>
diff --git a/tools/rootcanal/model/controller/controller_properties.cc b/tools/rootcanal/model/controller/controller_properties.cc
index 8105fd9007..012cdc1708 100644
--- a/tools/rootcanal/model/controller/controller_properties.cc
+++ b/tools/rootcanal/model/controller/controller_properties.cc
@@ -1,5 +1,6 @@
/*
* Copyright 2015 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
diff --git a/tools/rootcanal/model/devices/scripted_beacon_ble_payload.proto b/tools/rootcanal/model/devices/scripted_beacon_ble_payload.proto
index 6f66288d58..6f3f792349 100644
--- a/tools/rootcanal/model/devices/scripted_beacon_ble_payload.proto
+++ b/tools/rootcanal/model/devices/scripted_beacon_ble_payload.proto
@@ -1,3 +1,17 @@
+// Copyright 2023 Google LLC
+//
+// 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
+//
+// https://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.
+
syntax = "proto2";
package android.bluetooth.rootcanal.model.devices.ScriptedBeaconBleAdProto;
diff --git a/tools/rootcanal/model/hci/h4_parser.cc b/tools/rootcanal/model/hci/h4_parser.cc
index 7715fae3a1..c263cd7389 100644
--- a/tools/rootcanal/model/hci/h4_parser.cc
+++ b/tools/rootcanal/model/hci/h4_parser.cc
@@ -1,5 +1,5 @@
//
-// Copyright 20 The Android Open Source Project
+// Copyright 2021 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.
diff --git a/tools/rootcanal/model/setup/async_manager.h b/tools/rootcanal/model/setup/async_manager.h
index bc1f7fd0f5..d1861d2f6d 100644
--- a/tools/rootcanal/model/setup/async_manager.h
+++ b/tools/rootcanal/model/setup/async_manager.h
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 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.
+ */
+
#ifndef TEST_VENDOR_LIB_ASYNC_MANAGER_H_
#define TEST_VENDOR_LIB_ASYNC_MANAGER_H_
diff --git a/tools/rootcanal/py/bluetooth.py b/tools/rootcanal/py/bluetooth.py
index a8a18c53ae..d216bbe549 100644
--- a/tools/rootcanal/py/bluetooth.py
+++ b/tools/rootcanal/py/bluetooth.py
@@ -1,3 +1,17 @@
+# Copyright 2023 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.
+
from dataclasses import dataclass, field
from typing import Tuple
diff --git a/tools/rootcanal/py/controller.py b/tools/rootcanal/py/controller.py
index 5930382bd2..9c3e2a85fd 100644
--- a/tools/rootcanal/py/controller.py
+++ b/tools/rootcanal/py/controller.py
@@ -1,3 +1,17 @@
+# Copyright 2023 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.
+
import asyncio
import collections
import enum
diff --git a/tools/rootcanal/rust/build.rs b/tools/rootcanal/rust/build.rs
index e6bc459972..cd927f6ee2 100644
--- a/tools/rootcanal/rust/build.rs
+++ b/tools/rootcanal/rust/build.rs
@@ -1,4 +1,3 @@
-//
// Copyright 2022 Google, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/tools/rootcanal/rust/include/rootcanal_rs.h b/tools/rootcanal/rust/include/rootcanal_rs.h
index d4cb22a77a..1b395cd632 100644
--- a/tools/rootcanal/rust/include/rootcanal_rs.h
+++ b/tools/rootcanal/rust/include/rootcanal_rs.h
@@ -1,3 +1,17 @@
+// Copyright 2023 Google LLC
+//
+// 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
+//
+// https://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.
+
#pragma once
// This file is autogenerated by:
diff --git a/tools/rootcanal/rust/src/either.rs b/tools/rootcanal/rust/src/either.rs
index 4812e9f13e..87b6d7e8b4 100644
--- a/tools/rootcanal/rust/src/either.rs
+++ b/tools/rootcanal/rust/src/either.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use std::convert::TryFrom;
use crate::packets::{hci, lmp};
diff --git a/tools/rootcanal/rust/src/ffi.rs b/tools/rootcanal/rust/src/ffi.rs
index dc069fb0cf..18a229c8b0 100644
--- a/tools/rootcanal/rust/src/ffi.rs
+++ b/tools/rootcanal/rust/src/ffi.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use std::convert::TryFrom;
use std::mem::ManuallyDrop;
use std::rc::Rc;
diff --git a/tools/rootcanal/rust/src/future.rs b/tools/rootcanal/rust/src/future.rs
index afe021f501..f12d88db7a 100644
--- a/tools/rootcanal/rust/src/future.rs
+++ b/tools/rootcanal/rust/src/future.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use std::sync::Arc;
use std::task::{Wake, Waker};
diff --git a/tools/rootcanal/rust/src/lib.rs b/tools/rootcanal/rust/src/lib.rs
index 921c3ec245..21307886e8 100644
--- a/tools/rootcanal/rust/src/lib.rs
+++ b/tools/rootcanal/rust/src/lib.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
//! Link Manager implemented in Rust
mod either;
diff --git a/tools/rootcanal/rust/src/llcp/iso.rs b/tools/rootcanal/rust/src/llcp/iso.rs
index cd96cc351a..5096e19749 100644
--- a/tools/rootcanal/rust/src/llcp/iso.rs
+++ b/tools/rootcanal/rust/src/llcp/iso.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use crate::ffi;
use crate::packets::{hci, llcp};
use hci::Packet as _;
diff --git a/tools/rootcanal/rust/src/llcp/manager.rs b/tools/rootcanal/rust/src/llcp/manager.rs
index de060ff9fa..9be01494e7 100644
--- a/tools/rootcanal/rust/src/llcp/manager.rs
+++ b/tools/rootcanal/rust/src/llcp/manager.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use crate::ffi;
use crate::llcp::iso;
use crate::packets::{hci, llcp};
diff --git a/tools/rootcanal/rust/src/llcp/mod.rs b/tools/rootcanal/rust/src/llcp/mod.rs
index 4ade19ee1e..6aa87c03ad 100644
--- a/tools/rootcanal/rust/src/llcp/mod.rs
+++ b/tools/rootcanal/rust/src/llcp/mod.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
#![allow(dead_code, missing_docs)]
mod iso;
diff --git a/tools/rootcanal/rust/src/lmp/ec.rs b/tools/rootcanal/rust/src/lmp/ec.rs
index 0076b7e636..c8beee9ee0 100644
--- a/tools/rootcanal/rust/src/lmp/ec.rs
+++ b/tools/rootcanal/rust/src/lmp/ec.rs
@@ -1,30 +1,23 @@
-/******************************************************************************
- *
- * Copyright 2022 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.
- *
- ******************************************************************************/
-
-/******************************************************************************
- * IMPORTANT
- *
- * These cryptography methods do not provide any security or correctness
- * ensurance.
- * They should be used only in Bluetooth emulation, not including any production
- * environment.
- *
- ******************************************************************************/
+// Copyright 2022 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.
+
+//! Cryptography library for LMP procedures.
+//!
+//! IMPORTANT
+//! These cryptography methods do not provide any security or correctness
+//! ensurance. They should be used only in Bluetooth emulation, not including
+//! any production environment.
use num_bigint::{BigInt, Sign};
use num_integer::Integer;
diff --git a/tools/rootcanal/rust/src/lmp/manager.rs b/tools/rootcanal/rust/src/lmp/manager.rs
index b54b5e2d0b..d99866dd5f 100644
--- a/tools/rootcanal/rust/src/lmp/manager.rs
+++ b/tools/rootcanal/rust/src/lmp/manager.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use std::cell::{Cell, RefCell};
use std::collections::VecDeque;
use std::convert::{TryFrom, TryInto};
diff --git a/tools/rootcanal/rust/src/lmp/mod.rs b/tools/rootcanal/rust/src/lmp/mod.rs
index e3047a8752..6ec6663bf0 100644
--- a/tools/rootcanal/rust/src/lmp/mod.rs
+++ b/tools/rootcanal/rust/src/lmp/mod.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
pub mod ec;
pub mod manager;
pub mod procedure;
diff --git a/tools/rootcanal/rust/src/lmp/procedure/authentication.rs b/tools/rootcanal/rust/src/lmp/procedure/authentication.rs
index efc69743ee..db69eaa575 100644
--- a/tools/rootcanal/rust/src/lmp/procedure/authentication.rs
+++ b/tools/rootcanal/rust/src/lmp/procedure/authentication.rs
@@ -1,4 +1,18 @@
-// Bluetooth Core, Vol 2, Part C, 4.2.1
+// Copyright 2023 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.
+
+//! Bluetooth Core, Vol 2, Part C, 4.2.1
use crate::either::Either;
use crate::lmp::procedure::features;
diff --git a/tools/rootcanal/rust/src/lmp/procedure/encryption.rs b/tools/rootcanal/rust/src/lmp/procedure/encryption.rs
index 1e6098660e..573ef35023 100644
--- a/tools/rootcanal/rust/src/lmp/procedure/encryption.rs
+++ b/tools/rootcanal/rust/src/lmp/procedure/encryption.rs
@@ -1,4 +1,18 @@
-// Bluetooth Core, Vol 2, Part C, 4.2.5
+// Copyright 2023 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.
+
+//! Bluetooth Core, Vol 2, Part C, 4.2.5
use super::features;
use crate::lmp::procedure::Context;
diff --git a/tools/rootcanal/rust/src/lmp/procedure/features.rs b/tools/rootcanal/rust/src/lmp/procedure/features.rs
index 2bf580b38a..649931323e 100644
--- a/tools/rootcanal/rust/src/lmp/procedure/features.rs
+++ b/tools/rootcanal/rust/src/lmp/procedure/features.rs
@@ -1,4 +1,18 @@
-// Bluetooth Core, Vol 2, Part C, 4.3.4
+// Copyright 2023 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.
+
+//! Bluetooth Core, Vol 2, Part C, 4.3.4
use crate::lmp::procedure::Context;
use crate::packets::lmp;
diff --git a/tools/rootcanal/rust/src/lmp/procedure/legacy_pairing.rs b/tools/rootcanal/rust/src/lmp/procedure/legacy_pairing.rs
index 6f03d8b9f1..bb30c3fac1 100644
--- a/tools/rootcanal/rust/src/lmp/procedure/legacy_pairing.rs
+++ b/tools/rootcanal/rust/src/lmp/procedure/legacy_pairing.rs
@@ -1,4 +1,18 @@
-// Bluetooth Core, Vol 2, Part C, 4.2.2
+// Copyright 2023 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.
+
+//! Bluetooth Core, Vol 2, Part C, 4.2.2
use crate::lmp::procedure::{authentication, Context};
use crate::packets::{hci, lmp};
diff --git a/tools/rootcanal/rust/src/lmp/procedure/mod.rs b/tools/rootcanal/rust/src/lmp/procedure/mod.rs
index 8f0598d25b..c9b845df48 100644
--- a/tools/rootcanal/rust/src/lmp/procedure/mod.rs
+++ b/tools/rootcanal/rust/src/lmp/procedure/mod.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use std::convert::TryFrom;
use std::future::Future;
use std::pin::Pin;
diff --git a/tools/rootcanal/rust/src/lmp/procedure/secure_simple_pairing.rs b/tools/rootcanal/rust/src/lmp/procedure/secure_simple_pairing.rs
index e7dc6bb6d8..0c3c4e31a8 100644
--- a/tools/rootcanal/rust/src/lmp/procedure/secure_simple_pairing.rs
+++ b/tools/rootcanal/rust/src/lmp/procedure/secure_simple_pairing.rs
@@ -1,4 +1,18 @@
-// Bluetooth Core, Vol 2, Part C, 4.2.7
+// Copyright 2023 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.
+
+//! Bluetooth Core, Vol 2, Part C, 4.2.7
use std::convert::{TryFrom, TryInto};
diff --git a/tools/rootcanal/rust/src/lmp/test/context.rs b/tools/rootcanal/rust/src/lmp/test/context.rs
index f5f505d408..f0eb783a5c 100644
--- a/tools/rootcanal/rust/src/lmp/test/context.rs
+++ b/tools/rootcanal/rust/src/lmp/test/context.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
use std::cell::RefCell;
use std::collections::VecDeque;
use std::convert::{TryFrom, TryInto};
diff --git a/tools/rootcanal/rust/src/lmp/test/mod.rs b/tools/rootcanal/rust/src/lmp/test/mod.rs
index ad790a1acd..bf84ec33e8 100644
--- a/tools/rootcanal/rust/src/lmp/test/mod.rs
+++ b/tools/rootcanal/rust/src/lmp/test/mod.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
mod context;
mod sequence;
diff --git a/tools/rootcanal/rust/src/lmp/test/sequence.rs b/tools/rootcanal/rust/src/lmp/test/sequence.rs
index 47bf87314c..9735b1a8f0 100644
--- a/tools/rootcanal/rust/src/lmp/test/sequence.rs
+++ b/tools/rootcanal/rust/src/lmp/test/sequence.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
macro_rules! sequence_body {
($ctx:ident, ) => { None };
($ctx:ident, Lower Tester -> IUT: $packet:ident {
diff --git a/tools/rootcanal/rust/src/packets.rs b/tools/rootcanal/rust/src/packets.rs
index c7cdc493e8..dba39c9aa5 100644
--- a/tools/rootcanal/rust/src/packets.rs
+++ b/tools/rootcanal/rust/src/packets.rs
@@ -1,3 +1,17 @@
+// Copyright 2023 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.
+
pub mod hci {
#![allow(clippy::all)]
#![allow(unused)]
diff --git a/tools/rootcanal/scripts/scripted_beacon_test/run_test.sh b/tools/rootcanal/scripts/scripted_beacon_test/run_test.sh
index 3cededbf5a..a58e9f0a11 100644
--- a/tools/rootcanal/scripts/scripted_beacon_test/run_test.sh
+++ b/tools/rootcanal/scripts/scripted_beacon_test/run_test.sh
@@ -1,3 +1,16 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
mkdir -p /tmp/logs/scripted_beacon_test/
chmod 200 scripts/scripted_beacon_test/no_permission.pb
diff --git a/tools/rootcanal/test/LL/CIS/CEN/BV_01_C.py b/tools/rootcanal/test/LL/CIS/CEN/BV_01_C.py
index 79d9540beb..67184f2555 100644
--- a/tools/rootcanal/test/LL/CIS/CEN/BV_01_C.py
+++ b/tools/rootcanal/test/LL/CIS/CEN/BV_01_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import llcp_packets as llcp
diff --git a/tools/rootcanal/test/LL/CIS/CEN/BV_03_C.py b/tools/rootcanal/test/LL/CIS/CEN/BV_03_C.py
index 538af5c6b5..c3b0e11e43 100644
--- a/tools/rootcanal/test/LL/CIS/CEN/BV_03_C.py
+++ b/tools/rootcanal/test/LL/CIS/CEN/BV_03_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import llcp_packets as llcp
diff --git a/tools/rootcanal/test/LL/CIS/CEN/BV_10_C.py b/tools/rootcanal/test/LL/CIS/CEN/BV_10_C.py
index df9e605799..cb30823647 100644
--- a/tools/rootcanal/test/LL/CIS/CEN/BV_10_C.py
+++ b/tools/rootcanal/test/LL/CIS/CEN/BV_10_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import llcp_packets as llcp
diff --git a/tools/rootcanal/test/LL/CIS/CEN/BV_26_C.py b/tools/rootcanal/test/LL/CIS/CEN/BV_26_C.py
index 6da3a72b95..010ee283d3 100644
--- a/tools/rootcanal/test/LL/CIS/CEN/BV_26_C.py
+++ b/tools/rootcanal/test/LL/CIS/CEN/BV_26_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import llcp_packets as llcp
diff --git a/tools/rootcanal/test/LL/CIS/PER/BV_01_C.py b/tools/rootcanal/test/LL/CIS/PER/BV_01_C.py
index 9f7812247a..63e3be15d1 100644
--- a/tools/rootcanal/test/LL/CIS/PER/BV_01_C.py
+++ b/tools/rootcanal/test/LL/CIS/PER/BV_01_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import llcp_packets as llcp
diff --git a/tools/rootcanal/test/LL/CIS/PER/BV_02_C.py b/tools/rootcanal/test/LL/CIS/PER/BV_02_C.py
index 9fd768ca73..13c3ec7c37 100644
--- a/tools/rootcanal/test/LL/CIS/PER/BV_02_C.py
+++ b/tools/rootcanal/test/LL/CIS/PER/BV_02_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import llcp_packets as llcp
diff --git a/tools/rootcanal/test/LL/CON_/CEN/BV_41_C.py b/tools/rootcanal/test/LL/CON_/CEN/BV_41_C.py
index 4de878b0a3..c3b719082e 100644
--- a/tools/rootcanal/test/LL/CON_/CEN/BV_41_C.py
+++ b/tools/rootcanal/test/LL/CON_/CEN/BV_41_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/CON_/CEN/BV_43_C.py b/tools/rootcanal/test/LL/CON_/CEN/BV_43_C.py
index d475606a29..ec5b68ba4a 100644
--- a/tools/rootcanal/test/LL/CON_/CEN/BV_43_C.py
+++ b/tools/rootcanal/test/LL/CON_/CEN/BV_43_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/CON_/PER/BV_40_C.py b/tools/rootcanal/test/LL/CON_/PER/BV_40_C.py
index 635fcc6f7b..201beeb3cd 100644
--- a/tools/rootcanal/test/LL/CON_/PER/BV_40_C.py
+++ b/tools/rootcanal/test/LL/CON_/PER/BV_40_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/CON_/PER/BV_42_C.py b/tools/rootcanal/test/LL/CON_/PER/BV_42_C.py
index fe781732d4..4f19d701c5 100644
--- a/tools/rootcanal/test/LL/CON_/PER/BV_42_C.py
+++ b/tools/rootcanal/test/LL/CON_/PER/BV_42_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_01_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_01_C.py
index 2a9f83fd37..2376024953 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_01_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_01_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_02_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_02_C.py
index b4c93478ae..2b7f44cb48 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_02_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_02_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_03_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_03_C.py
index 8057947d4a..47eb0d146d 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_03_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_03_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_04_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_04_C.py
index 933083ac2b..0d84e45a0c 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_04_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_04_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_05_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_05_C.py
index e67cac2100..a4b920ce2d 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_05_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_05_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_06_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_06_C.py
index 38acd5bea8..f850c57143 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_06_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_06_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_07_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_07_C.py
index 307621e6ba..c4b10cdc8e 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_07_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_07_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_08_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_08_C.py
index 37895cc82b..4a2145304b 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_08_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_08_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_09_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_09_C.py
index 5e2eeaa271..d583ef4cf3 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_09_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_09_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_11_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_11_C.py
index f2d14f325c..1b0953ac51 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_11_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_11_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import asyncio
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_15_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_15_C.py
index 14d5be02fe..f04aa898c9 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_15_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_15_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_16_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_16_C.py
index 577f9aa849..d07bce0a42 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_16_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_16_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_17_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_17_C.py
index c1f6d1b9a5..8795116d66 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_17_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_17_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_18_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_18_C.py
index 6bb387761e..9f3fb8378a 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_18_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_18_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_19_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_19_C.py
index f48caf2fc0..ba996c7ad6 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_19_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_19_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_20_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_20_C.py
index f342961cce..61e70e10e1 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_20_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_20_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_21_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_21_C.py
index ff49b58f51..064194cf38 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_21_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_21_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_22_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_22_C.py
index b0c90637b2..dd8b5b19cc 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_22_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_22_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_26_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_26_C.py
index cec8aecdb1..909b08a614 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_26_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_26_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import asyncio
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/DDI/ADV/BV_47_C.py b/tools/rootcanal/test/LL/DDI/ADV/BV_47_C.py
index 35359d368c..5430f8ed3b 100644
--- a/tools/rootcanal/test/LL/DDI/ADV/BV_47_C.py
+++ b/tools/rootcanal/test/LL/DDI/ADV/BV_47_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import asyncio
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/DDI/SCN/BV_13_C.py b/tools/rootcanal/test/LL/DDI/SCN/BV_13_C.py
index 10864bf941..e25f2dbbbd 100644
--- a/tools/rootcanal/test/LL/DDI/SCN/BV_13_C.py
+++ b/tools/rootcanal/test/LL/DDI/SCN/BV_13_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/SCN/BV_14_C.py b/tools/rootcanal/test/LL/DDI/SCN/BV_14_C.py
index 7caa4e1240..5e55a18d2e 100644
--- a/tools/rootcanal/test/LL/DDI/SCN/BV_14_C.py
+++ b/tools/rootcanal/test/LL/DDI/SCN/BV_14_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import unittest
diff --git a/tools/rootcanal/test/LL/DDI/SCN/BV_18_C.py b/tools/rootcanal/test/LL/DDI/SCN/BV_18_C.py
index f5a44a4ac4..55369396e4 100644
--- a/tools/rootcanal/test/LL/DDI/SCN/BV_18_C.py
+++ b/tools/rootcanal/test/LL/DDI/SCN/BV_18_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import asyncio
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LL/DDI/SCN/BV_19_C.py b/tools/rootcanal/test/LL/DDI/SCN/BV_19_C.py
index 121f397f15..04bda10551 100644
--- a/tools/rootcanal/test/LL/DDI/SCN/BV_19_C.py
+++ b/tools/rootcanal/test/LL/DDI/SCN/BV_19_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import math
diff --git a/tools/rootcanal/test/LL/DDI/SCN/BV_79_C.py b/tools/rootcanal/test/LL/DDI/SCN/BV_79_C.py
index e061be75e7..a27b0a1058 100644
--- a/tools/rootcanal/test/LL/DDI/SCN/BV_79_C.py
+++ b/tools/rootcanal/test/LL/DDI/SCN/BV_79_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
import hci_packets as hci
import link_layer_packets as ll
import math
diff --git a/tools/rootcanal/test/LMP/LIH/BV_01_C.py b/tools/rootcanal/test/LMP/LIH/BV_01_C.py
index ca92e44e30..fe4c7786ec 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_01_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_01_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_02_C.py b/tools/rootcanal/test/LMP/LIH/BV_02_C.py
index 375acdc1f6..c633b1c8c2 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_02_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_02_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_142_C.py b/tools/rootcanal/test/LMP/LIH/BV_142_C.py
index 605f1d717d..408ab56044 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_142_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_142_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_143_C.py b/tools/rootcanal/test/LMP/LIH/BV_143_C.py
index 0e6b38af9c..9c56fd895d 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_143_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_143_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_144_C.py b/tools/rootcanal/test/LMP/LIH/BV_144_C.py
index fedd386f98..307144c01d 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_144_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_144_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_149_C.py b/tools/rootcanal/test/LMP/LIH/BV_149_C.py
index a12552dfd6..e80aa0af2b 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_149_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_149_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_78_C.py b/tools/rootcanal/test/LMP/LIH/BV_78_C.py
index 42903472e1..24a75f62b7 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_78_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_78_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/LMP/LIH/BV_79_C.py b/tools/rootcanal/test/LMP/LIH/BV_79_C.py
index 85a3bb0249..a538c1c63a 100644
--- a/tools/rootcanal/test/LMP/LIH/BV_79_C.py
+++ b/tools/rootcanal/test/LMP/LIH/BV_79_C.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from dataclasses import dataclass
import hci_packets as hci
import link_layer_packets as ll
diff --git a/tools/rootcanal/test/main.py b/tools/rootcanal/test/main.py
index d9d5a9fff8..2315f4b34c 100644
--- a/tools/rootcanal/test/main.py
+++ b/tools/rootcanal/test/main.py
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# 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
+#
+# https://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.
+
from importlib import resources
from pathlib import Path
import importlib
diff --git a/tools/rootcanal/test/posix_socket_unittest.cc b/tools/rootcanal/test/posix_socket_unittest.cc
index 89950d8440..e10cd00dae 100644
--- a/tools/rootcanal/test/posix_socket_unittest.cc
+++ b/tools/rootcanal/test/posix_socket_unittest.cc
@@ -1,4 +1,3 @@
-
// Copyright (C) 2021 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,6 +11,7 @@
// 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.
+
#include <errno.h>
#include <gtest/gtest.h>
#include <netdb.h>