From b2190f73771fb3445e31263363e7920d9088ec9b Mon Sep 17 00:00:00 2001 From: Rex Lin Date: Mon, 26 Dec 2022 20:32:14 +0800 Subject: [PATCH 1/2] uwb: update T6P calibration file base on T6 PRD [Default] /vendor/etc/uwb/UWB-calibration.conf /vendor/etc/uwb/UWB-calibration-unknown.conf /vendor/etc/uwb/UWB-calibration-default.conf [FCC] UWB-calibration-us.conf UWB-calibration-ca.conf [CE] /vendor/etc/uwb/UWB-calibration-de.conf /vendor/etc/uwb/UWB-calibration-fr.conf /vendor/etc/uwb/UWB-calibration-it.conf /vendor/etc/uwb/UWB-calibration-es.conf /vendor/etc/uwb/UWB-calibration-nl.conf /vendor/etc/uwb/UWB-calibration-se.conf /vendor/etc/uwb/UWB-calibration-no.conf /vendor/etc/uwb/UWB-calibration-dk.conf /vendor/etc/uwb/UWB-calibration-au.conf /vendor/etc/uwb/UWB-calibration-uk.conf [JP] /vendor/etc/uwb/UWB-calibration-jp.conf Bug: 254602083 Test: local verified pass Change-Id: Ibf105390aea6cccf8e796b1cc83cb3fc804f346a Signed-off-by: Rex Lin --- uwb/Android.mk | 24 +++++++ uwb/UWB-calibration-ce.conf | 136 +++++++++++++++++++++++++++++++++++ uwb/UWB-calibration-fcc.conf | 136 +++++++++++++++++++++++++++++++++++ uwb/UWB-calibration-jp.conf | 136 +++++++++++++++++++++++++++++++++++ uwb/UWB-calibration.conf | 1 + uwb/country_conf_gen.sh | 31 ++++++++ uwb/uwb_country.conf | 18 +++++ 7 files changed, 482 insertions(+) create mode 100644 uwb/Android.mk create mode 100644 uwb/UWB-calibration-ce.conf create mode 100644 uwb/UWB-calibration-fcc.conf create mode 100644 uwb/UWB-calibration-jp.conf create mode 100755 uwb/country_conf_gen.sh create mode 100644 uwb/uwb_country.conf diff --git a/uwb/Android.mk b/uwb/Android.mk new file mode 100644 index 0000000..a7bdf11 --- /dev/null +++ b/uwb/Android.mk @@ -0,0 +1,24 @@ +# +# Copyright (C) 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. +# +# WARNING: Everything listed here will be built on ALL platforms, +# including x86, the universal, and the SDK. Modules must be uniquely +# named (liblights.panda), and must build everywhere, or limit themselves +# to only building on ARM if they include assembly. Individual makefiles +# are responsible for having their own logic, for fine-grained control. +LOCAL_PATH:= $(call my-dir) +LOCAL_UWB_CAL_DIR=$(LOCAL_PATH) +DEVICE_UWB_CAL_DIR=$(TARGET_OUT_VENDOR)/etc/uwb +$(shell ($(LOCAL_UWB_CAL_DIR)/country_conf_gen.sh $(LOCAL_UWB_CAL_DIR) $(DEVICE_UWB_CAL_DIR))) diff --git a/uwb/UWB-calibration-ce.conf b/uwb/UWB-calibration-ce.conf new file mode 100644 index 0000000..9598405 --- /dev/null +++ b/uwb/UWB-calibration-ce.conf @@ -0,0 +1,136 @@ +[CCC]version=2 +[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0 +[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0 +[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0 +[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0 +[CCC]ant0.ch5.prf64.pdoa_offset=0 +[CCC]ant0.ch9.prf64.pdoa_offset=0 +[CCC]ant0.ch5.prf64.pll_locking_code=0 +[CCC]ant0.ch9.prf64.pll_locking_code=0 +[CCC]id=0 +[CCC]wifi_coex_time_gap=10 +[CCC]ap_coop_mode=1 +[CCC]antenna_selection=4 +[CCC]wifi_coex_min_spacing=0x08 +ant0.ch5.prf16.ant_delay=16430 +ant0.ch5.prf16.tx_power=0x4f4f444f +ant0.ch5.prf16.pg_count=0 +ant0.ch5.prf16.pg_delay=0x34 +ant0.ch5.prf64.ant_delay=16430 +ant0.ch5.prf64.tx_power=0x4f4f444f +ant0.ch5.prf64.pg_count=0 +ant0.ch5.prf64.pg_delay=0x34 +ant0.ch9.prf16.ant_delay=16430 +ant0.ch9.prf16.tx_power=0x3e3e303e +ant0.ch9.prf16.pg_count=0 +ant0.ch9.prf16.pg_delay=0x34 +ant0.ch9.prf64.ant_delay=16430 +ant0.ch9.prf64.tx_power=0x3e3e303e +ant0.ch9.prf64.pg_count=0 +ant0.ch9.prf64.pg_delay=0x34 +ant0.port=0 +ant0.selector_gpio=7 +ant0.selector_gpio_value=0 +ant1.ch5.prf16.ant_delay=16430 +ant1.ch5.prf16.tx_power=0 +ant1.ch5.prf16.pg_count=0 +ant1.ch5.prf16.pg_delay=0 +ant1.ch5.prf64.ant_delay=16430 +ant1.ch5.prf64.tx_power=0 +ant1.ch5.prf64.pg_count=0 +ant1.ch5.prf64.pg_delay=0 +ant1.ch9.prf16.ant_delay=16430 +ant1.ch9.prf16.tx_power=0 +ant1.ch9.prf16.pg_count=0 +ant1.ch9.prf16.pg_delay=0 +ant1.ch9.prf64.ant_delay=16430 +ant1.ch9.prf64.tx_power=0 +ant1.ch9.prf64.pg_count=0 +ant1.ch9.prf64.pg_delay=0 +ant1.port=0 +ant1.selector_gpio=7 +ant1.selector_gpio_value=1 +ant2.ch5.prf16.ant_delay=16430 +ant2.ch5.prf16.tx_power=0 +ant2.ch5.prf16.pg_count=0 +ant2.ch5.prf16.pg_delay=0 +ant2.ch5.prf64.ant_delay=16430 +ant2.ch5.prf64.tx_power=0 +ant2.ch5.prf64.pg_count=0 +ant2.ch5.prf64.pg_delay=0 +ant2.ch9.prf16.ant_delay=16430 +ant2.ch9.prf16.tx_power=0 +ant2.ch9.prf16.pg_count=0 +ant2.ch9.prf16.pg_delay=0 +ant2.ch9.prf64.ant_delay=16430 +ant2.ch9.prf64.tx_power=0 +ant2.ch9.prf64.pg_count=0 +ant2.ch9.prf64.pg_delay=0 +ant2.port=1 +ant2.selector_gpio=6 +ant2.selector_gpio_value=0 +ant3.ch5.prf16.ant_delay=16430 +ant3.ch5.prf16.tx_power=0 +ant3.ch5.prf16.pg_count=0 +ant3.ch5.prf16.pg_delay=0 +ant3.ch5.prf64.ant_delay=16430 +ant3.ch5.prf64.tx_power=0 +ant3.ch5.prf64.pg_count=0 +ant3.ch5.prf64.pg_delay=0 +ant3.ch9.prf16.ant_delay=16430 +ant3.ch9.prf16.tx_power=0 +ant3.ch9.prf16.pg_count=0 +ant3.ch9.prf16.pg_delay=0 +ant3.ch9.prf64.ant_delay=16430 +ant3.ch9.prf64.tx_power=0 +ant3.ch9.prf64.pg_count=0 +ant3.ch9.prf64.pg_delay=0 +ant3.port=1 +ant3.selector_gpio=6 +ant3.selector_gpio_value=1 +ant0.ant1.ch5.pdoa_offset=0 +ant0.ant1.ch9.pdoa_offset=0 +ant0.ant2.ch5.pdoa_offset=0 +ant0.ant2.ch9.pdoa_offset=0 +ant1.ant2.ch5.pdoa_offset=0 +ant1.ant2.ch9.pdoa_offset=0 +ant0.ant3.ch5.pdoa_offset=0 +ant0.ant3.ch9.pdoa_offset=0 +ant1.ant3.ch5.pdoa_offset=0 +ant1.ant3.ch9.pdoa_offset=0 +ant2.ant3.ch5.pdoa_offset=0 +ant2.ant3.ch9.pdoa_offset=0 +ch5.pll_locking_code=0 +ch9.pll_locking_code=0 +ant1.ant2.ch5.pdoa_lut=3d:ea:7b:0a:66:ea:c3:09:a4:ea:0a:09:cd:ea:66:08:0a:eb:ae:07:33:eb:f6:06:48:eb:52:06:71:eb:9a:05:c3:eb:e1:04:e1:ec:29:04:c3:ef:85:03:a4:f4:cd:02:14:f8:14:02:b8:fa:5c:01:8f:fc:b8:00:e1:fe:00:00:48:01:48:ff:85:03:a4:fe:ae:05:ec:fd:00:08:33:fd:d7:09:7b:fc:85:0b:d7:fb:0a:0d:1f:fb:66:0e:66:fa:33:0f:ae:f9:00:10:0a:f9:a4:10:52:f8:1f:11:9a:f7:5c:11:f6:f6:9a:11:3d:f6:ae:11:85:f5 +ant1.ant2.ch9.pdoa_lut=c3:ed:7b:0a:29:ee:c3:09:3d:ee:0a:09:cd:ee:66:08:c3:ef:ae:07:f6:f0:f6:06:3d:f2:52:06:52:f2:9a:05:cd:f2:e1:04:5c:f3:29:04:c3:f3:85:03:b8:f4:cd:02:71:f7:14:02:52:fa:5c:01:85:fd:b8:00:00:00:00:00:0a:01:48:ff:5c:01:a4:fe:14:02:ec:fd:5c:03:33:fd:48:05:7b:fc:b8:06:d7:fb:14:08:1f:fb:33:09:66:fa:ec:09:ae:f9:3d:0a:0a:f9:0a:0b:52:f8:1f:0b:9a:f7:48:0b:f6:f6:85:0b:3d:f6:9a:0b:85:f5 +ant1.ant3.ch5.pdoa_lut=66:ec:7b:0a:e1:ec:c3:09:14:ee:0a:09:d7:ef:66:08:8f:f2:ae:07:00:f6:f6:06:cd:f6:52:06:33:f7:9a:05:d7:f7:e1:04:48:f9:29:04:33:fd:85:03:d7:fd:cd:02:3d:fe:14:02:ec:ff:5c:01:14:00:b8:00:3d:00:00:00:cd:02:48:ff:29:04:a4:fe:a4:04:ec:fd:85:05:33:fd:e1:06:7b:fc:b8:08:d7:fb:14:0a:1f:fb:e1:0a:66:fa:1f:0b:0a:f9:1f:0b:ae:f9:5c:0b:52:f8:c3:0b:9a:f7:52:0c:f6:f6:0a:0d:3d:f6:00:0e:85:f5 +ant1.ant3.ch9.pdoa_lut=0a:ef:7b:0a:c3:ef:c3:09:00:f0:0a:09:14:f0:66:08:7b:f0:ae:07:48:f1:f6:06:00:f2:52:06:c3:f3:9a:05:00:f6:e1:04:d7:f7:29:04:1f:f9:85:03:ae:f9:cd:02:e1:fa:14:02:e1:fc:5c:01:b8:fe:b8:00:c3:ff:00:00:00:02:48:ff:5c:05:a4:fe:52:08:ec:fd:14:0a:33:fd:e1:0a:7b:fc:14:0c:d7:fb:14:0e:1f:fb:1f:0f:66:fa:00:10:ae:f9:b8:10:0a:f9:29:12:52:f8:00:14:9a:f7:7b:16:f6:f6:d7:17:3d:f6:29:18:85:f5 +xtal_trim=50 +temperature_reference=85 +smart_tx_power=1 +auto_sleep_margin=20000 +alternate_pulse_shape=0x00 +restricted_channels=0 +[HAL]aoa_capability=0 +[HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6 +[HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6 +[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4 +[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0 +[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0 +[HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6 +[HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.range.tx_ant_set_ranging = 6 +[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4 +[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0 +[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0 +[HAL]minimum_system_offset_uwbtime0=300 +coex_gpio=4 +coex_delay_us=1000 +coex_margin_us=500 +coex_interval_us=2000 diff --git a/uwb/UWB-calibration-fcc.conf b/uwb/UWB-calibration-fcc.conf new file mode 100644 index 0000000..0d3b99d --- /dev/null +++ b/uwb/UWB-calibration-fcc.conf @@ -0,0 +1,136 @@ +[CCC]version=2 +[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0 +[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0 +[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0 +[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0 +[CCC]ant0.ch5.prf64.pdoa_offset=0 +[CCC]ant0.ch9.prf64.pdoa_offset=0 +[CCC]ant0.ch5.prf64.pll_locking_code=0 +[CCC]ant0.ch9.prf64.pll_locking_code=0 +[CCC]id=0 +[CCC]wifi_coex_time_gap=10 +[CCC]ap_coop_mode=1 +[CCC]antenna_selection=4 +[CCC]wifi_coex_min_spacing=0x08 +ant0.ch5.prf16.ant_delay=16430 +ant0.ch5.prf16.tx_power=0x4f4f444f +ant0.ch5.prf16.pg_count=0 +ant0.ch5.prf16.pg_delay=0x28 +ant0.ch5.prf64.ant_delay=16430 +ant0.ch5.prf64.tx_power=0x4f4f444f +ant0.ch5.prf64.pg_count=0 +ant0.ch5.prf64.pg_delay=0x28 +ant0.ch9.prf16.ant_delay=16430 +ant0.ch9.prf16.tx_power=0x5e5e4c5e +ant0.ch9.prf16.pg_count=0 +ant0.ch9.prf16.pg_delay=0x28 +ant0.ch9.prf64.ant_delay=16430 +ant0.ch9.prf64.tx_power=0x5e5e4c5e +ant0.ch9.prf64.pg_count=0 +ant0.ch9.prf64.pg_delay=0x28 +ant0.port=0 +ant0.selector_gpio=7 +ant0.selector_gpio_value=0 +ant1.ch5.prf16.ant_delay=16430 +ant1.ch5.prf16.tx_power=0 +ant1.ch5.prf16.pg_count=0 +ant1.ch5.prf16.pg_delay=0 +ant1.ch5.prf64.ant_delay=16430 +ant1.ch5.prf64.tx_power=0 +ant1.ch5.prf64.pg_count=0 +ant1.ch5.prf64.pg_delay=0 +ant1.ch9.prf16.ant_delay=16430 +ant1.ch9.prf16.tx_power=0 +ant1.ch9.prf16.pg_count=0 +ant1.ch9.prf16.pg_delay=0 +ant1.ch9.prf64.ant_delay=16430 +ant1.ch9.prf64.tx_power=0 +ant1.ch9.prf64.pg_count=0 +ant1.ch9.prf64.pg_delay=0 +ant1.port=0 +ant1.selector_gpio=7 +ant1.selector_gpio_value=1 +ant2.ch5.prf16.ant_delay=16430 +ant2.ch5.prf16.tx_power=0 +ant2.ch5.prf16.pg_count=0 +ant2.ch5.prf16.pg_delay=0 +ant2.ch5.prf64.ant_delay=16430 +ant2.ch5.prf64.tx_power=0 +ant2.ch5.prf64.pg_count=0 +ant2.ch5.prf64.pg_delay=0 +ant2.ch9.prf16.ant_delay=16430 +ant2.ch9.prf16.tx_power=0 +ant2.ch9.prf16.pg_count=0 +ant2.ch9.prf16.pg_delay=0 +ant2.ch9.prf64.ant_delay=16430 +ant2.ch9.prf64.tx_power=0 +ant2.ch9.prf64.pg_count=0 +ant2.ch9.prf64.pg_delay=0 +ant2.port=1 +ant2.selector_gpio=6 +ant2.selector_gpio_value=0 +ant3.ch5.prf16.ant_delay=16430 +ant3.ch5.prf16.tx_power=0 +ant3.ch5.prf16.pg_count=0 +ant3.ch5.prf16.pg_delay=0 +ant3.ch5.prf64.ant_delay=16430 +ant3.ch5.prf64.tx_power=0 +ant3.ch5.prf64.pg_count=0 +ant3.ch5.prf64.pg_delay=0 +ant3.ch9.prf16.ant_delay=16430 +ant3.ch9.prf16.tx_power=0 +ant3.ch9.prf16.pg_count=0 +ant3.ch9.prf16.pg_delay=0 +ant3.ch9.prf64.ant_delay=16430 +ant3.ch9.prf64.tx_power=0 +ant3.ch9.prf64.pg_count=0 +ant3.ch9.prf64.pg_delay=0 +ant3.port=1 +ant3.selector_gpio=6 +ant3.selector_gpio_value=1 +ant0.ant1.ch5.pdoa_offset=0 +ant0.ant1.ch9.pdoa_offset=0 +ant0.ant2.ch5.pdoa_offset=0 +ant0.ant2.ch9.pdoa_offset=0 +ant1.ant2.ch5.pdoa_offset=0 +ant1.ant2.ch9.pdoa_offset=0 +ant0.ant3.ch5.pdoa_offset=0 +ant0.ant3.ch9.pdoa_offset=0 +ant1.ant3.ch5.pdoa_offset=0 +ant1.ant3.ch9.pdoa_offset=0 +ant2.ant3.ch5.pdoa_offset=0 +ant2.ant3.ch9.pdoa_offset=0 +ch5.pll_locking_code=0 +ch9.pll_locking_code=0 +ant1.ant2.ch5.pdoa_lut=3d:ea:7b:0a:66:ea:c3:09:a4:ea:0a:09:cd:ea:66:08:0a:eb:ae:07:33:eb:f6:06:48:eb:52:06:71:eb:9a:05:c3:eb:e1:04:e1:ec:29:04:c3:ef:85:03:a4:f4:cd:02:14:f8:14:02:b8:fa:5c:01:8f:fc:b8:00:e1:fe:00:00:48:01:48:ff:85:03:a4:fe:ae:05:ec:fd:00:08:33:fd:d7:09:7b:fc:85:0b:d7:fb:0a:0d:1f:fb:66:0e:66:fa:33:0f:ae:f9:00:10:0a:f9:a4:10:52:f8:1f:11:9a:f7:5c:11:f6:f6:9a:11:3d:f6:ae:11:85:f5 +ant1.ant2.ch9.pdoa_lut=c3:ed:7b:0a:29:ee:c3:09:3d:ee:0a:09:cd:ee:66:08:c3:ef:ae:07:f6:f0:f6:06:3d:f2:52:06:52:f2:9a:05:cd:f2:e1:04:5c:f3:29:04:c3:f3:85:03:b8:f4:cd:02:71:f7:14:02:52:fa:5c:01:85:fd:b8:00:00:00:00:00:0a:01:48:ff:5c:01:a4:fe:14:02:ec:fd:5c:03:33:fd:48:05:7b:fc:b8:06:d7:fb:14:08:1f:fb:33:09:66:fa:ec:09:ae:f9:3d:0a:0a:f9:0a:0b:52:f8:1f:0b:9a:f7:48:0b:f6:f6:85:0b:3d:f6:9a:0b:85:f5 +ant1.ant3.ch5.pdoa_lut=66:ec:7b:0a:e1:ec:c3:09:14:ee:0a:09:d7:ef:66:08:8f:f2:ae:07:00:f6:f6:06:cd:f6:52:06:33:f7:9a:05:d7:f7:e1:04:48:f9:29:04:33:fd:85:03:d7:fd:cd:02:3d:fe:14:02:ec:ff:5c:01:14:00:b8:00:3d:00:00:00:cd:02:48:ff:29:04:a4:fe:a4:04:ec:fd:85:05:33:fd:e1:06:7b:fc:b8:08:d7:fb:14:0a:1f:fb:e1:0a:66:fa:1f:0b:0a:f9:1f:0b:ae:f9:5c:0b:52:f8:c3:0b:9a:f7:52:0c:f6:f6:0a:0d:3d:f6:00:0e:85:f5 +ant1.ant3.ch9.pdoa_lut=0a:ef:7b:0a:c3:ef:c3:09:00:f0:0a:09:14:f0:66:08:7b:f0:ae:07:48:f1:f6:06:00:f2:52:06:c3:f3:9a:05:00:f6:e1:04:d7:f7:29:04:1f:f9:85:03:ae:f9:cd:02:e1:fa:14:02:e1:fc:5c:01:b8:fe:b8:00:c3:ff:00:00:00:02:48:ff:5c:05:a4:fe:52:08:ec:fd:14:0a:33:fd:e1:0a:7b:fc:14:0c:d7:fb:14:0e:1f:fb:1f:0f:66:fa:00:10:ae:f9:b8:10:0a:f9:29:12:52:f8:00:14:9a:f7:7b:16:f6:f6:d7:17:3d:f6:29:18:85:f5 +xtal_trim=50 +temperature_reference=85 +smart_tx_power=1 +auto_sleep_margin=20000 +alternate_pulse_shape=0x00 +restricted_channels=0 +[HAL]aoa_capability=0 +[HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6 +[HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6 +[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4 +[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0 +[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0 +[HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6 +[HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.range.tx_ant_set_ranging = 6 +[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4 +[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0 +[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0 +[HAL]minimum_system_offset_uwbtime0=300 +coex_gpio=4 +coex_delay_us=1000 +coex_margin_us=500 +coex_interval_us=2000 diff --git a/uwb/UWB-calibration-jp.conf b/uwb/UWB-calibration-jp.conf new file mode 100644 index 0000000..87f72fa --- /dev/null +++ b/uwb/UWB-calibration-jp.conf @@ -0,0 +1,136 @@ +[CCC]version=2 +[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0 +[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0 +[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0 +[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0 +[CCC]ant0.ch5.prf64.pdoa_offset=0 +[CCC]ant0.ch9.prf64.pdoa_offset=0 +[CCC]ant0.ch5.prf64.pll_locking_code=0 +[CCC]ant0.ch9.prf64.pll_locking_code=0 +[CCC]id=0 +[CCC]wifi_coex_time_gap=10 +[CCC]ap_coop_mode=1 +[CCC]antenna_selection=4 +[CCC]wifi_coex_min_spacing=0x08 +ant0.ch5.prf16.ant_delay=16430 +ant0.ch5.prf16.tx_power=0xffffffff +ant0.ch5.prf16.pg_count=0 +ant0.ch5.prf16.pg_delay=0x34 +ant0.ch5.prf64.ant_delay=16430 +ant0.ch5.prf64.tx_power=0xffffffff +ant0.ch5.prf64.pg_count=0 +ant0.ch5.prf64.pg_delay=0x34 +ant0.ch9.prf16.ant_delay=16430 +ant0.ch9.prf16.tx_power=0x2e2e242e +ant0.ch9.prf16.pg_count=0 +ant0.ch9.prf16.pg_delay=0x34 +ant0.ch9.prf64.ant_delay=16430 +ant0.ch9.prf64.tx_power=0x2e2e242e +ant0.ch9.prf64.pg_count=0 +ant0.ch9.prf64.pg_delay=0x34 +ant0.port=0 +ant0.selector_gpio=7 +ant0.selector_gpio_value=0 +ant1.ch5.prf16.ant_delay=16430 +ant1.ch5.prf16.tx_power=0 +ant1.ch5.prf16.pg_count=0 +ant1.ch5.prf16.pg_delay=0 +ant1.ch5.prf64.ant_delay=16430 +ant1.ch5.prf64.tx_power=0 +ant1.ch5.prf64.pg_count=0 +ant1.ch5.prf64.pg_delay=0 +ant1.ch9.prf16.ant_delay=16430 +ant1.ch9.prf16.tx_power=0 +ant1.ch9.prf16.pg_count=0 +ant1.ch9.prf16.pg_delay=0 +ant1.ch9.prf64.ant_delay=16430 +ant1.ch9.prf64.tx_power=0 +ant1.ch9.prf64.pg_count=0 +ant1.ch9.prf64.pg_delay=0 +ant1.port=0 +ant1.selector_gpio=7 +ant1.selector_gpio_value=1 +ant2.ch5.prf16.ant_delay=16430 +ant2.ch5.prf16.tx_power=0 +ant2.ch5.prf16.pg_count=0 +ant2.ch5.prf16.pg_delay=0 +ant2.ch5.prf64.ant_delay=16430 +ant2.ch5.prf64.tx_power=0 +ant2.ch5.prf64.pg_count=0 +ant2.ch5.prf64.pg_delay=0 +ant2.ch9.prf16.ant_delay=16430 +ant2.ch9.prf16.tx_power=0 +ant2.ch9.prf16.pg_count=0 +ant2.ch9.prf16.pg_delay=0 +ant2.ch9.prf64.ant_delay=16430 +ant2.ch9.prf64.tx_power=0 +ant2.ch9.prf64.pg_count=0 +ant2.ch9.prf64.pg_delay=0 +ant2.port=1 +ant2.selector_gpio=6 +ant2.selector_gpio_value=0 +ant3.ch5.prf16.ant_delay=16430 +ant3.ch5.prf16.tx_power=0 +ant3.ch5.prf16.pg_count=0 +ant3.ch5.prf16.pg_delay=0 +ant3.ch5.prf64.ant_delay=16430 +ant3.ch5.prf64.tx_power=0 +ant3.ch5.prf64.pg_count=0 +ant3.ch5.prf64.pg_delay=0 +ant3.ch9.prf16.ant_delay=16430 +ant3.ch9.prf16.tx_power=0 +ant3.ch9.prf16.pg_count=0 +ant3.ch9.prf16.pg_delay=0 +ant3.ch9.prf64.ant_delay=16430 +ant3.ch9.prf64.tx_power=0 +ant3.ch9.prf64.pg_count=0 +ant3.ch9.prf64.pg_delay=0 +ant3.port=1 +ant3.selector_gpio=6 +ant3.selector_gpio_value=1 +ant0.ant1.ch5.pdoa_offset=0 +ant0.ant1.ch9.pdoa_offset=0 +ant0.ant2.ch5.pdoa_offset=0 +ant0.ant2.ch9.pdoa_offset=0 +ant1.ant2.ch5.pdoa_offset=0 +ant1.ant2.ch9.pdoa_offset=0 +ant0.ant3.ch5.pdoa_offset=0 +ant0.ant3.ch9.pdoa_offset=0 +ant1.ant3.ch5.pdoa_offset=0 +ant1.ant3.ch9.pdoa_offset=0 +ant2.ant3.ch5.pdoa_offset=0 +ant2.ant3.ch9.pdoa_offset=0 +ch5.pll_locking_code=0 +ch9.pll_locking_code=0 +ant1.ant2.ch5.pdoa_lut=3d:ea:7b:0a:66:ea:c3:09:a4:ea:0a:09:cd:ea:66:08:0a:eb:ae:07:33:eb:f6:06:48:eb:52:06:71:eb:9a:05:c3:eb:e1:04:e1:ec:29:04:c3:ef:85:03:a4:f4:cd:02:14:f8:14:02:b8:fa:5c:01:8f:fc:b8:00:e1:fe:00:00:48:01:48:ff:85:03:a4:fe:ae:05:ec:fd:00:08:33:fd:d7:09:7b:fc:85:0b:d7:fb:0a:0d:1f:fb:66:0e:66:fa:33:0f:ae:f9:00:10:0a:f9:a4:10:52:f8:1f:11:9a:f7:5c:11:f6:f6:9a:11:3d:f6:ae:11:85:f5 +ant1.ant2.ch9.pdoa_lut=c3:ed:7b:0a:29:ee:c3:09:3d:ee:0a:09:cd:ee:66:08:c3:ef:ae:07:f6:f0:f6:06:3d:f2:52:06:52:f2:9a:05:cd:f2:e1:04:5c:f3:29:04:c3:f3:85:03:b8:f4:cd:02:71:f7:14:02:52:fa:5c:01:85:fd:b8:00:00:00:00:00:0a:01:48:ff:5c:01:a4:fe:14:02:ec:fd:5c:03:33:fd:48:05:7b:fc:b8:06:d7:fb:14:08:1f:fb:33:09:66:fa:ec:09:ae:f9:3d:0a:0a:f9:0a:0b:52:f8:1f:0b:9a:f7:48:0b:f6:f6:85:0b:3d:f6:9a:0b:85:f5 +ant1.ant3.ch5.pdoa_lut=66:ec:7b:0a:e1:ec:c3:09:14:ee:0a:09:d7:ef:66:08:8f:f2:ae:07:00:f6:f6:06:cd:f6:52:06:33:f7:9a:05:d7:f7:e1:04:48:f9:29:04:33:fd:85:03:d7:fd:cd:02:3d:fe:14:02:ec:ff:5c:01:14:00:b8:00:3d:00:00:00:cd:02:48:ff:29:04:a4:fe:a4:04:ec:fd:85:05:33:fd:e1:06:7b:fc:b8:08:d7:fb:14:0a:1f:fb:e1:0a:66:fa:1f:0b:0a:f9:1f:0b:ae:f9:5c:0b:52:f8:c3:0b:9a:f7:52:0c:f6:f6:0a:0d:3d:f6:00:0e:85:f5 +ant1.ant3.ch9.pdoa_lut=0a:ef:7b:0a:c3:ef:c3:09:00:f0:0a:09:14:f0:66:08:7b:f0:ae:07:48:f1:f6:06:00:f2:52:06:c3:f3:9a:05:00:f6:e1:04:d7:f7:29:04:1f:f9:85:03:ae:f9:cd:02:e1:fa:14:02:e1:fc:5c:01:b8:fe:b8:00:c3:ff:00:00:00:02:48:ff:5c:05:a4:fe:52:08:ec:fd:14:0a:33:fd:e1:0a:7b:fc:14:0c:d7:fb:14:0e:1f:fb:1f:0f:66:fa:00:10:ae:f9:b8:10:0a:f9:29:12:52:f8:00:14:9a:f7:7b:16:f6:f6:d7:17:3d:f6:29:18:85:f5 +xtal_trim=50 +temperature_reference=85 +smart_tx_power=1 +auto_sleep_margin=20000 +alternate_pulse_shape=0x01 +restricted_channels=0x20 +[HAL]aoa_capability=0 +[HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6 +[HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6 +[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4 +[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0 +[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0 +[HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6 +[HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.range.tx_ant_set_ranging = 6 +[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6 +[HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4 +[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0 +[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0 +[HAL]minimum_system_offset_uwbtime0=300 +coex_gpio=4 +coex_delay_us=1000 +coex_margin_us=500 +coex_interval_us=2000 diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration.conf index a0d0a08..0d3b99d 100644 --- a/uwb/UWB-calibration.conf +++ b/uwb/UWB-calibration.conf @@ -110,6 +110,7 @@ xtal_trim=50 temperature_reference=85 smart_tx_power=1 auto_sleep_margin=20000 +alternate_pulse_shape=0x00 restricted_channels=0 [HAL]aoa_capability=0 [HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6 diff --git a/uwb/country_conf_gen.sh b/uwb/country_conf_gen.sh new file mode 100755 index 0000000..7e398c0 --- /dev/null +++ b/uwb/country_conf_gen.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# This script is used to generate uwb conuntry configuration file, +# and the PRODUCT_COPY_FILES list in uwb.mk based on uwb_country.conf +# Bug: 196073172, 233619860 + +count=1 + +mkdir -p $2 + +while read line ; do + if [[ "$line" =~ ^"*" ]]; then + header=${line:1} + elif [[ "$line" =~ ^"\"" ]]; then + #line=$(echo ${line/,} | tr -d "\"") + country[count]=$(echo $line | cut -d ':' -f1 | tr -d "\"") + code[count]=$(echo $line | cut -d ':' -f2 | tr -d "\"" | tr -d " ") + if [ "$header" = "FCC" ]; then + cp $1/UWB-calibration-fcc.conf $2/UWB-calibration-${code[$count]}.conf + elif [ "$header" = "CE" ]; then + cp $1/UWB-calibration-ce.conf $2/UWB-calibration-${code[$count]}.conf + elif [ "$header" = "JP" ]; then + cp $1/UWB-calibration-jp.conf $2/UWB-calibration-${code[$count]}.conf + elif [ "$header" = "TW" ]; then + cp $1/UWB-calibration-tw.conf $2/UWB-calibration-${code[$count]}.conf + elif [ "$header" = "Restricted" ]; then + cp $1/UWB-calibration-restricted.conf $2/UWB-calibration-${code[$count]}.conf + fi + fi +((count++)) +done < $1/uwb_country.conf diff --git a/uwb/uwb_country.conf b/uwb/uwb_country.conf new file mode 100644 index 0000000..7ba69f2 --- /dev/null +++ b/uwb/uwb_country.conf @@ -0,0 +1,18 @@ +*FCC +"United States": "us" +"Canada": "ca" + +*CE +"Denmark": "dk" +"France": "fr" +"Germany": "de" +"Italy": "it" +"Netherlands": "nl" +"Spain": "es" +"Sweden": "se" +"Norway": "no" +"Australia": "au" +"United Kingdom": "uk" + +*JP +"Japan": "jp" From dd52038c939281330c87eb7b8af39cf96adaa209 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 6 Jan 2023 19:35:55 -0800 Subject: [PATCH 2/2] Add template for generating tangorpro vendor blobs Also add template for factory image TEST:generated blobs from artifacts. Flashed device BUG: 246437989 Change-Id: Ie80f389ec1407968e004be9ce3ceb0e6bf063b21 --- .../generate-factory-images-package.sh | 24 ++ self-extractors/Android.mk | 0 self-extractors/METADATA | 3 + self-extractors/PART1 | 12 + self-extractors/PART2 | 22 ++ self-extractors/PART3 | 12 + self-extractors/PROLOGUE | 2 + self-extractors/extract-lists.txt | 11 + self-extractors/google_devices/COPYRIGHT | 1 + self-extractors/google_devices/LICENSE | 264 ++++++++++++++++++ .../google_devices/staging/Android.bp.txt | 17 ++ .../google_devices/staging/Android.mk | 40 +++ .../staging/BoardConfigPartial.mk | 37 +++ .../google_devices/staging/device-partial.mk | 25 ++ self-extractors/root/android-info.txt | 4 + .../root/proprietary/BoardConfigVendor.mk | 15 + .../root/proprietary/device-vendor.mk | 15 + 17 files changed, 504 insertions(+) create mode 100755 factory-images/generate-factory-images-package.sh create mode 100644 self-extractors/Android.mk create mode 100644 self-extractors/METADATA create mode 100644 self-extractors/PART1 create mode 100644 self-extractors/PART2 create mode 100644 self-extractors/PART3 create mode 100644 self-extractors/PROLOGUE create mode 100644 self-extractors/extract-lists.txt create mode 100644 self-extractors/google_devices/COPYRIGHT create mode 100644 self-extractors/google_devices/LICENSE create mode 100644 self-extractors/google_devices/staging/Android.bp.txt create mode 100644 self-extractors/google_devices/staging/Android.mk create mode 100644 self-extractors/google_devices/staging/BoardConfigPartial.mk create mode 100644 self-extractors/google_devices/staging/device-partial.mk create mode 100644 self-extractors/root/android-info.txt create mode 100644 self-extractors/root/proprietary/BoardConfigVendor.mk create mode 100644 self-extractors/root/proprietary/device-vendor.mk diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh new file mode 100755 index 0000000..b6ff1a3 --- /dev/null +++ b/factory-images/generate-factory-images-package.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# 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. + +source ../../../common/clear-factory-images-variables.sh +BUILD=9452078 +DEVICE=tangorpro +PRODUCT=tangorpro +VERSION=td2a.230104.001 +SRCPREFIX=signed- +BOOTLOADER=tangorpro-1.0-9434949 +source ../../../common/generate-factory-images-common.sh diff --git a/self-extractors/Android.mk b/self-extractors/Android.mk new file mode 100644 index 0000000..e69de29 diff --git a/self-extractors/METADATA b/self-extractors/METADATA new file mode 100644 index 0000000..d97975c --- /dev/null +++ b/self-extractors/METADATA @@ -0,0 +1,3 @@ +third_party { + license_type: NOTICE +} diff --git a/self-extractors/PART1 b/self-extractors/PART1 new file mode 100644 index 0000000..935267e --- /dev/null +++ b/self-extractors/PART1 @@ -0,0 +1,12 @@ +# +# Usage is subject to the enclosed license agreement + +echo +echo The license for this software will now be displayed. +echo You must agree to this license before using this software. +echo +echo -n Press Enter to view the license +read dummy +echo + +more << __EOF__ diff --git a/self-extractors/PART2 b/self-extractors/PART2 new file mode 100644 index 0000000..30e8d43 --- /dev/null +++ b/self-extractors/PART2 @@ -0,0 +1,22 @@ +__EOF__ + +if test $? != 0 +then + echo ERROR: Couldn\'t display license file 1>&2 + exit 1 +fi + +echo + +echo -n Type \"I ACCEPT\" if you agree to the terms of the license:\ +read typed + +if test "$typed" != I\ ACCEPT +then + echo + echo You didn\'t accept the license. Extraction aborted. + exit 2 +fi + +echo + diff --git a/self-extractors/PART3 b/self-extractors/PART3 new file mode 100644 index 0000000..6847be5 --- /dev/null +++ b/self-extractors/PART3 @@ -0,0 +1,12 @@ + +if test $? != 0 +then + echo + echo ERROR: Couldn\'t extract files. 1>&2 + exit 3 +else + echo + echo Files extracted successfully. +fi +exit 0 + diff --git a/self-extractors/PROLOGUE b/self-extractors/PROLOGUE new file mode 100644 index 0000000..c856ef1 --- /dev/null +++ b/self-extractors/PROLOGUE @@ -0,0 +1,2 @@ +#!/bin/bash +# diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt new file mode 100644 index 0000000..643a383 --- /dev/null +++ b/self-extractors/extract-lists.txt @@ -0,0 +1,11 @@ + google_devices) + TO_EXTRACT="\ + IMAGES/vbmeta_vendor.img \ + IMAGES/vendor.img \ + IMAGES/vendor_dlkm.img \ + RADIO/bootloader.img \ + system_ext/etc/permissions/privapp-permissions-qorvo.xml \ + system_ext/priv-app/UwbVendorService/UwbVendorService.apk \ + " + ;; + diff --git a/self-extractors/google_devices/COPYRIGHT b/self-extractors/google_devices/COPYRIGHT new file mode 100644 index 0000000..db593ae --- /dev/null +++ b/self-extractors/google_devices/COPYRIGHT @@ -0,0 +1 @@ +# (C) Google Inc. diff --git a/self-extractors/google_devices/LICENSE b/self-extractors/google_devices/LICENSE new file mode 100644 index 0000000..6b4042b --- /dev/null +++ b/self-extractors/google_devices/LICENSE @@ -0,0 +1,264 @@ +THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY +BINDING AGREEMENT BETWEEN Google Inc. ("LICENSOR") AND +YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY +TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS +AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS. +IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION +PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE +SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS +SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE +SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL +ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND +SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. + + 1. Special Definitions + + a. The term "Android" means the open source mobile platform, software + stack, operating system, middleware, application programming + interfaces and mobile applications under the trade-name "Android" + distributed at Android.com. + + b. The term "Android Applications" means a software application or + open-source contribution developed by You, designed to operate with + Android that does not contain or incorporate any of the Software. + + c. The term "Authorized Android Enabled Device" means only the device + identified on the site from which You downloaded the Software. + The term "Software" means the Licensor's proprietary software and + libraries in object code form, designed for use on the Authorized + Android Enabled Device. + + d. The term "Authorized Android Enabled Device Software" means a + packaged build for Authorized Android Enabled Devices, consisting + of files suitable for installation on an Authorized Android Enabled + Device using a mechanism such as fastboot mode or recovery mode. + + 2. License Grant + + a. Subject to the terms of this Agreement, Licensor hereby grants to + You, free of charge, a non-exclusive, non-sublicensable, + non-transferable, limited copyright license, during the term of + this Agreement, to download, install and use the Software + internally in machine-readable (i.e., object code) form and the + Documentation for non-commercial use on an Authorized Android + Enabled Device and non-commercial redistribution for academic + purposes only of a reasonable number of copies of the Authorized + Android Enabled Device Software (the "Limited Purpose"). You may + grant your end users the right to use the Software for + non-commercial purposes on an Authorized Android Enabled Device. + The license to the Software granted to You hereunder is solely for + the Limited Purpose set forth in this section, and the Software + shall not be used for any other purpose. + + 3. Restrictions + + a. Retention of Rights. The entire right, title and interest in the + Software shall remain with Licensor and, unless specified in + writing hereunder, no rights are granted to any of the Software. + Except for the right to use the Software for the Limited Purpose, + the delivery of the Software to You does not convey to You any + intellectual property rights in the Software, including, but not + limited to any rights under any patent, trademark, copyright, or + trade secret. Neither the delivery of the Software to You nor any + terms set forth herein shall be construed to grant to You, either + expressly, by implication or by way of estoppel, any license under + any patents or other intellectual property rights covering or + relating to any other product or invention or any combination of + the Software with any other product. Any rights not expressly + granted to You herein are reserved by Licensor. + + b. No Commercialization or Distribution of the Software and + Documentation. Except as expressly provided in Section 2 of this + Agreement, You shall have no right to (i) copy, disclose, + distribute, publically perform, publically display, transfer, + alter, modify, translate, disassemble, decompile, reverse engineer, + or adapt the Software and Documentation, or any portion thereof, or + create any derivative works based thereon; (ii) rent, lease, + assign, sublicense, resell, disclose or otherwise transfer the + Software and Documentation in whole or in part to any third party + (iii) use the Software and Documentation except for the Limited + Purpose, (iv) remove or alter any of the copyright or proprietary + notices contained in any of the Software and Documentation. For the + purposes of clarity, nothing in this Agreement prohibits You from + making and distributing Android Applications under commercial or + non-commercial terms, provided that You shall not contain, + incorporate, and/or compile the Software or any of its derivative + works, in whole or in part, into Your Android Applications and/or + any software/devices created by You or by third parties acting on + Your behalf. You and any such third party shall comply with all of + the terms and conditions of this Agreement. + + c. No Reverse Engineering. Except for any portions of the Software + provided to You in source code format and except for any third + party code distributed with the Software that is licensed under + contrary terms, You will not reverse engineer, disassemble, + decompile, or translate the Software, or otherwise attempt to + derive the source code version of the Software, except if and to + the extent expressly permitted under any applicable law. + + d. Third Party Software. You agree that Android may contain third + party software. You agree that you may not distribute such third + party software for any purpose without appropriate licenses from + the applicable third party or parties. + + e. No Transfer or Assignment. You shall not assign any of its rights + or obligations under this Agreement. Any attempted assignment in + contravention of this Section shall be void. + + f. Licensor shall retain all title, ownership and Intellectual + Property Rights in and to the Software and any derivative thereof. + "Intellectual Property Rights" shall mean all patent, copyright, + trade secret, trademark and other proprietary and intellectual + property rights, including moral rights. + + g. Neither this Agreement, nor any act by Licensor or its Affiliates + persuant to this Agreement or relating to the Software (including, + without limitation, the provision by Licensor or its Affiliates of + the Software) shall provide to You any license or any other rights + whatsoever under any patents, trademarks, trade secrets, copyrights + or any other intellectual property rights of Licensor or its + Affiliates, except for the copyrights expressly set forth in this + Agreement. You understand and agree that: + + h. Neither this Agreement, nor delivery of the Software alone or in + combination with any Licensor ASIC grants you any right to + practice, or any other right at all with respect to, any patent of + Licensor or its Affiliates, and + + i. A separating license agreement from Motorola Incorporated is needed + to use or practice any patent of Licensor or its Affiliates. + + j. You agree not to contend in any context that, as a result of the + provision or use of this software, either Licensor or Affiliate has + any obligation to extend, or Licensor or any other party has + obtained any right to, any license, whether express or implied, + with respect to any patent of Licensor or its Affiliates for any + purpose. For the purposes of this agreement, "Affiliate" means + (i) any corporation or any other legal entity that owns, directly + or indirectly, more than fifty percent (50%) of the shares, equity + interest or other securities of any entity entitled to vote for + election of directors (or other managing authority), or (ii) any + corporation or any other legal entity fifty percent (50%) or more + of whose shares, equity interest, or other securities entitled to + vote for election of directors (or other managing authority) is + owned or controlled by an entity, either directly or indirectly. + + 4. Indemnity + + a. You agree to indemnify and hold harmless Licensor, Google, and + their officers, directors, customers, employees and successors and + assigns (each an "Indemnified Party") against any and all claims, + demands, causes of action, losses, liabilities, damages, costs and + expenses, incurred by the Indemnified Party (including but not + limited to costs of defense, investigation and reasonable + attorney's fees) arising out of, resulting from or related to + (i) any software, products, documentation, content, materials or + derivative works created or developed by You using the Software + which causes an infringement of any patent, copyright, trademark, + trade secret, or other property, publicity or privacy rights of any + third parties arising in any jurisdiction anywhere in the world, + (ii) the download, distribution, installation, storage, execution, + use or transfer of such software, products, documentation, content, + materials or derivative works by any person or entity, and/or + (iii) any breach of this Agreement by You. If requested by an + Indemnified Party, You agree to defend such Indemnified Party in + connection with any third party claims, demands, or causes of + action resulting from, arising out of or in connection with any of + the foregoing. + + 5. Limitation of Liability + + a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO + CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL + LICENSOR, GOOGLE, THEIR AFFILIATES AND/OR ITS DIRECTORS, OFFICERS, + EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, + SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT + LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS + INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD, + INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF + LICENSOR OR GOOGLE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR + EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO + THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED. + IN NO EVENT SHALL LICENSOR'S OR GOOGLE'S TOTAL AGGREGATE LIABILITY + TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF + ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE, + INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS + (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE + DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. + THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK + AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS + PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE + PARTIES. + + 6. No Warranty + + a. LICENSOR AND GOOGLE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH + RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS + AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST + INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF + TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE. + NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A + WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR + SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT + AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT + OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF + OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH + DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF + LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD + PARTIES. LICENSOR AND GOOGLE SHALL NOT HAVE ANY OBLIGATION TO + PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT. + + 7. Term and Termination + + a. This Agreement shall be effective on the date You accept this + Agreement and shall remain in effect until terminated as provided + herein. You may terminate the Agreement at any time by deleting and + destroying all copies of the Software and all related information + in Your possession or control. This Agreement terminates + immediately and automatically, with or without notice, if You fail + to comply with any provision hereof. Additionally, Licensor may at + any time terminate this Agreement, without cause, upon notice to + You. Upon termination You must delete or destroy all copies of the + Software in Your possession, and the license granted to You in this + Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive + the termination of this Agreement. + + 8. Miscellaneous + + a. Governing Law. This Agreement is governed and interpreted in + accordance with the laws of the State of California without giving + effect to its conflict of laws provisions. The United Nations + Convention on Contracts for the International Sale of Goods is + expressly disclaimed and shall not apply. Any claim arising out of + or related to this Agreement must be brought exclusively in a + federal or state court located in Santa Clara County, California + and You consent to the jurisdiction and venue of such courts. + + b. Waiver and Severability. The failure of either party to require + performance by the other party of any provision of this Agreement + shall not affect the full right to require such performance at any + time thereafter; nor shall the waiver by either party of a breach + of any provision of this Agreement be taken or held to be a waiver + of the provision itself. Severability. If any provision of this + Agreement is unenforceable or invalid under any applicable law or + is so held by applicable court decision, such unenforceability or + invalidity shall not render this Agreement unenforceable or invalid + as a whole, and such provision shall be changed and interpreted so + as to best accomplish the objectives of such unenforceable or + invalid provision within the limits of applicable law or + applicable court decisions. + + c. Amendment and Modification. This Agreement and any of its terms and + provisions may only be amended, modified, supplemented or waived in + a writing signed by both parties hereto. + + d. Compliance with Laws. You shall comply with all applicable laws, + rules, and regulations in connection with its activities under this + Agreement. + + e. Entire Agreement. This Agreement completely and exclusively states + the agreement between You and Licensor regarding this subject + matter. diff --git a/self-extractors/google_devices/staging/Android.bp.txt b/self-extractors/google_devices/staging/Android.bp.txt new file mode 100644 index 0000000..4cbe8da --- /dev/null +++ b/self-extractors/google_devices/staging/Android.bp.txt @@ -0,0 +1,17 @@ +// Copyright (C) 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. + +soong_namespace { +} + diff --git a/self-extractors/google_devices/staging/Android.mk b/self-extractors/google_devices/staging/Android.mk new file mode 100644 index 0000000..907a371 --- /dev/null +++ b/self-extractors/google_devices/staging/Android.mk @@ -0,0 +1,40 @@ +# +# Copyright (C) 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. +# + +LOCAL_PATH := $(call my-dir) + +ifneq ($(filter tangorpro,$(TARGET_DEVICE)),) + $(call add-radio-file,bootloader.img) +endif + +ifneq ($(filter tangorpro,$(TARGET_DEVICE)),) +include $(CLEAR_VARS) +LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) +LOCAL_MODULE := UwbVendorService +LOCAL_MODULE_TAGS := optional +LOCAL_BUILT_MODULE_STEM := package.apk +LOCAL_SYSTEM_EXT_MODULE := true +LOCAL_PRIVILEGED_MODULE := true +LOCAL_MODULE_OWNER := qorvo +LOCAL_MODULE_CLASS := APPS +LOCAL_SRC_FILES := $(LOCAL_MODULE).apk +LOCAL_CERTIFICATE := platform +LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 +LOCAL_LICENSE_CONDITIONS := notice +LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE +include $(BUILD_PREBUILT) + +endif diff --git a/self-extractors/google_devices/staging/BoardConfigPartial.mk b/self-extractors/google_devices/staging/BoardConfigPartial.mk new file mode 100644 index 0000000..afe9e59 --- /dev/null +++ b/self-extractors/google_devices/staging/BoardConfigPartial.mk @@ -0,0 +1,37 @@ +# 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. + +BOARD_PREBUILT_VENDORIMAGE := vendor/google_devices/tangorpro/proprietary/vendor.img + +BOARD_PREBUILT_VENDOR_DLKMIMAGE := vendor/google_devices/tangorpro/proprietary/vendor_dlkm.img + +TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm + +BOARD_AVB_VBMETA_VENDOR := vendor +BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3 + +AB_OTA_PARTITIONS += \ + vbmeta_vendor \ + vendor \ + vendor_dlkm \ + +-include vendor/google/tools/android-info.mk +ifdef USE_ANDROID_INFO + TARGET_BOARD_INFO_FILE := vendor/google_devices/tangorpro/android-info.txt +endif + +VENDOR_BLOBS_LICENSE := vendor/google_devices/tangorpro/LICENSE diff --git a/self-extractors/google_devices/staging/device-partial.mk b/self-extractors/google_devices/staging/device-partial.mk new file mode 100644 index 0000000..deeece2 --- /dev/null +++ b/self-extractors/google_devices/staging/device-partial.mk @@ -0,0 +1,25 @@ +# 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. + +PRODUCT_SOONG_NAMESPACES += \ + vendor/google_devices/tangorpro/proprietary \ + +# AOSP packages required by the blobs +PRODUCT_PACKAGES := \ + UwbVendorService \ + +# blob(s) necessary for tangorpro hardware +PRODUCT_COPY_FILES := \ + vendor/google_devices/tangorpro/proprietary/privapp-permissions-qorvo.xml:system_ext/etc/permissions/privapp-permissions-qorvo.xml:qorvo \ + diff --git a/self-extractors/root/android-info.txt b/self-extractors/root/android-info.txt new file mode 100644 index 0000000..6898bbd --- /dev/null +++ b/self-extractors/root/android-info.txt @@ -0,0 +1,4 @@ +require board=tangorpro +require partition-exists=vendor_kernel_boot + +require version-bootloader=tangorpro-1.0-9282924 diff --git a/self-extractors/root/proprietary/BoardConfigVendor.mk b/self-extractors/root/proprietary/BoardConfigVendor.mk new file mode 100644 index 0000000..cf08bac --- /dev/null +++ b/self-extractors/root/proprietary/BoardConfigVendor.mk @@ -0,0 +1,15 @@ +# 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 vendor/google_devices/tangorpro/BoardConfigPartial.mk diff --git a/self-extractors/root/proprietary/device-vendor.mk b/self-extractors/root/proprietary/device-vendor.mk new file mode 100644 index 0000000..07fbc8d --- /dev/null +++ b/self-extractors/root/proprietary/device-vendor.mk @@ -0,0 +1,15 @@ +# 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. + +$(call inherit-product-if-exists, vendor/google_devices/tangorpro/device-partial.mk)