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:
2025-12-04 13:59:54 +01:00
parent f2fd1c3bf5
commit e0133d2ca2
10432 changed files with 1019085 additions and 1 deletions

View File

@@ -0,0 +1,96 @@
package com.google.firebase.dynamiclinks.internal;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
@SafeParcelable.Class(creator = "DynamicLinkDataCreator")
/* loaded from: classes3.dex */
public class DynamicLinkData extends AbstractSafeParcelable {
public static final Parcelable.Creator<DynamicLinkData> CREATOR = new DynamicLinkDataCreator();
@SafeParcelable.Field(getter = "getClickTimestamp", id = 4)
private long clickTimestamp;
@SafeParcelable.Field(getter = "getDeepLink", id = 2)
private String deepLink;
@SafeParcelable.Field(getter = "getDynamicLink", id = 1)
private String dynamicLink;
@SafeParcelable.Field(getter = "getExtensionBundle", id = 5)
private Bundle extensionBundle;
@SafeParcelable.Field(getter = "getMinVersion", id = 3)
private int minVersion;
@SafeParcelable.Field(getter = "getRedirectUrl", id = 6)
private Uri redirectUrl;
@SafeParcelable.Constructor
public DynamicLinkData(@SafeParcelable.Param(id = 1) String str, @SafeParcelable.Param(id = 2) String str2, @SafeParcelable.Param(id = 3) int i, @SafeParcelable.Param(id = 4) long j4, @SafeParcelable.Param(id = 5) Bundle bundle, @SafeParcelable.Param(id = 6) Uri uri) {
this.dynamicLink = str;
this.deepLink = str2;
this.minVersion = i;
this.clickTimestamp = j4;
this.extensionBundle = bundle;
this.redirectUrl = uri;
}
public long getClickTimestamp() {
return this.clickTimestamp;
}
public String getDeepLink() {
return this.deepLink;
}
public String getDynamicLink() {
return this.dynamicLink;
}
public Bundle getExtensionBundle() {
Bundle bundle = this.extensionBundle;
return bundle == null ? new Bundle() : bundle;
}
public int getMinVersion() {
return this.minVersion;
}
public Uri getRedirectUrl() {
return this.redirectUrl;
}
public void setClickTimestamp(long j4) {
this.clickTimestamp = j4;
}
public void setDeepLink(String str) {
this.deepLink = str;
}
public void setDynamicLink(String str) {
this.dynamicLink = str;
}
public void setExtensionData(Bundle bundle) {
this.extensionBundle = bundle;
}
public void setMinVersion(int i) {
this.minVersion = i;
}
public void setRedirectUrl(Uri uri) {
this.redirectUrl = uri;
}
@Override // android.os.Parcelable
public void writeToParcel(Parcel parcel, int i) {
DynamicLinkDataCreator.writeToParcel(this, parcel, i);
}
}

View File

