diff --git a/BoardConfig.mk b/BoardConfig.mk
index 09976dfffc461c54bf36fd38d65f86709df48c88..39ef952fd8c651bf62dcb380a4c8f8aee26b99e3 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -161,12 +161,14 @@ TARGET_USERIMAGES_USE_F2FS := true
ENABLE_VENDOR_RIL_SERVICE := true
# Security patch level
-BOOT_SECURITY_PATCH := 2024-11-05
-VENDOR_SECURITY_PATCH := 2024-11-05
+BOOT_SECURITY_PATCH := 2025-05-05
+VENDOR_SECURITY_PATCH := 2025-05-05
# SEPolicy
include device/qcom/sepolicy_vndr/SEPolicy.mk
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
+SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/public
+SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
# Verified Boot
BOARD_AVB_ENABLE := true
diff --git a/configs/privapp-permissions-fpcam.xml b/configs/privapp-permissions-fpcam.xml
new file mode 100644
index 0000000000000000000000000000000000000000..049ef0e5c1179e0d04be3fb4b29216fb006d7eeb
--- /dev/null
+++ b/configs/privapp-permissions-fpcam.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/device.mk b/device.mk
index d3b0811ed568696615df854d380b766e97d94718..2697e7628129ecdca23e3e7a36e85d376f2878b6 100644
--- a/device.mk
+++ b/device.mk
@@ -101,6 +101,9 @@ PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl \
android.hardware.camera.provider@2.4-service_64
+PRODUCT_PACKAGES += \
+ FairphoneCameraService
+
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
@@ -153,6 +156,10 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
+# FPCamera
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/privapp-permissions-fpcam.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/privapp-permissions-fpcam.xml
+
# GPS
PRODUCT_PACKAGES += \
android.hardware.gnss@2.1-impl-qti:64 \
diff --git a/lineage_FP5.mk b/lineage_FP5.mk
index 1316e9f74cca57944beb6592266605b859478e7f..e3643f96bb4ebd9e75465c04af3d02b0d26f9c3e 100644
--- a/lineage_FP5.mk
+++ b/lineage_FP5.mk
@@ -31,4 +31,4 @@ PRODUCT_GMS_CLIENTID_BASE := android-alcatel
PRODUCT_BUILD_PROP_OVERRIDES += \
TARGET_PRODUCT=$(PRODUCT_SYSTEM_NAME)
-BUILD_FINGERPRINT := Fairphone/FP5/FP5:14/UKQ1.230924.001/UT2H:user/release-keys
+BUILD_FINGERPRINT := Fairphone/FP5/FP5:14/UKQ1.230924.001/UT2P:user/release-keys
diff --git a/parts/Android.bp b/parts/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..7d131ca3780ccd012533856833b84cba82e8e0c8
--- /dev/null
+++ b/parts/Android.bp
@@ -0,0 +1,24 @@
+//
+// Copyright (C) 2023-2024 The LineageOS Project
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+
+android_app {
+ name: "FairphoneCameraService",
+
+ srcs: ["src/**/*.java"],
+ resource_dirs: ["res"],
+ certificate: "platform",
+ platform_apis: true,
+ system_ext_specific: true,
+ privileged: true,
+
+ static_libs: [
+ "org.lineageos.settings.resources",
+ ],
+
+ optimize: {
+ proguard_flags_files: ["proguard.flags"],
+ },
+}
diff --git a/parts/AndroidManifest.xml b/parts/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0fdf13aa1df2236130f44c13c62b10dcb7ef2b84
--- /dev/null
+++ b/parts/AndroidManifest.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/parts/proguard.flags b/parts/proguard.flags
new file mode 100644
index 0000000000000000000000000000000000000000..2145628447c1c517cc772218a1f8f2a336bfcaff
--- /dev/null
+++ b/parts/proguard.flags
@@ -0,0 +1,3 @@
+-keep class org.lineageos.settings.fpcamera.* {
+ *;
+}
diff --git a/parts/res/values/strings-de.xml b/parts/res/values/strings-de.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f20fd598cbde5e862134c6dc75ebfb09c87e8ce6
--- /dev/null
+++ b/parts/res/values/strings-de.xml
@@ -0,0 +1,9 @@
+
+
+
+ Fairphone Kamera
+ Aktivieren Sie diese Option, um die Fairphone-Kamera-App zu verwenden. Ein Neustart ist erforderlich, damit die Änderungen wirksam werden.
+
\ No newline at end of file
diff --git a/parts/res/values/strings-es.xml b/parts/res/values/strings-es.xml
new file mode 100644
index 0000000000000000000000000000000000000000..69d9d623b1babddd6b9cddedb4014b520fbf3f02
--- /dev/null
+++ b/parts/res/values/strings-es.xml
@@ -0,0 +1,9 @@
+
+
+
+ Cámara Fairphone
+ Habilita esta opción para usar la aplicación de cámara de Fairphone. Es necesario reiniciar para que los cambios surtan efecto.
+
\ No newline at end of file
diff --git a/parts/res/values/strings-fr.xml b/parts/res/values/strings-fr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f1c16c2ce9c86ca07fbdec54b17ba9a4279f7a07
--- /dev/null
+++ b/parts/res/values/strings-fr.xml
@@ -0,0 +1,9 @@
+
+
+
+ Appareil photo Fairphone
+ Activez cette option pour utiliser l\'application appareil photo de Fairphone. Un redémarrage est requis pour que les modifications prennent effet.
+
diff --git a/parts/res/values/strings-it.xml b/parts/res/values/strings-it.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f012929b9089cbd2116b6c8eef60c7b40217d1d8
--- /dev/null
+++ b/parts/res/values/strings-it.xml
@@ -0,0 +1,9 @@
+
+
+
+ Fotocamera Fairphone
+ Abilita questa opzione per utilizzare l\'app fotocamera di Fairphone. È necessario un riavvio affinché le modifiche abbiano effetto.
+
diff --git a/parts/res/values/strings.xml b/parts/res/values/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5bc5b10b53a9723f3263dcaaf5353a3daf5b964c
--- /dev/null
+++ b/parts/res/values/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+ Fairphone Camera
+ Enable this option to use the Fairphone camera app. A reboot is required for changes to take effect.
+
\ No newline at end of file
diff --git a/parts/res/xml/fp_camera_settings.xml b/parts/res/xml/fp_camera_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3ec65a7f4ed47453e4355bbff928aa062ce168cb
--- /dev/null
+++ b/parts/res/xml/fp_camera_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/parts/src/org/lineageos/settings/BootCompletedReceiver.java b/parts/src/org/lineageos/settings/BootCompletedReceiver.java
new file mode 100644
index 0000000000000000000000000000000000000000..3668216899899e05699d5b8b26932cfa15a77790
--- /dev/null
+++ b/parts/src/org/lineageos/settings/BootCompletedReceiver.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2023-2024 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.settings;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import org.lineageos.settings.fpcamera.FPCameraUtils;
+
+public class BootCompletedReceiver extends BroadcastReceiver {
+
+ private static final String TAG = "FairphoneCamera";
+
+ @Override
+ public void onReceive(final Context context, Intent intent) {
+ Log.d(TAG, "Received boot completed intent");
+ FPCameraUtils.startService(context);
+ }
+}
diff --git a/parts/src/org/lineageos/settings/fpcamera/FPCameraActivity.java b/parts/src/org/lineageos/settings/fpcamera/FPCameraActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..51e3504edc454f3b31d0c10c4f0cef2cf8b56896
--- /dev/null
+++ b/parts/src/org/lineageos/settings/fpcamera/FPCameraActivity.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023-2024 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.settings.fpcamera;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.MenuItem;
+
+import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
+
+import org.lineageos.settings.R;
+
+public class FPCameraActivity extends CollapsingToolbarBaseActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ getFragmentManager().beginTransaction().replace(R.id.content_frame,
+ new FPCameraFragment(), "fpCamera").commit();
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ finishAfterTransition();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+}
diff --git a/parts/src/org/lineageos/settings/fpcamera/FPCameraFragment.java b/parts/src/org/lineageos/settings/fpcamera/FPCameraFragment.java
new file mode 100644
index 0000000000000000000000000000000000000000..e12f2d49dfe707402a2eba4ab6870726a286f15b
--- /dev/null
+++ b/parts/src/org/lineageos/settings/fpcamera/FPCameraFragment.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2023-2024 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.settings.fpcamera;
+
+import android.os.Bundle;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragment;
+import androidx.preference.SwitchPreference;
+
+import org.lineageos.settings.R;
+
+import java.io.IOException;
+
+public class FPCameraFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener {
+
+ private static final String PREF_FP_CAMERA = "fp_camera_pref";
+
+ private SwitchPreference mFPCameraPref;
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ addPreferencesFromResource(R.xml.fp_camera_settings);
+
+ mFPCameraPref = findPreference(PREF_FP_CAMERA);
+ mFPCameraPref.setOnPreferenceChangeListener(this);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (preference == mFPCameraPref) {
+ boolean value = (Boolean) newValue;
+ return FPCameraUtils.setApplicationEnabledSetting(getActivity(), value);
+ }
+ return false;
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ }
+}
diff --git a/parts/src/org/lineageos/settings/fpcamera/FPCameraUtils.java b/parts/src/org/lineageos/settings/fpcamera/FPCameraUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..8cc8caa6374fe8576753dbeada99b8d380f58094
--- /dev/null
+++ b/parts/src/org/lineageos/settings/fpcamera/FPCameraUtils.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2023-2024 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.settings.fpcamera;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.os.UserHandle;
+import android.util.Log;
+
+import androidx.preference.PreferenceManager;
+
+public class FPCameraUtils {
+
+ private static final String TAG = "FPCameraUtils";
+ private static final String PREF_FIRST_BOOT = "first_boot";
+ private static final String FP_CAMERA_PACKAGE = "com.fp5.camera";
+
+ public static boolean setApplicationEnabledSetting(Context context, boolean enable) {
+ PackageManager pm = context.getPackageManager();
+ try {
+ pm.setApplicationEnabledSetting(FP_CAMERA_PACKAGE,
+ enable ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP);
+ return true;
+ } catch (Exception e) {
+ Log.e(TAG, "Failed to " + (enable ? "enable" : "disable") + " " + FP_CAMERA_PACKAGE, e);
+ return false;
+ }
+ }
+
+ public static void startService(Context context) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+
+ if (isFirstBoot(prefs)) {
+ boolean isFPCamDisabled = setApplicationEnabledSetting(context, false);
+ if (isFPCamDisabled) {
+ prefs.edit().putBoolean(PREF_FIRST_BOOT, false).apply();
+ }
+ }
+ }
+
+ private static boolean isFirstBoot(SharedPreferences prefs) {
+ return prefs.getBoolean(PREF_FIRST_BOOT, true);
+ }
+}
diff --git a/proprietary-files.txt b/proprietary-files.txt
index 2ba577e954914ebc253bcd4b2b89f90e92f3dd90..73c53729908909b216fe272089c878d8c1cd23f0 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -1,4 +1,4 @@
-# Unpinned blobs from Fairphone/FP5/FP5:14/UKQ1.230924.001/UT2H:user/release-keys
+# Unpinned blobs from Fairphone/FP5/FP5:14/UKQ1.230924.001/UT2P:user/release-keys
# Current blobs with ELF checks disabled:
# libOmxVideoDSMode depends on libOmxCore, which is a gnu makefile target
@@ -112,6 +112,7 @@ vendor/lib64/vendor.qti.hardware.cacert@1.0.so
# Camera
vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc:vendor/etc/init/android.hardware.camera.provider@2.4-service_64-qti.rc
+vendor/lib/libcamxexternalformatutils.so
vendor/lib64/camera/com.qti.eeprom.gt24p128f_fp5_imx858_eeprom.so
vendor/lib64/camera/com.qti.eeprom.gt24p128f_fp5_s5kjn1_eeprom.so
vendor/lib64/camera/com.qti.eeprom.p24p256c_fp5_imx800_eeprom.so
@@ -178,6 +179,8 @@ vendor/lib64/hw/camera.qcom.so
vendor/lib64/hw/com.qti.chi.override.so
vendor/lib64/hw/sensors.vl53l1_fp5.so
vendor/lib64/libanc_hdr.so
+vendor/lib64/libanc_hdr_adapter_AncSuperNightLite.so
+vendor/lib64/libanc_hdr_adapter_AncSuperNight.so
vendor/lib64/libanc_single_rt_bokeh.so
vendor/lib64/libanc_single_rt_bokeh_rear.so
vendor/lib64/libanc_supervq.so
@@ -356,6 +359,27 @@ vendor/etc/camera/tuningversion_fp5.txt
# Camera firmware
vendor/firmware/CAMERA_ICP_170.elf
+# Camera (FPCamera)
+-priv-app/FPCamera/FPCamera.apk
+system_ext/etc/public.libraries-tct.txt
+system_ext/lib64/libtctcameraalgo_jni.tct.so
+vendor/lib64/libtctcameraalgo.so
+vendor/lib64/com.tct.cameraalgo.distortion.so
+vendor/lib64/com.tct.cameraalgo.gs.so
+vendor/lib64/com.tct.cameraalgo.hdr.so
+vendor/lib64/com.tct.cameraalgo.hwmfnr.so
+vendor/lib64/com.tct.cameraalgo.mirror.so
+vendor/lib64/com.tct.cameraalgo.morphozoom.so
+vendor/lib64/com.tct.cameraalgo.singlebokeh.so
+vendor/lib64/com.tct.cameraalgo.supernight.so
+vendor/lib64/com.tct.cameraalgo.tcldualbokeh.so
+vendor/lib64/com.tct.cameraalgo.watermark.so
+vendor/lib64/libmorpho_image_refiner.so
+vendor/lib64/libanc_single_bokeh.so
+vendor/lib64/libanc_single_bokeh_rear.so
+vendor/lib64/libtcl_dualcam_bokeh_cap.so
+vendor/lib64/libmorpho_super_resolution.so
+
# CDSP
vendor/bin/cdsprpcd
vendor/etc/init/vendor.qti.cdsprpc-service.rc
@@ -852,6 +876,14 @@ vendor/lib/libqcodec2_hooks.so
vendor/lib/libqcodec2_platform.so
vendor/lib/libqcodec2_utils.so
vendor/lib/libqcodec2_v4l2codec.so
+vendor/lib64/libqc2vppfilter.so
+vendor/lib64/libqcodec2_base.so
+vendor/lib64/libqcodec2_basecodec.so
+vendor/lib64/libqcodec2_core.so
+vendor/lib64/libqcodec2_hooks.so
+vendor/lib64/libqcodec2_platform.so
+vendor/lib64/libqcodec2_utils.so
+vendor/lib64/libqcodec2_v4l2codec.so
# Media configs
vendor/etc/media_yupik_iot/video_system_specs.json
diff --git a/proprietary-firmware.txt b/proprietary-firmware.txt
index f2e87229aa12d41e6b7e87a6e579f5f4d1020d0b..b64f01ef429e5e485c6e1f5c74bbeaaa1f3d1af8 100644
--- a/proprietary-firmware.txt
+++ b/proprietary-firmware.txt
@@ -1,4 +1,4 @@
-# Firmware from Fairphone/FP5/FP5:14/UKQ1.230924.001/UT2H:user/release-keys
+# Firmware from Fairphone/FP5/FP5:14/UKQ1.230924.001/UT2P:user/release-keys
abl.elf:abl.img;AB
aop.mbn:aop.img;AB
diff --git a/sepolicy/private/property_contexts b/sepolicy/private/property_contexts
new file mode 100644
index 0000000000000000000000000000000000000000..8de2edf3abba4a141fff985a39aacd78fa50a8b9
--- /dev/null
+++ b/sepolicy/private/property_contexts
@@ -0,0 +1,4 @@
+# FPCamera
+persist.vendor.tct.camera. u:object_r:vendor_t2m_prop:s0
+vendor.tct.camera. u:object_r:vendor_t2m_prop:s0
+vendor.t2m. u:object_r:vendor_t2m_prop:s0
diff --git a/sepolicy/private/system_app.te b/sepolicy/private/system_app.te
new file mode 100644
index 0000000000000000000000000000000000000000..2624247febe1d61013bbe25c588e67c3dc025c3b
--- /dev/null
+++ b/sepolicy/private/system_app.te
@@ -0,0 +1 @@
+get_prop(system_app, vendor_t2m_prop)
diff --git a/sepolicy/public/property.te b/sepolicy/public/property.te
new file mode 100644
index 0000000000000000000000000000000000000000..168e87eb727043495dede3a16aef8a4ca5979527
--- /dev/null
+++ b/sepolicy/public/property.te
@@ -0,0 +1 @@
+vendor_public_prop(vendor_t2m_prop)
diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te
index 8b8dc3e2d37ccdf83ef2834d05cce3232d35567c..f1c2e3322cf562a2fc2c3d7fdecb72e430853c8c 100644
--- a/sepolicy/vendor/file.te
+++ b/sepolicy/vendor/file.te
@@ -1,4 +1,5 @@
type fingerprint_data_file, file_type, data_file_type;
+type persist_camera_file, file_type, vendor_persist_type;
type persist_t2m_param_file, file_type, vendor_persist_type;
type vendor_sysfs_emkit, fs_type, sysfs_type;
type vendor_sysfs_touchpanel, fs_type, sysfs_type;
diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts
index f3504dd4eb96f07522be4a65b54fcae3fb680224..f27956d5fab2fc22871f2e840ea44fa5ff2967e0 100644
--- a/sepolicy/vendor/file_contexts
+++ b/sepolicy/vendor/file_contexts
@@ -3,6 +3,7 @@
# Camera
/dev/stmvl53l1_ranging u:object_r:vl53l1_device:s0
+/mnt/vendor/persist/camera(/.*)? u:object_r:persist_camera_file:s0
/sys/devices/virtual/deviceinfo/device_info/CamNameB u:object_r:vendor_sysfs_camera:s0
/sys/devices/virtual/deviceinfo/device_info/CamNameB2 u:object_r:vendor_sysfs_camera:s0
/sys/devices/virtual/deviceinfo/device_info/CamNameF u:object_r:vendor_sysfs_camera:s0
@@ -17,6 +18,22 @@
/data/vendor/focaltech(/.*)? u:object_r:fingerprint_data_file:s0
/dev/focaltech_fp u:object_r:fingerprint_device:s0
+# FPCamera
+/vendor/lib64/libtctcameraalgo\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/com\.tct\.cameraalgo\.(.*)\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libundistort\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libmorpho_image_refiner\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libtcl_dualcam_bokeh_cap\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libanc_single_bokeh\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libanc_single_bokeh_rear\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libmorpho_super_resolution\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libanc_hdr\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libcamera_metadata\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libexif\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libjpeg\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/libyuv\.so u:object_r:same_process_hal_file:s0
+/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0\.so u:object_r:same_process_hal_file:s0
+
# Iris
/vendor/bin/hw/vendor\.pixelworks\.hardware\.feature\.irisfeature-service u:object_r:hal_graphics_composer_default_exec:s0
diff --git a/sepolicy/vendor/hal_camera_default.te b/sepolicy/vendor/hal_camera_default.te
index d08c1dc0a8780c300f397061d4078be7b62f14de..5cb1f46c6f00db48c649784bee238ead159ed810 100644
--- a/sepolicy/vendor/hal_camera_default.te
+++ b/sepolicy/vendor/hal_camera_default.te
@@ -4,4 +4,10 @@ allow hal_camera_default vendor_xdsp_device:chr_file r_file_perms;
allow hal_camera_default vendor_sysfs_camera:dir r_dir_perms;
allow hal_camera_default vendor_sysfs_camera:file rw_file_perms;
-set_prop(hal_camera_default, vendor_t2m_sys_prop)
+set_prop(hal_camera_default, vendor_t2m_prop)
+
+allow hal_camera_default persist_camera_file:dir rw_dir_perms;
+allow hal_camera_default persist_camera_file:file create_file_perms;
+
+allow hal_camera_default mnt_vendor_file:dir rw_dir_perms;
+allow hal_camera_default mnt_vendor_file:file create_file_perms;
diff --git a/sepolicy/vendor/property.te b/sepolicy/vendor/property.te
deleted file mode 100644
index 3da1f6757a5cdc8a8e34fc889b7af0822711ad1d..0000000000000000000000000000000000000000
--- a/sepolicy/vendor/property.te
+++ /dev/null
@@ -1 +0,0 @@
-vendor_internal_prop(vendor_t2m_sys_prop)
diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts
index cbec373c994534f9f892c8b9560f044755434a2e..e1932b69e2fb6139c140d848f081e8c1f0d59733 100644
--- a/sepolicy/vendor/property_contexts
+++ b/sepolicy/vendor/property_contexts
@@ -1,4 +1 @@
-# Serial Nums
-vendor.t2m.camera_main.sn u:object_r:vendor_t2m_sys_prop:s0
-vendor.t2m.camera_aux.sn u:object_r:vendor_t2m_sys_prop:s0
-vendor.t2m.camera_front.sn u:object_r:vendor_t2m_sys_prop:s0
+persist.vendor.camera.tctrom u:object_r:vendor_camera_prop:s0
diff --git a/system_ext.prop b/system_ext.prop
index f2cb61c52b7776719d67cdeb7a1fdd2a29b0f5f3..a9afed622f863934d8111b2b02b6a2cc4fb79065 100644
--- a/system_ext.prop
+++ b/system_ext.prop
@@ -1,3 +1,9 @@
+# Camera
+debug.camera.packagename=com.fp5.camera
+persist.vendor.camera.privapp.list=com.fp5.camera,foundation.e.camera
+persist.vendor.camera.tctrom=1
+sys.camera.enable.hsbatch=true
+
# CNE
persist.vendor.cne.feature=1