Aqara Home v2.4.1版本的 MD5 值为:529779ac2bc0131db52a1fc3098d2b35
以下内容为反编译后的 j0.java 源代码,内容仅作参考
package k.u.c.d.d;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.os.Build;
import android.text.TextUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.druk.rx2dnssd.BonjourService;
import com.github.druk.rx2dnssd.Rx2DnssdBindable;
import com.google.android.material.badge.BadgeDrawable;
import com.lumi.lumidevsdk.LumiDevSDK;
import com.lumiunited.aqara.device.adddevicepage.bean.LANDeviceEntity;
import com.lumiunited.aqara.service.bean.HomeEntity;
import com.lumiunited.aqara.service.bean.RoomsEntity;
import com.taobao.accs.utl.BaseMonitor;
import com.umeng.socialize.net.utils.SocializeProtocolConstants;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import k.u.c.d.d.j0;
import k.u.c.i.m1;
import k.u.c.x.j3;
public class j0 {
public static class a implements k.u.c.d.j.n<String> {
public final p.a.m0 a;
public a(p.a.m0 m0Var) {
this.a = m0Var;
}
@Override
public void onSuccess(String str) {
this.a.onSuccess(str);
}
@Override
public void onFailed(int i2, String str) {
this.a.onError(new k.u.c.d.d.r0.c(i2, str));
}
}
public static class b implements k.u.c.d.j.n<String> {
public final p.a.m0 a;
public final String b;
public b(p.a.m0 m0Var, String str) {
this.a = m0Var;
this.b = str;
}
@Override
public void onSuccess(String str) {
this.a.onSuccess(this.b);
}
@Override
public void onFailed(int i2, String str) {
this.a.onSuccess(this.b);
}
}
public static p.a.k0<String> a(final String str, final String str2, final String str3, final String str4, final Network network) {
return p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
j0.a(str4, str, str2, str3, network, m0Var);
}
}).b(p.a.e1.b.b());
}
public static p.a.k0<String> b(final String str, final String str2, final String str3, final Network network) {
return p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
j0.b(str, str2, str3, network, m0Var);
}
}).b(p.a.e1.b.b());
}
public static void a(String str, String str2, String str3, String str4, Network network, p.a.m0 m0Var) throws Exception {
String str5;
String str6 = "";
if (TextUtils.isEmpty(str)) {
m0Var.onError(new k.u.c.d.d.r0.c(-1, "get device IP failed"));
return;
}
JSONObject jSONObject = new JSONObject();
jSONObject.put("cid", (Object) " ");
jSONObject.put("ssid", (Object) str2);
jSONObject.put("passwd", (Object) str3);
jSONObject.put("lang", (Object) k.u.c.d.a.p.a().getResources().getConfiguration().locale.getLanguage());
jSONObject.put("bindKey", (Object) str4);
jSONObject.put("country_domain", (Object) k.u.c.r.l.d.g());
jSONObject.put(k.u.c.i.f3.g.f2, (Object) LumiDevSDK.getTimeZone());
byte[] encryptedInfo = LumiDevSDK.getEncryptedInfo(jSONObject.toString());
boolean z2 = false;
k.d.a.b("biu biu biu ----->> send data to gateway :", jSONObject.toJSONString());
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.setSoTimeout(5000);
try {
try {
String[] split = str.split(":");
int parseInt = Integer.parseInt(split[1]);
InetAddress byName = InetAddress.getByName(split[0]);
DatagramPacket datagramPacket = new DatagramPacket(encryptedInfo, encryptedInfo.length, byName, parseInt);
if (network != null) {
if (Build.VERSION.SDK_INT >= 22) {
network.bindSocket(datagramSocket);
} else {
z2 = ConnectivityManager.setProcessDefaultNetwork(network);
}
}
DatagramPacket datagramPacket2 = new DatagramPacket(new byte[102400], 102400);
datagramSocket.send(datagramPacket);
datagramSocket.receive(datagramPacket2);
str5 = new String(LumiDevSDK.getDecryptedInfo(datagramPacket2.getData(), datagramPacket2.getLength()));
try {
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put(BaseMonitor.COUNT_ACK, (Object) 1);
byte[] encryptedInfo2 = LumiDevSDK.getEncryptedInfo(jSONObject2.toString());
datagramSocket.send(new DatagramPacket(encryptedInfo2, encryptedInfo2.length, byName, 10008));
} catch (SocketTimeoutException e2) {
e = e2;
str6 = str5;
if (str6.isEmpty()) {
m0Var.onError(new k.u.c.d.d.r0.c(4, e.getMessage()));
}
datagramSocket.close();
} catch (Exception e3) {
e = e3;
str6 = str5;
m0Var.onError(new k.u.c.d.d.r0.c(-1, e.getMessage()));
datagramSocket.close();
}
} finally {
datagramSocket.close();
if (0 != 0) {
ConnectivityManager.setProcessDefaultNetwork(null);
}
}
} catch (SocketTimeoutException e4) {
e = e4;
} catch (Exception e5) {
e = e5;
}
m0Var.onSuccess(str5);
}
public static void b(String str, String str2, String str3, Network network, p.a.m0 m0Var) throws Exception {
String str4;
String str5 = "";
String deviceGatewayIPAddress = LumiDevSDK.getDeviceGatewayIPAddress();
if (TextUtils.isEmpty(deviceGatewayIPAddress)) {
m0Var.onError(new k.u.c.d.d.r0.c(-1, "get device IP failed"));
return;
}
InetAddress byName = InetAddress.getByName(deviceGatewayIPAddress);
JSONObject jSONObject = new JSONObject();
jSONObject.put("cid", (Object) " ");
jSONObject.put("ssid", (Object) str);
jSONObject.put("passwd", (Object) str2);
jSONObject.put("lang", (Object) k.u.c.d.a.p.a().getResources().getConfiguration().locale.getLanguage());
jSONObject.put("bindKey", (Object) str3);
jSONObject.put("country_domain", (Object) k.u.c.r.l.d.g());
jSONObject.put(k.u.c.i.f3.g.f2, (Object) LumiDevSDK.getTimeZone());
byte[] encryptedInfo = LumiDevSDK.getEncryptedInfo(jSONObject.toString());
boolean z2 = false;
k.d.a.b("biu biu biu ----->> send data to gateway :", jSONObject.toJSONString());
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.setSoTimeout(5000);
try {
try {
DatagramPacket datagramPacket = new DatagramPacket(encryptedInfo, encryptedInfo.length, byName, 10008);
if (network != null) {
if (Build.VERSION.SDK_INT >= 22) {
network.bindSocket(datagramSocket);
} else {
z2 = ConnectivityManager.setProcessDefaultNetwork(network);
}
}
DatagramPacket datagramPacket2 = new DatagramPacket(new byte[102400], 102400);
datagramSocket.send(datagramPacket);
datagramSocket.receive(datagramPacket2);
str4 = new String(LumiDevSDK.getDecryptedInfo(datagramPacket2.getData(), datagramPacket2.getLength()));
} finally {
datagramSocket.close();
if (0 != 0) {
ConnectivityManager.setProcessDefaultNetwork(null);
}
}
} catch (SocketTimeoutException e2) {
e = e2;
} catch (Exception e3) {
e = e3;
}
try {
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put(BaseMonitor.COUNT_ACK, (Object) 1);
byte[] encryptedInfo2 = LumiDevSDK.getEncryptedInfo(jSONObject2.toString());
datagramSocket.send(new DatagramPacket(encryptedInfo2, encryptedInfo2.length, byName, 10008));
} catch (SocketTimeoutException e4) {
str5 = str4;
e = e4;
if (str5.isEmpty()) {
m0Var.onError(new k.u.c.d.d.r0.c(4, e.getMessage()));
}
datagramSocket.close();
} catch (Exception e5) {
str5 = str4;
e = e5;
m0Var.onError(new k.u.c.d.d.r0.c(-1, e.getMessage()));
datagramSocket.close();
}
m0Var.onSuccess(str4);
}
public static p.a.k0<String> b(final String str, final String str2, final String str3, final String str4, final Network network) {
return p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
j0.b(str, str2, str4, str3, network, m0Var);
}
}).b(p.a.e1.b.b());
}
public static p.a.k0<String> a(String str, String str2, String str3) {
final JSONObject jSONObject = new JSONObject();
jSONObject.put("wifi", (Object) str);
jSONObject.put("pwd", (Object) str2);
jSONObject.put("cid", (Object) " ");
if (!TextUtils.isEmpty(str3)) {
jSONObject.put("bindKey", (Object) str3);
}
jSONObject.put("country_domain", (Object) k.u.c.r.l.d.g());
k.d.a.b("message to http gateway", jSONObject.toString());
return p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
l0.i().b("http://192.168.5.1:4567/example", JSONObject.this.toString(), (HashMap<String, String>) null, (k.u.c.d.j.n<String>) new j0.a(m0Var));
}
}).b((p.a.x0.o) new p.a.x0.o() {
@Override
public final Object apply(Object obj) {
p.a.q0 a2;
a2 = p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
m1.d().b(new j0.b(m0Var, r1));
}
});
return a2;
}
});
}
public static void b(String str, String str2, String str3, String str4, Network network, p.a.m0 m0Var) throws Exception {
String str5;
String deviceGatewayIPAddress = LumiDevSDK.getDeviceGatewayIPAddress();
if (TextUtils.isEmpty(deviceGatewayIPAddress)) {
m0Var.onError(new k.u.c.d.d.r0.c(-1, "get device IP failed"));
return;
}
InetAddress byName = InetAddress.getByName(deviceGatewayIPAddress);
JSONObject jSONObject = new JSONObject();
jSONObject.put("ssid", (Object) str);
jSONObject.put("passwd", (Object) str2);
jSONObject.put("positionId", (Object) str3);
jSONObject.put("uid", (Object) q0.b().a().getUserId());
jSONObject.put("cid", (Object) " ");
jSONObject.put("lang", (Object) k.u.c.d.a.p.a().getResources().getConfiguration().locale.getLanguage());
jSONObject.put("country_domain", (Object) k.u.c.r.l.d.g());
jSONObject.put("bindKey", (Object) str4);
jSONObject.put(k.u.c.i.f3.g.f2, (Object) LumiDevSDK.getTimeZone());
byte[] encryptedInfo = LumiDevSDK.getEncryptedInfo(jSONObject.toString());
boolean z2 = false;
k.d.a.b("biu biu biu ----->> send sendMsg2GatewayByUDPWithPosition data to gateway :", jSONObject.toJSONString());
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.setSoTimeout(5000);
try {
try {
DatagramPacket datagramPacket = new DatagramPacket(encryptedInfo, encryptedInfo.length, byName, 10008);
if (network != null) {
if (Build.VERSION.SDK_INT >= 22) {
network.bindSocket(datagramSocket);
} else {
z2 = ConnectivityManager.setProcessDefaultNetwork(network);
}
}
DatagramPacket datagramPacket2 = new DatagramPacket(new byte[102400], 102400);
datagramSocket.send(datagramPacket);
datagramSocket.receive(datagramPacket2);
str5 = new String(LumiDevSDK.getDecryptedInfo(datagramPacket2.getData(), datagramPacket2.getLength()));
datagramSocket.close();
if (z2) {
ConnectivityManager.setProcessDefaultNetwork(null);
}
} catch (SocketTimeoutException e2) {
m0Var.onError(new k.u.c.d.d.r0.c(4, e2.getMessage()));
datagramSocket.close();
} catch (Exception e3) {
m0Var.onError(new k.u.c.d.d.r0.c(-1, e3.getMessage()));
datagramSocket.close();
}
m0Var.onSuccess(str5);
} catch (Throwable th) {
datagramSocket.close();
if (z2) {
ConnectivityManager.setProcessDefaultNetwork(null);
}
throw th;
}
}
public static void a(Context context, String str, String str2, String str3, k.u.c.d.j.n nVar) {
k.d.a.d("gatewayFastLink # ");
if (context != null) {
JSONObject jSONObject = new JSONObject();
jSONObject.put("ssid", (Object) str);
jSONObject.put("passwd", (Object) str2);
jSONObject.put("uid", (Object) q0.b().a().getUserId());
jSONObject.put("cid", (Object) " ");
jSONObject.put("lang", (Object) context.getResources().getConfiguration().locale.getLanguage());
jSONObject.put("country_domain", (Object) k.u.c.r.l.d.g());
if (str3 != null) {
jSONObject.put("bindKey", (Object) str3);
}
jSONObject.put(k.u.c.i.f3.g.f2, (Object) a());
RoomsEntity j2 = j3.E().j();
HomeEntity c = j3.E().c();
if (j2 != null && j2.getRoomId() != null) {
jSONObject.put("positionId", (Object) j2.getRoomId());
} else if (c == null || c.getRooms().size() <= 0) {
if (c != null) {
jSONObject.put("positionId", (Object) c.getHomeId());
} else if (j3.E().f() != null) {
jSONObject.put("positionId", (Object) j3.E().f());
}
} else {
RoomsEntity roomsEntity = null;
Iterator<RoomsEntity> it = c.getRooms().iterator();
while (true) {
if (!it.hasNext()) {
break;
}
RoomsEntity next = it.next();
if (next.getRoomId() != null) {
if (next.isDefault()) {
roomsEntity = next;
break;
} else if (roomsEntity == null) {
roomsEntity = next;
}
}
}
if (roomsEntity != null) {
jSONObject.put("positionId", (Object) roomsEntity.getRoomId());
}
}
}
}
public static p.a.k0<String> a(final String str, final String str2, final String str3, final Network network) {
return p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
j0.a(str3, str, str2, network, m0Var);
}
}).b(p.a.e1.b.b());
}
public static void a(String str, String str2, String str3, Network network, p.a.m0 m0Var) throws Exception {
boolean z2;
int parseInt;
InetAddress byName;
DatagramPacket datagramPacket;
k.d.a.b("biu biu ------>> haha-->> sendMessage2GatewayByIP:", str, str2, Thread.currentThread().getName());
if (!TextUtils.isEmpty(str) && !TextUtils.isEmpty(str2)) {
String str4 = "";
JSONObject jSONObject = new JSONObject();
jSONObject.put("cid", (Object) " ");
jSONObject.put("lang", (Object) str3);
jSONObject.put("country_domain", (Object) k.u.c.r.l.d.g());
jSONObject.put("baseUrl", (Object) k.u.c.d.g.c.a(k.u.c.r.l.c.k().b()));
jSONObject.put("bindKey", (Object) str2);
jSONObject.put(k.u.c.i.f3.g.f2, (Object) LumiDevSDK.getTimeZone());
k.d.a.b("biu biu biu ----->> send data to gateway :", jSONObject.toJSONString(), str);
byte[] encryptedInfo = LumiDevSDK.getEncryptedInfo(jSONObject.toString());
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.setSoTimeout(2000);
try {
try {
String[] split = str.split(":");
parseInt = Integer.parseInt(split[1]);
byName = InetAddress.getByName(split[0]);
datagramPacket = new DatagramPacket(encryptedInfo, encryptedInfo.length, byName, parseInt);
} catch (Throwable th) {
th = th;
k.d.a.b("biu biu ------->> final ");
datagramSocket.close();
if (encryptedInfo != null) {
ConnectivityManager.setProcessDefaultNetwork(null);
}
throw th;
}
} catch (SocketTimeoutException e2) {
e = e2;
z2 = false;
} catch (Exception e3) {
e = e3;
z2 = false;
} catch (Throwable th2) {
th = th2;
encryptedInfo = null;
k.d.a.b("biu biu ------->> final ");
datagramSocket.close();
if (encryptedInfo != null) {
}
throw th;
}
if (network != null) {
if (Build.VERSION.SDK_INT >= 22) {
network.bindSocket(datagramSocket);
} else {
z2 = ConnectivityManager.setProcessDefaultNetwork(network);
DatagramPacket datagramPacket2 = new DatagramPacket(new byte[102400], 102400);
datagramSocket.send(datagramPacket);
datagramSocket.receive(datagramPacket2);
String str5 = new String(LumiDevSDK.getDecryptedInfo(datagramPacket2.getData(), datagramPacket2.getLength()));
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put(BaseMonitor.COUNT_ACK, (Object) 1);
byte[] encryptedInfo2 = LumiDevSDK.getEncryptedInfo(jSONObject2.toString());
datagramSocket.send(new DatagramPacket(encryptedInfo2, encryptedInfo2.length, byName, parseInt));
k.d.a.b("biu biu ------->> final ");
datagramSocket.close();
if (z2) {
ConnectivityManager.setProcessDefaultNetwork(null);
}
m0Var.onSuccess(str5);
return;
}
}
z2 = false;
DatagramPacket datagramPacket22 = new DatagramPacket(new byte[102400], 102400);
datagramSocket.send(datagramPacket);
datagramSocket.receive(datagramPacket22);
String str52 = new String(LumiDevSDK.getDecryptedInfo(datagramPacket22.getData(), datagramPacket22.getLength()));
JSONObject jSONObject22 = new JSONObject();
jSONObject22.put(BaseMonitor.COUNT_ACK, (Object) 1);
byte[] encryptedInfo22 = LumiDevSDK.getEncryptedInfo(jSONObject22.toString());
datagramSocket.send(new DatagramPacket(encryptedInfo22, encryptedInfo22.length, byName, parseInt));
k.d.a.b("biu biu ------->> final ");
datagramSocket.close();
if (z2) {
}
m0Var.onSuccess(str52);
return;
}
m0Var.onError(new k.u.c.d.d.r0.c(-1, "empty device IP or bindkey"));
}
public static LANDeviceEntity b(BonjourService bonjourService) throws Exception {
k.d.a.b("MDNS发现:" + bonjourService.toString());
LANDeviceEntity lANDeviceEntity = new LANDeviceEntity();
lANDeviceEntity.setModel(bonjourService.getTxtRecords().get("md"));
lANDeviceEntity.setAddress(((Inet4Address) Objects.requireNonNull(bonjourService.getInet4Address())).getHostAddress() + ":" + bonjourService.getPort());
lANDeviceEntity.setName(bonjourService.getServiceName());
lANDeviceEntity.setDid(bonjourService.getServiceName());
return lANDeviceEntity;
}
public static p.a.k0<HashSet<LANDeviceEntity>> a(final Rx2DnssdBindable rx2DnssdBindable, final int i2) {
return p.a.k0.a(new p.a.o0() {
@Override
public final void subscribe(p.a.m0 m0Var) {
j0.a(Rx2DnssdBindable.this, i2, m0Var);
}
});
}
public static void a(Rx2DnssdBindable rx2DnssdBindable, int i2, final p.a.m0 m0Var) throws Exception {
long j2 = i2;
rx2DnssdBindable.browse(LumiDevSDK.MDNS_SERVICE_TYPE, "local.").a(rx2DnssdBindable.resolve()).a(rx2DnssdBindable.queryIPRecords()).c(p.a.e1.b.b()).o(j2, TimeUnit.SECONDS).a(p.a.s0.d.a.a()).c((p.a.x0.r) new p.a.x0.r() {
@Override
public final boolean test(Object obj) {
return j0.a((BonjourService) obj);
}
}).v(new p.a.x0.o() {
@Override
public final Object apply(Object obj) {
return j0.b((BonjourService) obj);
}
}).a(j2, TimeUnit.SECONDS).subscribe(new p.a.x0.g() {
@Override
public final void accept(Object obj) {
j0.a(p.a.m0.this, (List) obj);
}
}, new p.a.x0.g() {
@Override
public final void accept(Object obj) {
Throwable th = (Throwable) obj;
p.a.m0.this.onSuccess(new HashSet(new HashSet()));
}
});
}
public static boolean a(BonjourService bonjourService) throws Exception {
return !TextUtils.equals("true", (String) Objects.requireNonNull(bonjourService.getTxtRecords().get(SocializeProtocolConstants.PROTOCOL_KEY_PV)));
}
public static void a(p.a.m0 m0Var, List list) throws Exception {
if (list.isEmpty()) {
return;
}
Iterator it = list.iterator();
while (it.hasNext()) {
if (TextUtils.isEmpty(((LANDeviceEntity) it.next()).getAddress())) {
it.remove();
}
}
m0Var.onSuccess(new HashSet(list));
}
public static String a() {
String str;
String str2;
Date date = new Date();
int timezoneOffset = date.getTimezoneOffset() / 60;
int abs = Math.abs(date.getTimezoneOffset() % 60);
String str3 = "";
if (timezoneOffset != 0) {
StringBuilder sb = new StringBuilder();
sb.append(Math.abs(timezoneOffset));
if (abs != 0) {
str2 = ":" + abs;
} else {
str2 = "";
}
sb.append(str2);
str = sb.toString();
} else {
str = "";
}
if (TextUtils.isEmpty(str)) {
StringBuilder sb2 = new StringBuilder();
sb2.append(timezoneOffset < 0 ? "-" : BadgeDrawable.DEFAULT_EXCEED_MAX_BADGE_NUMBER_SUFFIX);
if (Math.abs(timezoneOffset) < 10 && abs != 0) {
str3 = "0";
}
sb2.append(str3);
sb2.append(str);
str = sb2.toString();
}
return "GMT" + str;
}
}