@@ -0,0 +1,70 @@
package com.google.firebase.dynamiclinks.internal;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
/* loaded from: classes3.dex */
public class DynamicLinkDataCreator implements Parcelable.Creator<DynamicLinkData> {
public static final int CONTENT_DESCRIPTION = 0;
public static void writeToParcel(DynamicLinkData dynamicLinkData, Parcel parcel, int i) {
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
SafeParcelWriter.writeString(parcel, 1, dynamicLinkData.getDynamicLink(), false);
SafeParcelWriter.writeString(parcel, 2, dynamicLinkData.getDeepLink(), false);
SafeParcelWriter.writeInt(parcel, 3, dynamicLinkData.getMinVersion());
SafeParcelWriter.writeLong(parcel, 4, dynamicLinkData.getClickTimestamp());
SafeParcelWriter.writeBundle(parcel, 5, dynamicLinkData.getExtensionBundle(), false);
SafeParcelWriter.writeParcelable(parcel, 6, dynamicLinkData.getRedirectUrl(), i, false);
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public DynamicLinkData createFromParcel(Parcel parcel) {
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
String str = null;
String str2 = null;
Bundle bundle = null;
Uri uri = null;
int i = 0;
long j4 = 0;
while (parcel.dataPosition() < validateObjectHeader) {
int readHeader = SafeParcelReader.readHeader(parcel);
switch (SafeParcelReader.getFieldId(readHeader)) {
case 1:
str = SafeParcelReader.createString(parcel, readHeader);
break;
case 2:
str2 = SafeParcelReader.createString(parcel, readHeader);
break;
case 3:
i = SafeParcelReader.readInt(parcel, readHeader);
break;
case 4:
j4 = SafeParcelReader.readLong(parcel, readHeader);
break;
case 5:
bundle = SafeParcelReader.createBundle(parcel, readHeader);
break;
case 6:
uri = (Uri) SafeParcelReader.createParcelable(parcel, readHeader, Uri.CREATOR);
break;
default:
SafeParcelReader.skipUnknownField(parcel, readHeader);
break;
}
}
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
return new DynamicLinkData(str, str2, i, j4, bundle, uri);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public DynamicLinkData[] newArray(int i) {
return new DynamicLinkData[i];
}
}

View File

@@ -0,0 +1,47 @@
package com.google.firebase.dynamiclinks.internal;
import android.os.Bundle;
import android.text.TextUtils;
/* loaded from: classes3.dex */
public class DynamicLinkUTMParams {
public static final String KEY_CAMPAIGN = "campaign";
public static final String KEY_CAMPAIGN_BUNDLE = "_cmp";
public static final String KEY_MEDIUM = "medium";
public static final String KEY_SCION_DATA_BUNDLE = "scionData";
public static final String KEY_SOURCE = "source";
public static final String KEY_UTM_CAMPAIGN = "utm_campaign";
public static final String KEY_UTM_MEDIUM = "utm_medium";
public static final String KEY_UTM_SOURCE = "utm_source";
private final DynamicLinkData dynamicLinkData;
private final Bundle utmParamsBundle;
public DynamicLinkUTMParams(DynamicLinkData dynamicLinkData) {
this.dynamicLinkData = dynamicLinkData;
this.utmParamsBundle = initUTMParamsBundle(dynamicLinkData);
}
private static void checkAndAdd(String str, String str2, Bundle bundle, Bundle bundle2) {
String string = bundle.getString(str);
if (TextUtils.isEmpty(string)) {
return;
}
bundle2.putString(str2, string);
}
private static Bundle initUTMParamsBundle(DynamicLinkData dynamicLinkData) {
Bundle bundle;
Bundle bundle2;
Bundle bundle3 = new Bundle();
if (dynamicLinkData != null && dynamicLinkData.getExtensionBundle() != null && (bundle = dynamicLinkData.getExtensionBundle().getBundle("scionData")) != null && (bundle2 = bundle.getBundle("_cmp")) != null) {
checkAndAdd("medium", "utm_medium", bundle2, bundle3);
checkAndAdd("source", "utm_source", bundle2, bundle3);
checkAndAdd("campaign", "utm_campaign", bundle2, bundle3);
}
return bundle3;
}
public Bundle asBundle() {
return new Bundle(this.utmParamsBundle);
}
}

View File

@@ -0,0 +1,34 @@
package com.google.firebase.dynamiclinks.internal;
import android.content.Context;
import android.os.Looper;
import com.google.android.gms.common.api.Api;
import com.google.android.gms.common.api.GoogleApi;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.internal.ClientSettings;
import com.google.android.gms.common.util.VisibleForTesting;
/* loaded from: classes3.dex */
public class DynamicLinksApi extends GoogleApi<Api.ApiOptions.NoOptions> {
static final Api<Api.ApiOptions.NoOptions> API;
private static final Api.AbstractClientBuilder<DynamicLinksClient, Api.ApiOptions.NoOptions> CLIENT_BUILDER;
private static final Api.ClientKey<DynamicLinksClient> CLIENT_KEY;
static {
Api.ClientKey<DynamicLinksClient> clientKey = new Api.ClientKey<>();
CLIENT_KEY = clientKey;
Api.AbstractClientBuilder<DynamicLinksClient, Api.ApiOptions.NoOptions> abstractClientBuilder = new Api.AbstractClientBuilder<DynamicLinksClient, Api.ApiOptions.NoOptions>() { // from class: com.google.firebase.dynamiclinks.internal.DynamicLinksApi.1
@Override // com.google.android.gms.common.api.Api.AbstractClientBuilder
public DynamicLinksClient buildClient(Context context, Looper looper, ClientSettings clientSettings, Api.ApiOptions.NoOptions noOptions, GoogleApiClient.ConnectionCallbacks connectionCallbacks, GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
return new DynamicLinksClient(context, looper, clientSettings, connectionCallbacks, onConnectionFailedListener);
}
};
CLIENT_BUILDER = abstractClientBuilder;
API = new Api<>("DynamicLinks.API", abstractClientBuilder, clientKey);
}
@VisibleForTesting
public DynamicLinksApi(Context context) {
super(context, API, Api.ApiOptions.NO_OPTIONS, GoogleApi.Settings.DEFAULT_SETTINGS);
}
}

View File

@@ -0,0 +1,63 @@
package com.google.firebase.dynamiclinks.internal;
import android.content.Context;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.internal.ClientSettings;
import com.google.android.gms.common.internal.GmsClient;
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
import com.google.firebase.dynamiclinks.internal.IDynamicLinksService;
/* loaded from: classes3.dex */
public class DynamicLinksClient extends GmsClient<IDynamicLinksService> {
public static final String ACTION_START_SERVICE = "com.google.firebase.dynamiclinks.service.START";
private static final int DYNAMIC_LINKS_API_VALUE = 131;
public static final String SERVICE_DESCRIPTOR = "com.google.firebase.dynamiclinks.internal.IDynamicLinksService";
private static final int V17 = 12451000;
public DynamicLinksClient(Context context, Looper looper, ClientSettings clientSettings, GoogleApiClient.ConnectionCallbacks connectionCallbacks, GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
super(context, looper, DYNAMIC_LINKS_API_VALUE, clientSettings, connectionCallbacks, onConnectionFailedListener);
}
public void createShortDynamicLink(IDynamicLinksCallbacks.Stub stub, Bundle bundle) {
try {
((IDynamicLinksService) getService()).createShortDynamicLink(stub, bundle);
} catch (RemoteException unused) {
}
}
public void getDynamicLink(IDynamicLinksCallbacks.Stub stub, String str) {
try {
((IDynamicLinksService) getService()).getDynamicLink(stub, str);
} catch (RemoteException unused) {
}
}
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
public int getMinApkVersion() {
return 12451000;
}
@Override // com.google.android.gms.common.internal.BaseGmsClient
public String getServiceDescriptor() {
return SERVICE_DESCRIPTOR;
}
@Override // com.google.android.gms.common.internal.BaseGmsClient
public String getStartServiceAction() {
return ACTION_START_SERVICE;
}
@Override // com.google.android.gms.common.internal.BaseGmsClient
public boolean usesClientTelemetry() {
return true;
}
@Override // com.google.android.gms.common.internal.BaseGmsClient
public IDynamicLinksService createServiceInterface(IBinder iBinder) {
return IDynamicLinksService.Stub.asInterface(iBinder);
}
}

View File

@@ -0,0 +1,33 @@
package com.google.firebase.dynamiclinks.internal;
import M2.a;
import androidx.annotation.Keep;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.firebase.FirebaseApp;
import com.google.firebase.analytics.connector.AnalyticsConnector;
import com.google.firebase.components.Component;
import com.google.firebase.components.ComponentContainer;
import com.google.firebase.components.ComponentRegistrar;
import com.google.firebase.components.Dependency;
import com.google.firebase.dynamiclinks.BuildConfig;
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
import com.google.firebase.platforminfo.LibraryVersionComponent;
import java.util.Arrays;
import java.util.List;
@Keep
@KeepForSdk
/* loaded from: classes3.dex */
public final class FirebaseDynamicLinkRegistrar implements ComponentRegistrar {
private static final String LIBRARY_NAME = "fire-dl";
public static /* synthetic */ FirebaseDynamicLinks lambda$getComponents$0(ComponentContainer componentContainer) {
return new FirebaseDynamicLinksImpl((FirebaseApp) componentContainer.get(FirebaseApp.class), componentContainer.getProvider(AnalyticsConnector.class));
}
@Override // com.google.firebase.components.ComponentRegistrar
@Keep
public List<Component<?>> getComponents() {
return Arrays.asList(Component.builder(FirebaseDynamicLinks.class).name(LIBRARY_NAME).add(Dependency.required((Class<?>) FirebaseApp.class)).add(Dependency.optionalProvider((Class<?>) AnalyticsConnector.class)).factory(new a(6)).build(), LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME));
}
}

View File

@@ -0,0 +1,198 @@
package com.google.firebase.dynamiclinks.internal;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
import android.text.TextUtils;
import android.util.Log;
import com.google.android.gms.common.api.Api;
import com.google.android.gms.common.api.GoogleApi;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.api.internal.TaskApiCall;
import com.google.android.gms.common.api.internal.TaskUtil;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableSerializer;
import com.google.android.gms.common.util.VisibleForTesting;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.android.gms.tasks.Tasks;
import com.google.firebase.FirebaseApp;
import com.google.firebase.analytics.connector.AnalyticsConnector;
import com.google.firebase.dynamiclinks.DynamicLink;
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
import com.google.firebase.dynamiclinks.PendingDynamicLinkData;
import com.google.firebase.dynamiclinks.ShortDynamicLink;
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
import com.google.firebase.inject.Provider;
/* loaded from: classes3.dex */
public class FirebaseDynamicLinksImpl extends FirebaseDynamicLinks {
private static final String ANALYTICS_FDL_ORIGIN = "fdl";
public static final String EXTRA_DYNAMIC_LINK_DATA = "com.google.firebase.dynamiclinks.DYNAMIC_LINK_DATA";
public static final String KEY_SCION_DATA = "scionData";
private static final String TAG = "FDL";
private final Provider<AnalyticsConnector> analytics;
private final FirebaseApp firebaseApp;
private final GoogleApi<Api.ApiOptions.NoOptions> googleApi;
/* loaded from: classes3.dex */
public static class AbstractDynamicLinkCallbacks extends IDynamicLinksCallbacks.Stub {
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) {
throw new UnsupportedOperationException();
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) {
throw new UnsupportedOperationException();
}
}
/* loaded from: classes3.dex */
public static class CreateShortDynamicLinkCallbacks extends AbstractDynamicLinkCallbacks {
private final TaskCompletionSource<ShortDynamicLink> completionSource;
public CreateShortDynamicLinkCallbacks(TaskCompletionSource<ShortDynamicLink> taskCompletionSource) {
this.completionSource = taskCompletionSource;
}
@Override // com.google.firebase.dynamiclinks.internal.FirebaseDynamicLinksImpl.AbstractDynamicLinkCallbacks, com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) {
TaskUtil.setResultOrApiException(status, shortDynamicLinkImpl, this.completionSource);
}
}
/* loaded from: classes3.dex */
public static final class CreateShortDynamicLinkImpl extends TaskApiCall<DynamicLinksClient, ShortDynamicLink> {
private final Bundle builderParameters;
public CreateShortDynamicLinkImpl(Bundle bundle) {
super(null, false, FirebaseDynamicLinksImplConstants.CREATE_SHORT_DYNAMIC_LINK_METHOD_KEY);
this.builderParameters = bundle;
}
@Override // com.google.android.gms.common.api.internal.TaskApiCall
public void doExecute(DynamicLinksClient dynamicLinksClient, TaskCompletionSource<ShortDynamicLink> taskCompletionSource) throws RemoteException {
dynamicLinksClient.createShortDynamicLink(new CreateShortDynamicLinkCallbacks(taskCompletionSource), this.builderParameters);
}
}
/* loaded from: classes3.dex */
public static class DynamicLinkCallbacks extends AbstractDynamicLinkCallbacks {
private final Provider<AnalyticsConnector> analytics;
private final TaskCompletionSource<PendingDynamicLinkData> completionSource;
public DynamicLinkCallbacks(Provider<AnalyticsConnector> provider, TaskCompletionSource<PendingDynamicLinkData> taskCompletionSource) {
this.analytics = provider;
this.completionSource = taskCompletionSource;
}
@Override // com.google.firebase.dynamiclinks.internal.FirebaseDynamicLinksImpl.AbstractDynamicLinkCallbacks, com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) {
Bundle bundle;
AnalyticsConnector analyticsConnector;
TaskUtil.setResultOrApiException(status, dynamicLinkData == null ? null : new PendingDynamicLinkData(dynamicLinkData), this.completionSource);
if (dynamicLinkData == null || (bundle = dynamicLinkData.getExtensionBundle().getBundle("scionData")) == null || bundle.keySet() == null || (analyticsConnector = this.analytics.get()) == null) {
return;
}
for (String str : bundle.keySet()) {
analyticsConnector.logEvent(FirebaseDynamicLinksImpl.ANALYTICS_FDL_ORIGIN, str, bundle.getBundle(str));
}
}
}
/* loaded from: classes3.dex */
public static final class GetDynamicLinkImpl extends TaskApiCall<DynamicLinksClient, PendingDynamicLinkData> {
private final Provider<AnalyticsConnector> analytics;
private final String dynamicLink;
public GetDynamicLinkImpl(Provider<AnalyticsConnector> provider, String str) {
super(null, false, FirebaseDynamicLinksImplConstants.GET_DYNAMIC_LINK_METHOD_KEY);
this.dynamicLink = str;
this.analytics = provider;
}
@Override // com.google.android.gms.common.api.internal.TaskApiCall
public void doExecute(DynamicLinksClient dynamicLinksClient, TaskCompletionSource<PendingDynamicLinkData> taskCompletionSource) throws RemoteException {
dynamicLinksClient.getDynamicLink(new DynamicLinkCallbacks(this.analytics, taskCompletionSource), this.dynamicLink);
}
}
public FirebaseDynamicLinksImpl(FirebaseApp firebaseApp, Provider<AnalyticsConnector> provider) {
this(new DynamicLinksApi(firebaseApp.getApplicationContext()), firebaseApp, provider);
}
public static void verifyDomainUriPrefix(Bundle bundle) {
Uri uri = (Uri) bundle.getParcelable(DynamicLink.Builder.KEY_DYNAMIC_LINK);
if (TextUtils.isEmpty(bundle.getString(DynamicLink.Builder.KEY_DOMAIN_URI_PREFIX)) && uri == null) {
throw new IllegalArgumentException("FDL domain is missing. Set with setDomainUriPrefix() or setDynamicLinkDomain().");
}
}
@Override // com.google.firebase.dynamiclinks.FirebaseDynamicLinks
public DynamicLink.Builder createDynamicLink() {
return new DynamicLink.Builder(this);
}
public Task<ShortDynamicLink> createShortDynamicLink(Bundle bundle) {
verifyDomainUriPrefix(bundle);
return this.googleApi.doWrite(new CreateShortDynamicLinkImpl(bundle));
}
@Override // com.google.firebase.dynamiclinks.FirebaseDynamicLinks
public Task<PendingDynamicLinkData> getDynamicLink(Intent intent) {
PendingDynamicLinkData pendingDynamicLinkData;
return (intent == null || (pendingDynamicLinkData = getPendingDynamicLinkData(intent)) == null) ? this.googleApi.doWrite(new GetDynamicLinkImpl(this.analytics, intent != null ? intent.getDataString() : null)) : Tasks.forResult(pendingDynamicLinkData);
}
public FirebaseApp getFirebaseApp() {
return this.firebaseApp;
}
public PendingDynamicLinkData getPendingDynamicLinkData(Intent intent) {
DynamicLinkData dynamicLinkData = (DynamicLinkData) SafeParcelableSerializer.deserializeFromIntentExtra(intent, EXTRA_DYNAMIC_LINK_DATA, DynamicLinkData.CREATOR);
if (dynamicLinkData != null) {
return new PendingDynamicLinkData(dynamicLinkData);
}
return null;
}
@VisibleForTesting
public FirebaseDynamicLinksImpl(GoogleApi<Api.ApiOptions.NoOptions> googleApi, FirebaseApp firebaseApp, Provider<AnalyticsConnector> provider) {
this.googleApi = googleApi;
this.firebaseApp = (FirebaseApp) Preconditions.checkNotNull(firebaseApp);
this.analytics = provider;
if (provider.get() == null) {
Log.w(TAG, "FDL logging failed. Add a dependency for Firebase Analytics to your app to enable logging of Dynamic Link events.");
}
}
public static Uri createDynamicLink(Bundle bundle) {
verifyDomainUriPrefix(bundle);
Uri uri = (Uri) bundle.getParcelable(DynamicLink.Builder.KEY_DYNAMIC_LINK);
if (uri != null) {
return uri;
}
Uri.Builder builder = new Uri.Builder();
Uri parse = Uri.parse((String) Preconditions.checkNotNull(bundle.getString(DynamicLink.Builder.KEY_DOMAIN_URI_PREFIX)));
builder.scheme(parse.getScheme());
builder.authority(parse.getAuthority());
builder.path(parse.getPath());
Bundle bundle2 = bundle.getBundle(DynamicLink.Builder.KEY_DYNAMIC_LINK_PARAMETERS);
if (bundle2 != null) {
for (String str : bundle2.keySet()) {
Object obj = bundle2.get(str);
if (obj != null) {
builder.appendQueryParameter(str, obj.toString());
}
}
}
return builder.build();
}
@Override // com.google.firebase.dynamiclinks.FirebaseDynamicLinks
public Task<PendingDynamicLinkData> getDynamicLink(Uri uri) {
return this.googleApi.doWrite(new GetDynamicLinkImpl(this.analytics, uri.toString()));
}
}

