MiuiCamera: Initial Poco F3 Repository

- Includes following changes:
* Import Xiaomi MiSys Hal and Sepolicy
* Import needed camera permissions
* Import Camera Postprocessing
* Import Poco F3 / Mi 11x Device Features [For Miui Deps]
* Import camxoverride settings & tune down CameraX logging
* Import needed camera prebuilts for Poco F3 AOSP Device trees
* Import Leica/Miui Camera mod 5.x by https://t.me/itzdfplayer & HollyBear
* Create device-specific config overlay for following Camera to enable appropriate features
* Import device-specific OpenCL
* Import AOSP and LOS aux camera overlays
* Import appropriate sepolicy for Poco F3 / Mi11x

- Repo requires:
* Have device-side hides in libinit for .mod_device and .name
* Import MiSys entries to FCM [Example: 47e3f385a6 ]
* Enable newer HIDL overrideFormat [4d9f9a23e9 ]
* Build camera for Jemalloc [c5d5ea6706 ]
* Set TARGET_CAMERA_PACKAGE_NAME for vendor tags [60ad521bf1 ] -> [c4fbccafa0 ]

Used changes from following authors:
Co-authored-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
Co-authored-by: ItzDFPlayer <deniskovalevskiy91@gmail.com>
Co-authored-by: chrisl7 <wandersonrodriguesf1@gmail.com>
This commit is contained in:
johnmart19
2024-02-22 20:55:51 +02:00
commit f369a00f69
107 changed files with 2473 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
allow cameraserver property_socket:sock_file write;
allow cameraserver init:unix_stream_socket connectto;
set_prop(cameraserver, exported_system_prop)

View File

@@ -0,0 +1,6 @@
allow platform_app {
DisplayFeatureControl
miui_multi_display
perfshielder
ProcessManager
}:service_manager find;

View File

@@ -0,0 +1,5 @@
allow priv_app DisplayFeatureControl:service_manager find;
allow priv_app miui_multi_display:service_manager find;
allow priv_app perfshielder:service_manager find;
allow priv_app ProcessManager:service_manager find;

View File

@@ -0,0 +1,2 @@
# Miui Camera
sys.camera.miui.apk u:object_r:exported_system_prop:s0

View File

@@ -0,0 +1,4 @@
type DisplayFeatureControl, service_manager_type;
type perfshielder, service_manager_type;
type miui_multi_display, service_manager_type;
type ProcessManager, service_manager_type;

View File

@@ -0,0 +1,4 @@
DisplayFeatureControl u:object_r:DisplayFeatureControl:s0
perfshielder u:object_r:perfshielder:s0
miui_multi_display u:object_r:miui_multi_display:s0
ProcessManager u:object_r:ProcessManager:s0

4
sepolicy/camera/vendor/attributes vendored Normal file
View File

@@ -0,0 +1,4 @@
# Camera
attribute vendor_hal_camerapostproc_xiaomi;
attribute vendor_hal_camerapostproc_xiaomi_client;
attribute vendor_hal_camerapostproc_xiaomi_server;

119
sepolicy/camera/vendor/file_contexts vendored Normal file
View File

