diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil index 8db5d34551223ee08a15207a81e4a5cb25cdcb00..6db5f1e4ce66a95bc248e332b188f684c6c02cf2 100644 --- a/private/compat/26.0/26.0.ignore.cil +++ b/private/compat/26.0/26.0.ignore.cil @@ -34,6 +34,7 @@ exported2_vold_prop exported3_default_prop exported3_system_prop + fingerprint_vendor_data_file fs_bpf hal_broadcastradio_hwservice hal_cas_hwservice diff --git a/private/file_contexts b/private/file_contexts index 38bcafd81c012b0cb9774f7106b15ded344dd1e0..b3ce244960d7ed1443ad739251177ed8b2a502fa 100644 --- a/private/file_contexts +++ b/private/file_contexts @@ -415,6 +415,9 @@ # Fingerprint data /data/system/users/[0-9]+/fpdata(/.*)? u:object_r:fingerprintd_data_file:s0 +# Fingerprint vendor data file +/data/vendor_de/[0-9]+/fpdata(/.*)? u:object_r:fingerprint_vendor_data_file:s0 + # Bootchart data /data/bootchart(/.*)? u:object_r:bootchart_data_file:s0 diff --git a/private/vold_prepare_subdirs.te b/private/vold_prepare_subdirs.te index 58e510ed8bfcc08ade800b78a50f4ffebaeac714..6acb2ced556b82c65d433ceaaae6c46654373968 100644 --- a/private/vold_prepare_subdirs.te +++ b/private/vold_prepare_subdirs.te @@ -13,3 +13,4 @@ allow vold_prepare_subdirs system_data_file:dir { open read write add_name remov allow vold_prepare_subdirs vold_data_file:dir { create open read write search getattr setattr remove_name rmdir }; allow vold_prepare_subdirs vold_data_file:file { getattr unlink }; allow vold_prepare_subdirs storaged_data_file:dir create_dir_perms; +allow vold_prepare_subdirs fingerprint_vendor_data_file:dir create_dir_perms; diff --git a/public/domain.te b/public/domain.te index cffe5cdae1c6f7e3bea67495765d50dd80f088af..71af702141b572057d48ba9ad931053605c0f55e 100644 --- a/public/domain.te +++ b/public/domain.te @@ -765,6 +765,7 @@ full_treble_only(` -data_between_core_and_vendor_violators -init -vendor_init + -vold_prepare_subdirs } { data_file_type -core_data_file_type @@ -775,6 +776,7 @@ full_treble_only(` -data_between_core_and_vendor_violators -init -vendor_init + -vold_prepare_subdirs } { data_file_type -core_data_file_type diff --git a/public/file.te b/public/file.te index ca6022d083fa63ed96cc766d90e8a7ababd35e2a..7a0fabc9f418893d22f93d3db12768d5125542c1 100644 --- a/public/file.te +++ b/public/file.te @@ -291,6 +291,8 @@ type backup_data_file, file_type, data_file_type, core_data_file_type, mlstruste type bluetooth_efs_file, file_type; # Type for fingerprint template file type fingerprintd_data_file, file_type, data_file_type, core_data_file_type; +# Type for _new_ fingerprint template file +type fingerprint_vendor_data_file, file_type, data_file_type; # Type for appfuse file. type app_fuse_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; diff --git a/public/hal_fingerprint.te b/public/hal_fingerprint.te index 36de76191c0a38118a576784af64e9aaf5cb4424..ebe0b0c82a77f1a5a0c0b131f76b9a4ec20ffc47 100644 --- a/public/hal_fingerprint.te +++ b/public/hal_fingerprint.te @@ -8,5 +8,10 @@ allow hal_fingerprint_client hal_fingerprint_hwservice:hwservice_manager find; # For memory allocation allow hal_fingerprint ion_device:chr_file r_file_perms; +allow hal_fingerprint fingerprint_vendor_data_file:file { create_file_perms }; +allow hal_fingerprint fingerprint_vendor_data_file:dir rw_dir_perms; + r_dir_file(hal_fingerprint, cgroup) r_dir_file(hal_fingerprint, sysfs) + + diff --git a/public/tee.te b/public/tee.te index f023d5c239350e9fea693a0057f497a7b7f502ee..0f9b32dc9d4cb095f4ea361e39a52b09d0c01b29 100644 --- a/public/tee.te +++ b/public/tee.te @@ -5,3 +5,7 @@ type tee, domain; # Device(s) for communicating with the TEE type tee_device, dev_type; + +allow tee fingerprint_vendor_data_file:dir rw_dir_perms; +allow tee fingerprint_vendor_data_file:file create_file_perms; +