CAG v5.7.4版本的 MD5 值为:bc57ead76a7a30559f0708e9d60d749f
以下内容为反编译后的 c.java 源代码,内容仅作参考
package i.j.b.t.q;
import android.content.Context;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import android.util.JsonReader;
import android.util.Log;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.common.util.AndroidUtilsLight;
import com.google.android.gms.common.util.Hex;
import com.google.android.gms.common.util.VisibleForTesting;
import com.google.firebase.heartbeatinfo.HeartBeatInfo;
import com.google.firebase.installations.FirebaseInstallationsException;
import com.google.firebase.installations.remote.InstallationResponse;
import com.google.firebase.installations.remote.TokenResult;
import i.j.b.t.q.b;
import i.j.b.w.h;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
import org.json.JSONException;
import org.json.JSONObject;
public class c {
public static final Pattern f12890e = Pattern.compile("[0-9]+s");
public static final Charset f12891f = Charset.forName("UTF-8");
public final Context a;
public final i.j.b.s.b<h> b;
public final i.j.b.s.b<HeartBeatInfo> c;
public final d f12892d = new d();
public c(Context context, i.j.b.s.b<h> bVar, i.j.b.s.b<HeartBeatInfo> bVar2) {
this.a = context;
this.b = bVar;
this.c = bVar2;
}
public static void b(HttpURLConnection httpURLConnection, String str, String str2, String str3) {
InputStream errorStream = httpURLConnection.getErrorStream();
String str4 = null;
if (errorStream != null) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(errorStream, f12891f));
try {
StringBuilder sb = new StringBuilder();
while (true) {
String readLine = bufferedReader.readLine();
if (readLine == null) {
break;
}
sb.append(readLine);
sb.append('\n');
}
str4 = String.format("Error when communicating with the Firebase Installations server API. HTTP response: [%d %s: %s]", Integer.valueOf(httpURLConnection.getResponseCode()), httpURLConnection.getResponseMessage(), sb);
} catch (IOException unused) {
} catch (Throwable th) {
try {
bufferedReader.close();
} catch (IOException unused2) {
}
throw th;
}
try {
bufferedReader.close();
} catch (IOException unused3) {
}
}
if (TextUtils.isEmpty(str4)) {
return;
}
Log.w("Firebase-Installations", str4);
Object[] objArr = new Object[3];
objArr[0] = str2;
objArr[1] = str3;
objArr[2] = TextUtils.isEmpty(str) ? "" : i.a.b.a.a.r(", ", str);
Log.w("Firebase-Installations", String.format("Firebase options used while communicating with Firebase server APIs: %s, %s%s", objArr));
}
@VisibleForTesting
public static long d(String str) {
Preconditions.checkArgument(f12890e.matcher(str).matches(), "Invalid Expiration Timestamp.");
if (str == null || str.length() == 0) {
return 0L;
}
return Long.parseLong(str.substring(0, str.length() - 1));
}
public static void i(URLConnection uRLConnection, byte[] bArr) throws IOException {
OutputStream outputStream = uRLConnection.getOutputStream();
if (outputStream != null) {
GZIPOutputStream gZIPOutputStream = new GZIPOutputStream(outputStream);
try {
gZIPOutputStream.write(bArr);
try {
return;
} catch (IOException unused) {
return;
}
} finally {
try {
gZIPOutputStream.close();
outputStream.close();
} catch (IOException unused2) {
}
}
}
throw new IOException("Cannot send request to FIS servers. No OutputStream available.");
}
public final URL a(String str) throws FirebaseInstallationsException {
try {
return new URL(String.format("https://%s/%s/%s", "firebaseinstallations.googleapis.com", "v1", str));
} catch (MalformedURLException e2) {
throw new FirebaseInstallationsException(e2.getMessage(), FirebaseInstallationsException.Status.UNAVAILABLE);
}
}
public final HttpURLConnection c(URL url, String str) throws FirebaseInstallationsException {
HeartBeatInfo.HeartBeat a;
try {
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setConnectTimeout(10000);
httpURLConnection.setUseCaches(false);
httpURLConnection.setReadTimeout(10000);
httpURLConnection.addRequestProperty("Content-Type", "application/json");
httpURLConnection.addRequestProperty("Accept", "application/json");
httpURLConnection.addRequestProperty("Content-Encoding", "gzip");
httpURLConnection.addRequestProperty("Cache-Control", "no-cache");
httpURLConnection.addRequestProperty("X-Android-Package", this.a.getPackageName());
if (this.c.get() != null && this.b.get() != null && (a = this.c.get().a("fire-installations-id")) != HeartBeatInfo.HeartBeat.NONE) {
httpURLConnection.addRequestProperty("x-firebase-client", this.b.get().a());
httpURLConnection.addRequestProperty("x-firebase-client-log-type", Integer.toString(a.getCode()));
}
String str2 = null;
try {
Context context = this.a;
byte[] packageCertificateHashBytes = AndroidUtilsLight.getPackageCertificateHashBytes(context, context.getPackageName());
if (packageCertificateHashBytes == null) {
Log.e("ContentValues", "Could not get fingerprint hash for package: " + this.a.getPackageName());
} else {
str2 = Hex.bytesToStringUppercase(packageCertificateHashBytes, false);
}
} catch (PackageManager.NameNotFoundException e2) {
StringBuilder J = i.a.b.a.a.J("No such package: ");
J.append(this.a.getPackageName());
Log.e("ContentValues", J.toString(), e2);
}
httpURLConnection.addRequestProperty("X-Android-Cert", str2);
httpURLConnection.addRequestProperty("x-goog-api-key", str);
return httpURLConnection;
} catch (IOException unused) {
throw new FirebaseInstallationsException("Firebase Installations Service is unavailable. Please try again later.", FirebaseInstallationsException.Status.UNAVAILABLE);
}
}
public final InstallationResponse e(HttpURLConnection httpURLConnection) throws AssertionError, IOException {
InputStream inputStream = httpURLConnection.getInputStream();
JsonReader jsonReader = new JsonReader(new InputStreamReader(inputStream, f12891f));
TokenResult.a a = TokenResult.a();
jsonReader.beginObject();
String str = null;
String str2 = null;
String str3 = null;
TokenResult tokenResult = null;
while (jsonReader.hasNext()) {
String nextName = jsonReader.nextName();
if (nextName.equals("name")) {
str = jsonReader.nextString();
} else if (nextName.equals("fid")) {
str2 = jsonReader.nextString();
} else if (nextName.equals("refreshToken")) {
str3 = jsonReader.nextString();
} else if (nextName.equals("authToken")) {
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String nextName2 = jsonReader.nextName();
if (nextName2.equals("token")) {
((b.C0195b) a).a = jsonReader.nextString();
} else if (nextName2.equals("expiresIn")) {
a.b(d(jsonReader.nextString()));
} else {
jsonReader.skipValue();
}
}
tokenResult = a.a();
jsonReader.endObject();
} else {
jsonReader.skipValue();
}
}
jsonReader.endObject();
jsonReader.close();
inputStream.close();
return new a(str, str2, str3, tokenResult, InstallationResponse.ResponseCode.OK, null);
}
public final TokenResult f(HttpURLConnection httpURLConnection) throws AssertionError, IOException {
InputStream inputStream = httpURLConnection.getInputStream();
JsonReader jsonReader = new JsonReader(new InputStreamReader(inputStream, f12891f));
TokenResult.a a = TokenResult.a();
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String nextName = jsonReader.nextName();
if (nextName.equals("token")) {
((b.C0195b) a).a = jsonReader.nextString();
} else if (nextName.equals("expiresIn")) {
a.b(d(jsonReader.nextString()));
} else {
jsonReader.skipValue();
}
}
jsonReader.endObject();
jsonReader.close();
inputStream.close();
b.C0195b c0195b = (b.C0195b) a;
c0195b.c = TokenResult.ResponseCode.OK;
return c0195b.a();
}
public final void g(HttpURLConnection httpURLConnection, String str, String str2) throws IOException {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("fid", str);
jSONObject.put("appId", str2);
jSONObject.put("authVersion", "FIS_v2");
jSONObject.put("sdkVersion", "a:17.0.0");
i(httpURLConnection, jSONObject.toString().getBytes("UTF-8"));
} catch (JSONException e2) {
throw new IllegalStateException(e2);
}
}
public final void h(HttpURLConnection httpURLConnection) throws IOException {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("sdkVersion", "a:17.0.0");
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("installation", jSONObject);
i(httpURLConnection, jSONObject2.toString().getBytes("UTF-8"));
} catch (JSONException e2) {
throw new IllegalStateException(e2);
}
}
}