Info Call to dynamic code loading API

Description

List of all dynamic code loading API calls in the application. Loading code from untrsuted sources could allow the execution of malicious code in the context of the current application.

Recommendation

This entry is informative, no recommendations applicable.

Technical details

Method com.google.android.gms.dynamite.zzh.<init>() calling method dalvik.system.PathClassLoader.<init>()


    zzh(String p1, ClassLoader p2)
    {
        super(p1, p2);
        return;
    }

Method com.google.android.exoplayer2.util.LibraryLoader.isAvailable() calling method java.lang.System.loadLibrary()


    public declared_synchronized boolean isAvailable()
    {
        try {
            if (!this.loadAttempted) {
                this.loadAttempted = 1;
                try {
                    String[] v1 = this.nativeLibraries;
                    int v2 = v1.length;
                    int v3 = 0;
                } catch (boolean v0) {
                    return this.isAvailable;
                }
                while (v3 < v2) {
                    System.loadLibrary(v1[v3]);
                    v3++;
                }
                this.isAvailable = 1;
                return this.isAvailable;
            } else {
                return this.isAvailable;
            }
        } catch (boolean v0_2) {
            throw v0_2;
        }
    }

Method com.bumptech.glide.load.model.LazyHeaders$Builder.<clinit>() calling method java.lang.System.getProperty()


    static LazyHeaders$Builder()
    {
        com.bumptech.glide.load.model.LazyHeaders$Builder.DEFAULT_USER_AGENT = System.getProperty("http.agent");
        java.util.HashMap v0_3 = new java.util.HashMap(2);
        if (!android.text.TextUtils.isEmpty(com.bumptech.glide.load.model.LazyHeaders$Builder.DEFAULT_USER_AGENT)) {
            v0_3.put("User-Agent", java.util.Collections.singletonList(new com.bumptech.glide.load.model.LazyHeaders$StringHeaderFactory(com.bumptech.glide.load.model.LazyHeaders$Builder.DEFAULT_USER_AGENT)));
        }
        v0_3.put("Accept-Encoding", java.util.Collections.singletonList(new com.bumptech.glide.load.model.LazyHeaders$StringHeaderFactory("identity")));
        com.bumptech.glide.load.model.LazyHeaders$Builder.DEFAULT_HEADERS = java.util.Collections.unmodifiableMap(v0_3);
        return;
    }

Method com.google.gson.internal.JavaVersion.determineMajorJavaVersion() calling method java.lang.System.getProperty()


    private static int determineMajorJavaVersion()
    {
        return com.google.gson.internal.JavaVersion.getMajorJavaVersion(System.getProperty("java.version"));
    }

Method com.google.zxing.ReaderException.<clinit>() calling method java.lang.System.getProperty()


    static ReaderException()
    {
        StackTraceElement[] v0_2;
        if (System.getProperty("surefire.test.class.path") == null) {
            v0_2 = 0;
        } else {
            v0_2 = 1;
        }
        com.google.zxing.ReaderException.isStackTrace = v0_2;
        StackTraceElement[] v0_3 = new StackTraceElement[0];
        com.google.zxing.ReaderException.NO_TRACE = v0_3;
        return;
    }

Method com.squareup.okhttp.ConnectionPool.<clinit>() calling method java.lang.System.getProperty()


    static ConnectionPool()
    {
        long v3;
        String v0_1 = System.getProperty("http.keepAlive");
        String v1_1 = System.getProperty("http.keepAliveDuration");
        String v2_1 = System.getProperty("http.maxConnections");
        if (v1_1 == null) {
            v3 = 300000;
        } else {
            v3 = Long.parseLong(v1_1);
        }
        if ((v0_1 == null) || (Boolean.parseBoolean(v0_1))) {
            if (v2_1 == null) {
                com.squareup.okhttp.ConnectionPool.systemDefault = new com.squareup.okhttp.ConnectionPool(5, v3);
            } else {
                com.squareup.okhttp.ConnectionPool.systemDefault = new com.squareup.okhttp.ConnectionPool(Integer.parseInt(v2_1), v3);
            }
        } else {
            com.squareup.okhttp.ConnectionPool.systemDefault = new com.squareup.okhttp.ConnectionPool(0, v3);
        }
        return;
    }

Method kotlin.internal.PlatformImplementationsKt.getJavaVersion() calling method java.lang.System.getProperty()


    private static final int getJavaVersion()
    {
        String v1_1 = System.getProperty("java.specification.version");
        if (v1_1 == null) {
            return 65542;
        } else {
            int v2_0 = kotlin.text.StringsKt.indexOf$default(((CharSequence) v1_1), 46, 0, 0, 6, 0);
            if (v2_0 >= 0) {
                int v4_2 = kotlin.text.StringsKt.indexOf$default(((CharSequence) v1_1), 46, (v2_0 + 1), 0, 4, 0);
                if (v4_2 < 0) {
                    v4_2 = v1_1.length();
                }
                if (v1_1 == null) {
                    throw new kotlin.TypeCastException("null cannot be cast to non-null type java.lang.String");
                } else {
                    String v5_4 = v1_1.substring(0, v2_0);
                    kotlin.jvm.internal.Intrinsics.checkExpressionValueIsNotNull(v5_4, "(this as java.lang.Strin\u2026ing(startIndex, endIndex)");
                    if (v1_1 == null) {
                        throw new kotlin.TypeCastException("null cannot be cast to non-null type java.lang.String");
                    } else {
                        String v6_5 = v1_1.substring((v2_0 + 1), v4_2);
                        kotlin.jvm.internal.Intrinsics.checkExpressionValueIsNotNull(v6_5, "(this as java.lang.Strin\u2026ing(startIndex, endIndex)");
                        try {
                            int v3_6 = (Integer.parseInt(v6_5) + (Integer.parseInt(v5_4) * 65536));
                        } catch (int v3) {
                            v3_6 = 65542;
                        }
                        return v3_6;
                    }
                }
            } else {
                try {
                    int v3_7 = (65536 * Integer.parseInt(v1_1));
                } catch (int v3) {
                    v3_7 = 65542;
                }
                return v3_7;
            }
        }
    }

