This post is part of AppLovin Nonconsensual Installs > Execution Path. See important disclosures.
Receiving 6 as its first parameter, AppHub’s onTransact() selects the corresponding case of the switch, passing execution to AppHub’s showDirectDownloadAppDetailsWithExtra().
public boolean onTransact(int i, Parcel parcel, Parcel parcel2, int i2) throws RemoteException {
...
switch (i) {
...
case 6:
showDirectDownloadAppDetailsWithExtra(parcel.readString(), (Bundle) _Parcel.readTypedObject(parcel, Bundle.CREATOR), IAppHubDirectDownloadServiceCallback.Stub.asInterface(parcel.readStrongBinder()));
return true;
case 7:
directInstall(parcel.readString(), (Bundle) _Parcel.readTypedObject(parcel, Bundle.CREATOR), IAppHubDirectDownloadServiceCallback.Stub.asInterface(parcel.readStrongBinder()));
return true; ...
Next, showDirectDownloadAppDetailsWithExtra() passes execution to service method AbstractC1838d0.m3826C() with delegate C2823r for asynchronous processing.
public final void showDirectDownloadAppDetailsWithExtra(String str, Bundle bundle, IAppHubDirectDownloadServiceCallback iAppHubDirectDownloadServiceCallback) {
C4281e c4281e = AbstractC1870m0.f5700a;
AbstractC1838d0.m3826C(AbstractC3671n.f11554a.f6073w, new C2823r(this, str, iAppHubDirectDownloadServiceCallback, bundle, null));
}
C2823r implements a Kotlin coroutine continuation with entry point mo410r(). After validating the ad token (details here), mo410r() passes execution to BinderC2829u.m4811d():
public final Object mo410r(Object obj) {...
return BinderC2829u.m4811d(binderC2829u, context, c1059x, c1965o2, m3145d, c3337g0, c2834w02, this) != enumC1084a ? enumC1084a : c6458y;
...
Next BinderC2829u.m4811d() prepares a DirectDownloadActivity intent and passes execution to c3429t1.m5750a():
public static final Object m4811d(BinderC2829u binderC2829u, Context context, C1059x c1059x, C1965o c1965o, Map map, C3337g0 c3337g0, C2834w0 c2834w0, AbstractC1576c abstractC1576c) { //Activity Launch Preparation
...
if (i != 0) {
AbstractC6434a.m9578e(obj);
m8400e = AbstractC5394a.m8400e(c1965o, map, EnumC3874oa.f11840t);
C3469z0 c3469z0 = DirectDownloadActivity.Companion;
if (map != null) {
C1939b c1939b = C1941c.Companion;
bundle = new Bundle(map.size());
final C0292s c0292s = new C0292s(2, bundle, Bundle.class, "putString", "putString(Ljava/lang/String;Ljava/lang/String;)V", 0, 1);
map.forEach(new BiConsumer() {
@Override
public final void accept(Object obj2, Object obj3) {
C0292s.this.mo413d(obj2, obj3);
}
});
} else {
bundle = null;
}
AbstractC4226k.m6579e(c3469z0, "");
AbstractC4226k.m6579e(context, "context");
AbstractC4226k.m6579e(c3337g0, "appLookupKey");
Intent intent2 = new Intent(context, (Class<?>) DirectDownloadActivity.class);
if (c1965o != null) {
intent2.putExtra(DirectDownloadActivity.EXTRA_REMOTE_CONFIG, AbstractC4087l.m6100L(c1965o));
}
C3344h0 c3344h0 = InterfaceC3372l0.Companion;
C6509s c6509s = AbstractC3379m0.f10651a;
AbstractC4226k.m6579e(c3344h0, "");
C6509s c6509s2 = AbstractC3379m0.f10651a;
c6509s2.getClass();
Intent addFlags = intent2.putExtra(DirectDownloadActivity.EXTRA_APP_LOOKUP_KEY, c6509s2.m9632c(c3344h0.serializer(), c3337g0)).putExtra(DirectDownloadActivity.EXTRA_EXTERNAL_EXTRA_PARAMS, bundle).putExtra(DirectDownloadActivity.EXTRA_FLOW_TRIGGER, 0).addFlags(268500992);
AbstractC4226k.m6578d(addFlags, "addFlags(...)");
try {
C5552e1.m8622e(addFlags, c1059x);
long m4257u0 = (c1965o == null || (mo2202a = c1965o.mo2202a("an.service.dd_activity_resuming_timeout_seconds")) == null || (m3138K = AbstractC1469t3.m3138K(mo2202a, EnumC1101c.SECONDS)) == null) ? AbstractC2271t1.m4257u0(3.0d, EnumC1101c.SECONDS) : m3138K.f3684a;
C3429t1 c3429t1 = binderC2829u2.f8595o;
c2825s2.f8558v = binderC2829u2;
c2825s2.f8559w = c3337g0;
c2834w02 = c2834w0;
c2825s2.f8560x = c2834w02;
c2825s2.f8561y = m8400e;
c2825s2.f8562z = addFlags;
c2825s2.f8557C = 1;
obj = c3429t1.m5750a(context, addFlags, m4257u0, c2825s2);
...
Next m5750a() creates C3394o1:
public final Object m5750a(Context context, Intent intent, long j, AbstractC1576c abstractC1576c) { //coroutine orchestrator
...
C3394o1 c3394o1 = new C3394o1(context, intent, strM3550a, null);
...
Then C3394o1 continuation entry point mo410r()starts the DirectDownloadActivity previously created:
public final Object mo410r(Object obj) { //Kotlin coroutine continuation
AbstractC6434a.m9578e(obj);
this.f10684w.startActivity(this.f10685x.putExtra ("com.applovin.array.directdownload.DirectDownloadActivityResumingTrackerService.EXTRA.LAUNCH_ID", this.f10686y));
return C6458y.f19392a;
}
Execution continues in DirectDownloadActivity loads a WebView.