@@ -0,0 +1,119 @@
# Camera Data Path
/data/user/0/com.android.camera(/.*)? u:object_r:app_data_file:s0
/data/user/0/com.miui.extraphoto(/.*)? u:object_r:app_data_file:s0
# Miui Gallery
/data/user/0/com.miui.gallery(/.*)? u:object_r:app_data_file:s0
/data/user/0/com.miui.mediaeditor(/.*)? u:object_r:app_data_file:s0
# PostProcessing
/(vendor|system/vendor)/bin/hw/vendor\.xiaomi\.hardware\.campostproc@1\.0-service u:object_r:hal_camerapostproc_xiaomi_default_exec:s0
# General Rules
/vendor/lib(64)?/libmialgoengine\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmpbase\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmibokeh_855\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgo_image_colourkeeping\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libSuperSensor\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libSuperSensorCPU\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libHalSuperSensorServer\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libSuperSensor_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmorpho_HDSR\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libHalSuperSensorServerCWrapper\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_beautyshot\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_dualcam_refocus\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_dualcam_refocus_rear_t\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_dualcam_refocus_rear_w\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_dualcam_refocus_front\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_dualcam_refocus_image\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_dualcam_refocus_video\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_portrait_lighting\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_portrait_lighting_c\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_mf_superresolution\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsupermoon\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_high_dynamic_range\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_high_dynamic_range_v5\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_low_light_hdr\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libalCFR\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libalCFRLV\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_distortion_correction\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_bodyslim\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcvp2\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcvp2_hfi\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcvp\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcvp_stub\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcvp_common\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libalhLDC\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libalAILDC\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libwa_widelens_undistort\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libflaw\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsdk_sr\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libst_sr_models\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/lib_sr_models\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libarcsoft_superportrait\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgo_ie_capture\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgo_basic\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgo_utils\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiphone_bokeh_effect\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiphone_bokeh_rectify\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiphone_bokeh_proc\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiphone_bokeh_gpf\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgo_bokeh\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiphone_bokeh_depth\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcamera_scene_dxo\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcamera_scene\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libportrait_blur\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmibokeh_mask\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/librelight_only\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libFaceDetLmd\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/rfsa/adsp(/.*)? u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libMIAIHDRhvx_interface\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/rfsa/adsp/libMIAIHDR_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/rfsa/adsp/libapps_mem_heap\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libxmi_high_dynamic_range\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libxmi_high_dynamic_range_cdsp\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/rfsa/adsp/libhdr_cdsp_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsymphony-cpu\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libc\+\+_shared\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libwa_opticalzoom_fusion\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiStereoFactoryRemapLib\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmibokeh_712\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libbeauty_face_interface\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiai_portraitsupernight\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libxml2_vendor\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiphone_capture_ldc\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libSNPE\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsnpe_dsp_domains_v2\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libPlatformValidatorShared\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiai_deblur\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmialgoengine2\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libcom.xiaomi.pluginutils\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.memcpy\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.hdr\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.skinbeautifier\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.aiasd\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.depurple\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.ldc\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.dc\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.mibokeh\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.miaiie\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.capbokeh\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.sr\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.qcom.plugin.gpu\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.miflaw\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.misegment\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.mifragment\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.bodyslim\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.superportrait\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.supernight\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/com.xiaomi.plugin.miaideblur\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsnpe_dsp_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsnpe_dsp_domains_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsnpe_dsp_v65_domains_v2_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libsnpe_dsp_v66_domains_v2_skel\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libanc_dc_base\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libwa_dof\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libwa_refocus\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libwa_depth\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libxmi_hdr_checker\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libmiStereoFactoryRemapBasicLib\.so u:object_r:same_process_hal_file:s0

View File

@@ -0,0 +1,24 @@
binder_call(hal_camera_default, platform_app)
allow hal_camera_default mnt_vendor_file:dir { search };
allow hal_camera_default proc_stat:file { open read };
allow hal_camera_default vendor_xdsp_device:chr_file { read };
# Allow Camera to access system_server
allow hal_camera_default system_server:binder { call transfer };
# Camera Post Processing
type vendor_hal_camerapostproc_xiaomi_hwservice, hwservice_manager_type;
hal_server_domain(hal_camera_default, vendor_hal_camerapostproc_xiaomi)
add_hwservice(hal_camera_server, vendor_hal_camerapostproc_xiaomi_hwservice)
allow hal_camera_client vendor_hal_camerapostproc_xiaomi_hwservice:hwservice_manager find;
# Allow camera to access /data/misc
typeattribute hal_camera_default data_between_core_and_vendor_violators;
# Allow camera to access /data/misc
allow hal_camera_default camera_data_file:sock_file write;
allow hal_camera_default camera_data_file:dir create_dir_perms;
allow hal_camera_default camera_data_file:file create_file_perms;

View File

@@ -0,0 +1,8 @@
type hal_camerapostproc_xiaomi_default_exec, exec_type, vendor_file_type, file_type;
add_hwservice(vendor_hal_camerapostproc_xiaomi_server, vendor_hal_camerapostproc_xiaomi_hwservice)
allow vendor_hal_camerapostproc_xiaomi_client vendor_hal_camerapostproc_xiaomi_hwservice:hwservice_manager find;
binder_call(vendor_hal_camerapostproc_xiaomi_client, vendor_hal_camerapostproc_xiaomi_server)
binder_call(vendor_hal_camerapostproc_xiaomi_server, vendor_hal_camerapostproc_xiaomi_client)

1
sepolicy/camera/vendor/hwservice.te vendored Normal file
View File

