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.

Technical details
[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lwm;', 'b', '(Landroid/content/Context; I)V'), ('LAm;', 'a', '(Landroid/content/Context; I)V'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method wm.b():


    public void b(android.content.Context p1, int p2)
    {
        Am.a(p1, p2);
        return;
    }

Method Am.a():


    public static void a(android.content.Context p2, int p3)
    {
        int v3_1 = wm.a().a(p2, p3);
        if (v3_1 == 0) {
            return;
        } else {
            xm v2_1 = wm.a().a(p2, v3_1, "e");
            String v1_1 = new StringBuilder(57);
            v1_1.append("GooglePlayServices not available due to error ");
            v1_1.append(v3_1);
            android.util.Log.e("GooglePlayServicesUtil", v1_1.toString());
            if (v2_1 != null) {
                throw new ym(v3_1, "Google Play Services not available", v2_1);
            } else {
                throw new xm(v3_1);
            }
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lwm;', 'a', '(Landroid/content/Context; I I Ljava/lang/String;)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p1, int p2, int p3, String p4)
    {
        android.content.Intent v2_1 = this.a(p1, p2, p4);
        if (v2_1 != null) {
            return android.app.PendingIntent.getActivity(p1, p3, v2_1, 134217728);
        } else {
            return 0;
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lwm;', 'a', '(Landroid/content/Context; I I)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I I Ljava/lang/String;)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p2, int p3, int p4)
    {
        return this.a(p2, p3, p4, 0);
    }

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p1, int p2, int p3, String p4)
    {
        android.content.Intent v2_1 = this.a(p1, p2, p4);
        if (v2_1 != null) {
            return android.app.PendingIntent.getActivity(p1, p3, v2_1, 134217728);
        } else {
            return 0;
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.ramco.ramcoerp.ramconfcscanner.SCAN' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('LkA;', 'run', '()V'), ('LIB;', 'b', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.ramco.ramcoerp.ramconfcscanner.SCAN to construct an Intent

Method kA.run():


    public final void run()
    {
        this.a.b();
        return;
    }

Method IB.b():


    public final void b()
    {
        android.content.Intent v0_1 = new android.content.Intent("com.ramco.ramcoerp.ramconfcscanner.SCAN");
        v0_1.addCategory("android.intent.category.DEFAULT");
        this.cordova.startActivityForResult(this, v0_1, 8002);
        return;
    }

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

[TAINT] String 'cn.google' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('LYm;', 'b', '(Lsm; I)Z'), ('Lvm;', 'a', '(Landroid/content/Context; Lsm; I)Z'), ('Lcom/google/android/gms/common/api/GoogleApiActivity;', 'a', '(Landroid/content/Context; Landroid/app/PendingIntent; I)Landroid/app/PendingIntent;'), ('Lcom/google/android/gms/common/api/GoogleApiActivity;', 'a', '(Landroid/content/Context; Landroid/app/PendingIntent; I Z)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;')]]

Use of a string value cn.google to construct an Intent

Method Ym.b():


    public final boolean b(sm p3, int p4)
    {
        return this.i.a(this.h, p3, p4);
    }

Method vm.a():


    public final boolean a(android.content.Context p3, sm p4, int p5)
    {
        android.app.PendingIntent v0 = this.a(p3, p4);
        if (v0 == null) {
            return 0;
        } else {
            this.a(p3, p4.i(), 0, com.google.android.gms.common.api.GoogleApiActivity.a(p3, v0, p5));
            return 1;
        }
    }

Method com.google.android.gms.common.api.GoogleApiActivity.a():


    public static android.app.PendingIntent a(android.content.Context p1, android.app.PendingIntent p2, int p3)
    {
        return android.app.PendingIntent.getActivity(p1, 0, com.google.android.gms.common.api.GoogleApiActivity.a(p1, p2, p3, 1), 134217728);
    }

Method com.google.android.gms.common.api.GoogleApiActivity.a():


    public static android.content.Intent a(android.content.Context p2, android.app.PendingIntent p3, int p4, boolean p5)
    {
        android.content.Intent v0_1 = new android.content.Intent(p2, com.google.android.gms.common.api.GoogleApiActivity);
        v0_1.putExtra("pending_intent", p3);
        v0_1.putExtra("failing_client_id", p4);
        v0_1.putExtra("notify_manager", p5);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('LYm;', 'b', '(Lsm; I)Z'), ('Lvm;', 'a', '(Landroid/content/Context; Lsm; I)Z'), ('Lvm;', 'a', '(Landroid/content/Context; Lsm;)Landroid/app/PendingIntent;'), ('Lvm;', 'a', '(Landroid/content/Context; I I)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I I)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I I Ljava/lang/String;)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method Ym.b():


    public final boolean b(sm p3, int p4)
    {
        return this.i.a(this.h, p3, p4);
    }

Method vm.a():


    public final boolean a(android.content.Context p3, sm p4, int p5)
    {
        android.app.PendingIntent v0 = this.a(p3, p4);
        if (v0 == null) {
            return 0;
        } else {
            this.a(p3, p4.i(), 0, com.google.android.gms.common.api.GoogleApiActivity.a(p3, v0, p5));
            return 1;
        }
    }

Method vm.a():


    public android.app.PendingIntent a(android.content.Context p2, sm p3)
    {
        if (!p3.l()) {
            return this.a(p2, p3.i(), 0);
        } else {
            return p3.k();
        }
    }

Method vm.a():


    public android.app.PendingIntent a(android.content.Context p1, int p2, int p3)
    {
        return super.a(p1, p2, p3);
    }

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p2, int p3, int p4)
    {
        return this.a(p2, p3, p4, 0);
    }

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p1, int p2, int p3, String p4)
    {
        android.content.Intent v2_1 = this.a(p1, p2, p4);
        if (v2_1 != null) {
            return android.app.PendingIntent.getActivity(p1, p3, v2_1, 134217728);
        } else {
            return 0;
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'cn.google' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('LYm;', 'a', '(Lsm; I)V'), ('LYm;', 'b', '(Lsm; I)Z'), ('Lvm;', 'a', '(Landroid/content/Context; Lsm; I)Z'), ('Lcom/google/android/gms/common/api/GoogleApiActivity;', 'a', '(Landroid/content/Context; Landroid/app/PendingIntent; I)Landroid/app/PendingIntent;'), ('Lcom/google/android/gms/common/api/GoogleApiActivity;', 'a', '(Landroid/content/Context; Landroid/app/PendingIntent; I Z)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Landroid/os/Parcelable;)Landroid/content/Intent;')]]

Use of a string value cn.google to construct an Intent

Method Ym.a():


    public final void a(sm p4, int p5)
    {
        if (!this.b(p4, p5)) {
            android.os.Handler v0_1 = this.q;
            v0_1.sendMessage(v0_1.obtainMessage(5, p5, 0, p4));
        }
        return;
    }

Method Ym.b():


    public final boolean b(sm p3, int p4)
    {
        return this.i.a(this.h, p3, p4);
    }

Method vm.a():


    public final boolean a(android.content.Context p3, sm p4, int p5)
    {
        android.app.PendingIntent v0 = this.a(p3, p4);
        if (v0 == null) {
            return 0;
        } else {
            this.a(p3, p4.i(), 0, com.google.android.gms.common.api.GoogleApiActivity.a(p3, v0, p5));
            return 1;
        }
    }

Method com.google.android.gms.common.api.GoogleApiActivity.a():


    public static android.app.PendingIntent a(android.content.Context p1, android.app.PendingIntent p2, int p3)
    {
        return android.app.PendingIntent.getActivity(p1, 0, com.google.android.gms.common.api.GoogleApiActivity.a(p1, p2, p3, 1), 134217728);
    }

Method com.google.android.gms.common.api.GoogleApiActivity.a():


    public static android.content.Intent a(android.content.Context p2, android.app.PendingIntent p3, int p4, boolean p5)
    {
        android.content.Intent v0_1 = new android.content.Intent(p2, com.google.android.gms.common.api.GoogleApiActivity);
        v0_1.putExtra("pending_intent", p3);
        v0_1.putExtra("failing_client_id", p4);
        v0_1.putExtra("notify_manager", p5);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('LYm;', 'a', '(Lsm; I)V'), ('LYm;', 'b', '(Lsm; I)Z'), ('Lvm;', 'a', '(Landroid/content/Context; Lsm; I)Z'), ('Lvm;', 'a', '(Landroid/content/Context; Lsm;)Landroid/app/PendingIntent;'), ('Lvm;', 'a', '(Landroid/content/Context; I I)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I I)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I I Ljava/lang/String;)Landroid/app/PendingIntent;'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method Ym.a():


    public final void a(sm p4, int p5)
    {
        if (!this.b(p4, p5)) {
            android.os.Handler v0_1 = this.q;
            v0_1.sendMessage(v0_1.obtainMessage(5, p5, 0, p4));
        }
        return;
    }

Method Ym.b():


    public final boolean b(sm p3, int p4)
    {
        return this.i.a(this.h, p3, p4);
    }

Method vm.a():


    public final boolean a(android.content.Context p3, sm p4, int p5)
    {
        android.app.PendingIntent v0 = this.a(p3, p4);
        if (v0 == null) {
            return 0;
        } else {
            this.a(p3, p4.i(), 0, com.google.android.gms.common.api.GoogleApiActivity.a(p3, v0, p5));
            return 1;
        }
    }

Method vm.a():


    public android.app.PendingIntent a(android.content.Context p2, sm p3)
    {
        if (!p3.l()) {
            return this.a(p2, p3.i(), 0);
        } else {
            return p3.k();
        }
    }

Method vm.a():


    public android.app.PendingIntent a(android.content.Context p1, int p2, int p3)
    {
        return super.a(p1, p2, p3);
    }

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p2, int p3, int p4)
    {
        return this.a(p2, p3, p4, 0);
    }

Method wm.a():


    public android.app.PendingIntent a(android.content.Context p1, int p2, int p3, String p4)
    {
        android.content.Intent v2_1 = this.a(p1, p2, p4);
        if (v2_1 != null) {
            return android.app.PendingIntent.getActivity(p1, p3, v2_1, 134217728);
        } else {
            return 0;
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('LTy;', 'a', '(Landroid/content/Context;)V'), ('Lwm;', 'b', '(Landroid/content/Context; I)V'), ('LAm;', 'a', '(Landroid/content/Context; I)V'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method Ty.a():


    public static void a(android.content.Context p8)
    {
        wo.a(p8, "Context must not be null");
        Ty.a.b(p8, 11925000);
        reflect.Method v0_4 = Ty.b(p8);
        if (v0_4 == null) {
            v0_4 = Ty.c(p8);
        }
        if (v0_4 == null) {
            android.util.Log.e("ProviderInstaller", "Failed to get remote context");
            throw new xm(8);
        } else {
            if (Ty.c == null) {
                reflect.Method v3_2 = v0_4.getClassLoader().loadClass("com.google.android.gms.common.security.ProviderInstallerImpl");
                String v6_1 = new Class[1];
                v6_1[0] = android.content.Context;
                Ty.c = v3_2.getMethod("insertProvider", v6_1);
            }
            String v5_1 = new Object[1];
            v5_1[0] = v0_4;
            Ty.c.invoke(0, v5_1);
            return;
        }
    }

Method wm.b():


    public void b(android.content.Context p1, int p2)
    {
        Am.a(p1, p2);
        return;
    }

Method Am.a():


    public static void a(android.content.Context p2, int p3)
    {
        int v3_1 = wm.a().a(p2, p3);
        if (v3_1 == 0) {
            return;
        } else {
            xm v2_1 = wm.a().a(p2, v3_1, "e");
            String v1_1 = new StringBuilder(57);
            v1_1.append("GooglePlayServices not available due to error ");
            v1_1.append(v3_1);
            android.util.Log.e("GooglePlayServicesUtil", v1_1.toString());
            if (v2_1 != null) {
                throw new ym(v3_1, "Google Play Services not available", v2_1);
            } else {
                throw new xm(v3_1);
            }
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('LQn;', 'run', '()V'), ('Lvm;', 'a', '(Landroid/app/Activity; L_m; I I Landroid/content/DialogInterface$OnCancelListener;)Z'), ('Lvm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method Qn.run():


    public final void run()
    {
        if (this.b.b) {
            android.app.Dialog v0_6 = this.a.a();
            if (!v0_6.l()) {
                if (!this.b.e.b(v0_6.i())) {
                    if (v0_6.i() != 18) {
                        this.b.a(v0_6, this.a.b());
                        return;
                    } else {
                        On v1_5 = this.b;
                        v1_5.e.a(v1_5.a().getApplicationContext(), new Rn(this, vm.a(this.b.a(), this.b)));
                        return;
                    }
                } else {
                    On v1_8 = this.b;
                    v1_8.e.a(v1_8.a(), this.b.a, v0_6.i(), 2, this.b);
                    return;
                }
            } else {
                On v1_10 = this.b;
                v1_10.a.startActivityForResult(com.google.android.gms.common.api.GoogleApiActivity.a(v1_10.a(), v0_6.k(), this.a.b(), 0), 1);
                return;
            }
        } else {
            return;
        }
    }

Method vm.a():


    public final boolean a(android.app.Activity p2, _m p3, int p4, int p5, android.content.DialogInterface$OnCancelListener p6)
    {
        android.app.Dialog v3_2 = vm.a(p2, p4, jo.a(p3, this.a(p2, p4, "d"), 2), p6);
        if (v3_2 != null) {
            vm.a(p2, v3_2, "GooglePlayServicesErrorDialog", p6);
            return 1;
        } else {
            return 0;
        }
    }

Method vm.a():


    public android.content.Intent a(android.content.Context p1, int p2, String p3)
    {
        return super.a(p1, p2, p3);
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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

[TAINT] String 'com.ramco.ramcoerp.ramcobarcodescanner.SCAN' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('LBA;', 'run', '()V'), ('LIB;', 'a', '()V'), ('LIB;', 'c', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.ramco.ramcoerp.ramcobarcodescanner.SCAN to construct an Intent

Method BA.run():


    public final void run()
    {
        this.a.a();
        return;
    }

Method IB.a():


    public synthetic void a()
    {
        if ((android.os.Build$VERSION.SDK_INT <= 21) || (this.cordova.hasPermission("android.permission.CAMERA"))) {
            this.c();
        } else {
            android.widget.Toast.makeText(this.cordova.getActivity(), 2131624062, 1).show();
        }
        return;
    }

Method IB.c():


    public final void c()
    {
        android.content.Intent v0_1 = new android.content.Intent("com.ramco.ramcoerp.ramcobarcodescanner.SCAN");
        v0_1.addCategory("android.intent.category.DEFAULT");
        this.cordova.startActivityForResult(this, v0_1, 8003);
        return;
    }

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

[TAINT] String 'com.android.vending' ==>>> Sink '['Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('LAm;', 'a', '(Landroid/content/Context; I)V'), ('Lwm;', 'a', '(Landroid/content/Context; I Ljava/lang/String;)Landroid/content/Intent;'), ('LTo;', 'a', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setPackage', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.android.vending to construct an Intent

Method Am.a():


    public static void a(android.content.Context p2, int p3)
    {
        int v3_1 = wm.a().a(p2, p3);
        if (v3_1 == 0) {
            return;
        } else {
            xm v2_1 = wm.a().a(p2, v3_1, "e");
            String v1_1 = new StringBuilder(57);
            v1_1.append("GooglePlayServices not available due to error ");
            v1_1.append(v3_1);
            android.util.Log.e("GooglePlayServicesUtil", v1_1.toString());
            if (v2_1 != null) {
                throw new ym(v3_1, "Google Play Services not available", v2_1);
            } else {
                throw new xm(v3_1);
            }
        }
    }

Method wm.a():


    public android.content.Intent a(android.content.Context p3, int p4, String p5)
    {
        if ((p4 == 1) || (p4 == 2)) {
            if ((p3 == null) || (!ep.c(p3))) {
                return To.a("com.google.android.gms", wm.b(p3, p5));
            } else {
                return To.a();
            }
        } else {
            if (p4 == 3) {
                return To.a("com.google.android.gms");
            } else {
                return 0;
            }
        }
    }

Method To.a():


    public static android.content.Intent a(String p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent("android.intent.action.VIEW");
        int v3_1 = android.net.Uri.parse("market://details").buildUpon().appendQueryParameter("id", p3);
        if (!android.text.TextUtils.isEmpty(p4)) {
            v3_1.appendQueryParameter("pcampaignid", p4);
        }
        v0_1.setData(v3_1.build());
        v0_1.setPackage("com.android.vending");
        v0_1.addFlags(524288);
        return v0_1;
    }

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