Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class zaa implements IInterface {
|
||||
private final IBinder zaa;
|
||||
private final String zab;
|
||||
|
||||
public zaa(IBinder iBinder, String str) {
|
||||
this.zaa = iBinder;
|
||||
this.zab = str;
|
||||
}
|
||||
|
||||
@Override // android.os.IInterface
|
||||
public final IBinder asBinder() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
public final Parcel zaa() {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
obtain.writeInterfaceToken(this.zab);
|
||||
return obtain;
|
||||
}
|
||||
|
||||
public final Parcel zab(int i, Parcel parcel) throws RemoteException {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
try {
|
||||
try {
|
||||
this.zaa.transact(2, parcel, obtain, 0);
|
||||
obtain.readException();
|
||||
return obtain;
|
||||
} catch (RuntimeException e4) {
|
||||
obtain.recycle();
|
||||
throw e4;
|
||||
}
|
||||
} finally {
|
||||
parcel.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
public final void zac(int i, Parcel parcel) throws RemoteException {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
try {
|
||||
this.zaa.transact(i, parcel, obtain, 0);
|
||||
obtain.readException();
|
||||
} finally {
|
||||
parcel.recycle();
|
||||
obtain.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
public final void zad(int i, Parcel parcel) throws RemoteException {
|
||||
try {
|
||||
this.zaa.transact(1, parcel, null, 1);
|
||||
} finally {
|
||||
parcel.recycle();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class zab extends Binder implements IInterface {
|
||||
public zab(String str) {
|
||||
attachInterface(this, str);
|
||||
}
|
||||
|
||||
@Override // android.os.IInterface
|
||||
public final IBinder asBinder() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // android.os.Binder
|
||||
public final boolean onTransact(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
|
||||
if (i <= 16777215) {
|
||||
parcel.enforceInterface(getInterfaceDescriptor());
|
||||
} else if (super.onTransact(i, parcel, parcel2, i4)) {
|
||||
return true;
|
||||
}
|
||||
return zaa(i, parcel, parcel2, i4);
|
||||
}
|
||||
|
||||
public boolean zaa(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
|
||||
throw null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.os.BadParcelableException;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zac {
|
||||
private static final ClassLoader zaa = zac.class.getClassLoader();
|
||||
|
||||
private zac() {
|
||||
}
|
||||
|
||||
public static Parcelable zaa(Parcel parcel, Parcelable.Creator creator) {
|
||||
if (parcel.readInt() == 0) {
|
||||
return null;
|
||||
}
|
||||
return (Parcelable) creator.createFromParcel(parcel);
|
||||
}
|
||||
|
||||
public static void zab(Parcel parcel) {
|
||||
int dataAvail = parcel.dataAvail();
|
||||
if (dataAvail > 0) {
|
||||
throw new BadParcelableException(a.l(dataAvail, "Parcel data not fully consumed, unread size: "));
|
||||
}
|
||||
}
|
||||
|
||||
public static void zac(Parcel parcel, boolean z3) {
|
||||
parcel.writeInt(z3 ? 1 : 0);
|
||||
}
|
||||
|
||||
public static void zad(Parcel parcel, Parcelable parcelable) {
|
||||
if (parcelable == null) {
|
||||
parcel.writeInt(0);
|
||||
} else {
|
||||
parcel.writeInt(1);
|
||||
parcelable.writeToParcel(parcel, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public static void zae(Parcel parcel, IInterface iInterface) {
|
||||
if (iInterface == null) {
|
||||
parcel.writeStrongBinder(null);
|
||||
} else {
|
||||
parcel.writeStrongBinder(iInterface.asBinder());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Inherited;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Inherited
|
||||
@Target({ElementType.TYPE})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface zad {
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Inherited;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Inherited
|
||||
@Target({ElementType.TYPE})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface zae {
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import com.google.android.gms.common.Feature;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zaf {
|
||||
public static final Feature zaa;
|
||||
public static final Feature[] zab;
|
||||
|
||||
static {
|
||||
Feature feature = new Feature("CLIENT_TELEMETRY", 1L);
|
||||
zaa = feature;
|
||||
zab = new Feature[]{feature};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zah extends Drawable.ConstantState {
|
||||
private zah() {
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.ConstantState
|
||||
public final int getChangingConfigurations() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.ConstantState
|
||||
public final Drawable newDrawable() {
|
||||
return zai.zaa;
|
||||
}
|
||||
|
||||
public /* synthetic */ zah(zag zagVar) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zai extends Drawable {
|
||||
private static final zai zaa = new zai();
|
||||
private static final zah zab = new zah(null);
|
||||
|
||||
private zai() {
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final void draw(Canvas canvas) {
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final Drawable.ConstantState getConstantState() {
|
||||
return zab;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final int getOpacity() {
|
||||
return -2;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final void setAlpha(int i) {
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final void setColorFilter(ColorFilter colorFilter) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zaj extends Drawable.ConstantState {
|
||||
int zaa;
|
||||
int zab;
|
||||
|
||||
public zaj(zaj zajVar) {
|
||||
if (zajVar != null) {
|
||||
this.zaa = zajVar.zaa;
|
||||
this.zab = zajVar.zab;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.ConstantState
|
||||
public final int getChangingConfigurations() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.ConstantState
|
||||
public final Drawable newDrawable() {
|
||||
return new zak(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import kotlin.KotlinVersion;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zak extends Drawable implements Drawable.Callback {
|
||||
private int zaa;
|
||||
private long zab;
|
||||
private int zac;
|
||||
private int zad;
|
||||
private int zae;
|
||||
private int zaf;
|
||||
private boolean zag;
|
||||
private boolean zah;
|
||||
private zaj zai;
|
||||
private Drawable zaj;
|
||||
private Drawable zak;
|
||||
private boolean zal;
|
||||
private boolean zam;
|
||||
private boolean zan;
|
||||
private int zao;
|
||||
|
||||
public zak(Drawable drawable, Drawable drawable2) {
|
||||
this(null);
|
||||
drawable = drawable == null ? zai.zaa : drawable;
|
||||
this.zaj = drawable;
|
||||
drawable.setCallback(this);
|
||||
zaj zajVar = this.zai;
|
||||
zajVar.zab = drawable.getChangingConfigurations() | zajVar.zab;
|
||||
drawable2 = drawable2 == null ? zai.zaa : drawable2;
|
||||
this.zak = drawable2;
|
||||
drawable2.setCallback(this);
|
||||
this.zai.zab |= drawable2.getChangingConfigurations();
|
||||
}
|
||||
|
||||
/* JADX WARN: Code restructure failed: missing block: B:15:0x004d, code lost:
|
||||
|
||||
if (r0 == 0) goto L22;
|
||||
*/
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public final void draw(android.graphics.Canvas r7) {
|
||||
/*
|
||||
r6 = this;
|
||||
int r0 = r6.zaa
|
||||
r1 = 2
|
||||
r2 = 0
|
||||
r3 = 1
|
||||
if (r0 == r3) goto L38
|
||||
if (r0 == r1) goto La
|
||||
goto L41
|
||||
La:
|
||||
long r0 = r6.zab
|
||||
r4 = 0
|
||||
int r0 = (r0 > r4 ? 1 : (r0 == r4 ? 0 : -1))
|
||||
if (r0 < 0) goto L41
|
||||
long r0 = android.os.SystemClock.uptimeMillis()
|
||||
long r4 = r6.zab
|
||||
long r0 = r0 - r4
|
||||
float r0 = (float) r0
|
||||
int r1 = r6.zae
|
||||
float r1 = (float) r1
|
||||
float r0 = r0 / r1
|
||||
r1 = 1065353216(0x3f800000, float:1.0)
|
||||
int r4 = (r0 > r1 ? 1 : (r0 == r1 ? 0 : -1))
|
||||
if (r4 < 0) goto L25
|
||||
goto L26
|
||||
L25:
|
||||
r3 = r2
|
||||
L26:
|
||||
if (r3 == 0) goto L2a
|
||||
r6.zaa = r2
|
||||
L2a:
|
||||
float r0 = java.lang.Math.min(r0, r1)
|
||||
int r1 = r6.zac
|
||||
float r1 = (float) r1
|
||||
float r1 = r1 * r0
|
||||
r0 = 0
|
||||
float r1 = r1 + r0
|
||||
int r0 = (int) r1
|
||||
r6.zaf = r0
|
||||
goto L41
|
||||
L38:
|
||||
long r3 = android.os.SystemClock.uptimeMillis()
|
||||
r6.zab = r3
|
||||
r6.zaa = r1
|
||||
r3 = r2
|
||||
L41:
|
||||
int r0 = r6.zaf
|
||||
boolean r1 = r6.zag
|
||||
android.graphics.drawable.Drawable r4 = r6.zaj
|
||||
android.graphics.drawable.Drawable r5 = r6.zak
|
||||
if (r3 == 0) goto L60
|
||||
if (r1 == 0) goto L50
|
||||
if (r0 != 0) goto L55
|
||||
goto L51
|
||||
L50:
|
||||
r2 = r0
|
||||
L51:
|
||||
r4.draw(r7)
|
||||
r0 = r2
|
||||
L55:
|
||||
int r6 = r6.zad
|
||||
if (r0 != r6) goto L5f
|
||||
r5.setAlpha(r6)
|
||||
r5.draw(r7)
|
||||
L5f:
|
||||
return
|
||||
L60:
|
||||
if (r1 == 0) goto L68
|
||||
int r2 = r6.zad
|
||||
int r2 = r2 - r0
|
||||
r4.setAlpha(r2)
|
||||
L68:
|
||||
r4.draw(r7)
|
||||
if (r1 == 0) goto L72
|
||||
int r1 = r6.zad
|
||||
r4.setAlpha(r1)
|
||||
L72:
|
||||
if (r0 <= 0) goto L7f
|
||||
r5.setAlpha(r0)
|
||||
r5.draw(r7)
|
||||
int r7 = r6.zad
|
||||
r5.setAlpha(r7)
|
||||
L7f:
|
||||
r6.invalidateSelf()
|
||||
return
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.internal.base.zak.draw(android.graphics.Canvas):void");
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final int getChangingConfigurations() {
|
||||
int changingConfigurations = super.getChangingConfigurations();
|
||||
zaj zajVar = this.zai;
|
||||
return zajVar.zab | changingConfigurations | zajVar.zaa;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final Drawable.ConstantState getConstantState() {
|
||||
if (!zac()) {
|
||||
return null;
|
||||
}
|
||||
this.zai.zaa = getChangingConfigurations();
|
||||
return this.zai;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final int getIntrinsicHeight() {
|
||||
return Math.max(this.zaj.getIntrinsicHeight(), this.zak.getIntrinsicHeight());
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final int getIntrinsicWidth() {
|
||||
return Math.max(this.zaj.getIntrinsicWidth(), this.zak.getIntrinsicWidth());
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final int getOpacity() {
|
||||
if (!this.zan) {
|
||||
this.zao = Drawable.resolveOpacity(this.zaj.getOpacity(), this.zak.getOpacity());
|
||||
this.zan = true;
|
||||
}
|
||||
return this.zao;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.Callback
|
||||
public final void invalidateDrawable(Drawable drawable) {
|
||||
Drawable.Callback callback = getCallback();
|
||||
if (callback != null) {
|
||||
callback.invalidateDrawable(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final Drawable mutate() {
|
||||
if (this.zah || super.mutate() != this) {
|
||||
return this;
|
||||
}
|
||||
if (!zac()) {
|
||||
throw new IllegalStateException("One or more children of this LayerDrawable does not have constant state; this drawable cannot be mutated.");
|
||||
}
|
||||
this.zaj.mutate();
|
||||
this.zak.mutate();
|
||||
this.zah = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final void onBoundsChange(Rect rect) {
|
||||
this.zaj.setBounds(rect);
|
||||
this.zak.setBounds(rect);
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.Callback
|
||||
public final void scheduleDrawable(Drawable drawable, Runnable runnable, long j4) {
|
||||
Drawable.Callback callback = getCallback();
|
||||
if (callback != null) {
|
||||
callback.scheduleDrawable(this, runnable, j4);
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final void setAlpha(int i) {
|
||||
if (this.zaf == this.zad) {
|
||||
this.zaf = i;
|
||||
}
|
||||
this.zad = i;
|
||||
invalidateSelf();
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable
|
||||
public final void setColorFilter(ColorFilter colorFilter) {
|
||||
this.zaj.setColorFilter(colorFilter);
|
||||
this.zak.setColorFilter(colorFilter);
|
||||
}
|
||||
|
||||
@Override // android.graphics.drawable.Drawable.Callback
|
||||
public final void unscheduleDrawable(Drawable drawable, Runnable runnable) {
|
||||
Drawable.Callback callback = getCallback();
|
||||
if (callback != null) {
|
||||
callback.unscheduleDrawable(this, runnable);
|
||||
}
|
||||
}
|
||||
|
||||
public final Drawable zaa() {
|
||||
return this.zak;
|
||||
}
|
||||
|
||||
public final void zab(int i) {
|
||||
this.zac = this.zad;
|
||||
this.zaf = 0;
|
||||
this.zae = 250;
|
||||
this.zaa = 1;
|
||||
invalidateSelf();
|
||||
}
|
||||
|
||||
public final boolean zac() {
|
||||
if (!this.zal) {
|
||||
boolean z3 = false;
|
||||
if (this.zaj.getConstantState() != null && this.zak.getConstantState() != null) {
|
||||
z3 = true;
|
||||
}
|
||||
this.zam = z3;
|
||||
this.zal = true;
|
||||
}
|
||||
return this.zam;
|
||||
}
|
||||
|
||||
public zak(zaj zajVar) {
|
||||
this.zaa = 0;
|
||||
this.zad = KotlinVersion.MAX_COMPONENT_VALUE;
|
||||
this.zaf = 0;
|
||||
this.zag = true;
|
||||
this.zai = new zaj(zajVar);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.widget.ImageView;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zal extends ImageView {
|
||||
@Override // android.widget.ImageView, android.view.View
|
||||
public final void onDraw(Canvas canvas) {
|
||||
throw null;
|
||||
}
|
||||
|
||||
@Override // android.widget.ImageView, android.view.View
|
||||
public final void onMeasure(int i, int i4) {
|
||||
throw null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import s.i;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zam extends i {
|
||||
public zam() {
|
||||
super(10);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.os.Build;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zan {
|
||||
public static boolean zaa() {
|
||||
return Build.VERSION.SDK_INT >= 33 || Build.VERSION.CODENAME.charAt(0) == 'T';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import D.h;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zao extends h {
|
||||
@Deprecated
|
||||
public static Intent zaa(Context context, BroadcastReceiver broadcastReceiver, IntentFilter intentFilter) {
|
||||
if (zan.zaa()) {
|
||||
return context.registerReceiver(broadcastReceiver, intentFilter, true != zan.zaa() ? 0 : 2);
|
||||
}
|
||||
return context.registerReceiver(broadcastReceiver, intentFilter);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.os.Build;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zap {
|
||||
public static final int zaa;
|
||||
|
||||
static {
|
||||
zaa = Build.VERSION.SDK_INT >= 31 ? 33554432 : 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface zaq {
|
||||
ExecutorService zaa(ThreadFactory threadFactory, int i);
|
||||
|
||||
ExecutorService zab(int i, int i4);
|
||||
|
||||
ExecutorService zac(int i, ThreadFactory threadFactory, int i4);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zas implements zaq {
|
||||
private zas() {
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.internal.base.zaq
|
||||
public final ExecutorService zaa(ThreadFactory threadFactory, int i) {
|
||||
return zac(1, threadFactory, 1);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.internal.base.zaq
|
||||
public final ExecutorService zab(int i, int i4) {
|
||||
return zac(4, Executors.defaultThreadFactory(), 2);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.internal.base.zaq
|
||||
public final ExecutorService zac(int i, ThreadFactory threadFactory, int i4) {
|
||||
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(i, i, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue(), threadFactory);
|
||||
threadPoolExecutor.allowCoreThreadTimeOut(true);
|
||||
return Executors.unconfigurableExecutorService(threadPoolExecutor);
|
||||
}
|
||||
|
||||
public /* synthetic */ zas(zar zarVar) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zat {
|
||||
private static final zaq zaa;
|
||||
private static volatile zaq zab;
|
||||
|
||||
static {
|
||||
zas zasVar = new zas(null);
|
||||
zaa = zasVar;
|
||||
zab = zasVar;
|
||||
}
|
||||
|
||||
public static zaq zaa() {
|
||||
return zab;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class zau extends Handler {
|
||||
public zau() {
|
||||
}
|
||||
|
||||
public zau(Looper looper) {
|
||||
super(looper);
|
||||
}
|
||||
|
||||
public zau(Looper looper, Handler.Callback callback) {
|
||||
super(looper, callback);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.google.android.gms.internal.base;
|
||||
|
||||
import com.google.android.gms.common.Feature;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zav {
|
||||
public static final Feature zaa;
|
||||
public static final Feature[] zab;
|
||||
|
||||
static {
|
||||
Feature feature = new Feature("moduleinstall", 7L);
|
||||
zaa = feature;
|
||||
zab = new Feature[]{feature};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user