diff --git a/build/envsetup.sh b/build/envsetup.sh
index f1fafc58..73db9558 100644
--- a/build/envsetup.sh
+++ b/build/envsetup.sh
@@ -837,7 +837,7 @@ function dopush()
CHKPERM="/data/local/tmp/chkfileperm.sh"
(
cat <<'EOF'
-#!/system/xbin/sh
+#!/system/bin/sh
FILE=$@
if [ -e $FILE ]; then
ls -l $FILE | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}' | cut -d ' ' -f1
@@ -883,7 +883,7 @@ EOF
fi
adb shell restorecon "$TARGET"
;;
- /system/priv-app/SystemUI/SystemUI.apk|/system/framework/*)
+ */SystemUI.apk|*/framework/*)
# Only need to stop services once
if ! $stop_n_start; then
adb shell stop
diff --git a/build/soong/Android.bp b/build/soong/Android.bp
index ba9a6965..480aab23 100644
--- a/build/soong/Android.bp
+++ b/build/soong/Android.bp
@@ -174,6 +174,23 @@ ignores_ftp_pptp_conntrack_failure_defaults {
},
}
+soong_config_module_type {
+ name: "needs_camera_boottime",
+ module_type: "cc_defaults",
+ config_namespace: "lineageGlobalVars",
+ bool_variables: ["needs_camera_boottime"],
+ properties: ["cppflags"],
+}
+
+needs_camera_boottime {
+ name: "needs_camera_boottime_defaults",
+ soong_config_variables: {
+ needs_camera_boottime: {
+ cppflags: ["-DTARGET_CAMERA_BOOTTIME_TIMESTAMP"],
+ },
+ },
+}
+
soong_config_module_type {
name: "needs_netd_direct_connect_rule",
module_type: "cc_defaults",
diff --git a/build/target/product/AndroidProducts.mk b/build/target/product/AndroidProducts.mk
index 636738a2..a53a22d2 100644
--- a/build/target/product/AndroidProducts.mk
+++ b/build/target/product/AndroidProducts.mk
@@ -26,7 +26,9 @@ PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_tv_arm.mk \
$(LOCAL_DIR)/lineage_tv_arm64.mk \
$(LOCAL_DIR)/lineage_tv_x86.mk \
- $(LOCAL_DIR)/lineage_tv_x86_64.mk
+ $(LOCAL_DIR)/lineage_tv_x86_64.mk \
+ $(LOCAL_DIR)/lineage_car_arm64.mk \
+ $(LOCAL_DIR)/lineage_car_x86_64.mk
COMMON_LUNCH_CHOICES := \
lineage_arm-userdebug \
@@ -40,4 +42,6 @@ COMMON_LUNCH_CHOICES := \
lineage_tv_arm-userdebug \
lineage_tv_arm64-userdebug \
lineage_tv_x86-userdebug \
- lineage_tv_x86_64-userdebug
+ lineage_tv_x86_64-userdebug \
+ lineage_car_arm64-userdebug \
+ lineage_car_x86_64-userdebug
diff --git a/build/target/product/lineage_car_arm64.mk b/build/target/product/lineage_car_arm64.mk
new file mode 100644
index 00000000..aa386c7c
--- /dev/null
+++ b/build/target/product/lineage_car_arm64.mk
@@ -0,0 +1,21 @@
+# Copyright (C) 2018-2020 The LineageOS 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/lineage/build/target/product/lineage_generic_car_target.mk
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_arm64.mk)
+
+TARGET_NO_KERNEL_OVERRIDE := true
+
+PRODUCT_NAME := lineage_car_arm64
diff --git a/build/target/product/lineage_car_x86_64.mk b/build/target/product/lineage_car_x86_64.mk
new file mode 100644
index 00000000..821a9204
--- /dev/null
+++ b/build/target/product/lineage_car_x86_64.mk
@@ -0,0 +1,19 @@
+# Copyright (C) 2018-2020 The LineageOS 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/lineage/build/target/product/lineage_generic_car_target.mk
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_x86_64.mk)
+
+PRODUCT_NAME := lineage_car_x86_64
diff --git a/build/target/product/lineage_generic_car_target.mk b/build/target/product/lineage_generic_car_target.mk
new file mode 100644
index 00000000..60bb2da7
--- /dev/null
+++ b/build/target/product/lineage_generic_car_target.mk
@@ -0,0 +1,22 @@
+# Copyright (C) 2019-2020 The LineageOS 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, vendor/lineage/config/common_car.mk)
+$(call inherit-product, device/generic/car/emulator/aosp_car_emulator.mk)
+
+EMULATOR_VENDOR_NO_SENSORS := true
+EMULATOR_VENDOR_NO_SOUND := true
+
+# Allow building otatools
+TARGET_FORCE_OTA_PACKAGE := true
diff --git a/build/tasks/bacon.mk b/build/tasks/bacon.mk
index 2932f79d..9ec77503 100644
--- a/build/tasks/bacon.mk
+++ b/build/tasks/bacon.mk
@@ -18,12 +18,12 @@
LINEAGE_TARGET_PACKAGE := $(PRODUCT_OUT)/$(LINEAGE_VERSION).zip
-MD5 := prebuilts/build-tools/path/$(HOST_PREBUILT_TAG)/md5sum
+SHA256 := prebuilts/build-tools/path/$(HOST_PREBUILT_TAG)/sha256sum
.PHONY: bacon
bacon: $(INTERNAL_OTA_PACKAGE_TARGET)
$(hide) ln -f $(INTERNAL_OTA_PACKAGE_TARGET) $(LINEAGE_TARGET_PACKAGE)
- $(hide) $(MD5) $(LINEAGE_TARGET_PACKAGE) | sed "s|$(PRODUCT_OUT)/||" > $(LINEAGE_TARGET_PACKAGE).md5sum
+ $(hide) $(SHA256) $(LINEAGE_TARGET_PACKAGE) | sed "s|$(PRODUCT_OUT)/||" > $(LINEAGE_TARGET_PACKAGE).sha256sum
@echo "Package Complete: $(LINEAGE_TARGET_PACKAGE)" >&2
@echo "Build is getting done..." >&2
$(hide) bash vendor/lineage/build/tools/cipher.sh
diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
index 4cd44408..45ec5e98 100644
--- a/build/tasks/kernel.mk
+++ b/build/tasks/kernel.mk
@@ -1,5 +1,5 @@
# Copyright (C) 2012 The CyanogenMod Project
-# (C) 2017-2020 The LineageOS Project
+# (C) 2017-2021 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -55,12 +55,17 @@
# aarch64-linux-gnu- for arm64
# x86_64-linux-gnu- for x86
#
+# KERNEL_LTO = Optional, force LTO to none / thin / full
+#
# NEED_KERNEL_MODULE_ROOT = Optional, if true, install kernel
# modules in root instead of vendor
# NEED_KERNEL_MODULE_SYSTEM = Optional, if true, install kernel
# modules in system instead of vendor
# NEED_KERNEL_MODULE_VENDOR_OVERLAY = Optional, if true, install kernel
# modules in vendor_overlay instead of vendor
+#
+# TARGET_FORCE_PREBUILT_KERNEL = Optional, use TARGET_PREBUILT_KERNEL even if
+# kernel sources are present
ifneq ($(TARGET_NO_KERNEL),true)
ifneq ($(TARGET_NO_KERNEL_OVERRIDE),true)
@@ -69,16 +74,20 @@ ifneq ($(TARGET_NO_KERNEL_OVERRIDE),true)
KERNEL_SRC := $(TARGET_KERNEL_SOURCE)
# kernel configuration - mandatory
KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG)
+RECOVERY_DEFCONFIG := $(TARGET_KERNEL_RECOVERY_CONFIG)
VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG)
SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG)
## Internal variables
DTC := $(HOST_OUT_EXECUTABLES)/dtc
KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
+RECOVERY_KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/RECOVERY_KERNEL_OBJ
DTBO_OUT := $(TARGET_OUT_INTERMEDIATES)/DTBO_OBJ
DTB_OUT := $(TARGET_OUT_INTERMEDIATES)/DTB_OBJ
KERNEL_CONFIG := $(KERNEL_OUT)/.config
KERNEL_RELEASE := $(KERNEL_OUT)/include/config/kernel.release
+RECOVERY_KERNEL_CONFIG := $(RECOVERY_KERNEL_OUT)/.config
+RECOVERY_KERNEL_RELEASE := $(RECOVERY_KERNEL_OUT)/include/config/kernel.release
ifeq ($(KERNEL_ARCH),x86_64)
KERNEL_DEFCONFIG_ARCH := x86
@@ -87,6 +96,7 @@ KERNEL_DEFCONFIG_ARCH := $(KERNEL_ARCH)
endif
KERNEL_DEFCONFIG_DIR := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs
KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(KERNEL_DEFCONFIG)
+RECOVERY_KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(RECOVERY_DEFCONFIG)
ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),)
KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG)
@@ -106,6 +116,8 @@ ifeq ($(TARGET_PREBUILT_KERNEL),)
endif
TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME)
+TARGET_PREBUILT_INT_RECOVERY_KERNEL := $(RECOVERY_KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME)
+
ifeq "$(wildcard $(KERNEL_SRC) )" ""
ifneq ($(TARGET_PREBUILT_KERNEL),)
HAS_PREBUILT_KERNEL := true
@@ -154,16 +166,22 @@ else
$(error "NO KERNEL CONFIG")
else
ifneq ($(TARGET_FORCE_PREBUILT_KERNEL),)
- $(warning **********************************************************)
- $(warning * Kernel source found and configuration was defined *)
- $(warning * but prebuilt kernel is being enforced. *)
- $(warning * While there may be a good reason for this, *)
- $(warning * THIS IS NOT ADVISED. *)
- $(warning * Please configure your device to build the kernel *)
- $(warning * from source by unsetting TARGET_FORCE_PREBUILT_KERNEL *)
- $(warning **********************************************************)
- FULL_KERNEL_BUILD := false
- KERNEL_BIN := $(TARGET_PREBUILT_KERNEL)
+ ifneq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(LINEAGE_BUILDTYPE)),)
+ $(error "PREBUILT KERNEL IS NOT ALLOWED ON OFFICIAL BUILDS!")
+ else
+ $(warning **********************************************************)
+ $(warning * Kernel source found and configuration was defined, *)
+ $(warning * but prebuilt kernel is being forced. *)
+ $(warning * While this is likely intentional, *)
+ $(warning * it is NOT SUPPORTED WHATSOEVER. *)
+ $(warning * Generated kernel headers may not align with *)
+ $(warning * the ABI of kernel you're including. *)
+ $(warning * Please unset TARGET_FORCE_PREBUILT_KERNEL *)
+ $(warning * to build the kernel from source. *)
+ $(warning **********************************************************)
+ FULL_KERNEL_BUILD := false
+ KERNEL_BIN := $(TARGET_PREBUILT_KERNEL)
+ endif
else
FULL_KERNEL_BUILD := true
KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL)
@@ -171,33 +189,45 @@ else
endif
endif
-ifeq ($(FULL_KERNEL_BUILD),true)
-
-ifeq ($(NEED_KERNEL_MODULE_ROOT),true)
-KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT)
-KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery)
-KERNEL_MODULE_MOUNTPOINT :=
-else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true)
-KERNEL_MODULES_OUT := $(TARGET_OUT)
-KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_system)
-KERNEL_MODULE_MOUNTPOINT := system
-$(INSTALLED_SYSTEMIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
-else ifeq ($(NEED_KERNEL_MODULE_VENDOR_OVERLAY),true)
-KERNEL_MODULES_OUT := $(TARGET_OUT_PRODUCT)/vendor_overlay/$(PRODUCT_TARGET_VNDK_VERSION)
-KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_product)
-KERNEL_MODULE_MOUNTPOINT := vendor
-$(INSTALLED_PRODUCTIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+ifneq ($(TARGET_KERNEL_RECOVERY_CONFIG),)
+ ifeq "$(wildcard $(KERNEL_SRC) )" ""
+ ifeq ($(TARGET_PREBUILT_RECOVERY_KERNEL),)
+ $(warning ***************************************************************)
+ $(warning * *)
+ $(warning * No recovery kernel source found, and no fallback prebuilt *)
+ $(warning * defined. Please make sure your device is properly *)
+ $(warning * configured to download the kernel repository to $(KERNEL_SRC))
+ $(warning * or remove TARGET_KERNEL_RECOVERY_CONFIG from BoardConfig.mk *)
+ $(warning * *)
+ $(warning * Or, define the TARGET_PREBUILT_RECOVERY_KERNEL *)
+ $(warning * variable with the path to the prebuilt recovery kernel image*)
+ $(warning * in your BoardConfig.mk file *)
+ $(warning * *)
+ $(warning ***************************************************************)
+ $(error "NO RECOVERY KERNEL SOURCE")
+ endif
+ endif
+ ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),)
+ $(warning ********************************************************)
+ $(warning * TARGET_KERNEL_RECOVERY_CONFIG set but device uses *)
+ $(warning * RECOVERY_AS_BOOT, which uses boot kernel as recovery *)
+ $(warning * kernel, as such it's not possible to use different *)
+ $(warning * configs *)
+ $(warning ********************************************************)
+ $(error "INVALID CONFIGURATION")
+ else
+ FULL_RECOVERY_KERNEL_BUILD := true
+ RECOVERY_KERNEL_COPY := true
+ RECOVERY_BIN := $(TARGET_PREBUILT_INT_RECOVERY_KERNEL)
+ endif
else
-KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR)
-KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor)
-KERNEL_MODULE_MOUNTPOINT := vendor
-$(INSTALLED_VENDORIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+ ifneq ($(TARGET_PREBUILT_RECOVERY_KERNEL),)
+ RECOVERY_BIN := $(TARGET_PREBUILT_RECOVERY_KERNEL)
+ RECOVERY_KERNEL_COPY := true
+ endif
endif
-MODULES_INTERMEDIATES := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,kernel_modules)
-
-KERNEL_VENDOR_RAMDISK_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor_ramdisk)
-$(INTERNAL_VENDOR_RAMDISK_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+ifeq ($(or $(FULL_RECOVERY_KERNEL_BUILD), $(FULL_KERNEL_BUILD)),true)
# Add host bin out dir to path
PATH_OVERRIDE := PATH=$(KERNEL_BUILD_OUT_PREFIX)$(HOST_OUT_EXECUTABLES):$$PATH
ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
@@ -242,12 +272,62 @@ define internal-make-kernel-target
$(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_BUILD_OUT_PREFIX)$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_LD) $(2)
endef
+# Generate kernel .config from a given defconfig
+# $(1): Output path (The value passed to O=)
+# $(2): The defconfig to process (just the filename, no need for full path to file)
+define make-kernel-config
+ $(call internal-make-kernel-target,$(1),VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(2))
+ $(hide) if [ "$(KERNEL_LTO)" = "none" ]; then \
+ $(KERNEL_SRC)/scripts/config --file $(1)/.config \
+ -d LTO_CLANG \
+ -e LTO_NONE \
+ -d LTO_CLANG_THIN \
+ -d LTO_CLANG_FULL \
+ -d THINLTO; \
+ $(call make-kernel-target,olddefconfig); \
+ elif [ "$(KERNEL_LTO)" = "thin" ]; then \
+ $(KERNEL_SRC)/scripts/config --file $(1)/.config \
+ -e LTO_CLANG \
+ -d LTO_NONE \
+ -e LTO_CLANG_THIN \
+ -d LTO_CLANG_FULL \
+ -e THINLTO; \
+ $(call make-kernel-target,olddefconfig); \
+ elif [ "$(KERNEL_LTO)" = "full" ]; then \
+ $(KERNEL_SRC)/scripts/config --file $(1)/.config \
+ -e LTO_CLANG \
+ -d LTO_NONE \
+ -d LTO_CLANG_THIN \
+ -e LTO_CLANG_FULL \
+ -d THINLTO; \
+ $(call make-kernel-target,olddefconfig); \
+ fi
+ $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
+ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
+ echo $(KERNEL_CONFIG_OVERRIDE) >> $(1)/.config; \
+ $(call make-kernel-target,oldconfig); \
+ fi
+ # Create defconfig build artifact
+ $(call internal-make-kernel-target,$(1),savedefconfig)
+ $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
+ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
+ $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(1) $(1)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \
+ $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_BUILD_OUT_PREFIX)$(1)/.config alldefconfig); \
+ fi
+endef
+
# Make a kernel target
# $(1): The kernel target to build (eg. defconfig, modules, modules_install)
define make-kernel-target
$(call internal-make-kernel-target,$(KERNEL_OUT),$(1))
endef
+# Make a recovery kernel target
+# $(1): The kernel target to build (eg. defconfig, modules, modules_install)
+define make-recovery-kernel-target
+$(call internal-make-kernel-target,$(RECOVERY_KERNEL_OUT),$(1))
+endef
+
# Make a DTBO target
# $(1): The DTBO target to build (eg. dtbo.img, defconfig)
define make-dtbo-target
@@ -282,6 +362,35 @@ define build-image-kernel-modules-lineage
done
endef
+endif # FULL_RECOVERY_KERNEL_BUILD or FULL_KERNEL_BUILD
+
+ifeq ($(FULL_KERNEL_BUILD),true)
+
+ifeq ($(NEED_KERNEL_MODULE_ROOT),true)
+KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT)
+KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery)
+KERNEL_MODULE_MOUNTPOINT :=
+else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true)
+KERNEL_MODULES_OUT := $(TARGET_OUT)
+KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_system)
+KERNEL_MODULE_MOUNTPOINT := system
+$(INSTALLED_SYSTEMIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+else ifeq ($(NEED_KERNEL_MODULE_VENDOR_OVERLAY),true)
+KERNEL_MODULES_OUT := $(TARGET_OUT_PRODUCT)/vendor_overlay/$(PRODUCT_TARGET_VNDK_VERSION)
+KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_product)
+KERNEL_MODULE_MOUNTPOINT := vendor
+$(INSTALLED_PRODUCTIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+else
+KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR)
+KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor)
+KERNEL_MODULE_MOUNTPOINT := vendor
+$(INSTALLED_VENDORIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+endif
+MODULES_INTERMEDIATES := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,kernel_modules)
+
+KERNEL_VENDOR_RAMDISK_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor_ramdisk)
+$(INTERNAL_VENDOR_RAMDISK_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
+
$(KERNEL_OUT):
mkdir -p $(KERNEL_OUT)
@@ -290,19 +399,7 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): $(KERNEL_OUT)
$(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
@echo "Building Kernel Config"
- $(call make-kernel-target,VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG))
- $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
- echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
- echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
- $(call make-kernel-target,oldconfig); \
- fi
- # Create defconfig build artifact
- $(call make-kernel-target,savedefconfig)
- $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
- echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
- $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \
- $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_BUILD_OUT_PREFIX)$(KERNEL_OUT)/.config alldefconfig); \
- fi
+ $(call make-kernel-config,$(KERNEL_OUT),$(KERNEL_DEFCONFIG))
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_CONFIG) $(DEPMOD) $(DTC)
@echo "Building Kernel Image ($(BOARD_KERNEL_IMAGE_NAME))"
@@ -387,6 +484,22 @@ endif # BOARD_INCLUDE_DTB_IN_BOOTIMG
endif # FULL_KERNEL_BUILD
+ifeq ($(FULL_RECOVERY_KERNEL_BUILD),true)
+
+$(RECOVERY_KERNEL_OUT):
+ mkdir -p $(RECOVERY_KERNEL_OUT)
+
+$(RECOVERY_KERNEL_CONFIG): $(RECOVERY_KERNEL_DEFCONFIG_SRC)
+ @echo "Building Recovery Kernel Config"
+ $(call make-kernel-config,$(RECOVERY_KERNEL_OUT),$(RECOVERY_DEFCONFIG))
+
+$(TARGET_PREBUILT_INT_RECOVERY_KERNEL): $(RECOVERY_KERNEL_CONFIG) $(DEPMOD) $(DTC)
+ @echo "Building Recovery Kernel Image ($(BOARD_KERNEL_IMAGE_NAME))"
+ $(call make-recovery-kernel-target,$(BOARD_KERNEL_IMAGE_NAME))
+
+
+endif
+
## Install it
ifeq ($(NEEDS_KERNEL_COPY),true)
@@ -398,6 +511,18 @@ $(file) : $(KERNEL_BIN) | $(ACP)
ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET)
endif
+ifeq ($(RECOVERY_KERNEL_COPY),true)
+file := $(INSTALLED_RECOVERY_KERNEL_TARGET)
+ALL_PREBUILT += $(file)
+$(file) : $(RECOVERY_BIN) | $(ACP)
+ $(transform-prebuilt-to-target)
+
+ALL_PREBUILT += $(INSTALLED_RECOVERY_KERNEL_TARGET)
+endif
+
+.PHONY: recovery-kernel
+recovery-kernel: $(INSTALLED_RECOVERY_KERNEL_TARGET)
+
.PHONY: kernel
kernel: $(INSTALLED_KERNEL_TARGET)
diff --git a/build/tools/roomservice.py b/build/tools/roomservice.py
index 55ee658f..83471c30 100755
--- a/build/tools/roomservice.py
+++ b/build/tools/roomservice.py
@@ -1,8 +1,6 @@
#!/usr/bin/env python
# Copyright (C) 2012-2013, The CyanogenMod Project
-# Copyright (C) 2012-2015, SlimRoms Project
-# Copyright (C) 2016-2017, AOSiP
-# Copyright (C) 2020, CipherOS Project
+# (C) 2017-2018,2020-2021, The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +17,7 @@
from __future__ import print_function
import base64
+import glob
import json
import netrc
import os
@@ -56,6 +55,24 @@
if not os.path.exists(local_manifests):
os.makedirs(local_manifests)
+if len(sys.argv) > 2:
+ depsonly = sys.argv[2]
+else:
+ depsonly = None
+
+if not depsonly:
+ githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:LineageOS+in:name+fork:true" % device)
+ add_auth(githubreq)
+ try:
+ result = json.loads(urllib.request.urlopen(githubreq).read().decode())
+ except urllib.error.URLError:
+ print("Failed to search GitHub")
+ sys.exit(1)
+ except ValueError:
+ print("Failed to parse return data from GitHub")
+ sys.exit(1)
+ for res in result.get('items', []):
+ repositories.append(res)
def debug(*args, **kwargs):
if DEBUG:
@@ -116,6 +133,23 @@ def load_manifest(manifest):
man = ElementTree.Element("manifest")
return man
+def get_default_revision():
+ m = ElementTree.parse(get_manifest_path())
+ d = m.findall('default')[0]
+ r = d.get('revision')
+ return r.replace('refs/heads/', '').replace('refs/tags/', '')
+
+def get_from_manifest(devicename):
+ for path in glob.glob(".repo/local_manifests/*.xml"):
+ try:
+ lm = ElementTree.parse(path)
+ lm = lm.getroot()
+ except:
+ lm = ElementTree.Element("manifest")
+
+ for localpath in lm.findall("project"):
+ if re.search("android_device_.*_%s$" % device, localpath.get("name")):
+ return localpath.get("path")
def get_default(manifest=None):
m = manifest or load_manifest(get_manifest_path())
@@ -160,6 +194,39 @@ def get_from_manifest(device_name):
return lp
return None
+def is_in_manifest(projectpath):
+ for path in glob.glob(".repo/local_manifests/*.xml"):
+ try:
+ lm = ElementTree.parse(path)
+ lm = lm.getroot()
+ except:
+ lm = ElementTree.Element("manifest")
+
+ for localpath in lm.findall("project"):
+ if localpath.get("path") == projectpath:
+ return True
+
+ # Search in main manifest, too
+ try:
+ lm = ElementTree.parse(get_manifest_path())
+ lm = lm.getroot()
+ except:
+ lm = ElementTree.Element("manifest")
+
+ for localpath in lm.findall("project"):
+ if localpath.get("path") == projectpath:
+ return True
+
+ # ... and don't forget the lineage snippet
+ try:
+ lm = ElementTree.parse(".repo/manifests/snippets/lineage.xml")
+ lm = lm.getroot()
+ except:
+ lm = ElementTree.Element("manifest")
+
+ for localpath in lm.findall("project"):
+ if localpath.get("path") == projectpath:
+ return True
def is_in_manifest(project_path):
for man in (custom_local_manifest, get_manifest_path()):
diff --git a/charger/Android.mk b/charger/Android.mk
new file mode 100644
index 00000000..2fce7c43
--- /dev/null
+++ b/charger/Android.mk
@@ -0,0 +1,58 @@
+#
+# Copyright (C) 2021 The LineageOS 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)
+
+# Set lineage_charger_density to the density bucket of the device.
+lineage_charger_density := mdpi
+ifneq (,$(TARGET_SCREEN_DENSITY))
+lineage_charger_density := $(strip \
+ $(or $(if $(filter $(shell echo $$(($(TARGET_SCREEN_DENSITY) >= 560))),1),xxxhdpi),\
+ $(if $(filter $(shell echo $$(($(TARGET_SCREEN_DENSITY) >= 400))),1),xxhdpi),\
+ $(if $(filter $(shell echo $$(($(TARGET_SCREEN_DENSITY) >= 280))),1),xhdpi),\
+ $(if $(filter $(shell echo $$(($(TARGET_SCREEN_DENSITY) >= 200))),1),hdpi,mdpi)))
+else ifneq (,$(filter mdpi hdpi xhdpi xxhdpi xxxhdpi,$(PRODUCT_AAPT_PREF_CONFIG)))
+# If PRODUCT_AAPT_PREF_CONFIG includes a dpi bucket, then use that value.
+lineage_charger_density := $(PRODUCT_AAPT_PREF_CONFIG)
+endif
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := lineage_charger_battery_scale
+LOCAL_MODULE_STEM := battery_scale.png
+LOCAL_SRC_FILES := $(lineage_charger_density)/battery_scale.png
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/res/images/charger
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := lineage_charger_battery_fail
+LOCAL_MODULE_STEM := battery_fail.png
+LOCAL_SRC_FILES := $(lineage_charger_density)/battery_fail.png
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/res/images/charger
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := lineage_charger_animation
+LOCAL_MODULE_STEM := animation.txt
+LOCAL_SRC_FILES := animation.txt
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/res/values/charger
+LOCAL_REQUIRED_MODULES := lineage_charger_battery_scale lineage_charger_battery_fail
+include $(BUILD_PREBUILT)
diff --git a/charger/animation.txt b/charger/animation.txt
new file mode 100644
index 00000000..f7951f9a
--- /dev/null
+++ b/charger/animation.txt
@@ -0,0 +1,26 @@
+# animation: num_cycles, first_frame_repeats, animation_file
+animation: 7 1 charger/battery_scale
+
+# frame: disp_time min_level max_level
+frame: 500 0 4
+frame: 500 0 9
+frame: 500 5 14
+frame: 500 10 19
+frame: 500 15 24
+frame: 500 20 29
+frame: 500 25 34
+frame: 500 30 39
+frame: 500 35 44
+frame: 500 40 49
+frame: 500 45 54
+frame: 500 50 59
+frame: 500 55 64
+frame: 500 60 69
+frame: 500 65 74
+frame: 500 70 79
+frame: 500 75 84
+frame: 500 80 89
+frame: 500 85 94
+frame: 500 90 99
+frame: 500 95 99
+frame: 1000 100 100
\ No newline at end of file
diff --git a/charger/hdpi/battery_fail.png b/charger/hdpi/battery_fail.png
new file mode 100644
index 00000000..572d8eff
Binary files /dev/null and b/charger/hdpi/battery_fail.png differ
diff --git a/charger/hdpi/battery_scale.png b/charger/hdpi/battery_scale.png
new file mode 100644
index 00000000..92cd5b6e
Binary files /dev/null and b/charger/hdpi/battery_scale.png differ
diff --git a/charger/images/battery_fail.svg b/charger/images/battery_fail.svg
new file mode 100644
index 00000000..f80b074f
--- /dev/null
+++ b/charger/images/battery_fail.svg
@@ -0,0 +1,5 @@
+
diff --git a/charger/mdpi/battery_fail.png b/charger/mdpi/battery_fail.png
new file mode 100644
index 00000000..2b5d91cb
Binary files /dev/null and b/charger/mdpi/battery_fail.png differ
diff --git a/charger/mdpi/battery_scale.png b/charger/mdpi/battery_scale.png
new file mode 100644
index 00000000..5683aa41
Binary files /dev/null and b/charger/mdpi/battery_scale.png differ
diff --git a/charger/regenerate.sh b/charger/regenerate.sh
new file mode 100755
index 00000000..ac8bfaee
--- /dev/null
+++ b/charger/regenerate.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+if [ -z "$(which convert)" ] || [ -z "$(which pngcrush)" ]; then
+ echo "Please install imagemagick and pngcrush"
+ exit 1
+fi
+
+for DENSITY in mdpi:160 hdpi:240 xhdpi:320 xxhdpi:480 xxxhdpi:640; do
+ DPI=$(echo $DENSITY | cut -f1 -d ':')
+ WIDTH=$(echo $DENSITY | cut -f2 -d ':')
+
+ rm -rf $DPI
+ mkdir $DPI
+
+ for SVG in svg/*.svg; do
+ PNG="$DPI/$(basename $SVG | cut -f1 -d '.').png"
+ convert -density $WIDTH -resize ${WIDTH}x${WIDTH} $SVG png24:$PNG
+ done
+
+ SCALEFILE="$DPI/battery_scale.png"
+ SCALEFILES="$(ls $DPI/battery_scale_*.png)"
+ FRAMES="$(ls -l $SCALEFILES | wc -l)"
+ SCALEHEIGHT=$(($WIDTH * $FRAMES))
+
+ convert -size ${WIDTH}x${SCALEHEIGHT} canvas:black $SCALEFILES -fx "u[j%$FRAMES+1].p{i,int(j/$FRAMES)}" png24:$SCALEFILE.tmp
+ pngcrush -text b "Frames" "$FRAMES" $SCALEFILE.tmp $SCALEFILE
+ rm $SCALEFILES $SCALEFILE.tmp
+done
diff --git a/charger/svg/battery_fail.svg b/charger/svg/battery_fail.svg
new file mode 100644
index 00000000..f80b074f
--- /dev/null
+++ b/charger/svg/battery_fail.svg
@@ -0,0 +1,5 @@
+
diff --git a/charger/svg/battery_scale_00.svg b/charger/svg/battery_scale_00.svg
new file mode 100644
index 00000000..4bf3798c
--- /dev/null
+++ b/charger/svg/battery_scale_00.svg
@@ -0,0 +1,5 @@
+
diff --git a/charger/svg/battery_scale_01.svg b/charger/svg/battery_scale_01.svg
new file mode 100644
index 00000000..c5fbec4f
--- /dev/null
+++ b/charger/svg/battery_scale_01.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_02.svg b/charger/svg/battery_scale_02.svg
new file mode 100644
index 00000000..b533904b
--- /dev/null
+++ b/charger/svg/battery_scale_02.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_03.svg b/charger/svg/battery_scale_03.svg
new file mode 100644
index 00000000..c147769e
--- /dev/null
+++ b/charger/svg/battery_scale_03.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_04.svg b/charger/svg/battery_scale_04.svg
new file mode 100644
index 00000000..1bb0a693
--- /dev/null
+++ b/charger/svg/battery_scale_04.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_05.svg b/charger/svg/battery_scale_05.svg
new file mode 100644
index 00000000..929ed577
--- /dev/null
+++ b/charger/svg/battery_scale_05.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_06.svg b/charger/svg/battery_scale_06.svg
new file mode 100644
index 00000000..d13aea2d
--- /dev/null
+++ b/charger/svg/battery_scale_06.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_07.svg b/charger/svg/battery_scale_07.svg
new file mode 100644
index 00000000..6860f5d2
--- /dev/null
+++ b/charger/svg/battery_scale_07.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_08.svg b/charger/svg/battery_scale_08.svg
new file mode 100644
index 00000000..346360fc
--- /dev/null
+++ b/charger/svg/battery_scale_08.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_09.svg b/charger/svg/battery_scale_09.svg
new file mode 100644
index 00000000..645ebb15
--- /dev/null
+++ b/charger/svg/battery_scale_09.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_10.svg b/charger/svg/battery_scale_10.svg
new file mode 100644
index 00000000..9a27608a
--- /dev/null
+++ b/charger/svg/battery_scale_10.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_11.svg b/charger/svg/battery_scale_11.svg
new file mode 100644
index 00000000..ccf1485a
--- /dev/null
+++ b/charger/svg/battery_scale_11.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_12.svg b/charger/svg/battery_scale_12.svg
new file mode 100644
index 00000000..5946ab3f
--- /dev/null
+++ b/charger/svg/battery_scale_12.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_13.svg b/charger/svg/battery_scale_13.svg
new file mode 100644
index 00000000..fa64d390
--- /dev/null
+++ b/charger/svg/battery_scale_13.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_14.svg b/charger/svg/battery_scale_14.svg
new file mode 100644
index 00000000..1ae78346
--- /dev/null
+++ b/charger/svg/battery_scale_14.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_15.svg b/charger/svg/battery_scale_15.svg
new file mode 100644
index 00000000..2ad0cda4
--- /dev/null
+++ b/charger/svg/battery_scale_15.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_16.svg b/charger/svg/battery_scale_16.svg
new file mode 100644
index 00000000..38130aa5
--- /dev/null
+++ b/charger/svg/battery_scale_16.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_17.svg b/charger/svg/battery_scale_17.svg
new file mode 100644
index 00000000..c09c488f
--- /dev/null
+++ b/charger/svg/battery_scale_17.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_18.svg b/charger/svg/battery_scale_18.svg
new file mode 100644
index 00000000..09507d59
--- /dev/null
+++ b/charger/svg/battery_scale_18.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_19.svg b/charger/svg/battery_scale_19.svg
new file mode 100644
index 00000000..fd66a719
--- /dev/null
+++ b/charger/svg/battery_scale_19.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_20.svg b/charger/svg/battery_scale_20.svg
new file mode 100644
index 00000000..5fda9a14
--- /dev/null
+++ b/charger/svg/battery_scale_20.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/svg/battery_scale_21.svg b/charger/svg/battery_scale_21.svg
new file mode 100644
index 00000000..b540507b
--- /dev/null
+++ b/charger/svg/battery_scale_21.svg
@@ -0,0 +1,6 @@
+
diff --git a/charger/xhdpi/battery_fail.png b/charger/xhdpi/battery_fail.png
new file mode 100644
index 00000000..94c87791
Binary files /dev/null and b/charger/xhdpi/battery_fail.png differ
diff --git a/charger/xhdpi/battery_scale.png b/charger/xhdpi/battery_scale.png
new file mode 100644
index 00000000..6eded503
Binary files /dev/null and b/charger/xhdpi/battery_scale.png differ
diff --git a/charger/xxhdpi/battery_fail.png b/charger/xxhdpi/battery_fail.png
new file mode 100644
index 00000000..4fd90b6c
Binary files /dev/null and b/charger/xxhdpi/battery_fail.png differ
diff --git a/charger/xxhdpi/battery_scale.png b/charger/xxhdpi/battery_scale.png
new file mode 100644
index 00000000..ab82b38c
Binary files /dev/null and b/charger/xxhdpi/battery_scale.png differ
diff --git a/charger/xxxhdpi/battery_fail.png b/charger/xxxhdpi/battery_fail.png
new file mode 100644
index 00000000..f637dce7
Binary files /dev/null and b/charger/xxxhdpi/battery_fail.png differ
diff --git a/charger/xxxhdpi/battery_scale.png b/charger/xxxhdpi/battery_scale.png
new file mode 100644
index 00000000..52819b0b
Binary files /dev/null and b/charger/xxxhdpi/battery_scale.png differ
diff --git a/config/BoardConfigKernel.mk b/config/BoardConfigKernel.mk
index 5f7a16c2..e26127a2 100644
--- a/config/BoardConfigKernel.mk
+++ b/config/BoardConfigKernel.mk
@@ -95,6 +95,7 @@ endif
# Needed for CONFIG_COMPAT_VDSO, safe to set for all arm64 builds
ifeq ($(KERNEL_ARCH),arm64)
KERNEL_CROSS_COMPILE += CROSS_COMPILE_ARM32="$(KERNEL_TOOLCHAIN_arm)/$(KERNEL_TOOLCHAIN_PREFIX_arm)"
+ KERNEL_CROSS_COMPILE += CROSS_COMPILE_COMPAT="$(KERNEL_TOOLCHAIN_arm)/$(KERNEL_TOOLCHAIN_PREFIX_arm)"
endif
# Clear this first to prevent accidental poisoning from env
diff --git a/config/BoardConfigQcom.mk b/config/BoardConfigQcom.mk
index 621d1600..70c947db 100644
--- a/config/BoardConfigQcom.mk
+++ b/config/BoardConfigQcom.mk
@@ -11,7 +11,7 @@ LAHAINA := lahaina #SM8350
B_FAMILY := msm8226 msm8610 msm8974
B64_FAMILY := msm8992 msm8994
BR_FAMILY := msm8909 msm8916
-UM_3_18_FAMILY := msm8937 msm8953 msm8996
+UM_3_18_FAMILY := msm8937 msm8996
UM_4_4_FAMILY := msm8998 sdm660
UM_4_9_FAMILY := sdm845 sdm710
UM_4_14_FAMILY := $(MSMNILE) $(MSMSTEPPE) $(TRINKET) $(ATOLL)
@@ -20,8 +20,32 @@ UM_5_4_FAMILY := $(LAHAINA)
UM_PLATFORMS := $(UM_3_18_FAMILY) $(UM_4_4_FAMILY) $(UM_4_9_FAMILY) $(UM_4_14_FAMILY) $(UM_4_19_FAMILY) $(UM_5_4_FAMILY)
QSSI_SUPPORTED_PLATFORMS := $(UM_4_9_FAMILY) $(UM_4_14_FAMILY) $(UM_4_19_FAMILY) $(UM_5_4_FAMILY)
+ifeq (,$(TARGET_ENFORCE_QSSI))
+UM_3_18_FAMILY += msm8953
+else
+QSSI_SUPPORTED_PLATFORMS += msm8953
+endif
+
BOARD_USES_ADRENO := true
+# Add qtidisplay to soong config namespaces
+SOONG_CONFIG_NAMESPACES += qtidisplay
+
+# Add supported variables to qtidisplay config
+SOONG_CONFIG_qtidisplay += \
+ drmpp \
+ headless \
+ llvmsa \
+ gralloc4 \
+ default
+
+# Set default values for qtidisplay config
+SOONG_CONFIG_qtidisplay_drmpp ?= false
+SOONG_CONFIG_qtidisplay_headless ?= false
+SOONG_CONFIG_qtidisplay_llvmsa ?= false
+SOONG_CONFIG_qtidisplay_gralloc4 ?= false
+SOONG_CONFIG_qtidisplay_default ?= true
+
# UM platforms no longer need this set on O+
ifneq ($(filter $(B_FAMILY) $(B64_FAMILY) $(BR_FAMILY),$(TARGET_BOARD_PLATFORM)),)
TARGET_USES_QCOM_BSP := true
@@ -51,16 +75,29 @@ endif
# Enable DRM PP driver on UM platforms that support it
ifneq ($(filter $(UM_4_9_FAMILY) $(UM_4_14_FAMILY) $(UM_4_19_FAMILY) $(UM_5_4_FAMILY),$(TARGET_BOARD_PLATFORM)),)
+ SOONG_CONFIG_qtidisplay_drmpp := true
TARGET_USES_DRM_PP := true
endif
-# Mark GRALLOC_USAGE_HW_2D, GRALLOC_USAGE_EXTERNAL_DISP and GRALLOC_USAGE_PRIVATE_WFD as valid gralloc bits
+# Enable Gralloc4 on UM platforms that support it
+ifneq ($(filter $(UM_5_4_FAMILY),$(TARGET_BOARD_PLATFORM)),)
+ SOONG_CONFIG_qtidisplay_gralloc4 := true
+endif
+
TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS ?= 0
-TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 10)
+
+# Mark GRALLOC_USAGE_HW_2D as valid gralloc bit on legacy platforms that support it
+ifneq ($(filter msm8960 msm8952 $(B_FAMILY) $(B64_FAMILY) $(BR_FAMILY),$(TARGET_BOARD_PLATFORM)),)
+ TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 10)
+endif
+
+# Mark GRALLOC_USAGE_EXTERNAL_DISP as valid gralloc bit
TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 13)
+
+# Mark GRALLOC_USAGE_PRIVATE_WFD as valid gralloc bit
TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 21)
-# Mark GRALLOC_USAGE_PRIVATE_HEIF_VIDEO as valid gralloc bits on UM platforms that support it
+# Mark GRALLOC_USAGE_PRIVATE_HEIF_VIDEO as valid gralloc bit on UM platforms that support it
ifneq ($(filter $(UM_4_9_FAMILY) $(UM_4_14_FAMILY) $(UM_4_19_FAMILY) $(UM_5_4_FAMILY),$(TARGET_BOARD_PLATFORM)),)
TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 27)
endif
diff --git a/config/BoardConfigSoong.mk b/config/BoardConfigSoong.mk
index e675ede1..4b98006e 100644
--- a/config/BoardConfigSoong.mk
+++ b/config/BoardConfigSoong.mk
@@ -34,6 +34,7 @@ SOONG_CONFIG_lineageGlobalVars += \
has_legacy_camera_hal1 \
has_memfd_backport \
ignores_ftp_pptp_conntrack_failure \
+ needs_camera_boottime \
needs_netd_direct_connect_rule \
target_init_vendor_lib \
target_inputdispatcher_skip_event_key \
@@ -44,7 +45,7 @@ SOONG_CONFIG_lineageGlobalVars += \
SOONG_CONFIG_NAMESPACES += lineageNvidiaVars
SOONG_CONFIG_lineageNvidiaVars += \
- uses_nv_enhancements
+ uses_nvidia_enhancements
SOONG_CONFIG_NAMESPACES += lineageQcomVars
SOONG_CONFIG_lineageQcomVars += \
@@ -68,8 +69,9 @@ SOONG_CONFIG_lineageGlobalVars_disable_postrender_cleanup := $(TARGET_DISABLE_PO
SOONG_CONFIG_lineageGlobalVars_has_legacy_camera_hal1 := $(TARGET_HAS_LEGACY_CAMERA_HAL1)
SOONG_CONFIG_lineageGlobalVars_has_memfd_backport := $(TARGET_HAS_MEMFD_BACKPORT)
SOONG_CONFIG_lineageGlobalVars_ignores_ftp_pptp_conntrack_failure := $(TARGET_IGNORES_FTP_PPTP_CONNTRACK_FAILURE)
+SOONG_CONFIG_lineageGlobalVars_needs_camera_boottime := $(TARGET_CAMERA_BOOTTIME_TIMESTAMP)
SOONG_CONFIG_lineageGlobalVars_needs_netd_direct_connect_rule := $(TARGET_NEEDS_NETD_DIRECT_CONNECT_RULE)
-SOONG_CONFIG_lineageNvidiaVars_uses_nv_enhancements := $(NV_ANDROID_FRAMEWORK_ENHANCEMENTS)
+SOONG_CONFIG_lineageNvidiaVars_uses_nvidia_enhancements := $(NV_ANDROID_FRAMEWORK_ENHANCEMENTS)
SOONG_CONFIG_lineageQcomVars_legacy_hw_disk_encryption := $(TARGET_LEGACY_HW_DISK_ENCRYPTION)
SOONG_CONFIG_lineageQcomVars_should_wait_for_qsee := $(TARGET_KEYMASTER_WAIT_FOR_QSEE)
SOONG_CONFIG_lineageQcomVars_supports_extended_compress_format := $(AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT)
diff --git a/config/common.mk b/config/common.mk
index f65e61d2..95be9137 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -118,10 +118,6 @@ TARGET_SCREEN_HEIGHT ?= 1920
PRODUCT_PACKAGES += \
bootanimation.zip
-# AOSP packages
-PRODUCT_PACKAGES += \
- Terminal
-
# Lineage packages
PRODUCT_PACKAGES += \
LineageParts \
@@ -140,9 +136,7 @@ PRODUCT_PACKAGES += \
# Extra tools in Lineage
PRODUCT_PACKAGES += \
7z \
- awk \
bash \
- bzip2 \
curl \
getcap \
htop \
@@ -153,7 +147,6 @@ PRODUCT_PACKAGES += \
setcap \
unrar \
vim \
- wget \
zip
# System fonts
@@ -163,10 +156,8 @@ PRODUCT_PACKAGES += \
# Filesystems tools
PRODUCT_PACKAGES += \
- fsck.exfat \
fsck.ntfs \
mke2fs \
- mkfs.exfat \
mkfs.ntfs \
mount.ntfs
@@ -207,7 +198,11 @@ PRODUCT_DEXPREOPT_SPEED_APPS += \
SystemUI
PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/lineage/overlay
-DEVICE_PACKAGE_OVERLAYS += vendor/lineage/overlay/common
+PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/common
+
+# Translations
+PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/crowdin/overlay
+PRODUCT_PACKAGE_OVERLAYS += vendor/crowdin/overlay
PRODUCT_VERSION_MAJOR = 1.7
PRODUCT_VERSION_MINOR = ASTRA
@@ -222,6 +217,8 @@ ifeq ($(CIPHER_OFFICIAL), true)
CipherShades
endif
+CIPHER_GAPPS ?= true
+
# Gapps
ifeq ($(CIPHER_GAPPS), true)
$(call inherit-product, vendor/gapps/common/common-vendor.mk)
diff --git a/config/common_car.mk b/config/common_car.mk
new file mode 100644
index 00000000..05c1f5b6
--- /dev/null
+++ b/config/common_car.mk
@@ -0,0 +1,8 @@
+# Inherit common Lineage stuff
+$(call inherit-product, vendor/lineage/config/common.mk)
+
+# Inherit Lineage car device tree
+$(call inherit-product, device/lineage/car/lineage_car.mk)
+
+# Inherit the main AOSP car makefile that turns this into an Automotive build
+$(call inherit-product, packages/services/Car/car_product/build/car.mk)
diff --git a/config/common_full_phone.mk b/config/common_full_phone.mk
index 224e454e..6ee8da09 100644
--- a/config/common_full_phone.mk
+++ b/config/common_full_phone.mk
@@ -7,5 +7,6 @@ PRODUCT_PACKAGES += \
# Include Lineage LatinIME dictionaries
PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/dictionaries
+PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/lineage/overlay/dictionaries
$(call inherit-product, vendor/lineage/config/telephony.mk)
diff --git a/config/common_full_tablet_wifionly.mk b/config/common_full_tablet_wifionly.mk
index f75d42a4..53ef8dd9 100644
--- a/config/common_full_tablet_wifionly.mk
+++ b/config/common_full_tablet_wifionly.mk
@@ -7,3 +7,4 @@ PRODUCT_PACKAGES += \
# Include Lineage LatinIME dictionaries
PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/dictionaries
+PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/lineage/overlay/dictionaries
diff --git a/config/common_mobile.mk b/config/common_mobile.mk
index 37a20e85..3f1a89cf 100644
--- a/config/common_mobile.mk
+++ b/config/common_mobile.mk
@@ -27,6 +27,11 @@ PRODUCT_PACKAGES += \
AudioFX
endif
+ifneq ($(TARGET_EXCLUDES_AUDIOFX),true)
+PRODUCT_PACKAGES += \
+ AudioFX
+endif
+
ifeq ($(PRODUCT_TYPE), go)
PRODUCT_PACKAGES += \
TrebuchetQuickStepGo
@@ -59,6 +64,11 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
charger_res_images
+ifneq ($(WITH_LINEAGE_CHARGER),false)
+PRODUCT_PACKAGES += \
+ lineage_charger_animation
+endif
+
# Customizations
PRODUCT_PACKAGES += \
IconShapeSquareOverlay \
diff --git a/config/common_tv.mk b/config/common_tv.mk
index db18f231..69e906d2 100644
--- a/config/common_tv.mk
+++ b/config/common_tv.mk
@@ -12,4 +12,4 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
LineageCustomizer
-DEVICE_PACKAGE_OVERLAYS += vendor/lineage/overlay/tv
+PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/tv
diff --git a/overlay/common/external/setupdesign/main/res/values/colors.xml b/overlay/common/external/setupdesign/main/res/values/colors.xml
new file mode 100644
index 00000000..5e0863eb
--- /dev/null
+++ b/overlay/common/external/setupdesign/main/res/values/colors.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ @*android:color/accent_device_default_dark
+ @*android:color/accent_device_default_light
+
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-television/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-television/default_wallpaper.png
new file mode 100644
index 00000000..21b7d763
Binary files /dev/null and b/overlay/common/frameworks/base/core/res/res/drawable-television/default_wallpaper.png differ
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
deleted file mode 100644
index 4eb38e41..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
- Nexus5
- http://www.google.com/oha/rdf/ua-profile-kila.xml
-
diff --git a/overlay/common/frameworks/base/core/res/res/values/config.xml b/overlay/common/frameworks/base/core/res/res/values/config.xml
index e4243e07..30edbe73 100644
--- a/overlay/common/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/common/frameworks/base/core/res/res/values/config.xml
@@ -50,6 +50,8 @@
- com.android.vending/com.google.android.finsky.systemupdate.SystemUpdateSettingsContentProvider
- com.android.vending/com.google.android.finsky.systemupdateactivity.SettingsSecurityEntryPoint
- com.android.vending/com.google.android.finsky.systemupdateactivity.SystemUpdateActivity
+ - com.google.android.gms/com.google.android.gms.update.phone.PopupDialog
+ - com.google.android.gms/com.google.android.gms.update.OtaSuggestionSummaryProvider
- com.google.android.gms/com.google.android.gms.update.SystemUpdateActivity
- com.google.android.gms/com.google.android.gms.update.SystemUpdateGcmTaskService
- com.google.android.gms/com.google.android.gms.update.SystemUpdateService
@@ -104,6 +106,11 @@
-->
com.google.android.apps.wellbeing
+
+ com.google.android.gms/.kids.account.receiver.ProfileOwnerReceiver
+
diff --git a/overlay/common/packages/apps/Dialer/java/com/android/voicemail/impl/res/xml/vvm_config.xml b/overlay/common/packages/apps/Dialer/java/com/android/voicemail/impl/res/xml/vvm_config.xml
index 93db9e96..dd7f1571 100644
--- a/overlay/common/packages/apps/Dialer/java/com/android/voicemail/impl/res/xml/vvm_config.xml
+++ b/overlay/common/packages/apps/Dialer/java/com/android/voicemail/impl/res/xml/vvm_config.xml
@@ -20,6 +20,17 @@
+
+
+
+
+
+
+ vvm_carrier_flag_el_telecom
+
+ 8860
+ vvm_type_omtp_1_3
+
@@ -33,7 +44,7 @@
-
+
vvm_carrier_freedom_ca
@@ -41,6 +52,7 @@
vvm_type_omtp
vvm_freedom_ca_allows_transcription
+ mms
@@ -74,7 +86,7 @@
- vvm_type_disable
+ vvm_type_disabled
vvm_carrier_flag_27099
@@ -102,6 +114,7 @@
vvm_o2_uk_allows_transcription
+ enable_reduce_vvm_server_load_o2uk
@@ -114,7 +127,7 @@
- vvm_type_disable
+ vvm_type_disabled
vvm_carrier_flag_swisscom_ch
@@ -234,7 +247,7 @@
- vvm_type_disable
+ vvm_type_disabled
@@ -267,7 +280,7 @@
- vvm_type_disable
+ vvm_type_disabled
vvm_carrier_flag_302220
@@ -277,7 +290,7 @@
7723
vvm_type_omtp
-
+
mms
@@ -411,6 +424,6 @@
- vvm_type_disable
+ vvm_type_disabled
diff --git a/overlay/tv/frameworks/base/core/res/res/values/config.xml b/overlay/tv/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 00000000..02ac8a34
--- /dev/null
+++ b/overlay/tv/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ 2
+
diff --git a/prebuilt/common/Android.bp b/prebuilt/common/Android.bp
index cb5c511f..086b28dd 100644
--- a/prebuilt/common/Android.bp
+++ b/prebuilt/common/Android.bp
@@ -1,5 +1,6 @@
prebuilt_etc_xml {
name: "sensitive_pn.xml",
+ product_specific: true,
src: "etc/sensitive_pn.xml",
schema: ":spn-schema",
}
diff --git a/prebuilt/common/Android.mk b/prebuilt/common/Android.mk
index 640c2be6..8c60140c 100644
--- a/prebuilt/common/Android.mk
+++ b/prebuilt/common/Android.mk
@@ -1,14 +1,5 @@
LOCAL_PATH := $(call my-dir)
-# a wrapper for curl which provides wget syntax, for compatibility
-include $(CLEAR_VARS)
-LOCAL_MODULE := wget
-LOCAL_SRC_FILES := bin/wget
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := EXECUTABLES
-LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
-include $(BUILD_PREBUILT)
-
################################
# Copies the APN list file into $(TARGET_COPY_OUT_PRODUCT)/etc for the product as apns-conf.xml.
# In the case where $(CUSTOM_APNS_FILE) is defined, the content of $(CUSTOM_APNS_FILE)
diff --git a/prebuilt/common/bin/backuptool.sh b/prebuilt/common/bin/backuptool.sh
index 8e9e7322..c814c876 100755
--- a/prebuilt/common/bin/backuptool.sh
+++ b/prebuilt/common/bin/backuptool.sh
@@ -104,7 +104,7 @@ unmount_system() {
}
get_block_for_mount_point() {
- grep -v "^#" /etc/recovery.fstab | grep " $1 " | tail -n1 | tr -s ' ' | cut -d' ' -f1
+ grep -v "^#" /etc/recovery.fstab | grep "[[:blank:]]$1[[:blank:]]" | tail -n1 | tr -s [:blank:] ' ' | cut -d' ' -f1
}
find_block() {
@@ -171,6 +171,7 @@ case "$1" in
mkdir -p $C
preserve_addon_d
run_stages pre-backup backup post-backup
+ umount_extra $all_V3_partitions
fi
unmount_system
;;
diff --git a/prebuilt/common/bin/backuptool_ab.sh b/prebuilt/common/bin/backuptool_ab.sh
index fd0cdd2d..0a519352 100755
--- a/prebuilt/common/bin/backuptool_ab.sh
+++ b/prebuilt/common/bin/backuptool_ab.sh
@@ -95,7 +95,7 @@ fi
### Mount helpers ###
#####################
get_block_for_mount_point() {
- grep -v "^#" /vendor/etc/fstab.$(getprop ro.boot.hardware) | grep " $1 " | tail -n1 | tr -s ' ' | cut -d' ' -f1
+ grep -v "^#" /vendor/etc/fstab.$(getprop ro.boot.hardware) | grep "[[:blank:]]$1[[:blank:]]" | tail -n1 | tr -s [:blank:] ' ' | cut -d' ' -f1
}
find_block() {
@@ -177,6 +177,7 @@ case "$1" in
mkdir -p $C
preserve_addon_d
run_stages pre-backup backup post-backup
+ umount_extra $all_V3_partitions
else
cleanup
fi
diff --git a/prebuilt/common/bin/wget b/prebuilt/common/bin/wget
deleted file mode 100755
index 1d04de54..00000000
--- a/prebuilt/common/bin/wget
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/system/bin/sh
-# wget-curl, a curl wrapper acting as a wget drop-in replacement - version git-HEAD
-# Usage: wget [wget args] [i need to fill this in later]
-# Download all URLs given using curl, but using wget's options.
-#
-#
-# End of help.
-# Copyright (c) 2015 Kylie McClain
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-#
-# End of copyright.
-#
-
-set -o pipefail
-shopt -u shift_verbose >/dev/null 2>&1
-
-help() {
- sed -n '/^#/!d;s/^# //;s/^#//;3,${p;}' "$0" | \
- while IFS= read help_line;do
- if [[ "$help_line" == "End of help." ]];then
- exit 0
- else
- printf "%s\n" "$help_line"
- fi
- done
- exit 0
-}
-
-version() {
- sed 's/^# //;s/, .* - version / /;2q;$!d' "$0"
- copyright
- exit 0
-}
-
-copyright() {
- sed -n '/^#/!d;s/^# //;s/^#//;/End of help./,${p;}' "$0" | \
- while IFS= read copyright_line;do
- if [[ "$copyright_line" == "End of help." ]];then
- true
- elif [[ "$copyright_line" == "End of copyright." ]];then
- break
- else
- printf '%s\n' "$copyright_line"
- fi
- done
-}
-
-stderr() {
- printf "$@" >&2
-}
-
-error() {
- stderr "$0: $1\n"
- exit "$2"
-}
-
-invalid_arg() {
- error "invalid option -- '$1'" 2
-}
-
-append_opt() {
- for opt in $@;do
- CURL_OPTS="${CURL_OPTS} ${opt}"
- done
-}
-
-curl() {
- eval "command curl $@ ${CURL_RAW}"
-}
-
-append_raw_arg() {
- CURL_RAW="$CURL_RAW $@"
-}
-
-has_opt() { # exit 0 if CURL_OPTS has arg, non-zero if doesn't
- if [[ "$CURL_OPTS" == *" $1"* ]];then
- return 0
- else
- return 1
- fi
-}
-
-reexec_without() { # download afterwards without $1 in OPTS
- reexec_args_without="$reexec_args_without $@"
- reexec=1
-}
-
-reexec_only() {
- for arg in $@;do
- CURL_OPTS_REEXEC_ONLY="${CURL_OPTS_REEXEC_ONLY} $arg"
- done
-}
-
-print_url() {
- has_opt -s || printf "%s\n" "$1"
-}
-
-# 46ABDFHIKLNOPQRSTUVXabcdhiklm nH nc nd np nv opqrtvwx
-while getopts ':46ABDFHIKLNO:PQRST:U:VXa:bcdhiklmopqrtvwx' argument "$@";do
- case "$argument" in
- # a lot of these are noop right now because they are wget mirror args
- # which curl doesn't really do, and i am not sure if i should implement them
- 4) append_opt -4 ;;
- 6) append_opt -6 ;;
- A) true ;; # probably can't implement this easily...
- B) true ;;
- D) true ;;
- E) true ;;
- F) true ;; # curl doesn't care what the input is
- H) true ;;
- I) true ;;
- K) true ;;
- L) true ;;
- N) true ;;
- O) append_opt "-o $OPTARG" ;;
- P) true ;;
- Q) true ;;
- R) true ;;
- S) append_opt -I;reexec_without -I -s ;;
- T) append_opt "-m $OPTARG" ;;
- U) append_opt "--user-agent \"$OPTARG\"" ;;
- V) version; curl --version; exit 0 ;;
- X) true ;;
- a) append_raw_arg "2>&1 | tee -a $OPTARG" ;;
- b)
- wget_log="wget-log"
- i=1
- while [[ -f "${wget_log}" ]];do
- # if that exists, increment until we find something that doesn't
- i=$(($i+1))
- wget_log="wget-log.${i}"
- done
- append_raw_arg ">\"$wget_log\" 2>&1 &"
- printf "Continuing in background, pid %s.\nOutput will be written to '$wget_log'.\n" "$$"
- ;;
- c) append_opt "-C -" ;;
- d) append_opt "-v" ;;
- e) true ;;
- h) help ;;
- i)
- [[ ! -f "$OPTARG" ]] && error "$OPTARG does not exist" 3
- for url in $(<"$OPTARG");do
- URLS=( ${URLS[@]} "$url" )
- done
- ;;
- q) append_opt "-s" ;;
- esac
- shift $(($OPTIND-1))
-done
-
-# set wget default equivilants
-append_opt -L # follow redirects
-append_opt -# # progress bar
-
-if [[ -z "${URLS[@]}" ]];then
- URLS=( ${@} )
-fi
-
-for url in ${URLS[@]};do
- url_file=${url##*/}
- if [[ "$url" == "$url_file" ]];then
- # has no remote file name and -o is not in CURL_OPTS... assume index.html
- has_opt -o || append_opt "-o index.html"
- fi
-
- eval "print_url '$url';curl ${CURL_OPTS} -- $url"
- if [[ "$reexec" ]];then
- for reexec_arg in ${reexec_args_without};do
- CURL_OPTS_REEXEC=$(echo "${CURL_OPTS_REEXEC:-$CURL_OPTS}" | sed "s# $reexec_arg##")
- done
- eval "print_url '$url';curl ${CURL_OPTS_REEXEC} ${CURL_OPTS_REEXEC_ONLY} -- $url"
- fi
-done
diff --git a/prebuilt/common/bootanimation/LICENSE b/prebuilt/common/bootanimation/LICENSE
index e6e904ce..974d1f94 100644
--- a/prebuilt/common/bootanimation/LICENSE
+++ b/prebuilt/common/bootanimation/LICENSE
@@ -1,9 +1,9 @@
MIT License
-Copyright (c) 2020-2021 CipherOS Project
-Copyright (c) 2021 Anurag Reddy
+Copyright (c) 2020-2023 CipherOS Project
+Copyright (c) kerichdev
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+Bootanimation must NOT be used without prior permission of Authors.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
diff --git a/prebuilt/common/bootanimation/bootanimation-1080.zip b/prebuilt/common/bootanimation/bootanimation-1080.zip
index 6a783010..bbc95509 100644
Binary files a/prebuilt/common/bootanimation/bootanimation-1080.zip and b/prebuilt/common/bootanimation/bootanimation-1080.zip differ
diff --git a/prebuilt/common/bootanimation/bootanimation-1440.zip b/prebuilt/common/bootanimation/bootanimation-1440.zip
index 2d7a01d6..bbc95509 100644
Binary files a/prebuilt/common/bootanimation/bootanimation-1440.zip and b/prebuilt/common/bootanimation/bootanimation-1440.zip differ
diff --git a/prebuilt/common/bootanimation/bootanimation-720.zip b/prebuilt/common/bootanimation/bootanimation-720.zip
index f266b979..bbc95509 100644
Binary files a/prebuilt/common/bootanimation/bootanimation-720.zip and b/prebuilt/common/bootanimation/bootanimation-720.zip differ
diff --git a/prebuilt/common/etc/apns-conf.xml b/prebuilt/common/etc/apns-conf.xml
index d6e27179..904c00e8 100644
--- a/prebuilt/common/etc/apns-conf.xml
+++ b/prebuilt/common/etc/apns-conf.xml
@@ -2,6 +2,7 @@
+
@@ -50,7 +52,7 @@
-
+
@@ -69,18 +71,18 @@
-
-
+
+
-
+
-
-
+
+
@@ -123,15 +125,15 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
@@ -148,7 +150,7 @@
-
+
@@ -160,20 +162,20 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
@@ -240,7 +242,7 @@
-
+
@@ -329,7 +331,7 @@
-
+
@@ -407,8 +409,8 @@
-
-
+
+
@@ -556,7 +558,7 @@
-
+
@@ -605,16 +607,15 @@
-
-
+
-
+
-
+
@@ -630,18 +631,18 @@
-
+
-
+
-
+
-
+
@@ -655,7 +656,7 @@
-
+
@@ -678,7 +679,7 @@
-
+
@@ -724,7 +725,7 @@
-
+
@@ -744,14 +745,12 @@
-
-
-
-
+
+
-
+
@@ -802,8 +801,8 @@
-
-
+
+
@@ -1130,8 +1129,8 @@
-
-
+
+
@@ -1191,9 +1190,9 @@
-
+
-
+
@@ -1201,9 +1200,9 @@
-
+
-
+
@@ -3079,62 +3078,58 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3142,15 +3137,8 @@
-
-
-
-
-
-
-
-
-
+
+
@@ -3218,6 +3206,7 @@
+
@@ -3225,7 +3214,7 @@
-
+
@@ -3332,19 +3321,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/prebuilt/common/etc/init/lineage-radio.rc b/prebuilt/common/etc/init/lineage-radio.rc
deleted file mode 100644
index 22f1e64d..00000000
--- a/prebuilt/common/etc/init/lineage-radio.rc
+++ /dev/null
@@ -1,12 +0,0 @@
-# Disable ril services if noril prop is set
-on property:ro.radio.noril=1
- stop ims_rtp_daemon
- stop imsdatadaemon
- stop imsqmidaemon
- stop imsrcsservice
- stop ril-daemon
- stop qmuxd
- stop netmgrd
-
-on property:persist.radio.noril=1
- setprop ro.radio.noril 1
diff --git a/product/nvidia.mk b/product/nvidia.mk
new file mode 100644
index 00000000..5ae815d0
--- /dev/null
+++ b/product/nvidia.mk
@@ -0,0 +1,18 @@
+# Copyright (C) 2019 The LineageOS 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.
+
+# Baseline Nvidia framework enhancements
+# Includes support for:
+# 1) NvCPL / Application Profiles
+NV_ANDROID_FRAMEWORK_ENHANCEMENTS := true
diff --git a/tools/custom_apns.py b/tools/custom_apns.py
index b58ece1b..0de116ee 100644
--- a/tools/custom_apns.py
+++ b/tools/custom_apns.py
@@ -34,7 +34,7 @@ def main(argv):
for line in f:
xmltree = parseString(line)
carrier = xmltree.getElementsByTagName('apn')[0].getAttribute('carrier')
- custom_apn_names.append(carrier)
+ custom_apn_names.append('"' + carrier + '"')
with open(original_file, 'r') as input_file:
with open(output_file_path, 'w') as output_file: