烟台网站建设首推企汇互联见效付款,优秀企业网站欣赏店名设计,网络工程师证,导航网站的好处属性有很多种命名方法#xff0c;但对应的标签也不同#xff0c;安卓原生的一个属性标签可以参考property_contexts - OpenGrok cross reference for /system/sepolicy/private/property_contexts
对于这个#xff0c;我们先理解一下这个里面的内容分别是什么意思#xff…属性有很多种命名方法但对应的标签也不同安卓原生的一个属性标签可以参考property_contexts - OpenGrok cross reference for /system/sepolicy/private/property_contexts
对于这个我们先理解一下这个里面的内容分别是什么意思
1. 对于没有在property_contexts中定义的属性默认标签为default_prop # default property context * u:object_r:default_prop:s0 2. 以下这种代表以sys.开头的属性标签都为system_prop其他的也都是一样的 sys. u:object_r:system_prop:s0 那列几个我们常用的吧 hw. u:object_r:system_prop:s0 debug. u:object_r:debug_prop:s0 ro.hw. u:object_r:system_prop:s0 ro.config. u:object_r:config_prop:s0 persist.sys. u:object_r:system_prop:s0 3. 以system_server为例因为它本身对system_prop的属性有set权限如果需要在systemserver中新增属性的话可以以sys.开头或者以persist.sys.开头都不用再去新增对应的权限了
system_server.te - OpenGrok cross reference for /system/sepolicy/private/system_server.te
# Property Service write
set_prop(system_server, system_prop)
4. 如果你是新增其他新的属性并重新打标签那可以按照如下方法
在对应目录的property_contexts中新增标签 sys.new.biaoqian u:object_r:new_biaoqian_prop:s0 type声明有以下几种方式
system_internal_prop(new_biaoqian_prop)
system_restricted_prop(new_biaoqian_prop)
system_public_prop(new_biaoqian_prop)
......
对应的函数解释如下
基本定义define_prop如下 # define_prop(name, owner, scope) # Define a property with given owner and scope # define(define_prop, type $1, property_type, $2_property_type, $2_$3_property_type; ) 函数定义解释define(system_internal_prop, define_prop($1, system, internal) treble_sysprop_neverallow( neverallow { domain -coredomain } $1:file no_rw_file_perms; ) ) # Define a /system-owned property used only in /system 只在system使用 define(system_restricted_prop, define_prop($1, system, restricted) treble_sysprop_neverallow( neverallow { domain -coredomain } $1:property_service set; ) ) # Define a /system-owned property which cant be written outside /system 在system使用外部不能write define(system_public_prop, define_prop($1, system, public)) # Define a /system-owned property with no restrictions 在system使用没有任何限制define(system_vendor_config_prop, system_public_prop($1) set_prop(vendor_init, $1) neverallow { domain -init -vendor_init } $1:property_service set; ) # Define a /system-owned property which can only be written by vendor_init 定义一个只在system使用的属性但vendor_init可以写 define(product_internal_prop, define_prop($1, product, internal) treble_sysprop_neverallow( neverallow { domain -coredomain } $1:file no_rw_file_perms; ) ) # Define a /product-owned property used only in /product 定义一个只在product下使用的属性 define(product_restricted_prop, define_prop($1, product, restricted) treble_sysprop_neverallow( neverallow { domain -coredomain } $1:property_service set; ) ) # Define a /product-owned property which cant be written outside /product 定义一个product下可以使用的属性在product外无法写 define(product_public_prop, define_prop($1, product, public)) # Define a /product-owned property with no restrictions 在product下可以使用没有任何限制 define(vendor_internal_prop, define_prop($1, vendor, internal) treble_sysprop_neverallow( # init and dumpstate are in coredomain, but should be able to read all props. neverallow { coredomain -init -dumpstate } $1:file no_rw_file_perms; ) )# Define a /vendor-owned property used only in /vendor 只在vendor下使用的属性define(vendor_restricted_prop, define_prop($1, vendor, restricted) treble_sysprop_neverallow( # init is in coredomain, but should be able to write all props. neverallow { coredomain -init } $1:property_service set; ) ) # Define a /vendor-owned property which cant be written outside /vendor 在vendor下可以使用vendor以外不能写 define(vendor_public_prop, define_prop($1, vendor, public)) # Define a /vendor-owned property with no restrictions 在vendor下可以使用没有任何限制