zumapro: Remove factory configuration
Change-Id: Ib46639b684db8f0bbd42be9ffd518e62277d63f0
This commit is contained in:
parent
564635b019
commit
1c41b2194a
18 changed files with 1 additions and 407 deletions
|
@ -1166,7 +1166,7 @@ include hardware/google/pixel/HardwareInfo/HardwareInfo.mk
|
||||||
|
|
||||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||||
# RIL extension service
|
# RIL extension service
|
||||||
ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT)))
|
ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||||
include device/google/gs-common/pixel_ril/ril.mk
|
include device/google/gs-common/pixel_ril/ril.mk
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
package {
|
|
||||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
||||||
}
|
|
||||||
sh_binary {
|
|
||||||
name: "factory_post_boot",
|
|
||||||
src: "factory_post_boot.sh",
|
|
||||||
vendor: true,
|
|
||||||
sub_dir: "factory",
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/vendor/bin/sh
|
|
||||||
|
|
||||||
# Add adbd to nnapi vendor cgroup. (b/222226268)
|
|
||||||
echo `pidof adbd` > /proc/vendor_sched/groups/nnapi/set_task_group
|
|
|
@ -1,15 +0,0 @@
|
||||||
package {
|
|
||||||
// See: http://go/android-license-faq
|
|
||||||
// A large-scale-change added 'default_applicable_licenses' to import
|
|
||||||
// all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license"
|
|
||||||
// to get the below license kinds:
|
|
||||||
// SPDX-license-identifier-Apache-2.0
|
|
||||||
default_applicable_licenses: [
|
|
||||||
"//device/google/zumapro:device_google_zumapro_license",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
runtime_resource_overlay {
|
|
||||||
name: "FactoryOverlayFrameworkRes",
|
|
||||||
product_specific: true,
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2020 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.
|
|
||||||
-->
|
|
||||||
<!-- Pixel specific factory overlays -->
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.android.frameworkres.overlay.factory">
|
|
||||||
<application android:hasCode="false" />
|
|
||||||
<overlay
|
|
||||||
android:targetPackage="android"
|
|
||||||
android:isStatic="true"
|
|
||||||
android:priority="2"/>
|
|
||||||
</manifest>
|
|
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
** 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.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
|
||||||
|
|
||||||
<!-- Type of the tap sensor. Empty if tap is not supported. False to disable the tap sensor -->
|
|
||||||
<string name="config_dozeTapSensorType" translatable="false">false</string>
|
|
||||||
|
|
||||||
<!-- Control whether the pickup gesture is enabled by default. This value will be used
|
|
||||||
during initialization when the setting is still null. -->
|
|
||||||
<bool name="config_dozePickupGestureEnabled">false</bool>
|
|
||||||
|
|
||||||
<!-- Is the lock-screen disabled for new users by default -->
|
|
||||||
<bool name="config_disableLockscreenByDefault">true</bool>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
package {
|
|
||||||
// See: http://go/android-license-faq
|
|
||||||
// A large-scale-change added 'default_applicable_licenses' to import
|
|
||||||
// all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license"
|
|
||||||
// to get the below license kinds:
|
|
||||||
// SPDX-license-identifier-Apache-2.0
|
|
||||||
default_applicable_licenses: [
|
|
||||||
"//device/google/zumapro:device_google_zumapro_license",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
runtime_resource_overlay {
|
|
||||||
name: "FactoryOverlayLauncher3",
|
|
||||||
product_specific: true,
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2020 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.
|
|
||||||
-->
|
|
||||||
<!-- Pixel specific factory overlays -->
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.android.launcher3.overlay.factory">
|
|
||||||
<application android:hasCode="false" />
|
|
||||||
<overlay
|
|
||||||
android:targetPackage="com.android.launcher3"
|
|
||||||
android:targetName="favorites"
|
|
||||||
android:isStatic="true"
|
|
||||||
android:priority="2"/>
|
|
||||||
</manifest>
|
|
|
@ -1,41 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2009 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">
|
|
||||||
|
|
||||||
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
|
|
||||||
<!-- Dialer, Capacity, ELabel, Language, Barcode -->
|
|
||||||
<resolve
|
|
||||||
launcher:container="-101"
|
|
||||||
launcher:screen="0"
|
|
||||||
launcher:x="0"
|
|
||||||
launcher:y="0" >
|
|
||||||
<favorite launcher:uri="#Intent;action=android.intent.action.DIAL;end" />
|
|
||||||
<favorite launcher:uri="tel:123" />
|
|
||||||
<favorite launcher:uri="#Intent;action=android.intent.action.CALL_BUTTON;end" />
|
|
||||||
</resolve>
|
|
||||||
|
|
||||||
<resolve
|
|
||||||
launcher:container="-101"
|
|
||||||
launcher:screen="4"
|
|
||||||
launcher:x="4"
|
|
||||||
launcher:y="0" >
|
|
||||||
<favorite
|
|
||||||
launcher:packageName="com.google_cte.barcodescanner"
|
|
||||||
launcher:className="com.google_cte.barcodescanner.MainActivity" />
|
|
||||||
</resolve>
|
|
||||||
|
|
||||||
</favorites>
|
|
|
@ -1,15 +0,0 @@
|
||||||
package {
|
|
||||||
// See: http://go/android-license-faq
|
|
||||||
// A large-scale-change added 'default_applicable_licenses' to import
|
|
||||||
// all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license"
|
|
||||||
// to get the below license kinds:
|
|
||||||
// SPDX-license-identifier-Apache-2.0
|
|
||||||
default_applicable_licenses: [
|
|
||||||
"//device/google/zumapro:device_google_zumapro_license",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
runtime_resource_overlay {
|
|
||||||
name: "FactoryOverlaySettings",
|
|
||||||
product_specific: true,
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2020 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.
|
|
||||||
-->
|
|
||||||
<!-- Pixel specific factory overlays -->
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.android.providers.settings.overlay.factory">
|
|
||||||
<application android:hasCode="false" />
|
|
||||||
<overlay
|
|
||||||
android:targetPackage="com.android.providers.settings"
|
|
||||||
android:targetName="resources"
|
|
||||||
android:isStatic="true"
|
|
||||||
android:priority="2"/>
|
|
||||||
</manifest>
|
|
|
@ -1,26 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2009, 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.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<integer name="def_lockscreen_sounds_enabled">0</integer>
|
|
||||||
<bool name="def_lockscreen_disabled">true</bool>
|
|
||||||
<bool name="def_dtmf_tones_enabled">false</bool>
|
|
||||||
<bool name="def_sound_effects_enabled">false</bool>
|
|
||||||
<bool name="def_charging_sounds_enabled">false</bool>
|
|
||||||
<string name="def_immersive_mode_confirmations" translatable="false">confirmed</string>
|
|
||||||
</resources>
|
|
|
@ -1,99 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright 2020 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, device/google/zumapro/aosp_common.mk)
|
|
||||||
$(call inherit-product-if-exists, vendor/google_devices/zumapro/factory/pixel/device-factory.mk)
|
|
||||||
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += service.adb.root=1 \
|
|
||||||
ro.vendor.factory=1
|
|
||||||
|
|
||||||
# Factory Libraries of Audio
|
|
||||||
PRODUCT_PACKAGES += audioroute libaudioroutelite
|
|
||||||
|
|
||||||
# Enable fatp by default for factory builds
|
|
||||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
|
||||||
persist.vendor.camera.fatp.enable=1
|
|
||||||
|
|
||||||
# Disable camera related features for factory builds
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
|
||||||
persist.vendor.camera.af.ignore_gyro=1 \
|
|
||||||
persist.vendor.camera.multicam.framesync=0 \
|
|
||||||
vendor.camera.debug.bypass_face_ssd_processor=1 \
|
|
||||||
vendor.camera.debug.csi_ebuf_enable=0 \
|
|
||||||
vendor.camera.debug.enable_face_detection=0 \
|
|
||||||
vendor.camera.debug.force_dpm_on=0 \
|
|
||||||
vendor.camera.debug.force_eis_on=0 \
|
|
||||||
vendor.camera.debug.force_eaf_on=0 \
|
|
||||||
vendor.camera.debug.force_mesh_warp_on=0 \
|
|
||||||
vendor.camera.debug.force_rectiface_node_on=0 \
|
|
||||||
vendor.camera.debug.force_steadiface_on=0 \
|
|
||||||
vendor.camera.debug.force_tnr_on=0 \
|
|
||||||
vendor.camera.debug.force_segmentation_node_on=0 \
|
|
||||||
vendor.camera.debug.enable_saliency=0 \
|
|
||||||
vendor.camera.debug.force_local_tone_mapping_on=0 \
|
|
||||||
vendor.camera.debug.local_tone_mapping_controller_v1.mode=0 \
|
|
||||||
vendor.camera.debug.enable_scene_detection=0 \
|
|
||||||
vendor.camera.debug.enable_sw_denoise=0 \
|
|
||||||
vendor.camera.debug.enable_video_sw_denoise=0 \
|
|
||||||
vendor.camera.debug.force_pd_node_on=0
|
|
||||||
|
|
||||||
# Disable ScreenDecorations for factory builds
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
|
||||||
debug.disable_screen_decorations=true
|
|
||||||
|
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
|
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200
|
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000
|
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true
|
|
||||||
|
|
||||||
# Disable dimming in factory
|
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.dimming.usage=2
|
|
||||||
|
|
||||||
|
|
||||||
# factory should always has SELinux permissive
|
|
||||||
BOARD_BOOTCONFIG += androidboot.selinux=permissive
|
|
||||||
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
|
|
||||||
|
|
||||||
# Disable DebugFS restrictions in factory builds
|
|
||||||
PRODUCT_SET_DEBUGFS_RESTRICTIONS := false
|
|
||||||
|
|
||||||
# Disable Bluetooth as default in factory build
|
|
||||||
DEVICE_PACKAGE_OVERLAYS += device/google/zumapro/overlay-factory
|
|
||||||
|
|
||||||
PRODUCT_COPY_FILES += \
|
|
||||||
device/google/zumapro/conf/init.factory.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.factory.rc
|
|
||||||
|
|
||||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/factory_boost
|
|
||||||
|
|
||||||
# Add factory-friendly changes
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
FactoryOverlaySettings \
|
|
||||||
FactoryOverlayLauncher3 \
|
|
||||||
FactoryOverlayFrameworkRes \
|
|
||||||
factory_post_boot
|
|
||||||
|
|
||||||
# To prevent rebooting due to crashing services
|
|
||||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
|
||||||
init.svc_debug.no_fatal.zygote=true \
|
|
||||||
persist.device_config.configuration.disable_rescue_party=true
|
|
||||||
|
|
||||||
# PixelLogger for RF testing
|
|
||||||
PRODUCT_PACKAGES_DEBUG += \
|
|
||||||
PixelLogger \
|
|
||||||
|
|
||||||
# ModemDiagnosticSystem for desense tool
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
ModemDiagnosticSystem \
|
|
|
@ -1,23 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2009, 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.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<!-- Don't enable BT until user wants it -->
|
|
||||||
<bool name="def_bluetooth_on">false</bool>
|
|
||||||
</resources>
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
<resources>
|
|
||||||
<string-array name="logger_entries">
|
|
||||||
<item>shannondm</item>
|
|
||||||
<item>cnss_diag</item>
|
|
||||||
<item>brcm_gps</item>
|
|
||||||
</string-array>
|
|
||||||
</resources>
|
|
|
@ -1,10 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="config_logger_default_value" translatable="false">shannondm</string>
|
|
||||||
<string name="config_cfg_default_value" translatable="false">Built-in Mask #1</string>
|
|
||||||
|
|
||||||
<!-- default config file for cnss_diag logger -->
|
|
||||||
<string name="config_cfg_default_value_cnss_diag" translatable="false">cnss_diag.conf</string>
|
|
||||||
<!-- config file to enable brcm gps logger -->
|
|
||||||
<bool name="config_brcm_gps_enabled" translatable="false">true</bool>
|
|
||||||
</resources>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string-array name="config_message_no_message">
|
|
||||||
<item></item>
|
|
||||||
</string-array>
|
|
||||||
<string-array name="config_message_audio_warning">
|
|
||||||
<item>This will collect audio from your voice calls. Would you like to proceed?</item>
|
|
||||||
</string-array>
|
|
||||||
<string-array name="config_message_possible_audio_warning">
|
|
||||||
<item>This may collect audio from your voice calls. Would you like to proceed?</item>
|
|
||||||
<item>Pixel_Default.nprf</item>
|
|
||||||
<item>Built-in Mask #0</item>
|
|
||||||
<item>Built-in Mask #1</item>
|
|
||||||
<item>Built-in Mask #2</item>
|
|
||||||
<item>Built-in Mask #3</item>
|
|
||||||
</string-array>
|
|
||||||
<string name="config_privacy_warning_title">Privacy Warning</string>
|
|
||||||
<string name="default_config_selection_message">You are loading a user defined logging config. This may collect audio from your voice calls. Would you like to proceed?</string>
|
|
||||||
</resources>
|
|
Loading…
Add table
Add a link
Reference in a new issue