@@ -0,0 +1 @@
type hal_xiaomi_camera_hwservice, hwservice_manager_type;

View File

@@ -0,0 +1,2 @@
# Camera
vendor.xiaomi.hardware.campostproc::IMiPostProcService u:object_r:hal_xiaomi_camera_hwservice:s0

30
sepolicy/camera/vendor/platform_app.te vendored Normal file
View File

@@ -0,0 +1,30 @@
# Allow to execute data files
allow platform_app app_data_file:file execute;
# Allow to find camera hal
allow platform_app hal_xiaomi_camera_hwservice:hwservice_manager find;
# Allow to call camera hidl
binder_call(platform_app, hal_camera_default)
# Allow to read camera props
get_prop(platform_app, vendor_camera_prop)
get_prop(platform_app, vendor_camera_sensor_prop)
allow platform_app cgroup:file r_file_perms;
# Allow to read display props
get_prop(platform_app, vendor_display_prop)
# Allow to read audio props
get_prop(platform_app, vendor_audio_prop)
# Allow to access proc/stat
allow platform_app proc_stat:file read;
# Camera Post Processing
typeattribute platform_app halclientdomain;
typeattribute platform_app vendor_hal_camerapostproc_xiaomi_client;
allow platform_app { vendor_hal_camerapostproc_xiaomi_hwservice hal_misys_hwservice }:hwservice_manager find;

1
sepolicy/camera/vendor/property.te vendored Normal file
View File

@@ -0,0 +1 @@
vendor_public_prop(vendor_camera_sensor_prop)

View File

@@ -0,0 +1,5 @@
# Camera Vendor Props
persist.vendor.low.cutoff u:object_r:vendor_camera_prop:s0
# Camera Persist Props
vendor.camera.skip_unconfigure.packagelist u:object_r:vendor_persist_camera_prop:s0

View File

@@ -0,0 +1 @@
allow vendor_hal_camerapostproc_xiaomi platform_app:binder transfer;

View File

@@ -0,0 +1 @@
hal_client_domain(platform_app, hal_misys)

View File

@@ -0,0 +1 @@
hal_client_domain(priv_app, hal_misys)

View File

@@ -0,0 +1,4 @@
# Misys
attribute hal_misys;
attribute hal_misys_client;
attribute hal_misys_server;

5
sepolicy/misys/vendor/file_contexts vendored Normal file
View File

@@ -0,0 +1,5 @@
# MiSys
/vendor/bin/hw/vendor\.xiaomi\.hardware\.misys@1\.0-service u:object_r:hal_misys_default_exec:s0
/vendor/bin/hw/vendor\.xiaomi\.hardware\.misys@2\.0-service u:object_r:hal_misys_default_exec:s0
/vendor/bin/hw/vendor\.xiaomi\.hardware\.misys@3\.0-service u:object_r:hal_misys_default_exec:s0
/vendor/bin/hw/vendor\.xiaomi\.hardware\.misys@4\.0-service u:object_r:hal_misys_default_exec:s0

5
sepolicy/misys/vendor/hal_misys.te vendored Normal file
View File

@@ -0,0 +1,5 @@
# HwBinder IPC from client to server
binder_call(hal_misys_client, hal_misys_server)
add_hwservice(hal_misys_server, hal_misys_hwservice)
allow hal_misys_client hal_misys_hwservice:hwservice_manager find;

View File

@@ -0,0 +1,11 @@
type hal_misys_default, domain;
hal_server_domain(hal_misys_default, hal_misys)
type hal_misys_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_misys_default)
r_dir_file(hal_misys_default, firmware_file)
r_dir_file(hal_misys_default, mnt_vendor_file)
get_prop(hal_misys_default, vendor_camera_prop)

2
sepolicy/misys/vendor/hwservice.te vendored Normal file
View File

@@ -0,0 +1,2 @@
# MiSys
type hal_misys_hwservice, hwservice_manager_type;

View File

@@ -0,0 +1,2 @@
# MiSys
vendor.xiaomi.hardware.misys::IMiSys u:object_r:hal_misys_hwservice:s0

2
sepolicy/misys/vendor/platform_app.te vendored Normal file
View File

@@ -0,0 +1,2 @@
allow platform_app hal_misys_hwservice:hwservice_manager find;
binder_call(platform_app, hal_misys_default)