微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 如何确认开机时wifi被默认开启的原因

如何确认开机时wifi被默认开启的原因

时间:10-02 整理:3721RD 点击:

【概述】
wifi开机被默认打开通常有两种原因:
1、上次关机前记录了wifi的状态为打开,下次开机时会通过WifiService.java的checkAndStartWifi()方法调用
setWifiEnable(true)打开wifi,这种情况通过WifiService log容易定位
2、第一种情况不成立,但其他apk会打开wifi,比如google的GMS包在第一次开机或恢复出厂设置后会开启wifi
【分析】
需要说明的是,不论谁开启wifi都需要调用WifiService.setWifiEnabled(),在这个方法中会把当前打开wifi的uid、
pid印出来,如:
04-17 23:25:55.112 431 442 D WifiService: setWifiEnabled: true pid=4628, uid=1000
而在更早的log中会提示与此id对应的应用名称:
04-17 23:25:54.958 431 689 I ActivityManager: Start proc com.test.android.factorypattern for activity
com.test.android.factorypattern/.mainactivity.FactoryPatternMainActivity: pid=4628 uid=1000 gids={3002,
3001, 3005, 3003, 3006, 1015, 1028, 1006, 1013}
【结论】
所以可以通过以下步骤查出调用者:
1、使用工程模式的软件版本复制问题
2、在main_log.boot中搜索关键字“setWifiEnabled”找到调用开关wifi的uid、pid信息
3、在main_log.boot中搜索关键字“ActivityManager: Start proc com”找到通过AMS启动的apk信息,并匹配对应的
uid、pid值
4、分析这个apk的名字,并尝试移除apk后对比测试验证

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top