From fe2645bc311400759a0c27f36b8dca98a559c14d Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Tue, 27 May 2025 12:38:37 +0530 Subject: [PATCH 01/12] FP5: Bump to FP5.UT2P.B.122.20250422 --- BoardConfig.mk | 4 ++-- lineage_FP5.mk | 2 +- proprietary-files.txt | 2 +- proprietary-firmware.txt | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BoardConfig.mk b/BoardConfig.mk index 09976df..c6f1e4c 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -161,8 +161,8 @@ 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 diff --git a/lineage_FP5.mk b/lineage_FP5.mk index 1316e9f..e3643f9 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/proprietary-files.txt b/proprietary-files.txt index 2ba577e..da7f04b 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 diff --git a/proprietary-firmware.txt b/proprietary-firmware.txt index f2e8722..b64f01e 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 -- GitLab From 4cd664cec1440c99620a008a46971118c08fe48b Mon Sep 17 00:00:00 2001 From: Rohit Sekhar Date: Mon, 16 Oct 2023 10:22:26 +0530 Subject: [PATCH 02/12] FP5: Include FPCamera [Sahil Sonar] - Address Fairphone camera SELinux denials Co-authored-by: SahilSonar --- BoardConfig.mk | 2 ++ configs/privapp-permissions-fpcam.xml | 27 +++++++++++++++++++++++++++ device.mk | 4 ++++ proprietary-files.txt | 21 +++++++++++++++++++++ sepolicy/private/property_contexts | 4 ++++ sepolicy/private/system_app.te | 1 + sepolicy/public/property.te | 1 + sepolicy/vendor/file.te | 1 + sepolicy/vendor/file_contexts | 13 +++++++++++++ sepolicy/vendor/hal_camera_default.te | 8 +++++++- sepolicy/vendor/property.te | 1 - sepolicy/vendor/property_contexts | 5 +---- 12 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 configs/privapp-permissions-fpcam.xml create mode 100644 sepolicy/private/property_contexts create mode 100644 sepolicy/private/system_app.te create mode 100644 sepolicy/public/property.te delete mode 100644 sepolicy/vendor/property.te diff --git a/BoardConfig.mk b/BoardConfig.mk index c6f1e4c..39ef952 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -167,6 +167,8 @@ 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 0000000..049ef0e --- /dev/null +++ b/configs/privapp-permissions-fpcam.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + diff --git a/device.mk b/device.mk index d3b0811..c5bd623 100644 --- a/device.mk +++ b/device.mk @@ -153,6 +153,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/proprietary-files.txt b/proprietary-files.txt index da7f04b..3d51539 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -356,6 +356,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 diff --git a/sepolicy/private/property_contexts b/sepolicy/private/property_contexts new file mode 100644 index 0000000..8de2edf --- /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 0000000..2624247 --- /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 0000000..168e87e --- /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 8b8dc3e..f1c2e33 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 f3504dd..748a0af 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,18 @@ /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/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 d08c1dc..5cb1f46 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 3da1f67..0000000 --- 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 cbec373..e1932b6 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 -- GitLab From 16f3d687459061ce09101c62dbc5e4329857c824 Mon Sep 17 00:00:00 2001 From: Rohit Sekhar Date: Mon, 10 Jun 2024 13:37:32 +0530 Subject: [PATCH 03/12] FP5: Expose long exposure time range * FPCamera, auto night mode requires & crashes otherwise. [SahilSonar] - Move to /system_ext --- system_ext.prop | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system_ext.prop b/system_ext.prop index f2cb61c..df5045d 100644 --- a/system_ext.prop +++ b/system_ext.prop @@ -1,3 +1,6 @@ +# Camera +persist.vendor.camera.tctrom=1 + # CNE persist.vendor.cne.feature=1 -- GitLab From f568c67d16e0d4ee36dd3ff35c15b77ea5aca555 Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Fri, 17 May 2024 23:23:18 +0530 Subject: [PATCH 04/12] FP5: Wire up a service to toggle fairphone camera - Ships as disabled on first boot - Add translations for German, Spanish, French && Italian --- device.mk | 3 + parts/Android.bp | 24 +++++++ parts/AndroidManifest.xml | 64 +++++++++++++++++++ parts/proguard.flags | 3 + parts/res/values/strings-de.xml | 9 +++ parts/res/values/strings-es.xml | 9 +++ parts/res/values/strings-fr.xml | 9 +++ parts/res/values/strings-it.xml | 9 +++ parts/res/values/strings.xml | 9 +++ parts/res/xml/fp_camera_settings.xml | 20 ++++++ .../settings/BootCompletedReceiver.java | 24 +++++++ .../settings/fpcamera/FPCameraActivity.java | 35 ++++++++++ .../settings/fpcamera/FPCameraFragment.java | 45 +++++++++++++ .../settings/fpcamera/FPCameraUtils.java | 51 +++++++++++++++ 14 files changed, 314 insertions(+) create mode 100644 parts/Android.bp create mode 100644 parts/AndroidManifest.xml create mode 100644 parts/proguard.flags create mode 100644 parts/res/values/strings-de.xml create mode 100644 parts/res/values/strings-es.xml create mode 100644 parts/res/values/strings-fr.xml create mode 100644 parts/res/values/strings-it.xml create mode 100644 parts/res/values/strings.xml create mode 100644 parts/res/xml/fp_camera_settings.xml create mode 100644 parts/src/org/lineageos/settings/BootCompletedReceiver.java create mode 100644 parts/src/org/lineageos/settings/fpcamera/FPCameraActivity.java create mode 100644 parts/src/org/lineageos/settings/fpcamera/FPCameraFragment.java create mode 100644 parts/src/org/lineageos/settings/fpcamera/FPCameraUtils.java diff --git a/device.mk b/device.mk index c5bd623..2697e76 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 \ diff --git a/parts/Android.bp b/parts/Android.bp new file mode 100644 index 0000000..7d131ca --- /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 0000000..0fdf13a --- /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 0000000..2145628 --- /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 0000000..d833090 --- /dev/null +++ b/parts/res/values/strings-de.xml @@ -0,0 +1,9 @@ + + + + Fairphone-Kamera aktivieren + Aktivieren Sie diese Option, um die Fairphone-Kamera-App nutzen zu können. + diff --git a/parts/res/values/strings-es.xml b/parts/res/values/strings-es.xml new file mode 100644 index 0000000..be515e4 --- /dev/null +++ b/parts/res/values/strings-es.xml @@ -0,0 +1,9 @@ + + + + Activar la cámara de Fairphone + Activa esta opción para poder usar la aplicación de cámara de Fairphone. + diff --git a/parts/res/values/strings-fr.xml b/parts/res/values/strings-fr.xml new file mode 100644 index 0000000..a6c7a11 --- /dev/null +++ b/parts/res/values/strings-fr.xml @@ -0,0 +1,9 @@ + + + + Activer l\'appareil photo de Fairphone + Activez cette option pour pouvoir utiliser l\'application appareil photo de Fairphone. + diff --git a/parts/res/values/strings-it.xml b/parts/res/values/strings-it.xml new file mode 100644 index 0000000..9e0409d --- /dev/null +++ b/parts/res/values/strings-it.xml @@ -0,0 +1,9 @@ + + + + Attivare la fotocamera di Fairphone + Attiva questa opzione per poter utilizzare l\'app fotocamera di Fairphone. + diff --git a/parts/res/values/strings.xml b/parts/res/values/strings.xml new file mode 100644 index 0000000..50d54cd --- /dev/null +++ b/parts/res/values/strings.xml @@ -0,0 +1,9 @@ + + + + Fairphone\'s camera + Activate this option to be able to use Fairphone\'s camera app. + diff --git a/parts/res/xml/fp_camera_settings.xml b/parts/res/xml/fp_camera_settings.xml new file mode 100644 index 0000000..3ec65a7 --- /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 0000000..3668216 --- /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 0000000..51e3504 --- /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 0000000..e12f2d4 --- /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 0000000..8cc8caa --- /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); + } +} -- GitLab From d6438faa33284cc774524a7375a54250510ac6ab Mon Sep 17 00:00:00 2001 From: Daniel Jacob Chittoor Date: Tue, 9 Jul 2024 21:58:26 +0530 Subject: [PATCH 05/12] parts: Mention that the user has to reboot for FPCamera to show up --- parts/res/values/strings-de.xml | 6 +++--- parts/res/values/strings-es.xml | 6 +++--- parts/res/values/strings-fr.xml | 4 ++-- parts/res/values/strings-it.xml | 4 ++-- parts/res/values/strings.xml | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/parts/res/values/strings-de.xml b/parts/res/values/strings-de.xml index d833090..f20fd59 100644 --- a/parts/res/values/strings-de.xml +++ b/parts/res/values/strings-de.xml @@ -4,6 +4,6 @@ SPDX-License-Identifier: Apache-2.0 --> - Fairphone-Kamera aktivieren - Aktivieren Sie diese Option, um die Fairphone-Kamera-App nutzen zu können. - + 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 index be515e4..69d9d62 100644 --- a/parts/res/values/strings-es.xml +++ b/parts/res/values/strings-es.xml @@ -4,6 +4,6 @@ SPDX-License-Identifier: Apache-2.0 --> - Activar la cámara de Fairphone - Activa esta opción para poder usar la aplicación de cámara de Fairphone. - + 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 index a6c7a11..f1c16c2 100644 --- a/parts/res/values/strings-fr.xml +++ b/parts/res/values/strings-fr.xml @@ -4,6 +4,6 @@ SPDX-License-Identifier: Apache-2.0 --> - Activer l\'appareil photo de Fairphone - Activez cette option pour pouvoir utiliser l\'application appareil photo de Fairphone. + 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 index 9e0409d..f012929 100644 --- a/parts/res/values/strings-it.xml +++ b/parts/res/values/strings-it.xml @@ -4,6 +4,6 @@ SPDX-License-Identifier: Apache-2.0 --> - Attivare la fotocamera di Fairphone - Attiva questa opzione per poter utilizzare l\'app fotocamera di Fairphone. + 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 index 50d54cd..5bc5b10 100644 --- a/parts/res/values/strings.xml +++ b/parts/res/values/strings.xml @@ -4,6 +4,6 @@ SPDX-License-Identifier: Apache-2.0 --> - Fairphone\'s camera - Activate this option to be able to use Fairphone\'s camera app. - + 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 -- GitLab From 8d4a5da010826e196a6b2ba25e356a43d2b66b0e Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Tue, 13 Aug 2024 21:11:57 +0530 Subject: [PATCH 06/12] FP5: Add 32 bit libcamxexternalformatutils lib - gralloc uses 32bit libcamxexternalformatutils --- proprietary-files.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/proprietary-files.txt b/proprietary-files.txt index 3d51539..4a5da2a 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -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 -- GitLab From b421e3b3c3a0d9e5ea0878386f30fa877dc12944 Mon Sep 17 00:00:00 2001 From: Adarsh Grewal Date: Fri, 16 Aug 2024 21:42:19 +0530 Subject: [PATCH 07/12] FP5: Allow fairphone & /e/OS camera to skip stream size check - Fixes: https://katb.in/ahaqekegadi. --- system_ext.prop | 1 + 1 file changed, 1 insertion(+) diff --git a/system_ext.prop b/system_ext.prop index df5045d..ebc01be 100644 --- a/system_ext.prop +++ b/system_ext.prop @@ -1,4 +1,5 @@ # Camera +persist.vendor.camera.privapp.list=com.fp5.camera,foundation.e.camera persist.vendor.camera.tctrom=1 # CNE -- GitLab From e21ff99dfe38e7c4c2a205893e693e5523fbfbf6 Mon Sep 17 00:00:00 2001 From: Rohit Sekhar Date: Tue, 20 Aug 2024 13:42:23 +0530 Subject: [PATCH 08/12] FP5: FPCamera: Resolve SuperNight Mode --- proprietary-files.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proprietary-files.txt b/proprietary-files.txt index 4a5da2a..70d598e 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -179,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 -- GitLab From 89ca3a62aab76921f4d5f8bac07bfe2280035246 Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Tue, 20 Aug 2024 19:48:24 +0530 Subject: [PATCH 09/12] FP5: Add 64bit codec2 libs - Fixes: E QC2V4l2Codec: YV12 is not a supported pixel format! --- proprietary-files.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/proprietary-files.txt b/proprietary-files.txt index 70d598e..73c5372 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -876,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 -- GitLab From c3fffb4e8925a9f1803af9cc2a703cdd93f4f8be Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Thu, 22 Aug 2024 14:50:48 +0530 Subject: [PATCH 10/12] FP5: Enable high speed batching for HSR - Fixes 240fps slomotion capture. --- system_ext.prop | 1 + 1 file changed, 1 insertion(+) diff --git a/system_ext.prop b/system_ext.prop index ebc01be..b1a79d0 100644 --- a/system_ext.prop +++ b/system_ext.prop @@ -1,6 +1,7 @@ # 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 -- GitLab From d928ca7926868df8da3acb1cb587034a4aacca71 Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Wed, 1 Jan 2025 18:39:25 +0530 Subject: [PATCH 11/12] FP5: Set dbg camera package to fp5 camera - Fixes auto night light. --- system_ext.prop | 1 + 1 file changed, 1 insertion(+) diff --git a/system_ext.prop b/system_ext.prop index b1a79d0..a9afed6 100644 --- a/system_ext.prop +++ b/system_ext.prop @@ -1,4 +1,5 @@ # 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 -- GitLab From 98bc73c4f180ac15332fa49daf11174eadec52b9 Mon Sep 17 00:00:00 2001 From: SahilSonar Date: Tue, 27 May 2025 14:52:30 +0530 Subject: [PATCH 12/12] FP5: Label libtctcameraalgo dependencies as same_process_hal_file - Fix dlopens caused by fp5 camera trying to access them. - Although stock doesn't label them as same_process_hal_file, I don't see any other way. --- sepolicy/vendor/file_contexts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index 748a0af..f27956d 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -28,6 +28,10 @@ /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 -- GitLab