嵌入式系统移植 - Framework : 修改 wpa_supplicant.conf 文件权限

修改 wpa_supplicant.conf 文件权限

说明

wpa_supplicant.conf: WIFI 模组配置文件

本次修改支持为了 WIFI 配网, 例如 Airkiss 该类工具的使用. wpa_supplicant.conf 在原生系统里面是0660 wifi wifi的权限配置, 也就是说除了 Framework 的 WifiManager 有资格修改以外, 应用程序是无法修改该文件的. 可以通过修改 wpa_supplicant.conf 文件 UGO 权限来解决特殊场景下应用的问题.
在这里插入图片描述

修改源码

diff --git a/src/common/wpa_ctrl.c b/src/common/wpa_ctrl.c
old mode 100644
new mode 100755
index 82d4655..e12d3f1
--- a/src/common/wpa_ctrl.c
+++ b/src/common/wpa_ctrl.c
@@ -136,7 +136,7 @@ try_again:
 	}
 
 #ifdef ANDROID
-	chmod(ctrl->local.sun_path, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
+	chmod(ctrl->local.sun_path, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
 	chown(ctrl->local.sun_path, AID_SYSTEM, AID_WIFI);
 
 	if (os_strncmp(ctrl_path, "@android:", 9) == 0) {
diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c
index 7c7a378..8f267b0 100755
--- a/wpa_supplicant/config_file.c
+++ b/wpa_supplicant/config_file.c
@@ -1364,7 +1364,7 @@ int wpa_config_write(const char *name, struct wpa_config *config)
 
 #ifdef ANDROID
 		chmod_ret = chmod(tmp_name,
-				  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
+				  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
 #endif /* ANDROID */
 		if (chmod_ret != 0 || rename(tmp_name, orig_name) != 0)
 			ret = -1;
发布了53 篇原创文章 · 获赞 19 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_33443989/article/details/103005872