Info Call to command execution API

Description

List of all command execution API calls

Recommendation

This entry is informative, no recommendations applicable.

Technical details

Method com.g.a.e.c() calling method java.lang.Runtime.exec()


    public boolean c()
    {
        try {
            String v0_2 = new String[8];
            v0_2[0] = "/sbin/";
            v0_2[1] = "/system/bin/";
            v0_2[2] = "/system/xbin/";
            v0_2[3] = "/data/local/xbin/";
            v0_2[4] = "/data/local/bin/";
            v0_2[5] = "/system/sd/xbin/";
            v0_2[6] = "/system/bin/failsafe/";
            v0_2[7] = "/data/local/";
            String v3_5 = v0_2.length;
            int v4_5 = 0;
        } catch (String v0_1) {
            com.g.a.j.a("MFilterItDataPoints ::MF_IR_0702 ");
            com.google.devtools.build.android.desugar.runtime.ThrowableExtension.printStackTrace(v0_1);
            try {
                String v0_3 = android.os.Build.TAGS;
            } catch (String v0_4) {
                com.google.devtools.build.android.desugar.runtime.ThrowableExtension.printStackTrace(v0_4);
                if (!new java.io.File("/system/app/Superuser.apk").exists()) {
                    try {
                        String v0_10 = Runtime.getRuntime().exec("su");
                    } catch (String v0_11) {
                        throw v0_11;
                    } catch (Exception) {
                        return 0;
                    }
                    if (v0_10 != null) {
                        try {
                            v0_10.destroy();
                        } catch (Exception) {
                            com.g.a.j.a("MFilterItDataPoints ::MF_IR_0702 ");
                        }
                    }
                    return 1;
                } else {
                    return 1;
                }
            }
            if ((v0_3 == null) || (!v0_3.contains("test-keys"))) {
            } else {
                return 1;
            }
        }
        while (v4_5 < v3_5) {
            boolean v5_0 = v0_2[v4_5];
            StringBuilder v7_1 = new StringBuilder();
            v7_1.append(v5_0);
            v7_1.append("su");
            if (!new java.io.File(v7_1.toString()).exists()) {
                v4_5++;
            } else {
                return 1;
            }
        }
    }

Method com.simpl.android.fingerprint.a.d.a() calling method java.lang.Runtime.exec()


    static boolean a()
    {
        int v0_0 = 0;
        Process v1_0 = 0;
        try {
            Process v2_1 = Runtime.getRuntime();
            java.io.InputStreamReader v3_3 = new String[2];
            v3_3[0] = "/system/xbin/which";
            v3_3[1] = "su";
            Process v2_0 = v2_1.exec(v3_3);
            try {
                if (new java.io.BufferedReader(new java.io.InputStreamReader(v2_0.getInputStream())).readLine() != null) {
                    v0_0 = 1;
                }
            } catch (int v0_1) {
                v1_0 = v2_0;
                if (v1_0 != null) {
                    v1_0.destroy();
                }
                throw v0_1;
            } catch (Throwable) {
                v1_0 = v2_0;
                if (v1_0 != null) {
                    v1_0.destroy();
                }
                return 0;
            }
            if (v2_0 != null) {
                v2_0.destroy();
            }
            return v0_0;
        } catch (int v0_1) {
        } catch (Throwable) {
        }
    }

Method com.simpl.android.fingerprint.a.m.isRootBySuProcess() calling method java.lang.Runtime.exec()


    private boolean isRootBySuProcess()
    {
        int v0_0 = 0;
        Process v1_0 = 0;
        try {
            Process v2_1 = Runtime.getRuntime();
            java.io.InputStreamReader v3_3 = new String[2];
            v3_3[0] = "/system/xbin/which";
            v3_3[1] = "su";
            Process v2_0 = v2_1.exec(v3_3);
            try {
                if (new java.io.BufferedReader(new java.io.InputStreamReader(v2_0.getInputStream())).readLine() != null) {
                    v0_0 = 1;
                }
            } catch (int v0_1) {
                v1_0 = v2_0;
                if (v1_0 != null) {
                    v1_0.destroy();
                }
                throw v0_1;
            } catch (Throwable) {
                v1_0 = v2_0;
                if (v1_0 != null) {
                    v1_0.destroy();
                }
                return 0;
            }
            if (v2_0 != null) {
                v2_0.destroy();
            }
            return v0_0;
        } catch (int v0_1) {
        } catch (Throwable) {
        }
    }