View File

@@ -0,0 +1,7 @@
package com.google.firebase.dynamiclinks.internal;
/* loaded from: classes3.dex */
interface FirebaseDynamicLinksImplConstants {
public static final int CREATE_SHORT_DYNAMIC_LINK_METHOD_KEY = 13202;
public static final int GET_DYNAMIC_LINK_METHOD_KEY = 13201;
}

View File

@@ -0,0 +1,167 @@
package com.google.firebase.dynamiclinks.internal;
import android.os.Binder;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Parcel;
import android.os.RemoteException;
import com.google.android.gms.common.api.Status;
/* loaded from: classes3.dex */
public interface IDynamicLinksCallbacks extends IInterface {
/* loaded from: classes3.dex */
public static class Default implements IDynamicLinksCallbacks {
@Override // android.os.IInterface
public IBinder asBinder() {
return null;
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) throws RemoteException {
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) throws RemoteException {
}
}
/* loaded from: classes3.dex */
public static abstract class Stub extends Binder implements IDynamicLinksCallbacks {
private static final String DESCRIPTOR = "com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks";
static final int TRANSACTION_onCreateShortDynamicLink = 2;
static final int TRANSACTION_onGetDynamicLink = 1;
/* loaded from: classes3.dex */
public static class Proxy implements IDynamicLinksCallbacks {
public static IDynamicLinksCallbacks sDefaultImpl;
private IBinder mRemote;
public Proxy(IBinder iBinder) {
this.mRemote = iBinder;
}
@Override // android.os.IInterface
public IBinder asBinder() {
return this.mRemote;
}
public String getInterfaceDescriptor() {
return Stub.DESCRIPTOR;
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) throws RemoteException {
Parcel obtain = Parcel.obtain();
try {
obtain.writeInterfaceToken(Stub.DESCRIPTOR);
if (status != null) {
obtain.writeInt(1);
status.writeToParcel(obtain, 0);
} else {
obtain.writeInt(0);
}
if (shortDynamicLinkImpl != null) {
obtain.writeInt(1);
shortDynamicLinkImpl.writeToParcel(obtain, 0);
} else {
obtain.writeInt(0);
}
if (this.mRemote.transact(2, obtain, null, 1) || Stub.getDefaultImpl() == null) {
obtain.recycle();
} else {
Stub.getDefaultImpl().onCreateShortDynamicLink(status, shortDynamicLinkImpl);
obtain.recycle();
}
} catch (Throwable th) {
obtain.recycle();
throw th;
}
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) throws RemoteException {
Parcel obtain = Parcel.obtain();
try {
obtain.writeInterfaceToken(Stub.DESCRIPTOR);
if (status != null) {
obtain.writeInt(1);
status.writeToParcel(obtain, 0);
} else {
obtain.writeInt(0);
}
if (dynamicLinkData != null) {
obtain.writeInt(1);
dynamicLinkData.writeToParcel(obtain, 0);
} else {
obtain.writeInt(0);
}
if (this.mRemote.transact(1, obtain, null, 1) || Stub.getDefaultImpl() == null) {
obtain.recycle();
} else {
Stub.getDefaultImpl().onGetDynamicLink(status, dynamicLinkData);
obtain.recycle();
}
} catch (Throwable th) {
obtain.recycle();
throw th;
}
}
}
public Stub() {
attachInterface(this, DESCRIPTOR);
}
public static IDynamicLinksCallbacks asInterface(IBinder iBinder) {
if (iBinder == null) {
return null;
}
IInterface queryLocalInterface = iBinder.queryLocalInterface(DESCRIPTOR);
return (queryLocalInterface == null || !(queryLocalInterface instanceof IDynamicLinksCallbacks)) ? new Proxy(iBinder) : (IDynamicLinksCallbacks) queryLocalInterface;
}
public static IDynamicLinksCallbacks getDefaultImpl() {
return Proxy.sDefaultImpl;
}
public static boolean setDefaultImpl(IDynamicLinksCallbacks iDynamicLinksCallbacks) {
if (Proxy.sDefaultImpl != null) {
throw new IllegalStateException("setDefaultImpl() called twice");
}
if (iDynamicLinksCallbacks == null) {
return false;
}
Proxy.sDefaultImpl = iDynamicLinksCallbacks;
return true;
}
@Override // android.os.IInterface
public IBinder asBinder() {
return this;
}
@Override // android.os.Binder
public boolean onTransact(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
if (i == 1) {
parcel.enforceInterface(DESCRIPTOR);
onGetDynamicLink(parcel.readInt() != 0 ? Status.CREATOR.createFromParcel(parcel) : null, parcel.readInt() != 0 ? DynamicLinkData.CREATOR.createFromParcel(parcel) : null);
return true;
}
if (i == 2) {
parcel.enforceInterface(DESCRIPTOR);
onCreateShortDynamicLink(parcel.readInt() != 0 ? Status.CREATOR.createFromParcel(parcel) : null, parcel.readInt() != 0 ? ShortDynamicLinkImpl.CREATOR.createFromParcel(parcel) : null);
return true;
}
if (i != 1598968902) {
return super.onTransact(i, parcel, parcel2, i4);
}
parcel2.writeString(DESCRIPTOR);
return true;
}
}
void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) throws RemoteException;
void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) throws RemoteException;
}

