[android源码解析]bluetoothd默认初始化中main.conf的解析

本文深入探讨bluetoothd服务启动过程中的默认初始化,重点解析main.conf配置文件的作用。通过glib命令行解析库简化参数处理,并介绍如何根据main.conf设置蓝牙服务参数。在Android系统中,实际使用的配置文件位于system/bluetooth/data/main.conf。
摘要由CSDN通过智能技术生成

上文我们从总体上把握了bluetoothd启动的流程,下面我们就具体的细节来详细分析一下,首先要看到的就是init_defaults,在它里面最重要也是最有意义的就是main.conf的解析了。我们通常需要修改某个配置就去修改main.conf中的内容,那么这些内容又是如何真正被配置呢?本文就来和你一一说来。

2.2.1 默认的初始化简介

这个函数会初始化一些默认的配置,在main.conf中没有修改的参数,将会使用这里定义的,当然,若是修改过了,那就只能使用这里的参数了

static void init_defaults(void)
{
	/* Default HCId settings */
	//默认的配置
	//这里的main_opts是一个全局变量
	memset(&main_opts, 0, sizeof(main_opts));
	main_opts.mode	= MODE_CONNECTABLE; //可连接的
	main_opts.name	= g_strdup("BlueZ");//名字是bluez
	main_opts.discovto	= DEFAULT_DISCOVERABLE_TIMEOUT;//默认的可发现timeout是3分钟
	main_opts.remember_powered = TRUE;
	main_opts.reverse_sdp = TRUE;
	main_opts.name_resolv = TRUE; //需要remote name request
	main_opts.link_mode = HCI_LM_ACCEPT;
	//支持role swtich以sniff,hold和park状态了
	main_opts.link_policy = HCI_LP_RSWITCH | HCI_LP_SNIFF |
						HCI_LP_HOLD | HCI_LP_PARK;
	//这里就是获取主机的名字来作为host_name
	if (gethostname(main_opts.host_name, sizeof(main_opts.host_name) - 1) < 0)
		strcpy(main_opts.host_name, "noname");
}

2.2.2glib命令行解析库的简单

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值