wifiManager的简单调试
博客专区 > shaula 的博客 > 博客详情
wifiManager的简单调试
shaula 发表于2年前
wifiManager的简单调试
  • 发表于 2年前
  • 阅读 11
  • 收藏 0
  • 点赞 2
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 客户反馈说我们设备的Wi-Fi会自行打开,远程抓了一下log查看果然是有人在setWifiEnable true~ 预置的和后装的应用一大堆,也不好意思直接说是谁,那就拎出来看看吧。

log内容:setWifiEnabled:true pid=1556,uid=1000

看这log,基本就是应用程序中调用了wifiManager.setWifiEnabled(true),去framework中查找去吧。

         frameworks/services/java/com/android/server/wifi/WifiService.java

这里查看到LOG输出的地方:

public synchronized boolean setWifiEnabled(boolean enable) {
        enforceChangePermission();
        Slog.d(TAG, "setWifiEnabled: " + enable + " pid=" + Binder.getCallingPid()
                    + ", uid=" + Binder.getCallingUid());
        if (DBG) {
            Slog.e(TAG, "Invoking mWifiStateMachine.setWifiEnabled\n");
        }

        /*
        * Caller might not have WRITE_SECURE_SETTINGS,
        * only CHANGE_WIFI_STATE is enforced
        */

        long ident = Binder.clearCallingIdentity();
        try {
            if (! mSettingsStore.handleWifiToggled(enable)) {
                // Nothing to do if wifi cannot be toggled
                return true;
            }
        } finally {
            Binder.restoreCallingIdentity(ident);
        }

        mWifiController.sendMessage(CMD_WIFI_TOGGLED);
        return true;
    }

        当前不需要注意他是如何实现的,我们的目的获取到入口应用的包名,在WifiService.java中扫一眼,没看到啥能下手的地方。转眼就去了WifiManager.java里面瞅瞅:

     public WifiManager(Context context, IWifiManager service) {

    好了,看到这里我想大家就豁然开朗了吧。

    我们可以拿context做好多事情,譬如getPackageName()、getPackageName()和getPackageName()~

     接下来就在下文的setWifiEnabled()中把获取的包名输出。重新编译了下framework,将生成的framework2.jar、framework2jar、ext.jar push 到手机里面,并自己写了一个wifi开关的小例子查看LOG,简单的改动就实现了谁调这接口就输出谁的包名。

手动点击设置里面的wifi开关也能获取到包名哦!

05-19 14:08:01.102 E/WifiManager( 1333): the_package name is com.android.settings
05-19 14:08:01.102 D/WifiService(  989): setWifiEnabled: false pid=1333, uid=1000

 

                                                                    完!

共有 人打赏支持
粉丝 0
博文 4
码字总数 2755
×
shaula
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: