International Telephone Code
区域0
全部保留
区域1
- 1:美国
- 1:加拿大
- 1-264:安圭拉岛
- 1-268:安提瓜和巴布达
- 1-242:巴哈马
- 1-246:巴巴多斯
- 1-441:百慕大
- 1-284:英属维京群岛
- 1-345:开曼群岛
- 1-684:美属萨摩亚
- 1-767:多米尼克
- 1-809:多米尼加共和国
- 1-473:格林纳达
- 1-876:牙买加
- 1-664:蒙特塞拉特
- 1-787/1-939:波多黎各
- 1-869:圣基茨和尼维斯
- 1-758:圣卢西亚
- 1-784:圣文森特和格林纳丁斯
- 1-868:特立尼达和多巴哥
- 1-649:特克斯和凯科斯群岛
- 1-340:美属维京群岛
- 1-671:关岛
- 1-670:北马里亚纳群岛
区域2
- 20 --埃及
- 211 --南苏丹
- 212 --摩洛哥
- 213 --阿尔及利亚
- 216 --突尼斯
- 218 --利比亚
- 220 --冈比亚
- 221 --塞内加尔
- 222 --毛里塔尼亚
- 223 --马里
- 224 --几内亚
- 225 --科特迪瓦
- 226 --布基纳法索
- 227 --尼日尔
- 228 --多哥
- 229 --贝宁
- 230 --毛里求斯
- 231 --利比里亚
- 232 --塞拉利昂
- 233 --加纳
- 234 --尼日利亚
- 235 --乍得
- 236 --中非共和国
- 237 --喀麦隆
- 238 --佛得角
- 239 --圣多美和普林西比
- 240 --赤道几内亚
- 241 --加蓬
- 242 --刚果共和国(布)
- 243 --刚果民主共和国(金)
- 244 --安哥拉
- 245 --几内亚比绍
- 246 -- 迪戈加西亚岛
- 247 --阿森松岛
- 248 --塞舌尔
- 249 --苏丹
- 250 --卢旺达
- 251 --埃塞俄比亚
- 252 --索马里
- 253 --吉布提
- 254 --肯尼亚
- 255 --坦桑尼亚
- 256 --乌干达
- 257 --布隆迪
- 258 --莫桑比克
- 259 -- 桑给巴尔
- 260 --赞比亚
- 261 --马达加斯加
- 262 --留尼汪
- 263 --津巴布韦
- 264 --纳米比亚
- 265 --马拉维
- 266 --莱索托
- 267 --博茨瓦纳
- 268 --斯威士兰
- 269 --科摩罗和马约特
- 27 --南非
- 290 --圣赫勒拿
- 291 --厄立特里亚
- 297 --阿鲁巴
- 298 --法罗群岛
- 299 -- 格陵兰
区域3
- 30 --希腊
- 31 --荷兰
- 32 --比利时
- 33 --法国
- 34 --西班牙
- 350 --直布罗陀
- 351 --葡萄牙
- 352 --卢森堡
- 353 --爱尔兰
- 354 --冰岛
- 355 --阿尔巴尼亚
- 356 --马耳他
- 357 --塞浦路斯
- 358 --芬兰
- 359 --保加利亚
- 36 --匈牙利
- 37 -- 东德
- 370 --立陶宛
- 371 --拉脱维亚
- 372 --爱沙尼亚
- 373 --摩尔多瓦
- 374 --亚美尼亚
- 375 --白俄罗斯
- 376 --安道尔
- 377 --摩纳哥
- 378 -- 圣马力诺
- 379 -- 梵蒂冈
- 38 --南斯拉夫
- 380 --乌克兰
- 381 --塞尔维亚
- 382 --黑山
- 385 --克罗地亚
- 386 --斯洛文尼亚
- 387 --波黑
- 388 --欧洲电话号码空间――环欧洲服务
- 389 --马其顿
- 39 -- 意大利
区域4
- 40 --罗马尼亚
- 41 --瑞士
- 42 -- 捷克斯洛伐克
- 420 --捷克共和国
- 421 --斯洛伐克
- 423 --列支敦士登
- 43 --奥地利
- 44 --英国
- 45 --丹麦
- 46 --瑞典
- 47 --挪威
- 48 --波兰
- 49 -- 德国
区域5
- 500 --福克兰群岛
- 501 --伯利兹
- 502 --危地马拉
- 503 --萨尔瓦多
- 504 --洪都拉斯
- 505 --尼加拉瓜
- 506 --哥斯达黎加
- 507 --巴拿马
- 508 --圣皮埃尔和密克隆群岛
- 509 --海地
- 51 --秘鲁
- 52 --墨西哥
- 53 --古巴
- 54 --阿根廷
- 55 --巴西
- 56 --智利
- 57 --哥伦比亚
- 58 --委内瑞拉
- 590 --瓜德罗普(含法属圣马丁和圣巴泰勒米岛)
- 591 --玻利维亚
- 592 --圭亚那
- 593 --厄瓜多尔
- 594 --法属圭亚那
- 595 --巴拉圭
- 596 --马提尼克
- 597 --苏里南
- 598 --乌拉圭
- 599 -- 荷属安的列斯
- 599 -- 荷属圣马丁
- 599-9 -- 库拉索
区域6
- 60 --马来西亚
- 61 --澳大利亚
- 62 --印度尼西亚
- 63 --菲律宾
- 64 --新西兰
- 65 --新加坡
- 66 --泰国
- 670 --东帝汶
- 672 -- 澳大利亚海外领地:南极洲、圣诞岛、科科斯群岛、诺福克岛
- 673 --文莱
- 674 --瑙鲁
- 675 --巴布亚新几内亚
- 676 --汤加
- 677 --所罗门群岛
- 678 --瓦努阿图
- 679 --斐济
- 680 --帕劳
- 681 --瓦利斯和富图纳群岛
- 682 --库克群岛
- 683 --纽埃
- 685 --萨摩亚
- 686 --基里巴斯,吉尔伯特群岛
- 687 --新喀里多尼亚
- 688 --图瓦卢,埃利斯群岛
- 689 --法属波利尼西亚
- 690 --托克劳群岛
- 691 --密克罗尼西亚联邦
- 692 --马绍尔群岛
区域7
- 7 --俄罗斯、哈萨克斯坦
区域8
- 81 -- 日本
- 82 -- 韩国
- 84 -- 越南
- 850 -- 朝鲜
- 852 -- 中国香港
- 853 -- 中国澳门
- 855 -- 柬埔寨
- 856 -- 老挝
- 86 -- 中国
- 870 -- 国际海事卫星组织 "SNAC" 卫星电话
- 878 -- 环球个人通讯服务
- 880 -- 孟加拉国
- 881 -- 移动卫星系统
- 882 -- 国际网络
- 886 -- 中国台湾
区域9
- 90 --土耳其
- 91 -- 印度
- 92 -- 巴基斯坦
- 93 --阿富汗
- 94 --斯里兰卡
- 95 --缅甸
- 960 --马尔代夫
- 961 --黎巴嫩
- 962 --约旦
- 963 --叙利亚
- 964 --伊拉克
- 965 --科威特
- 966 --沙特阿拉伯
- 967 --也门
- 968 --阿曼
- 969 -- 也门民主共和国
- 970 -- 巴勒斯坦
- 971 --阿拉伯联合酋长国
- 972 --以色列
- 973 --巴林
- 974 --卡塔尔
- 975 --不丹
- 976 --蒙古
- 977 --尼泊尔
- 979 -- 国际费率服务(International Premium Rate Service)
- 98 --伊朗
- 991 -- 国际电信公众通信服务试验(International Telecommunications Public Correspondence Service trial , ITPCS)
- 992 --塔吉克斯坦
- 993 --土库曼斯坦
- 994 --阿塞拜疆
- 995 --格鲁吉亚
- 996 --吉尔吉斯斯坦
- 998 --乌兹别克斯坦
未分配号码
210 ,214,215,217,219,280-289,292 ,293,294,295,296,383 ,384,422 ,424 ,425 ,426 ,427 ,428,429 ,693 ,694,695,696,697,698,699,800-809,830-839,851,854,857,858,859,871-877,879,883 -885,887-899,978,990,997,999。
Android源码目录下有signapk.jar,也可以通过编译build/tools/signapk/得到,signapk.jar签名时需要提供签名文件,可以使用安卓源码中提供的testkey.pk8与testkey.x509.pem,他们位于Android源码build/target/product/security目录,使用Android自带的签名工具signapk.jar以及源码中的testkey.x509.pem,testkey.pk8对apk重新签名。
执行:
java -jar signapk.jar testkey.x509.pem testkey.pk8 old.apk new.apk
执行后new.apk即为签名后的文件,通过signapk.jar这个可执行jar包,以testkey.x509.pem这个公钥文件和testkey.pk8这个私钥文件对old.apk进行签名,签名后的文件保存为old.apk。
通信协议
绿米局域网通信协议API有两个互不兼容的版本:
绿米局域网通信协议1.X,最新版本为1.1.1(2017.12.21)。
绿米局域网通信协议2.X,最新版本为2.0.1(2018.05.18)。
绿米1.X协议设备类型及对应model:
小米多功能网关:gateway
米家多功能网关升级版:gateway.v3
米家窗磁传感器:magnet
米家人体传感器:motion
米家无线开关传感器:switch
米家智能插座:plug
Aqara 86单火开关单键:ctrl_neutral1
Aqara 86单火开关双键:ctrl_neutral2
Aqara 86无线开关单键:86sw1
Aqara 86无线开关双键:86sw2
米家温湿度传感器:sensor_ht
米家魔方传感器:cube
Aqara窗帘:curtain
Aqara 86零火墙壁开关单键:ctrl_ln1、ctrl_ln1.aq1
Aqara 86零火墙壁开关双键:ctrl_ln2、ctrl_ln2.aq1
Aqara 墙壁插座:86plug、ctrl_86plug.aq1
米家天然气报警器:natgas
米家烟雾报警器:smoke
Aqara门磁传感器:sensor_magnet.aq2
Aqara人体照度传感器:sensor_motion.aq2
Aqara无线开关传感器:sensor_switch.aq2
Aqara温湿度气压传感器:weather.v1
Aqara水浸传感器:sensor_wleak.aq1
Aqara门锁:lock.aq1
绿米2.X协议设备类型及对应model:
Aqara空调伴侣升级版:acpartner.v3
智能插座:plug
墙壁插座:ctrl_86plug、ctrl_86plug.aq1
墙壁开关(零火单键):ctrl_ln1、ctrl_ln1.aq1
墙壁开关(零火双键):ctrl_ln2
墙壁开关(单火单键):ctrl_neutral1
墙壁开关(单火双键):ctrl_neutral2
窗帘电机:curtain
双路控制器:lumi.ctrl_dualchn
门窗传感器:sensor_magnet.aq2
人体传感器:sensor_motion.aq2
温湿度传感器:weather
水浸传感器:sensor_wleak.aq1
无线开关:sensor_switch.aq2
无线开关(升级版):sensor_switch.aq3
86无线开关单键:sensor_86sw1.aq1
86无线开关双键:sensor_86sw2.aq1
魔方传感器:sensor_cube.aqgl01
不支持任何局域网通信协议的设备对应model:
Aqara空调伴侣:acpartner.v1
米家空调伴侣:acpartner.v2
注意事项:
固件决定了是否支持哪个协议。
开启局域网通信协议并拥有该网关的KEY才能与该网关进行局域网完全通信。
有些设备3个表中都没有给出,一般属于支持1.X的设备,也可能不支持任何协议。
唯一支持2.X协议的网关是Aqara空调伴侣升级版(方形),小米多功能网关/米家多功能网关升级版均为1.X协议。
Aqara魔方传感器仅能接入Aqara空调伴侣升级版才能使用局域网协议控制。
发现设备
服务器发现网关(全文默认以2.X协议为例):
服务器向局域网发送UDP组播报文(IP:224.0.0.50,端口:4321),内容为
{"cmd":"whois"}
即【服务器>>组播(224.0.0.50:4321){"cmd":"whois"}】下写法同理。
网关收到信息后通过UDP单播报文回复服务器:
【网关>>单播($Host:4321){"cmd":"report",...}】
report的具体内容举例:
{
"cmd":"iam",
"ip":"192.168.0.42", //网关IP地址
"protocal":"UDP",
"port":"9898",
"model":"gateway.aq1", //网关设备类型
......
}
服务器查询网关设备
【服务器>>单播($Hub:9898){"cmd":"discovery"}】
【网关>>单播($Host:9898){"cmd":"discovery_rsp",...}】
discovery_rsp具体内容举例:
{
"cmd":"discovery_rsp",
"sid":"158d323123c9d9", //sid为网关did
"token":"TahkC7dalbIhXG22", //网关生成的随机字符串
"dev_list":[{"sid":"158d0000f1a750","model":"plug"},
{"sid":"158d00010fd645","model":"sensor_switch.aq2"}] //sid为子设备did
}
注意:“token”为网关生成的随机字符串,每10s刷新一次,在未收到设备心跳上报的token前,用户可用此token来生成写设备时的“key”。
设备查询上报
当设备状态发生变化时,【网关>>组播(224.0.0.50:9898){"cmd":"report",...}】
report具体内容举例:
{
"cmd":"report",
"model":"sensor_magnet.aq2",
"sid":"158d0000123456",
"params":[{"window_status":"open"}]
}
设备心跳上报
网关心跳上报
网关每10秒钟发送一次心跳报文,用来告诉服务器网关正常工作。若间隔65s以上未收到心跳包即表示网关处于离线状态。网关设备心跳格式如下:
【网关>>组播(224.0.0.50:9898){"cmd":"heartbeat",...}】
heartbeat具体内容举例:
{
"cmd":"heartbeat",
"model":"gateway.v3",
"sid":"f0b429b3c9d965",
"token":"1234567890abcdef", //网关生成的随机字符串
"params":[{"ip":"172.22.4.130"}] //网关IP地址
}
子设备心跳上报
子设备通过心跳告诉PC:子设备正常工作(心跳上报频率:睡眠设备是每60分钟一次,插电设备是每10分钟一次)。子设备心跳格式如下:
【网关>>组播(224.0.0.50:9898){"cmd":"heartbeat",...}】
heartbeat具体内容举例:
{
"cmd":"heartbeat",
"model":"sensor_magnet.aq2",
"sid":"158d000065a271",
"params":[{"window_status":"open"}]
}
AES-CBC 128加密
开启局域网通信协议后,服务器可以获取网关信息(接收网关上报、回应信息,对网关进行读操作),但无法控制网关(对网关进行写操作)。
要对网关及其下属设备进行管理和控制,必须拥有该网关的KEY,我把它叫做网关KEY。网关KEY可在APP上取得,为16个字节长度的字符串。
网关KEY并非直接用于控制网关,而是作为加密的密钥。服务器收到网关心跳“heartbeat”里的16个字节的“token”字符串之后,使用网关KEY对token的字符串进行AES-CBC 128加密,生成16个字节的密文,再转换为32字节的ASCII码,这才是通讯时用到的工作KEY。
AES-CBC 128初始向量定义为:unsigned char const AES_KEY_IV[16] = {0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58, 0x56, 0x2e}。
1.6 设备读写操作
读设备
服务器向网关发送读命令,网关向服务器回复读取结果。
【服务器>>单播($Hub:9898){"cmd":"read",...}】
read具体内容举例:
{
"cmd":"read",
"sid":"158d0000123456" //墙壁开关did
}
【网关>>单播($Host:9898){"cmd":"read_rsp",...}】
read_rsp具体内容举例:
{
"cmd":"read",
"sid":"158d0000123456" //墙壁开关did
}
{
"cmd":"write_rsp",
"model":"ctrl_neutral1",
"sid":"158d0000123456",
"params":[{"channel_0":"on"}]
}
写设备
服务器向网关发送写命令,网关向服务器发送回复,表示知悉。
【服务器>>单播($Hub:9898){"cmd":"write",...}】
write具体内容举例:
{
"cmd":"write",
"model":"ctrl_neutral1",
"sid":"158d0000123456",
"key":"3EB43E37C20AFF4C5872CC0D04D81314",
"params":[{"channel_0":"off"}]
}
【网关>>单播($Host:9898){"cmd":"write_rsp",...}】
write_rsp具体内容举例:
{
"cmd":"write_rsp",
"model":"ctrl_neutral1",
"sid":"158d0000123456",
"params":[{"channel_0":"on"}]
}
该“write_rsp”只代表网关收到了write命令,params里的属性状态为当前的设备最新状态,不是write之后的最终设备状态。最终的设备状态靠report报文进行上报。
不同账号可下载的软件不同,可以尝试下载Shadowrocket(小火箭),Quantumult,Kitsunebi,Pepi (ShadowRay),i2ray,Potatso Lite 任意一个即可。
在AppStore软件里面登录账号
美区 apple id 账号:if580123@icloud.com
美区 apple id 密码:Aa2211
更新时间: 20200202
注意:请勿使用此账号登录iCloud,只登录蓝色AppStore下载应用,切记不可以在设置里面登录使用! 并且下载完一定要退出账号,不然会导致自己icloud被锁,手机变砖!
https://github.com/shadowrocketHelp/help/wiki/%E5%9B%BD%E5%A4%96-appstore-id-%E8%B4%A6%E5%8F%B7%E5%88%86%E4%BA%AB
在线/越狱安装
不推荐,使用在线/越狱安装,可能会安装后闪退无法使用APP。
文件地址:
/system/usr/keylayout/AVRCP.kl
修改方法:
可用keytest.apk来侦测按键映射动作,取得code,然后文件修改,重启即可。