我是在分析wifi的启动流程才弄懂这个知识点的,下面就以wifi为例:高通平台代码
1.在system/core/rootdir/init.qcom.rc中
service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant -Dnl80211 -ddd
class late_start
user root
group wifi inet
disabled
oneshot
这个是wifi service的定义,下面的参数就不讲解的
2.在hardware/libhardware_legacy/wifi/wifi.c中
在函数wifi_start_supplicant_common中有
snprintf(daemon_cmd, PROPERTY_VALUE_MAX, "%s:-i%s -c%s -e%s", SUPPLICANT_NAME, iface, config_file, WIFI_ENTROPY_FILE);
property_set("ctl.start", daemon_cmd);//这个就是启动wifi service
实际的shell命令是
/system/bin/wpa_supplicant -Dnl80211 -ddd -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf &
在函数wifi_stop_supplicant中有
property_set("ctl.stop", SUPPLICANT_NAME);//停止wifi service
实际shell命令就是kill -9 pid
阅读(5514) | 评论(0) | 转发(0) |