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.