Kufar v3.2.0版本的 MD5 值为:6a4d203db1c561c7e3bcd50d23fed59f
以下内容为反编译后的 c.java 源代码,内容仅作参考
package ez;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.TrafficStats;
import android.text.TextUtils;
import android.util.JsonReader;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.browser.trusted.sharing.ShareTarget;
import bz.i;
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.android.gms.tasks.Tasks;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import ez.d;
import ez.f;
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.concurrent.ExecutionException;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
import org.json.JSONException;
import org.json.JSONObject;
import yy.i;
public class c {
public static final Pattern f75750d = Pattern.compile("[0-9]+s");
public static final Charset f75751e = Charset.forName(C.UTF8_NAME);
public final Context f75752a;
public final az.b<i> f75753b;
public final e f75754c = new e();
public c(@NonNull Context context, @NonNull az.b<i> bVar) {
this.f75752a = context;
this.f75753b = bVar;
}
public static String a(@Nullable String str, @NonNull String str2, @NonNull String str3) {
String str4;
Object[] objArr = new Object[3];
objArr[0] = str2;
objArr[1] = str3;
if (TextUtils.isEmpty(str)) {
str4 = "";
} else {
str4 = ", " + str;
}
objArr[2] = str4;
return String.format("Firebase options used while communicating with Firebase server APIs: %s, %s%s", objArr);
}
public static JSONObject b(@Nullable String str, @NonNull String str2) {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("fid", str);
jSONObject.put("appId", str2);
jSONObject.put("authVersion", "FIS_v2");
jSONObject.put("sdkVersion", "a:17.1.2");
return jSONObject;
} catch (JSONException e11) {
throw new IllegalStateException(e11);
}
}
public static JSONObject c() {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("sdkVersion", "a:17.1.2");
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("installation", jSONObject);
return jSONObject2;
} catch (JSONException e11) {
throw new IllegalStateException(e11);
}
}
public static byte[] h(JSONObject jSONObject) throws IOException {
return jSONObject.toString().getBytes(C.UTF8_NAME);
}
public static boolean i(int i11) {
if (i11 >= 200 && i11 < 300) {
return true;
}
return false;
}
public static void j() {
Log.e("Firebase-Installations", "Firebase Installations can not communicate with Firebase server APIs due to invalid configuration. Please update your Firebase initialization process and set valid Firebase options (API key, Project ID, Application ID) when initializing Firebase.");
}
public static void k(HttpURLConnection httpURLConnection, @Nullable String str, @NonNull String str2, @NonNull String str3) {
String o11 = o(httpURLConnection);
if (!TextUtils.isEmpty(o11)) {
Log.w("Firebase-Installations", o11);
Log.w("Firebase-Installations", a(str, str2, str3));
}
}
@VisibleForTesting
public static long m(String str) {
Preconditions.checkArgument(f75750d.matcher(str).matches(), "Invalid Expiration Timestamp.");
if (str != null && str.length() != 0) {
return Long.parseLong(str.substring(0, str.length() - 1));
}
return 0L;
}
@Nullable
public static String o(HttpURLConnection httpURLConnection) {
InputStream errorStream = httpURLConnection.getErrorStream();
if (errorStream == null) {
return null;
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(errorStream, f75751e));
try {
try {
StringBuilder sb2 = new StringBuilder();
while (true) {
String readLine = bufferedReader.readLine();
if (readLine == null) {
break;
}
sb2.append(readLine);
sb2.append('\n');
}
String format = String.format("Error when communicating with the Firebase Installations server API. HTTP response: [%d %s: %s]", Integer.valueOf(httpURLConnection.getResponseCode()), httpURLConnection.getResponseMessage(), sb2);
try {
bufferedReader.close();
} catch (IOException unused) {
}
return format;
} catch (IOException unused2) {
return null;
}
} catch (IOException unused3) {
bufferedReader.close();
return null;
} catch (Throwable th2) {
try {
bufferedReader.close();
} catch (IOException unused4) {
}
throw th2;
}
}
public static void s(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.");
}
@NonNull
public d d(@NonNull String str, @Nullable String str2, @NonNull String str3, @NonNull String str4, @Nullable String str5) throws bz.i {
int responseCode;
d n11;
if (this.f75754c.b()) {
URL g11 = g(String.format("projects/%s/installations", str3));
for (int i11 = 0; i11 <= 1; i11++) {
TrafficStats.setThreadStatsTag(32769);
HttpURLConnection l11 = l(g11, str);
try {
try {
l11.setRequestMethod(ShareTarget.METHOD_POST);
l11.setDoOutput(true);
if (str5 != null) {
l11.addRequestProperty("x-goog-fis-android-iid-migration-auth", str5);
}
q(l11, str2, str4);
responseCode = l11.getResponseCode();
this.f75754c.f(responseCode);
} catch (IOException | AssertionError unused) {
}
if (i(responseCode)) {
n11 = n(l11);
} else {
k(l11, str4, str, str3);
if (responseCode != 429) {
if (responseCode < 500 || responseCode >= 600) {
j();
n11 = d.a().e(d.b.BAD_CONFIG).a();
} else {
l11.disconnect();
TrafficStats.clearThreadStatsTag();
}
} else {
throw new bz.i("Firebase servers have received too many requests from this client in a short period of time. Please try again later.", i.a.TOO_MANY_REQUESTS);
}
}
return n11;
} finally {
l11.disconnect();
TrafficStats.clearThreadStatsTag();
}
}
throw new bz.i("Firebase Installations Service is unavailable. Please try again later.", i.a.UNAVAILABLE);
}
throw new bz.i("Firebase Installations Service is unavailable. Please try again later.", i.a.UNAVAILABLE);
}
@NonNull
public f e(@NonNull String str, @NonNull String str2, @NonNull String str3, @NonNull String str4) throws bz.i {
int responseCode;
f p11;
if (this.f75754c.b()) {
URL g11 = g(String.format("projects/%s/installations/%s/authTokens:generate", str3, str2));
for (int i11 = 0; i11 <= 1; i11++) {
TrafficStats.setThreadStatsTag(32771);
HttpURLConnection l11 = l(g11, str);
try {
try {
l11.setRequestMethod(ShareTarget.METHOD_POST);
l11.addRequestProperty("Authorization", "FIS_v2 " + str4);
l11.setDoOutput(true);
r(l11);
responseCode = l11.getResponseCode();
this.f75754c.f(responseCode);
} finally {
l11.disconnect();
TrafficStats.clearThreadStatsTag();
}
} catch (IOException | AssertionError unused) {
}
if (i(responseCode)) {
p11 = p(l11);
} else {
k(l11, null, str, str3);
if (responseCode != 401 && responseCode != 404) {
if (responseCode != 429) {
if (responseCode < 500 || responseCode >= 600) {
j();
p11 = f.a().b(f.b.BAD_CONFIG).a();
} else {
l11.disconnect();
TrafficStats.clearThreadStatsTag();
}
} else {
throw new bz.i("Firebase servers have received too many requests from this client in a short period of time. Please try again later.", i.a.TOO_MANY_REQUESTS);
}
}
p11 = f.a().b(f.b.AUTH_ERROR).a();
}
return p11;
}
throw new bz.i("Firebase Installations Service is unavailable. Please try again later.", i.a.UNAVAILABLE);
}
throw new bz.i("Firebase Installations Service is unavailable. Please try again later.", i.a.UNAVAILABLE);
}
public final String f() {
try {
Context context = this.f75752a;
byte[] packageCertificateHashBytes = AndroidUtilsLight.getPackageCertificateHashBytes(context, context.getPackageName());
if (packageCertificateHashBytes == null) {
Log.e("ContentValues", "Could not get fingerprint hash for package: " + this.f75752a.getPackageName());
return null;
}
return Hex.bytesToStringUppercase(packageCertificateHashBytes, false);
} catch (PackageManager.NameNotFoundException e11) {
Log.e("ContentValues", "No such package: " + this.f75752a.getPackageName(), e11);
return null;
}
}
public final URL g(String str) throws bz.i {
try {
return new URL(String.format("https://%s/%s/%s", "firebaseinstallations.googleapis.com", "v1", str));
} catch (MalformedURLException e11) {
throw new bz.i(e11.getMessage(), i.a.UNAVAILABLE);
}
}
public final HttpURLConnection l(URL url, String str) throws bz.i {
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.f75752a.getPackageName());
yy.i iVar = this.f75753b.get();
if (iVar != null) {
try {
httpURLConnection.addRequestProperty("x-firebase-client", (String) Tasks.await(iVar.b()));
} catch (InterruptedException e11) {
Thread.currentThread().interrupt();
Log.w("ContentValues", "Failed to get heartbeats header", e11);
} catch (ExecutionException e12) {
Log.w("ContentValues", "Failed to get heartbeats header", e12);
}
}
httpURLConnection.addRequestProperty("X-Android-Cert", f());
httpURLConnection.addRequestProperty("x-goog-api-key", str);
return httpURLConnection;
} catch (IOException unused) {
throw new bz.i("Firebase Installations Service is unavailable. Please try again later.", i.a.UNAVAILABLE);
}
}
public final d n(HttpURLConnection httpURLConnection) throws AssertionError, IOException {
InputStream inputStream = httpURLConnection.getInputStream();
JsonReader jsonReader = new JsonReader(new InputStreamReader(inputStream, f75751e));
f.a a11 = f.a();
d.a a12 = d.a();
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String nextName = jsonReader.nextName();
if (nextName.equals("name")) {
a12.f(jsonReader.nextString());
} else if (nextName.equals("fid")) {
a12.c(jsonReader.nextString());
} else if (nextName.equals("refreshToken")) {
a12.d(jsonReader.nextString());
} else if (nextName.equals("authToken")) {
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String nextName2 = jsonReader.nextName();
if (nextName2.equals("token")) {
a11.c(jsonReader.nextString());
} else if (nextName2.equals("expiresIn")) {
a11.d(m(jsonReader.nextString()));
} else {
jsonReader.skipValue();
}
}
a12.b(a11.a());
jsonReader.endObject();
} else {
jsonReader.skipValue();
}
}
jsonReader.endObject();
jsonReader.close();
inputStream.close();
return a12.e(d.b.OK).a();
}
public final f p(HttpURLConnection httpURLConnection) throws AssertionError, IOException {
InputStream inputStream = httpURLConnection.getInputStream();
JsonReader jsonReader = new JsonReader(new InputStreamReader(inputStream, f75751e));
f.a a11 = f.a();
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String nextName = jsonReader.nextName();
if (nextName.equals("token")) {
a11.c(jsonReader.nextString());
} else if (nextName.equals("expiresIn")) {
a11.d(m(jsonReader.nextString()));
} else {
jsonReader.skipValue();
}
}
jsonReader.endObject();
jsonReader.close();
inputStream.close();
return a11.b(f.b.OK).a();
}
public final void q(HttpURLConnection httpURLConnection, @Nullable String str, @NonNull String str2) throws IOException {
s(httpURLConnection, h(b(str, str2)));
}
public final void r(HttpURLConnection httpURLConnection) throws IOException {
s(httpURLConnection, h(c()));
}
}