Method kotlin.text.SystemProperties.<clinit>() calling method java.lang.System.getProperty()


    static SystemProperties()
    {
        kotlin.text.SystemProperties.INSTANCE = new kotlin.text.SystemProperties();
        String v0_3 = System.getProperty("line.separator");
        if (v0_3 == null) {
            kotlin.jvm.internal.Intrinsics.throwNpe();
        }
        kotlin.text.SystemProperties.LINE_SEPARATOR = v0_3;
        return;
    }

Method kotlinx.coroutines.internal.SystemPropsKt.systemProp() calling method java.lang.System.getProperty()


    public static final String systemProp(String p1)
    {
        kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull(p1, "propertyName");
        try {
            int v0_1 = System.getProperty(p1);
        } catch (int v0) {
            v0_1 = 0;
        }
        return v0_1;
    }

Method kotlinx.coroutines.internal.SystemPropsKt.systemProp() calling method java.lang.System.getProperty()


    public static final boolean systemProp(String p1, boolean p2)
    {
        kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull(p1, "propertyName");
        try {
            boolean v0_1;
            boolean v0_2 = System.getProperty(p1);
        } catch (boolean v0) {
            v0_1 = p2;
            return v0_1;
        }
        if (!v0_2) {
        } else {
            v0_1 = Boolean.parseBoolean(v0_2);
            return v0_1;
        }
    }

Method net.minidev.json.parser.JSONParser.<clinit>() calling method java.lang.System.getProperty()


    static JSONParser()
    {
        int v0_2;
        if (System.getProperty("JSON_SMART_SIMPLE") == null) {
            v0_2 = -1;
        } else {
            v0_2 = 1984;
        }
        net.minidev.json.parser.JSONParser.DEFAULT_PERMISSIVE_MODE = v0_2;
        return;
    }

Method org.apache.commons.math3.stat.descriptive.MultivariateSummaryStatistics.toString() calling method java.lang.System.getProperty()


    public String toString()
    {
        String v1_1 = System.getProperty("line.separator");
        StringBuilder v8 = new StringBuilder();
        String v2_18 = new StringBuilder();
        v2_18.append("MultivariateSummaryStatistics:");
        v2_18.append(v1_1);
        v8.append(v2_18.toString());
        String v2_2 = new StringBuilder();
        v2_2.append("n: ");
        v2_2.append(this.getN());
        v2_2.append(v1_1);
        v8.append(v2_2.toString());
        String v3_2 = v8;
        String v7 = v1_1;
        this.append(v3_2, this.getMin(), "min: ", ", ", v7).append(v3_2, this.getMax(), "max: ", ", ", v7).append(v3_2, this.getMean(), "mean: ", ", ", v7).append(v3_2, this.getGeometricMean(), "geometric mean: ", ", ", v7).append(v3_2, this.getSumSq(), "sum of squares: ", ", ", v7).append(v3_2, this.getSumLog(), "sum of logarithms: ", ", ", v7).append(v3_2, this.getStandardDeviation(), "standard deviation: ", ", ", v7);
        String v2_14 = new StringBuilder();
        v2_14.append("covariance: ");
        v2_14.append(this.getCovariance().toString());
        v2_14.append(v1_1);
        v8.append(v2_14.toString());
        return v8.toString();
    }

Method kotlinx.coroutines.CommonPool.<clinit>() calling method java.lang.System.getProperty()


    static CommonPool()
    {
        kotlinx.coroutines.CommonPool.INSTANCE = new kotlinx.coroutines.CommonPool();
        Integer v2 = kotlinx.coroutines.CommonPool.INSTANCE;
        try {
            int v0_2 = System.getProperty("kotlinx.coroutines.default.parallelism");
        } catch (int v0) {
            v0_2 = 0;
        }
        int v0_3;
        if (v0_2 == 0) {
            v0_3 = -1;
        } else {
            v2 = kotlin.text.StringsKt.toIntOrNull(v0_2);
            if ((v2 == null) || (v2.intValue() < 1)) {
                String v3_2 = new StringBuilder();
                v3_2.append("Expected positive number in kotlinx.coroutines.default.parallelism, but has ");
                v3_2.append(v0_2);
                throw ((Throwable) new IllegalStateException(v3_2.toString().toString()));
            } else {
                v0_3 = v2.intValue();
            }
        }
        kotlinx.coroutines.CommonPool.requestedParallelism = v0_3;
        return;
    }