From 0045ecb0c49023f25a16fb3843011d0dfb9063d5 Mon Sep 17 00:00:00 2001 From: Nick Kralevich <nnk@google.com> Date: Fri, 12 Oct 2018 08:24:04 -0700 Subject: [PATCH] installd: add fsverity ioctls installd calls fsverity ioctls FS_IOC_ENABLE_VERITY and FS_IOC_SET_VERITY_MEASUREMENT on APKs in /data/app. Allow it. Addresses the following denials: type=1400 audit(0.0:13): avc: denied { ioctl } for comm="Binder:912_1" path="/data/app/com.android.vending-QZXfga9NZzHdv31lJzPTdQ==/base.apk" dev="dm-3" ino=43887 ioctlcmd=0x6686 scontext=u:r:installd:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file permissive=0 type=1400 audit(0.0:40): avc: denied { ioctl } for comm="Binder:876_1" path="/data/app/com.android.settings-0xUwDcuYseP40L3WMUTGIw==/base.apk" dev="dm-0" ino=6855 ioctlcmd=0x6685 scontext=u:r:installd:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file permissive=0 Test: policy compiles and device boots Bug: 30972906 Change-Id: Ifc88ae6909971c2f2bb24479f5e748fc7900447d --- public/installd.te | 6 ++++++ public/ioctl_defines | 2 ++ 2 files changed, 8 insertions(+) diff --git a/public/installd.te b/public/installd.te index 8a761663e..f21cef909 100644 --- a/public/installd.te +++ b/public/installd.te @@ -13,6 +13,12 @@ allow installd apk_data_file:dir { create_dir_perms relabelfrom }; allow installd apk_data_file:file { create_file_perms relabelfrom link }; allow installd apk_data_file:lnk_file { create r_file_perms unlink }; +# FS_IOC_ENABLE_VERITY and FS_IOC_SET_VERITY_MEASUREMENT ioctls +# on APKs in /data/app, to support fsverity +allowxperm installd apk_data_file:file ioctl { + FS_IOC_ENABLE_VERITY FS_IOC_SET_VERITY_MEASUREMENT +}; + allow installd asec_apk_file:file r_file_perms; allow installd apk_tmp_file:file { r_file_perms unlink }; allow installd apk_tmp_file:dir { relabelfrom create_dir_perms }; diff --git a/public/ioctl_defines b/public/ioctl_defines index 63cf2501a..cbf490322 100644 --- a/public/ioctl_defines +++ b/public/ioctl_defines @@ -801,12 +801,14 @@ define(`FS_IOC32_GETFLAGS', `0x80046601') define(`FS_IOC32_GETVERSION', `0x80047601') define(`FS_IOC32_SETFLAGS', `0x40046602') define(`FS_IOC32_SETVERSION', `0x40047602') +define(`FS_IOC_ENABLE_VERITY', `0x6685') define(`FS_IOC_FIEMAP', `0xc020660b') define(`FS_IOC_GET_ENCRYPTION_POLICY', `0x400c6615') define(`FS_IOC_GET_ENCRYPTION_PWSALT', `0x40106614') define(`FS_IOC_GETFLAGS', `0x80086601') define(`FS_IOC_GETVERSION', `0x80087601') define(`FS_IOC_SET_ENCRYPTION_POLICY', `0x800c6613') +define(`FS_IOC_SET_VERITY_MEASUREMENT', `0x6686') define(`FS_IOC_SETFLAGS', `0x40086602') define(`FS_IOC_SETVERSION', `0x40087602') define(`FSL_HV_IOCTL_DOORBELL', `0xc008af06') -- GitLab