kitkak_property
2021-11-17 14:55:58 0 举报
Android 4.4 kitkak property属性机制调用流程图
作者其他创作
大纲/内容
ctl.restart
get_property_workspace()
property_set()
msg.cmd = PROP_MSG_SETPROP
__system_property_find()
property_init()
system\\core\\init\\util.c
kitkat\\system\\core\\libcutils\\properties.c
check_perms()
handle_control_message()
__system_property_set()
init_workspace()
__system_property_add()
pid = fork()
ctl.stop
for(;;)
map_prop_area_rw()
send_prop_msg()
main()
service_start()
运行期C库
umask(077)
get_fd_from_env()
__system_property_area_init()
read_file()
is_legal_property_name()
map_prop_area()
system\\core\\init\\init.c
__system_property_area__ = pa;
find_property()
是
start_property_service()
system\\core\\init\\property_service.c
__system_property_get()
system\\core\\init\\init_parser.c
service_stop()
queue_property_triggers_action()
以__system_property_area__为共享内存首地址对象查找
check_control_perms()
否
_exit(127)
C/C++
init_property_area()
property_changed()
__system_properties_init()
msg.cmd == PROP_MSG_SETPROP
add_environment()
Java
service_stop_or_reset()
int property_set_fd_init = 0;
__system_property_update()
unlink(addr.sun_path)
ctl.start
property_service_init_action()
create_socket()
load_properties_from_file()
close(fd)
__system_property_area__ = pa
connect()
handle_property_set_fd()
send()
ctl.?
property_load_boot_defaults();
property_set_fd = fd;
property_area_inited = 1;
service_restart()
property_get()
0 ==
execve()
__system_property_read()
属性是否存在?
/bionic/libc/bionic/system_properties.c
load_properties()
queue_all_property_triggers()
queue_property_triggers()
Shell
notify_service_state()
!= 0
0 条评论
下一页