Potentially Intent Spoofing

Description

The application is vulnerable to intent spoofing which could result in the access and exploitation of unauthorized components.

Recommendation

It is recommended to apply proper input validation and parameter filtering on intent action.

References
Technical details
[TAINT] String 'text/vnd.android.intent' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Bundle;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Landroidx/core/app/RemoteInput;', 'addResultsToIntent', '([Landroidx/core/app/RemoteInput; Landroid/content/Intent; Landroid/os/Bundle;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Bundle;)Landroid/content/Intent;')]]

Use of a string value text/vnd.android.intent to construct an Intent

Method androidx.core.app.RemoteInput.addResultsToIntent():


    public static void addResultsToIntent(androidx.core.app.RemoteInput[] p7, android.content.Intent p8, android.os.Bundle p9)
    {
        if (android.os.Build$VERSION.SDK_INT < 26) {
            int v2 = 0;
            if (android.os.Build$VERSION.SDK_INT < 20) {
                if (android.os.Build$VERSION.SDK_INT >= 16) {
                    android.content.Intent v0_1 = androidx.core.app.RemoteInput.getClipDataIntentFromIntent(p8);
                    if (v0_1 == null) {
                        v0_1 = new android.content.Intent();
                    }
                    android.os.Bundle v1_2 = v0_1.getBundleExtra("android.remoteinput.resultsData");
                    if (v1_2 == null) {
                        v1_2 = new android.os.Bundle();
                    }
                    int v3_0 = p7.length;
                    while (v2 < v3_0) {
                        String v4_0 = p7[v2];
                        CharSequence v5_1 = p9.get(v4_0.getResultKey());
                        if ((v5_1 instanceof CharSequence)) {
                            v1_2.putCharSequence(v4_0.getResultKey(), ((CharSequence) v5_1));
                        }
                        v2++;
                    }
                    v0_1.putExtra("android.remoteinput.resultsData", v1_2);
                    p8.setClipData(android.content.ClipData.newIntent("android.remoteinput.results", v0_1));
                }
            } else {
                android.content.Intent v0_4 = androidx.core.app.RemoteInput.getResultsFromIntent(p8);
                android.os.Bundle v1_5 = androidx.core.app.RemoteInput.getResultsSource(p8);
                if (v0_4 != null) {
                    v0_4.putAll(p9);
                    p9 = v0_4;
                }
                android.content.Intent v0_5 = p7.length;
                int v3_1 = 0;
                while (v3_1 < v0_5) {
                    String v4_2 = p7[v3_1];
                    CharSequence v5_4 = androidx.core.app.RemoteInput.getDataResultsFromIntent(p8, v4_2.getResultKey());
                    boolean v6_2 = new androidx.core.app.RemoteInput[1];
                    v6_2[0] = v4_2;
                    android.app.RemoteInput.addResultsToIntent(androidx.core.app.RemoteInput.fromCompat(v6_2), p8, p9);
                    if (v5_4 != null) {
                        androidx.core.app.RemoteInput.addDataResultToIntent(v4_2, p8, v5_4);
                    }
                    v3_1++;
                }
                androidx.core.app.RemoteInput.setResultsSource(p8, v1_5);
            }
        } else {
            android.app.RemoteInput.addResultsToIntent(androidx.core.app.RemoteInput.fromCompat(p7), p8, p9);
        }
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'text/vnd.android.intent' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; I)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Landroidx/core/app/RemoteInput;', 'addResultsToIntent', '([Landroidx/core/app/RemoteInput; Landroid/content/Intent; Landroid/os/Bundle;)V'), ('Landroidx/core/app/RemoteInput;', 'setResultsSource', '(Landroid/content/Intent; I)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; I)Landroid/content/Intent;')]]

Use of a string value text/vnd.android.intent to construct an Intent

Method androidx.core.app.RemoteInput.addResultsToIntent():


    public static void addResultsToIntent(androidx.core.app.RemoteInput[] p7, android.content.Intent p8, android.os.Bundle p9)
    {
        if (android.os.Build$VERSION.SDK_INT < 26) {
            int v2 = 0;
            if (android.os.Build$VERSION.SDK_INT < 20) {
                if (android.os.Build$VERSION.SDK_INT >= 16) {
                    android.content.Intent v0_1 = androidx.core.app.RemoteInput.getClipDataIntentFromIntent(p8);
                    if (v0_1 == null) {
                        v0_1 = new android.content.Intent();
                    }
                    android.os.Bundle v1_2 = v0_1.getBundleExtra("android.remoteinput.resultsData");
                    if (v1_2 == null) {
                        v1_2 = new android.os.Bundle();
                    }
                    int v3_0 = p7.length;
                    while (v2 < v3_0) {
                        String v4_0 = p7[v2];
                        CharSequence v5_1 = p9.get(v4_0.getResultKey());
                        if ((v5_1 instanceof CharSequence)) {
                            v1_2.putCharSequence(v4_0.getResultKey(), ((CharSequence) v5_1));
                        }
                        v2++;
                    }
                    v0_1.putExtra("android.remoteinput.resultsData", v1_2);
                    p8.setClipData(android.content.ClipData.newIntent("android.remoteinput.results", v0_1));
                }
            } else {
                android.content.Intent v0_4 = androidx.core.app.RemoteInput.getResultsFromIntent(p8);
                android.os.Bundle v1_5 = androidx.core.app.RemoteInput.getResultsSource(p8);
                if (v0_4 != null) {
                    v0_4.putAll(p9);
                    p9 = v0_4;
                }
                android.content.Intent v0_5 = p7.length;
                int v3_1 = 0;
                while (v3_1 < v0_5) {
                    String v4_2 = p7[v3_1];
                    CharSequence v5_4 = androidx.core.app.RemoteInput.getDataResultsFromIntent(p8, v4_2.getResultKey());
                    boolean v6_2 = new androidx.core.app.RemoteInput[1];
                    v6_2[0] = v4_2;
                    android.app.RemoteInput.addResultsToIntent(androidx.core.app.RemoteInput.fromCompat(v6_2), p8, p9);
                    if (v5_4 != null) {
                        androidx.core.app.RemoteInput.addDataResultToIntent(v4_2, p8, v5_4);
                    }
                    v3_1++;
                }
                androidx.core.app.RemoteInput.setResultsSource(p8, v1_5);
            }
        } else {
            android.app.RemoteInput.addResultsToIntent(androidx.core.app.RemoteInput.fromCompat(p7), p8, p9);
        }
        return;
    }

Method androidx.core.app.RemoteInput.setResultsSource():


    public static void setResultsSource(android.content.Intent p2, int p3)
    {
        if (android.os.Build$VERSION.SDK_INT < 28) {
            if (android.os.Build$VERSION.SDK_INT >= 16) {
                android.content.Intent v0_1 = androidx.core.app.RemoteInput.getClipDataIntentFromIntent(p2);
                if (v0_1 == null) {
                    v0_1 = new android.content.Intent();
                }
                v0_1.putExtra("android.remoteinput.resultsSource", p3);
                p2.setClipData(android.content.ClipData.newIntent("android.remoteinput.results", v0_1));
            }
        } else {
            android.app.RemoteInput.setResultsSource(p2, p3);
        }
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'androidx.core.app.EXTRA_CALLING_PACKAGE' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Landroidx/core/app/ShareCompat$IntentBuilder;', 'from', '(Landroid/app/Activity;)Landroidx/core/app/ShareCompat$IntentBuilder;'), ('Landroidx/core/app/ShareCompat$IntentBuilder;', '<init>', '(Landroid/app/Activity;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value androidx.core.app.EXTRA_CALLING_PACKAGE to construct an Intent

Method androidx.core.app.ShareCompat$IntentBuilder.from():


    public static androidx.core.app.ShareCompat$IntentBuilder from(android.app.Activity p1)
    {
        return new androidx.core.app.ShareCompat$IntentBuilder(p1);
    }

Method androidx.core.app.ShareCompat$IntentBuilder.<init>():


    private ShareCompat$IntentBuilder(android.app.Activity p4)
    {
        this.mActivity = p4;
        this.mIntent = new android.content.Intent().setAction("android.intent.action.SEND");
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.addFlags(524288);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.android.launcher.action.INSTALL_SHORTCUT' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Landroidx/core/content/pm/ShortcutManagerCompat;', 'isRequestPinShortcutSupported', '(Landroid/content/Context;)Z'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.launcher.action.INSTALL_SHORTCUT to construct an Intent

Method androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported():


    public static boolean isRequestPinShortcutSupported(android.content.Context p3)
    {
        if (android.os.Build$VERSION.SDK_INT < 26) {
            if (androidx.core.content.ContextCompat.checkSelfPermission(p3, "com.android.launcher.permission.INSTALL_SHORTCUT") == 0) {
                int v3_2 = p3.getPackageManager().queryBroadcastReceivers(new android.content.Intent("com.android.launcher.action.INSTALL_SHORTCUT"), 0).iterator();
                while (v3_2.hasNext()) {
                    boolean v0_7 = ((android.content.pm.ResolveInfo) v3_2.next()).activityInfo.permission;
                    if ((android.text.TextUtils.isEmpty(v0_7)) || ("com.android.launcher.permission.INSTALL_SHORTCUT".equals(v0_7))) {
                        return 1;
                    }
                }
                return 0;
            } else {
                return 0;
            }
        } else {
            return ((android.content.pm.ShortcutManager) p3.getSystemService(android.content.pm.ShortcutManager)).isRequestPinShortcutSupported();
        }
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'androidx.core.app.EXTRA_CALLING_PACKAGE' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Landroidx/core/app/ShareCompat$IntentBuilder;', '<init>', '(Landroid/app/Activity;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value androidx.core.app.EXTRA_CALLING_PACKAGE to construct an Intent

Method androidx.core.app.ShareCompat$IntentBuilder.<init>():


    private ShareCompat$IntentBuilder(android.app.Activity p4)
    {
        this.mActivity = p4;
        this.mIntent = new android.content.Intent().setAction("android.intent.action.SEND");
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.addFlags(524288);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'androidx.core.app.EXTRA_CALLING_ACTIVITY' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Landroidx/core/app/ShareCompat$IntentBuilder;', '<init>', '(Landroid/app/Activity;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;')]]

Use of a string value androidx.core.app.EXTRA_CALLING_ACTIVITY to construct an Intent

Method androidx.core.app.ShareCompat$IntentBuilder.<init>():


    private ShareCompat$IntentBuilder(android.app.Activity p4)
    {
        this.mActivity = p4;
        this.mIntent = new android.content.Intent().setAction("android.intent.action.SEND");
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.addFlags(524288);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'androidx.core.app.EXTRA_CALLING_ACTIVITY' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Landroidx/core/app/ShareCompat$IntentBuilder;', 'from', '(Landroid/app/Activity;)Landroidx/core/app/ShareCompat$IntentBuilder;'), ('Landroidx/core/app/ShareCompat$IntentBuilder;', '<init>', '(Landroid/app/Activity;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;')]]

Use of a string value androidx.core.app.EXTRA_CALLING_ACTIVITY to construct an Intent

Method androidx.core.app.ShareCompat$IntentBuilder.from():


    public static androidx.core.app.ShareCompat$IntentBuilder from(android.app.Activity p1)
    {
        return new androidx.core.app.ShareCompat$IntentBuilder(p1);
    }

Method androidx.core.app.ShareCompat$IntentBuilder.<init>():


    private ShareCompat$IntentBuilder(android.app.Activity p4)
    {
        this.mActivity = p4;
        this.mIntent = new android.content.Intent().setAction("android.intent.action.SEND");
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_PACKAGE", p4.getPackageName());
        this.mIntent.putExtra("androidx.core.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.putExtra("android.support.v4.app.EXTRA_CALLING_ACTIVITY", p4.getComponentName());
        this.mIntent.addFlags(524288);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.android.launcher.action.INSTALL_SHORTCUT' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Landroidx/core/content/pm/ShortcutManagerCompat;', 'requestPinShortcut', '(Landroid/content/Context; Landroidx/core/content/pm/ShortcutInfoCompat; Landroid/content/IntentSender;)Z'), ('Landroidx/core/content/pm/ShortcutManagerCompat;', 'isRequestPinShortcutSupported', '(Landroid/content/Context;)Z'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.launcher.action.INSTALL_SHORTCUT to construct an Intent

Method androidx.core.content.pm.ShortcutManagerCompat.requestPinShortcut():


    public static boolean requestPinShortcut(android.content.Context p10, androidx.core.content.pm.ShortcutInfoCompat p11, android.content.IntentSender p12)
    {
        if (android.os.Build$VERSION.SDK_INT < 26) {
            if (androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported(p10)) {
                android.content.Intent v3 = p11.addToIntent(new android.content.Intent("com.android.launcher.action.INSTALL_SHORTCUT"));
                if (p12 != null) {
                    p10.sendOrderedBroadcast(v3, 0, new androidx.core.content.pm.ShortcutManagerCompat$1(p12), 0, -1, 0, 0);
                    return 1;
                } else {
                    p10.sendBroadcast(v3);
                    return 1;
                }
            } else {
                return 0;
            }
        } else {
            return ((android.content.pm.ShortcutManager) p10.getSystemService(android.content.pm.ShortcutManager)).requestPinShortcut(p11.toShortcutInfo(), p12);
        }
    }

Method androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported():


    public static boolean isRequestPinShortcutSupported(android.content.Context p3)
    {
        if (android.os.Build$VERSION.SDK_INT < 26) {
            if (androidx.core.content.ContextCompat.checkSelfPermission(p3, "com.android.launcher.permission.INSTALL_SHORTCUT") == 0) {
                int v3_2 = p3.getPackageManager().queryBroadcastReceivers(new android.content.Intent("com.android.launcher.action.INSTALL_SHORTCUT"), 0).iterator();
                while (v3_2.hasNext()) {
                    boolean v0_7 = ((android.content.pm.ResolveInfo) v3_2.next()).activityInfo.permission;
                    if ((android.text.TextUtils.isEmpty(v0_7)) || ("com.android.launcher.permission.INSTALL_SHORTCUT".equals(v0_7))) {
                        return 1;
                    }
                }
                return 0;
            } else {
                return 0;
            }
        } else {
            return ((android.content.pm.ShortcutManager) p3.getSystemService(android.content.pm.ShortcutManager)).isRequestPinShortcutSupported();
        }
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'androidx.contentpager.content.wakelockid' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; I)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Landroidx/legacy/content/WakefulBroadcastReceiver;', 'startWakefulService', '(Landroid/content/Context; Landroid/content/Intent;)Landroid/content/ComponentName;'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; I)Landroid/content/Intent;')]]

Use of a string value androidx.contentpager.content.wakelockid to construct an Intent

Method androidx.legacy.content.WakefulBroadcastReceiver.startWakefulService():


    public static android.content.ComponentName startWakefulService(android.content.Context p5, android.content.Intent p6)
    {
        try {
            int v1 = androidx.legacy.content.WakefulBroadcastReceiver.mNextId;
            androidx.legacy.content.WakefulBroadcastReceiver.mNextId = (androidx.legacy.content.WakefulBroadcastReceiver.mNextId + 1);
        } catch (android.os.PowerManager$WakeLock v5_5) {
            throw v5_5;
        }
        if (androidx.legacy.content.WakefulBroadcastReceiver.mNextId <= 0) {
            androidx.legacy.content.WakefulBroadcastReceiver.mNextId = 1;
        }
        p6.putExtra("androidx.contentpager.content.wakelockid", v1);
        android.content.ComponentName v6_1 = p5.startService(p6);
        if (v6_1 != null) {
            android.os.PowerManager$WakeLock v5_2 = ((android.os.PowerManager) p5.getSystemService("power"));
            android.util.SparseArray v2_2 = new StringBuilder();
            v2_2.append("androidx.core:wake:");
            v2_2.append(v6_1.flattenToShortString());
            android.os.PowerManager$WakeLock v5_3 = v5_2.newWakeLock(1, v2_2.toString());
            v5_3.setReferenceCounted(0);
            v5_3.acquire(60000);
            androidx.legacy.content.WakefulBroadcastReceiver.sActiveWakeLocks.put(v1, v5_3);
            return v6_1;
        } else {
            return 0;
        }
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Landroidx/mediarouter/media/RemotePlaybackClient;', '<init>', '(Landroid/content/Context; Landroidx/mediarouter/media/MediaRouter$RouteInfo;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED to construct an Intent

Method androidx.mediarouter.media.RemotePlaybackClient.<init>():


    public RemotePlaybackClient(android.content.Context p3, androidx.mediarouter.media.MediaRouter$RouteInfo p4)
    {
        if (p3 == null) {
            throw new IllegalArgumentException("context must not be null");
        } else {
            if (p4 == null) {
                throw new IllegalArgumentException("route must not be null");
            } else {
                this.mContext = p3;
                this.mRoute = p4;
                String v4_2 = new android.content.IntentFilter();
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED");
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED");
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED");
                this.mActionReceiver = new androidx.mediarouter.media.RemotePlaybackClient$ActionReceiver(this);
                p3.registerReceiver(this.mActionReceiver, v4_2);
                String v4_4 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED");
                v4_4.setPackage(p3.getPackageName());
                this.mItemStatusPendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_4, 0);
                String v4_8 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED");
                v4_8.setPackage(p3.getPackageName());
                this.mSessionStatusPendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_8, 0);
                String v4_11 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED");
                v4_11.setPackage(p3.getPackageName());
                this.mMessagePendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_11, 0);
                this.detectFeatures();
                return;
            }
        }
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Landroidx/mediarouter/media/RemotePlaybackClient;', '<init>', '(Landroid/content/Context; Landroidx/mediarouter/media/MediaRouter$RouteInfo;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED to construct an Intent

Method androidx.mediarouter.media.RemotePlaybackClient.<init>():


    public RemotePlaybackClient(android.content.Context p3, androidx.mediarouter.media.MediaRouter$RouteInfo p4)
    {
        if (p3 == null) {
            throw new IllegalArgumentException("context must not be null");
        } else {
            if (p4 == null) {
                throw new IllegalArgumentException("route must not be null");
            } else {
                this.mContext = p3;
                this.mRoute = p4;
                String v4_2 = new android.content.IntentFilter();
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED");
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED");
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED");
                this.mActionReceiver = new androidx.mediarouter.media.RemotePlaybackClient$ActionReceiver(this);
                p3.registerReceiver(this.mActionReceiver, v4_2);
                String v4_4 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED");
                v4_4.setPackage(p3.getPackageName());
                this.mItemStatusPendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_4, 0);
                String v4_8 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED");
                v4_8.setPackage(p3.getPackageName());
                this.mSessionStatusPendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_8, 0);
                String v4_11 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED");
                v4_11.setPackage(p3.getPackageName());
                this.mMessagePendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_11, 0);
                this.detectFeatures();
                return;
            }
        }
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Landroidx/mediarouter/media/RemotePlaybackClient;', '<init>', '(Landroid/content/Context; Landroidx/mediarouter/media/MediaRouter$RouteInfo;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED to construct an Intent

Method androidx.mediarouter.media.RemotePlaybackClient.<init>():


    public RemotePlaybackClient(android.content.Context p3, androidx.mediarouter.media.MediaRouter$RouteInfo p4)
    {
        if (p3 == null) {
            throw new IllegalArgumentException("context must not be null");
        } else {
            if (p4 == null) {
                throw new IllegalArgumentException("route must not be null");
            } else {
                this.mContext = p3;
                this.mRoute = p4;
                String v4_2 = new android.content.IntentFilter();
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED");
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED");
                v4_2.addAction("androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED");
                this.mActionReceiver = new androidx.mediarouter.media.RemotePlaybackClient$ActionReceiver(this);
                p3.registerReceiver(this.mActionReceiver, v4_2);
                String v4_4 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_ITEM_STATUS_CHANGED");
                v4_4.setPackage(p3.getPackageName());
                this.mItemStatusPendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_4, 0);
                String v4_8 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_SESSION_STATUS_CHANGED");
                v4_8.setPackage(p3.getPackageName());
                this.mSessionStatusPendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_8, 0);
                String v4_11 = new android.content.Intent("androidx.mediarouter.media.actions.ACTION_MESSAGE_RECEIVED");
                v4_11.setPackage(p3.getPackageName());
                this.mMessagePendingIntent = android.app.PendingIntent.getBroadcast(p3, 0, v4_11, 0);
                this.detectFeatures();
                return;
            }
        }
    }

Method android.content.Intent.<init>() not found.