吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7221|回复: 35
收起左侧

[Android 原创] 小爱控制美的空调(美的美居app 分析) 二

  [复制链接]
asdnasiudn 发表于 2022-9-4 13:06
本帖最后由 asdnasiudn 于 2022-9-12 21:51 编辑



第三篇: 小爱控制美的空调(blinker集成) 完

==================================
先对上篇帖子有些坛友提出的问题回复一下:
有说申请遥控的,这确实是一种解决方法,但是我更想在不增加物理实体的情况下完成功能,后面会把代码放到GitHub,是纯代码实现的与小爱交互.
有说红外模拟的,我这个空调不支持红外,只能蓝牙,wifi(小程序和app,小程序我也分析了,但是需要wx.login返回的code,就没搞了)
有说用homeAssistant的,不是一个生态体系的


================================================================
好,接上篇  小爱控制美的空调(美的美居app 分析) 一
我们获取到了 loginId,可以正式开始 模拟登录了.
同样我们先观察一下 请求的 header 和body


image.png

image.png


可以看到 header 没什么变化,只有trace 变化了,这个不重要,主要是body体变化了

[Java] 纯文本查看 复制代码
{"iotData":{"appVersion":"8.9.0","clientType":1,"deviceId":"***","iampwd":"***","iotAppId":"900","loginAccount":"***","password":"***","reqId":"97a5d7b8021142218a82afb104d6c4dc","stamp":"20220904113353"},"data":{"appKey":"46579c15","appVersion":"8.9.0","deviceId":"***","deviceName":"Xiaomi MI 9","osVersion":"11","platform":2},"stamp":"20220904113353","timestamp":"20220904113353","reqId":"62a1609db2c6427c844d26eeed9e89ff"}



可以看到我们只要找到这几个关键的参数即可:
1. deviceId: 看着就是设备id,一般随机字符即可
2.iampwd 应该和密码相关
3.password 加密后的秘密
4.loginAccount : 没啥好说的,手机号
5.appKey : 固定的,因为每次都一样

所以这里最关键的就是 password 和 iampwd  这两个参数是怎么加密出来的

直接看源码

image.png

[Java] 纯文本查看 复制代码
public final Observable<MasRsp<LoginRspData>> passwordLogin(String str, String str2, String loginId, String str3) {
        Intrinsics.checkNotNullParameter(loginId, "loginId");
        LoginLogTrackHelper.INSTANCE.addTrackerMethod("passwordLogin");
        Object m717as = api.passwordLogin(getTrackHeaders(), RequestUtils.INSTANCE.createBody(new CommonReqData(getLoginMucData(), new IotData(null, null, null, "900", str, null, SecurityUtils.encodeSHA256(loginId + SecurityUtils.encodeSHA256(str2) + HttpUtil.IOT_KEY), null, SecurityUtils.encodeMD5(SecurityUtils.encodeMD5(str2)), null, null, 1, str3, LoginParamsUtil.INSTANCE.getAppVersion(), LoginParamsUtil.INSTANCE.getDeviceId(), null, null, null, null, null, null, null, null, null, 16746151, null), null, 4, null))).m717as(LoginApiService$passwordLogin$1.INSTANCE);
        Intrinsics.checkNotNullExpressionValue(m717as, "api.passwordLogin(\n … )\n }");
        return (Observable) m717as;
}


可以看出
  
[Java] 纯文本查看 复制代码
SecurityUtils.encodeSHA256(loginId + SecurityUtils.encodeSHA256(str2) + HttpUtil.IOT_KEY)


这个就是 password

[Java] 纯文本查看 复制代码
 SecurityUtils.encodeMD5(SecurityUtils.encodeMD5(str2))


这个是 iampwd

loginId  没啥好说的 就是 我们在第一个接口获取到的返回值

HttpUtil.IOT_KEY 和上篇一样 把搜索到的值 decode 一下才能用

那么到此我们登陆就完成了,下面 开始抓取 开关空调的接口

我们记下 登陆接口返回的accessToken, 后面主要是利用这个操作空调
image.png

我们点击这个开关按钮

image.png

即可观察到空调打开,同时 charles 中可以看到相关接口

image.png

请求体

[Java] 纯文本查看 复制代码
{"stamp":"20220904123831","power":true,"reqId":"85142bc6d9804ac88ab2485b9c041087"}


可以看到 这个接口主要就是多了一个请求头: accessToken,即登录接口返回的

但是url 里面还有一串sn 码,表示空调的唯一标识,即你要操作的空调.
  
这里我先写死,后面会在代码里面进行匹配
请求体中的 "power":true 即表示打开空调,  "power":false 表示 关闭空调.
最简单的开关就完成了.至于温度/模式这些功能的控制 在另外一个接口中,参数比较复杂, sign 签名发方式也不一样,暂时未分析完.
示例代码入下:
image.png

那么我们对于美的美居的分析暂时到这就完了,下一步就开始正式接入小爱.



免费评分

参与人数 7威望 +1 吾爱币 +26 热心值 +4 收起 理由
Zugzwang + 1 + 1 谢谢@Thanks!
ronnyren + 1 鼓励转贴优秀软件安全工具和文档!
hxd97244 + 1 + 1 期待成品发布。
功夫之王 + 1 鼓励转贴优秀软件安全工具和文档!
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chenmo111 + 1 我很赞同!
wasyg + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chenmo111 发表于 2022-9-5 21:44
我就喜欢评论技术区,有实力,期待大佬的作品,小米手机无敌。 &#2919;&#9058;&#8413;&#2920;
wxue 发表于 2022-9-6 08:01
美的美居是最烂的APP,没有之一。为了收集用户手机号,位置信息,推广告,无底线,比如定时,设备本身偏不提供,非得用APP。没手机就不让用定时功能了呗,收集手机号码也算了,还位置信息,手机串号,换个手机就不让用了呗,什么逻辑。
xubin 发表于 2022-9-5 16:35
vip30200 发表于 2022-9-5 16:46
没成品  无爱
优质大叔 发表于 2022-9-5 16:51
跪求成品啊,大佬。我愿拿美国国运换你成品啊大佬
keyouli66 发表于 2022-9-5 17:02
期待大佬的成品。
hlw2008 发表于 2022-9-5 17:21
纯技术贴。赞
郁林 发表于 2022-9-5 17:23
等大佬的研究结果
pemconrv 发表于 2022-9-5 18:15
本帖最后由 pemconrv 于 2022-9-5 18:17 编辑

可以控美菱么
还有,上一篇没了
zz1181 发表于 2022-9-5 18:24
期待控格力的
竟然有人 发表于 2022-9-5 20:59
一直在关注,等大佬的成品
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表