名称可随意填;communityId 与 doorControlId 来自一次开门请求的抓包(URL 中的参数)。至少添加一个门。
sign 计算模板:支持 {sessionId} {appChannel} {doorControlId} {communityId} {mobile} {timestamp} {nonce} {version} {SECRET} {sorted}(sorted=除 sign 外参数按 key 升序 k=v& 拼接)。最终 sign = MD5(模板填充结果)。
1. 宝塔 → 网站 → 添加站点(PHP 环境)→ 建好后进入网站根目录。
2. 把 index.html / style.css / app.js / proxy.php 四个文件一起上传到根目录。
3. 手机浏览器打开你的域名 → 「添加到主屏幕」。
proxy.php 是同源代理,负责转发接口解决跨域;若只放了三个静态文件(无 PHP),页面只能进入演示模式,无法真正开门。
1. 抓一次 App 的「开门」请求:URL 是 POST /api/open/doorcontrol/v2/open?sessionId=..&doorControlId=..&communityId=..×tamp=..&nonce=..&sign=..
2. 把整段 query 粘贴到 设置→「开门兜底参数」,填好 doorControlId/communityId,即可先开门(部分老接口允许重放)。
3. 要长期稳定使用(timestamp/nonce 每次变化),需要 sign 算法:设置里改「sign 模板 + 密钥常量」,sign = MD5(模板)。
亲邻 App 是 Flutter 且带证书校验,普通代理抓不到开门接口。可行办法:
· 支付宝小程序:亲邻在支付宝有小程序端,走系统代理,用 iOS「Stream」/ Android「HttpCanary」即可抓到同族接口(网关域名 gateway2 / mobileapi3.qinlinkeji.com)。
· reFlutter 重打包:参考 oylong 博客《亲邻开门APP抓包逆向总结》(ReFlutter + BurpSuite),sign 算法需再配合 Frida hook 取拼接规则。
· 登录接口 /api/app/v1/login 返回 sessionId,用它可免验证码长期登录(勤开门可保活数日,失效就重抓一次)。
本工具仅转发你本人账号的登录与开门请求,不提供任何越权能力;请勿传播或用于他人账号。接口地址可能随 App 版本变化,失效时重新抓包并更新设置即可。