diff --git a/BoardConfig.mk b/BoardConfig.mk
index f3cdec3..2ca7efc 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -21,13 +21,18 @@ TARGET_CPU_VARIANT_RUNTIME := kryo300
# Board
TARGET_BOARD_INFO_FILE := $(DEVICE_PATH)/board-info.txt
+# Boot
+BOARD_BOOT_HEADER_VERSION := 4
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
+BOARD_RAMDISK_USE_LZ4 := true
+
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := pineapple
TARGET_NO_BOOTLOADER := true
# Display
TARGET_SCREEN_DENSITY := 450
-TARGET_USES_VULKAN := true
+TARGET_GRALLOC_HANDLE_HAS_UBWCP_FORMAT = true
# DTB / DTBO
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
@@ -72,16 +77,16 @@ TARGET_KERNEL_CONFIG := \
oem/e3q-lego.config
# Kernel modules
-BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.system_dlkm))
-BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(DEVICE_PATH)/modules/modules.blocklist
-BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load))
+BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.system_dlkm))
+BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(DEVICE_PATH)/modules.blocklist
+BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load))
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := $(BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE)
-BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.vendor_boot))
-BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery))
-BOOT_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery $(DEVICE_PATH)/modules/modules.include.vendor_ramdisk))
-SYSTEM_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.include.system_dlkm))
-BOARD_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery))
-BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery))
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.vendor_boot))
+BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
+BOOT_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery $(DEVICE_PATH)/modules.include.vendor_ramdisk))
+SYSTEM_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules.include.system_dlkm))
+BOARD_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
+BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
RECOVERY_KERNEL_MODULES := $(BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD)
TARGET_KERNEL_EXT_MODULE_ROOT := kernel/samsung/sm8650-modules
@@ -183,6 +188,9 @@ BOARD_RECOVERY_MKBOOTIMG_ARGS := --header_version 2
TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
TARGET_USERIMAGES_USE_F2FS := true
+# Releasetools
+TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)
+
# Security patch level
VENDOR_SECURITY_PATCH := 2024-10-01
diff --git a/configs/vintf/compatibility_matrix.device.xml b/configs/vintf/compatibility_matrix.device.xml
index 063ae0f..aee417d 100644
--- a/configs/vintf/compatibility_matrix.device.xml
+++ b/configs/vintf/compatibility_matrix.device.xml
@@ -31,6 +31,7 @@ Changes from Qualcomm Innovation Center are provided under the following license
Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
SPDX-License-Identifier: BSD-3-Clause-Clear.
-->
+
vendor.qti.hardware.scve.panorama
@@ -479,7 +480,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
vendor.qti.hardware.radio.ims
- 1-15
+ 1-16
IImsRadio
imsradio0
@@ -559,7 +560,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
vendor.qti.hardware.radio.qtiradioconfig
- 1-4
+ 1-6
IQtiRadioConfig
default
@@ -980,7 +981,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
-
+
vendor.qti.hardware.display.allocator
1.0
@@ -1000,6 +1001,14 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
default
+
+ android.hardware.graphics.allocator
+ 1
+
+ IAllocator
+ default
+
+
vendor.qti.hardware.display.mapper
2.0
@@ -1022,14 +1031,14 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
-
+
vendor.qti.qspmhal
@@ -1359,7 +1368,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
vendor.qti.hardware.ListenSoundModel
hwbinder
- 1.0
+ 1.0-2
IListenSoundModel
default
diff --git a/configs/vintf/compatibility_matrix.samsung.xml b/configs/vintf/compatibility_matrix.samsung.xml
index d688cd8..1258da7 100644
--- a/configs/vintf/compatibility_matrix.samsung.xml
+++ b/configs/vintf/compatibility_matrix.samsung.xml
@@ -279,4 +279,12 @@ SPDX-License-Identifier: Apache-2.0
default
+
diff --git a/configs/vintf/compatibility_matrix.xml b/configs/vintf/compatibility_matrix.xml
index c0c43f7..3761397 100644
--- a/configs/vintf/compatibility_matrix.xml
+++ b/configs/vintf/compatibility_matrix.xml
@@ -34,6 +34,14 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
default
+
+ android.hidl.allocator
+ 1.0
+
+ IAllocator
+ ashmem
+
+
android.hidl.manager
1.0
diff --git a/configs/vintf/manifest_pineapple.xml b/configs/vintf/manifest_pineapple.xml
index ec4438a..025b499 100644
--- a/configs/vintf/manifest_pineapple.xml
+++ b/configs/vintf/manifest_pineapple.xml
@@ -78,11 +78,32 @@ SPDX-License-Identifier: BSD-3-Clause-Clear
default
-
+
+
+
+
+
+
+ com.qualcomm.qti.dpm.api
+ hwbinder
+ 1.0
+
+ IdpmQmi
+ dpmQmiService
+
+
@@ -249,7 +270,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear
default
-
+
diff --git a/device.mk b/device.mk
index 1af272f..2dfe417 100644
--- a/device.mk
+++ b/device.mk
@@ -4,23 +4,32 @@
# SPDX-License-Identifier: Apache-2.0
#
+# Enable project quotas and casefolding for emulated storage without sdcardfs
+$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
+
+# Enforce generic ramdisk allow list
+$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
+
+# Dalvik
+$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
+
# Enable updating of APEXes
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
+# Add common definitions for Qualcomm
+$(call inherit-product, hardware/qcom-caf/common/common.mk)
+
# API levels
PRODUCT_SHIPPING_API_LEVEL := 34
+# DebugFS
+PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
+
# fastbootd
PRODUCT_PACKAGES += \
android.hardware.fastboot@1.1-impl-mock \
fastbootd
-# Health
-PRODUCT_PACKAGES += \
- android.hardware.health@2.1-impl \
- android.hardware.health@2.1-impl.recovery \
- android.hardware.health@2.1-service
-
# Overlays
PRODUCT_ENFORCE_RRO_TARGETS := *
@@ -88,11 +97,14 @@ PRODUCT_PACKAGES += \
init.recovery.samsung.rc \
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/rootdir/etc/fstab.qcom:$(TARGET_COPY_OUT_RAMDISK)/fstab.qcom
+ $(LOCAL_PATH)/rootdir/etc/fstab.qcom:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.qcom
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
- $(LOCAL_PATH)
+ $(LOCAL_PATH) \
+ hardware/samsung \
+ kernel/samsung/sm8650 \
+ kernel/samsung/sm8650-modules
# Inherit the proprietary files
$(call inherit-product, vendor/samsung/e3q/e3q-vendor.mk)
diff --git a/modules/modules.blocklist b/modules.blocklist
similarity index 100%
rename from modules/modules.blocklist
rename to modules.blocklist
diff --git a/modules/modules.include.system_dlkm b/modules.include.system_dlkm
similarity index 100%
rename from modules/modules.include.system_dlkm
rename to modules.include.system_dlkm
diff --git a/modules/modules.include.vendor_ramdisk b/modules.include.vendor_ramdisk
similarity index 100%
rename from modules/modules.include.vendor_ramdisk
rename to modules.include.vendor_ramdisk
diff --git a/modules/modules.load b/modules.load
similarity index 100%
rename from modules/modules.load
rename to modules.load
diff --git a/modules/modules.load.recovery b/modules.load.recovery
similarity index 100%
rename from modules/modules.load.recovery
rename to modules.load.recovery
diff --git a/modules/modules.load.system_dlkm b/modules.load.system_dlkm
similarity index 100%
rename from modules/modules.load.system_dlkm
rename to modules.load.system_dlkm
diff --git a/modules/modules.load.vendor_boot b/modules.load.vendor_boot
similarity index 100%
rename from modules/modules.load.vendor_boot
rename to modules.load.vendor_boot
diff --git a/proprietary-files.txt b/proprietary-files.txt
index 431d929..00dce6c 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -759,7 +759,6 @@ vendor/lib64/vendor.qti.hardware.dpmservice@1.0.so
vendor/lib64/vendor.qti.hardware.dpmservice@1.1.so
# DRM
-vendor/apex/com.google.android.widevine.nonupdatable.apex
vendor/bin/hw/android.hardware.drm-service.clearkey
vendor/etc/init/android.hardware.drm-service.clearkey.rc
vendor/lib64/mediacas/libclearkeycasplugin.so
@@ -1170,7 +1169,7 @@ vendor/bin/hw/android.hardware.security.keymint-service
vendor/bin/hw/android.hardware.security.keymint-service-spu-qti
vendor/etc/init/android.hardware.security.keymint-service-spu-qti.rc
vendor/etc/init/android.hardware.security.keymint-service.rc
-vendor/etc/vintf/manifest/android.hardware.security.keymint-service-spu-qti.xml
+#vendor/etc/vintf/manifest/android.hardware.security.keymint-service-spu-qti.xml
vendor/lib64/libcppbor_external.so
vendor/lib64/libhermes_cred.so
vendor/lib64/libkeymaster4_1support.so
@@ -1312,9 +1311,6 @@ vendor/bin/hostapd_cli
vendor/bin/wpa_cli
vendor/etc/init/android.hardware.wifi-service.rc
vendor/etc/init/android.hardware.wifi.supplicant-service.rc
-vendor/etc/vintf/manifest/android.hardware.wifi-service.xml
-vendor/etc/vintf/manifest/android.hardware.wifi.hostapd.xml
-vendor/etc/vintf/manifest/android.hardware.wifi.supplicant.xml
vendor/lib64/libkeystore-engine-wifi-hidl.so
vendor/lib64/libkeystore-wifi-hidl.so
vendor/lib64/libpasn.so
@@ -1600,7 +1596,6 @@ vendor/etc/init/init.audio.samsung.rc
vendor/etc/init/init.embmssl_server.rc
vendor/etc/init/init.fingerprint.rc
vendor/etc/init/init.nfc.samsung.rc
-vendor/etc/init/init.qccvendor.rc
vendor/etc/init/init.qlm-service.rc
vendor/etc/init/init.qti.fm.rc
vendor/etc/init/init.qti.media.rc
@@ -1846,17 +1841,13 @@ vendor/etc/vintf/manifest/face-default-sec.xml
vendor/etc/vintf/manifest/hyper-default-sec.xml
vendor/etc/vintf/manifest/iweaver_aidl_v2_manifest.xml
vendor/etc/vintf/manifest/khdm-default-sec.xml
-vendor/etc/vintf/manifest/lights-default-sec.xml
vendor/etc/vintf/manifest/manifest_non_qmaa.xml
vendor/etc/vintf/manifest/manifest_non_qmaa_extn.xml
vendor/etc/vintf/manifest/memtrack_qti.xml
vendor/etc/vintf/manifest/mpos-default-sec.xml
-vendor/etc/vintf/manifest/mppserver.xml
-vendor/etc/vintf/manifest/nfc-service-nxp.xml
vendor/etc/vintf/manifest/power-samsung.xml
vendor/etc/vintf/manifest/qms-saidl.xml
vendor/etc/vintf/manifest/sec_c2_manifest_default0_1_2.xml
-vendor/etc/vintf/manifest/secure_element-service-nxp.xml
vendor/etc/vintf/manifest/vendor.qti.camera.aon-impl.xml
vendor/etc/vintf/manifest/vendor.qti.camera.offlinecamera-impl.xml
vendor/etc/vintf/manifest/vendor.qti.camera.postproc-impl.xml
@@ -1867,13 +1858,11 @@ vendor/etc/vintf/manifest/vendor.samsung.hardware.authfw-manifest.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.biometrics.fingerprint-service.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.camera.provider-service.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.frcmc-service.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.health-service.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.radio.exclude.qcom.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.radio_manifest_2_34.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.engmode-manifest.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.fkeymaster-service.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.hdcp.keyprovisioning-default.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.security.hdcp.wifidisplay-default.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.hermes.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.rtts-manifest.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.sem@1.0-manifest.xml
@@ -1882,8 +1871,6 @@ vendor/etc/vintf/manifest/vendor.samsung.hardware.security.vaultkeeper-manifest.
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.widevine.keyprov-service.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.security.wsm.service-manifest.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.sehradio_manifest_2_34.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.snap-default.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.sysinput-default.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.thermal-default.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.tlc.ddar-default.xml
vendor/etc/vintf/manifest/vendor.samsung.hardware.tlc.iccc@1.0-manifest.xml
@@ -1927,7 +1914,6 @@ vendor/etc/libuwb-countrycode.conf
vendor/etc/libuwb-feature.conf
vendor/etc/libuwb-nxp.conf
vendor/etc/libuwb-uci.conf
-vendor/etc/linker.config.pb
vendor/etc/mem_logger_config.xml
vendor/etc/mercury.json
vendor/etc/mercury_hv.json
diff --git a/releasetools.py b/releasetools.py
new file mode 100644
index 0000000..08c6d9f
--- /dev/null
+++ b/releasetools.py
@@ -0,0 +1,44 @@
+# Copyright (C) 2009 The Android Open Source Project
+# Copyright (c) 2011, The Linux Foundation. All rights reserved.
+# Copyright (C) 2017-2018 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.
+
+import common
+import re
+
+def FullOTA_InstallEnd(info):
+ OTA_InstallEnd(info)
+ return
+
+def IncrementalOTA_InstallEnd(info):
+ OTA_InstallEnd(info)
+ return
+
+def AddImage(info, basename, dest):
+ path = "IMAGES/" + basename
+ if path not in info.input_zip.namelist():
+ return
+
+ data = info.input_zip.read(path)
+ common.ZipWriteStr(info.output_zip, basename, data)
+ info.script.AppendExtra('package_extract_file("%s", "%s");' % (basename, dest))
+
+def OTA_InstallEnd(info):
+ info.script.Print("Patching firmware images...")
+ AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
+ AddImage(info, "init_boot.img", "/dev/block/bootdevice/by-name/init_boot")
+ AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
+ AddImage(info, "vbmeta_system.img", "/dev/block/bootdevice/by-name/vbmeta_system")
+ AddImage(info, "vendor_boot.img", "/dev/block/bootdevice/by-name/vendor_boot")
+ return
diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom
index 1a6f1c1..85c1901 100644
--- a/rootdir/etc/fstab.qcom
+++ b/rootdir/etc/fstab.qcom
@@ -52,6 +52,8 @@ odm /odm e
/dev/block/bootdevice/by-name/efs /mnt/vendor/efs ext4 noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic wait,check
/dev/block/bootdevice/by-name/sec_efs /efs ext4 noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic wait,check
/dev/block/bootdevice/by-name/dsp /vendor/dsp ext4 ro,nosuid,nodev,barrier=1 wait
+/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults,first_stage_mount
+/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults,first_stage_mount
/dev/block/bootdevice/by-name/vendor_boot /vendor_boot emmc defaults defaults,first_stage_mount
/dev/block/bootdevice/by-name/init_boot /init_boot emmc defaults defaults,first_stage_mount
/dev/block/bootdevice/by-name/vm-bootsys /product/vm-system ext4 ro,nosuid,nodev,barrier=1 defaults
diff --git a/rootdir/etc/init.e3q.rc b/rootdir/etc/init.e3q.rc
index bcefbe2..95a02b9 100644
--- a/rootdir/etc/init.e3q.rc
+++ b/rootdir/etc/init.e3q.rc
@@ -38,13 +38,6 @@ on post-fs
on late-fs
on post-fs-data
-# Samsung Pay
- mkdir /efs/pfw_data 0760 vendor_spay vendor_spay
-
-# MST/NFC Switch
- chown vendor_spay system /dev/mst_ctrl
- chmod 0660 /dev/mst_ctrl
-
#mAFPC
mkdir /efs/afc 0760 system system
exec - system system -- /system/bin/mafpc_write
diff --git a/rootdir/etc/init.samsung.rc b/rootdir/etc/init.samsung.rc
index 3dc864a..f301066 100644
--- a/rootdir/etc/init.samsung.rc
+++ b/rootdir/etc/init.samsung.rc
@@ -114,11 +114,3 @@ service factory_ssc /vendor/bin/factory.ssc
on property:sys.boot_completed=1
setprop ro.factory.sensor.delay.init 1
-
-on property:sys.dexopt.ctrl=true
- setprop dalvik.vm.dex2oat-cpu-set "0,1,5,6"
- setprop dalvik.vm.dex2oat-threads 4
-
-on property:sys.dexopt.ctrl=false
- setprop dalvik.vm.dex2oat-cpu-set ""
- set_dex2oat_threads ctrl