View File

@@ -0,0 +1,161 @@
package com.google.firebase.dynamiclinks.internal;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Parcel;
import android.os.RemoteException;
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
/* loaded from: classes3.dex */
public interface IDynamicLinksService extends IInterface {
/* loaded from: classes3.dex */
public static class Default implements IDynamicLinksService {
@Override // android.os.IInterface
public IBinder asBinder() {
return null;
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
public void createShortDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, Bundle bundle) throws RemoteException {
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
public void getDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, String str) throws RemoteException {
}
}
/* loaded from: classes3.dex */
public static abstract class Stub extends Binder implements IDynamicLinksService {
private static final String DESCRIPTOR = "com.google.firebase.dynamiclinks.internal.IDynamicLinksService";
static final int TRANSACTION_createShortDynamicLink = 2;
static final int TRANSACTION_getDynamicLink = 1;
/* loaded from: classes3.dex */
public static class Proxy implements IDynamicLinksService {
public static IDynamicLinksService sDefaultImpl;
private IBinder mRemote;
public Proxy(IBinder iBinder) {
this.mRemote = iBinder;
}
@Override // android.os.IInterface
public IBinder asBinder() {
return this.mRemote;
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
public void createShortDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, Bundle bundle) throws RemoteException {
Parcel obtain = Parcel.obtain();
Parcel obtain2 = Parcel.obtain();
try {
obtain.writeInterfaceToken("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
obtain.writeStrongBinder(iDynamicLinksCallbacks != null ? iDynamicLinksCallbacks.asBinder() : null);
if (bundle != null) {
obtain.writeInt(1);
bundle.writeToParcel(obtain, 0);
} else {
obtain.writeInt(0);
}
if (this.mRemote.transact(2, obtain, obtain2, 0) || Stub.getDefaultImpl() == null) {
obtain2.readException();
} else {
Stub.getDefaultImpl().createShortDynamicLink(iDynamicLinksCallbacks, bundle);
}
obtain2.recycle();
obtain.recycle();
} catch (Throwable th) {
obtain2.recycle();
obtain.recycle();
throw th;
}
}
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
public void getDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, String str) throws RemoteException {
Parcel obtain = Parcel.obtain();
Parcel obtain2 = Parcel.obtain();
try {
obtain.writeInterfaceToken("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
obtain.writeStrongBinder(iDynamicLinksCallbacks != null ? iDynamicLinksCallbacks.asBinder() : null);
obtain.writeString(str);
if (this.mRemote.transact(1, obtain, obtain2, 0) || Stub.getDefaultImpl() == null) {
obtain2.readException();
} else {
Stub.getDefaultImpl().getDynamicLink(iDynamicLinksCallbacks, str);
}
obtain2.recycle();
obtain.recycle();
} catch (Throwable th) {
obtain2.recycle();
obtain.recycle();
throw th;
}
}
public String getInterfaceDescriptor() {
return "com.google.firebase.dynamiclinks.internal.IDynamicLinksService";
}
}
public Stub() {
attachInterface(this, "com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
}
public static IDynamicLinksService asInterface(IBinder iBinder) {
if (iBinder == null) {
return null;
}
IInterface queryLocalInterface = iBinder.queryLocalInterface("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
return (queryLocalInterface == null || !(queryLocalInterface instanceof IDynamicLinksService)) ? new Proxy(iBinder) : (IDynamicLinksService) queryLocalInterface;
}
public static IDynamicLinksService getDefaultImpl() {
return Proxy.sDefaultImpl;
}
public static boolean setDefaultImpl(IDynamicLinksService iDynamicLinksService) {
if (Proxy.sDefaultImpl != null) {
throw new IllegalStateException("setDefaultImpl() called twice");
}
if (iDynamicLinksService == null) {
return false;
}
Proxy.sDefaultImpl = iDynamicLinksService;
return true;
}
@Override // android.os.IInterface
public IBinder asBinder() {
return this;
}
@Override // android.os.Binder
public boolean onTransact(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
if (i == 1) {
parcel.enforceInterface("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
getDynamicLink(IDynamicLinksCallbacks.Stub.asInterface(parcel.readStrongBinder()), parcel.readString());
parcel2.writeNoException();
return true;
}
if (i != 2) {
if (i != 1598968902) {
return super.onTransact(i, parcel, parcel2, i4);
}
parcel2.writeString("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
return true;
}
parcel.enforceInterface("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
createShortDynamicLink(IDynamicLinksCallbacks.Stub.asInterface(parcel.readStrongBinder()), parcel.readInt() != 0 ? (Bundle) Bundle.CREATOR.createFromParcel(parcel) : null);
parcel2.writeNoException();
return true;
}
}
void createShortDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, Bundle bundle) throws RemoteException;
void getDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, String str) throws RemoteException;
}

View File

@@ -0,0 +1,82 @@
package com.google.firebase.dynamiclinks.internal;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.firebase.dynamiclinks.ShortDynamicLink;
import java.util.ArrayList;
import java.util.List;
@SafeParcelable.Class(creator = "ShortDynamicLinkImplCreator")
/* loaded from: classes3.dex */
public final class ShortDynamicLinkImpl extends AbstractSafeParcelable implements ShortDynamicLink {
public static final Parcelable.Creator<ShortDynamicLinkImpl> CREATOR = new ShortDynamicLinkImplCreator();
@SafeParcelable.Field(getter = "getPreviewLink", id = 2)
private final Uri previewLink;
@SafeParcelable.Field(getter = "getShortLink", id = 1)
private final Uri shortLink;
@SafeParcelable.Field(getter = "getWarnings", id = 3)
private final List<WarningImpl> warnings;
@SafeParcelable.Class(creator = "WarningImplCreator")
/* loaded from: classes3.dex */
public static class WarningImpl extends AbstractSafeParcelable implements ShortDynamicLink.Warning {
public static final Parcelable.Creator<WarningImpl> CREATOR = new WarningImplCreator();
@SafeParcelable.Field(getter = "getMessage", id = 2)
@SafeParcelable.Reserved({1})
private final String message;
@SafeParcelable.Constructor
public WarningImpl(@SafeParcelable.Param(id = 2) String str) {
this.message = str;
}
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink.Warning
public String getCode() {
return null;
}
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink.Warning
public String getMessage() {
return this.message;
}
@Override // android.os.Parcelable
public void writeToParcel(Parcel parcel, int i) {
WarningImplCreator.writeToParcel(this, parcel, i);
}
}
@SafeParcelable.Constructor
public ShortDynamicLinkImpl(@SafeParcelable.Param(id = 1) Uri uri, @SafeParcelable.Param(id = 2) Uri uri2, @SafeParcelable.Param(id = 3) List<WarningImpl> list) {
this.shortLink = uri;
this.previewLink = uri2;
this.warnings = list == null ? new ArrayList<>() : list;
}
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink
public Uri getPreviewLink() {
return this.previewLink;
}
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink
public Uri getShortLink() {
return this.shortLink;
}
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink
public List<WarningImpl> getWarnings() {
return this.warnings;
}
@Override // android.os.Parcelable
public void writeToParcel(Parcel parcel, int i) {
ShortDynamicLinkImplCreator.writeToParcel(this, parcel, i);
}
}

View File

@@ -0,0 +1,52 @@
package com.google.firebase.dynamiclinks.internal;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
import com.google.firebase.dynamiclinks.internal.ShortDynamicLinkImpl;
import java.util.ArrayList;
/* loaded from: classes3.dex */
public class ShortDynamicLinkImplCreator implements Parcelable.Creator<ShortDynamicLinkImpl> {
public static final int CONTENT_DESCRIPTION = 0;
public static void writeToParcel(ShortDynamicLinkImpl shortDynamicLinkImpl, Parcel parcel, int i) {
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
SafeParcelWriter.writeParcelable(parcel, 1, shortDynamicLinkImpl.getShortLink(), i, false);
SafeParcelWriter.writeParcelable(parcel, 2, shortDynamicLinkImpl.getPreviewLink(), i, false);
SafeParcelWriter.writeTypedList(parcel, 3, shortDynamicLinkImpl.getWarnings(), false);
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ShortDynamicLinkImpl createFromParcel(Parcel parcel) {
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
Uri uri = null;
Uri uri2 = null;
ArrayList arrayList = null;
while (parcel.dataPosition() < validateObjectHeader) {
int readHeader = SafeParcelReader.readHeader(parcel);
int fieldId = SafeParcelReader.getFieldId(readHeader);
if (fieldId == 1) {
uri = (Uri) SafeParcelReader.createParcelable(parcel, readHeader, Uri.CREATOR);
} else if (fieldId == 2) {
uri2 = (Uri) SafeParcelReader.createParcelable(parcel, readHeader, Uri.CREATOR);
} else if (fieldId != 3) {
SafeParcelReader.skipUnknownField(parcel, readHeader);
} else {
arrayList = SafeParcelReader.createTypedList(parcel, readHeader, ShortDynamicLinkImpl.WarningImpl.CREATOR);
}
}
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
return new ShortDynamicLinkImpl(uri, uri2, arrayList);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ShortDynamicLinkImpl[] newArray(int i) {
return new ShortDynamicLinkImpl[i];
}
}

View File

@@ -0,0 +1,41 @@
package com.google.firebase.dynamiclinks.internal;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
import com.google.firebase.dynamiclinks.internal.ShortDynamicLinkImpl;
/* loaded from: classes3.dex */
public class WarningImplCreator implements Parcelable.Creator<ShortDynamicLinkImpl.WarningImpl> {
public static final int CONTENT_DESCRIPTION = 0;
public static void writeToParcel(ShortDynamicLinkImpl.WarningImpl warningImpl, Parcel parcel, int i) {
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
SafeParcelWriter.writeString(parcel, 2, warningImpl.getMessage(), false);
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ShortDynamicLinkImpl.WarningImpl createFromParcel(Parcel parcel) {
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
String str = null;
while (parcel.dataPosition() < validateObjectHeader) {
int readHeader = SafeParcelReader.readHeader(parcel);
if (SafeParcelReader.getFieldId(readHeader) != 2) {
SafeParcelReader.skipUnknownField(parcel, readHeader);
} else {
str = SafeParcelReader.createString(parcel, readHeader);
}
}
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
return new ShortDynamicLinkImpl.WarningImpl(str);
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.Creator
public ShortDynamicLinkImpl.WarningImpl[] newArray(int i) {
return new ShortDynamicLinkImpl.WarningImpl[i];
}
}