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 rx.internal.util.f.<clinit>() calling method java.lang.System.getProperty()


    static f()
    {
        rx.internal.util.f.f = rx.internal.operators.NotificationLite.a();
        rx.internal.util.f.b = 128;
        if (rx.internal.util.d.a()) {
            rx.internal.util.f.b = 16;
        }
        StringBuilder v1_0 = System.getProperty("rx.ring-buffer.size");
        if (v1_0 != null) {
            try {
                rx.internal.util.f.b = Integer.parseInt(v1_0);
            } catch (String v0_3) {
                System.err.println(new StringBuilder().append("Failed to set \'rx.buffer.size\' with value ").append(v1_0).append(" => ").append(v0_3.getMessage()).toString());
            }
        }
        rx.internal.util.f.c = rx.internal.util.f.b;
        rx.internal.util.f.d = new rx.internal.util.f$1();
        rx.internal.util.f.e = new rx.internal.util.f$2();
        return;
    }

Method rx.internal.util.a.y.<clinit>() calling method java.lang.System.getProperty()


    static y()
    {
        int v0_0 = 1;
        if (System.getProperty("rx.unsafe-disable") == null) {
            v0_0 = 0;
        }
        rx.internal.util.a.y.b = v0_0;
        try {
            int v0_1 = sun.misc.Unsafe.getDeclaredField("theUnsafe");
            v0_1.setAccessible(1);
            int v0_3 = ((sun.misc.Unsafe) v0_1.get(0));
        } catch (int v0) {
            v0_3 = 0;
        }
        rx.internal.util.a.y.a = v0_3;
        return;
    }

Method rx.internal.util.ScalarSynchronousObservable.<clinit>() calling method java.lang.System.getProperty()


    static ScalarSynchronousObservable()
    {
        rx.internal.util.ScalarSynchronousObservable.c = Boolean.valueOf(System.getProperty("rx.just.strong-mode", "false")).booleanValue();
        return;
    }

Method org.apache.commons.cli.c.<init>() calling method java.lang.System.getProperty()


    public c()
    {
        this.a = 74;
        this.b = 1;
        this.c = 3;
        this.d = "usage: ";
        this.e = System.getProperty("line.separator");
        this.f = "-";
        this.g = "--";
        this.h = "arg";
        this.i = new org.apache.commons.cli.c$a(0);
        return;
    }

Method org.joda.time.DateTimeZone.h() calling method java.lang.System.getProperty()


    private static org.joda.time.tz.b h()
    {
        try {
            org.joda.time.tz.a v0_1;
            org.joda.time.tz.a v0_4 = System.getProperty("org.joda.time.DateTimeZone.NameProvider");
        } catch (org.joda.time.tz.a v0) {
            v0_1 = 0;
            if (v0_1 == null) {
                v0_1 = new org.joda.time.tz.a();
            }
            return v0_1;
        }
        if (v0_4 == null) {
            v0_1 = 0;
        } else {
            try {
                v0_1 = ((org.joda.time.tz.b) Class.forName(v0_4).newInstance());
            } catch (org.joda.time.tz.a v0_2) {
                throw new RuntimeException(v0_2);
            }
        }
    }

Method org.joda.time.DateTimeZone.g() calling method java.lang.System.getProperty()


    private static org.joda.time.tz.c g()
    {
        try {
            org.joda.time.tz.d v0_1;
            org.joda.time.tz.d v0_5 = System.getProperty("org.joda.time.DateTimeZone.Provider");
        } catch (org.joda.time.tz.d v0) {
            try {
                org.joda.time.tz.d v0_4 = System.getProperty("org.joda.time.DateTimeZone.Folder");
            } catch (org.joda.time.tz.d v0) {
                try {
                    v0_1 = org.joda.time.DateTimeZone.b(new org.joda.time.tz.e("org/joda/time/tz/data"));
                } catch (org.joda.time.tz.d v0_9) {
                    v0_9.printStackTrace();
                    v0_1 = new org.joda.time.tz.d();
                }
                return v0_1;
            }
            if (v0_4 == null) {
            } else {
                try {
                    v0_1 = org.joda.time.DateTimeZone.b(new org.joda.time.tz.e(new java.io.File(v0_4)));
                } catch (org.joda.time.tz.d v0_6) {
                    throw new RuntimeException(v0_6);
                }
                return v0_1;
            }
        }
        if (v0_5 == null) {
        } else {
            try {
                v0_1 = org.joda.time.DateTimeZone.b(((org.joda.time.tz.c) Class.forName(v0_5).newInstance()));
            } catch (org.joda.time.tz.d v0_2) {
                throw new RuntimeException(v0_2);
            }
            return v0_1;
        }
    }

Method org.joda.time.DateTimeZone.a() calling method java.lang.System.getProperty()


    public static ark>org.joda.time.DateTimeZoneark> a()
    {
        ark>org.joda.time.DateTimeZoneark> v0_1 = ((ark>org.joda.time.DateTimeZoneark>) ark>org.joda.time.DateTimeZoneark>.d.get());
        if (v0_1 == null) {
            try {
                boolean v1_4 = System.getProperty("user.timezone");
            } catch (boolean v1) {
                if (v0_1 != null) {
                    if (v0_1 == null) {
                        v0_1 = ark>org.joda.time.DateTimeZoneark>.a;
                    }
                    if (!ark>org.joda.time.DateTimeZoneark>.d.compareAndSet(0, v0_1)) {
                        v0_1 = ((ark>org.joda.time.DateTimeZoneark>) ark>org.joda.time.DateTimeZoneark>.d.get());
                    }
                } else {
                    v0_1 = ark>org.joda.time.DateTimeZoneark>.a(java.util.TimeZone.getDefault());
                }
            } catch (boolean v1) {
            }
            if (!v1_4) {
            } else {
                v0_1 = ark>org.joda.time.DateTimeZoneark>.a(v1_4);
            }
        }
        return v0_1;
    }

Method com.j256.ormlite.logger.LoggerFactory.findLogType() calling method java.lang.System.getProperty()


    private static com.j256.ormlite.logger.LoggerFactory$LogType findLogType()
    {
        int v0_6;
        int v0_2 = System.getProperty("com.j256.ormlite.logger.type");
        if (v0_2 == 0) {
            com.j256.ormlite.logger.Log$Level v2_2 = com.j256.ormlite.logger.LoggerFactory$LogType.values();
            int v1_1 = 0;
            while (v1_1 < v2_2.length) {
                v0_6 = v2_2[v1_1];
                if (!v0_6.isAvailable()) {
                    v1_1++;
                }
            }
            v0_6 = com.j256.ormlite.logger.LoggerFactory$LogType.LOCAL;
        } else {
            try {
                v0_6 = com.j256.ormlite.logger.LoggerFactory$LogType.valueOf(v0_2);
            } catch (int v1) {
                new com.j256.ormlite.logger.LocalLog(com.j256.ormlite.logger.LoggerFactory.getName()).log(com.j256.ormlite.logger.Log$Level.WARNING, new StringBuilder().append("Could not find valid log-type from system property \'com.j256.ormlite.logger.type\', value \'").append(v0_6).append("\'").toString());
            }
        }
        return v0_6;
    }

Method com.j256.ormlite.logger.LocalLog.<init>() calling method java.lang.System.getProperty()


    public LocalLog(String p6)
    {
        IllegalArgumentException v0_1;
        this.className = com.j256.ormlite.logger.LoggerFactory.getSimpleClassName(p6);
        String v1_2 = 0;
        if (com.j256.ormlite.logger.LocalLog.classLevels == null) {
            v0_1 = 0;
        } else {
            IllegalArgumentException v2_0 = com.j256.ormlite.logger.LocalLog.classLevels.iterator();
            while (v2_0.hasNext()) {
                IllegalArgumentException v0_11;
                IllegalArgumentException v0_10 = ((com.j256.ormlite.logger.LocalLog$PatternLevel) v2_0.next());
                if ((!v0_10.pattern.matcher(p6).matches()) || ((v1_2 != null) && (v0_10.level.ordinal() >= v1_2.ordinal()))) {
                    v0_11 = v1_2;
                } else {
                    v0_11 = v0_10.level;
                }
                v1_2 = v0_11;
            }
            v0_1 = v1_2;
        }
        if (v0_1 == null) {
            String v1_0 = System.getProperty("com.j256.ormlite.logger.level");
            if (v1_0 != null) {
                try {
                    v0_1 = com.j256.ormlite.logger.Log$Level.valueOf(v1_0.toUpperCase());
                } catch (IllegalArgumentException v0) {
                    try {
                        v0_1 = com.j256.ormlite.logger.Log$Level.valueOf(v1_0.toUpperCase(java.util.Locale.ENGLISH));
                    } catch (IllegalArgumentException v0_7) {
                        throw new IllegalArgumentException(new StringBuilder().append("Level \'").append(v1_0).append("\' was not found").toString(), v0_7);
                    }
                }
            } else {
                v0_1 = com.j256.ormlite.logger.LocalLog.DEFAULT_LEVEL;
            }
        }
        this.level = v0_1;
        return;
    }

Method com.j256.ormlite.logger.LocalLog.<clinit>() calling method java.lang.System.getProperty()


    static LocalLog()
    {
        com.j256.ormlite.logger.LocalLog.DEFAULT_LEVEL = com.j256.ormlite.logger.Log$Level.DEBUG;
        com.j256.ormlite.logger.LocalLog.dateFormatThreadLocal = new com.j256.ormlite.logger.LocalLog$1();
        com.j256.ormlite.logger.LocalLog.classLevels = com.j256.ormlite.logger.LocalLog.readLevelResourceFile(com.j256.ormlite.logger.LocalLog.getResourceAsStream("/ormliteLocalLog.properties"));
        com.j256.ormlite.logger.LocalLog.openLogFile(System.getProperty("com.j256.ormlite.logger.file"));
        return;
    }

Method com.j256.ormlite.android.DatabaseTableConfigUtil.<clinit>() calling method java.lang.System.getProperty()


    static DatabaseTableConfigUtil()
    {
        com.j256.ormlite.android.DatabaseTableConfigUtil.workedC = 0;
        if ((android.os.Build$VERSION.SDK_INT >= 14) || (System.getProperty("ormlite.annotation.hack.disable") != null)) {
            com.j256.ormlite.android.DatabaseTableConfigUtil.configFieldNums = 0;
        } else {
            com.j256.ormlite.android.DatabaseTableConfigUtil.configFieldNums = com.j256.ormlite.android.DatabaseTableConfigUtil.lookupClasses();
        }
        return;
    }

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.a = v0_2;
        StackTraceElement[] v0_3 = new StackTraceElement[0];
        com.google.zxing.ReaderException.b = v0_3;
        return;
    }

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.Map v0_4 = new java.util.HashMap(2);
        if (!android.text.TextUtils.isEmpty(com.bumptech.glide.load.model.LazyHeaders$Builder.DEFAULT_USER_AGENT)) {
            v0_4.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_4.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_4);
        return;
    }

Method android.support.c.a.a() calling method java.lang.System.getProperty()


    public static void a(android.content.Context p6)
    {
        android.util.Log.i("MultiDex", "install");
        if (!ark>android.support.c.aark>.c) {
            if (android.os.Build$VERSION.SDK_INT >= 4) {
                try {
                    RuntimeException v0_0 = ark>android.support.c.aark>.b(p6);
                } catch (RuntimeException v0_2) {
                    android.util.Log.e("MultiDex", "Multidex installation failure", v0_2);
                    throw new RuntimeException(new StringBuilder().append("Multi dex installation failed (").append(v0_2.getMessage()).append(").").toString());
                }
                if (v0_0 != null) {
                    String v2_7 = v0_0.sourceDir;
                    if (!ark>android.support.c.aark>.b.contains(v2_7)) {
                        ark>android.support.c.aark>.b.add(v2_7);
                        if (android.os.Build$VERSION.SDK_INT > 20) {
                            android.util.Log.w("MultiDex", new StringBuilder().append("MultiDex is not guaranteed to work in SDK version ").append(android.os.Build$VERSION.SDK_INT).append(": SDK version higher than ").append(20).append(" should be backed by ").append("runtime with built-in multidex capabilty but it\'s not the ").append("case here: java.vm.version=\"").append(System.getProperty("java.vm.version")).append("\"").toString());
                        }
                        try {
                            String v2_12 = p6.getClassLoader();
                        } catch (RuntimeException v0_12) {
                            android.util.Log.w("MultiDex", "Failure while trying to obtain Context class loader. Must be running in test mode. Skip patching.", v0_12);
                        }
                        if (v2_12 != null) {
                            try {
                                ark>android.support.c.aark>.c(p6);
                            } catch (java.io.File v3_18) {
                                android.util.Log.w("MultiDex", "Something went wrong when trying to clear old MultiDex extraction, continuing without cleaning.", v3_18);
                            }
                            java.io.File v3_20 = new java.io.File(v0_0.dataDir, ark>android.support.c.aark>.a);
                            boolean v4_14 = android.support.c.c.a(p6, v0_0, v3_20, 0);
                            if (!ark>android.support.c.aark>.a(v4_14)) {
                                android.util.Log.w("MultiDex", "Files were not valid zip files.  Forcing a reload.");
                                RuntimeException v0_14 = android.support.c.c.a(p6, v0_0, v3_20, 1);
                                if (!ark>android.support.c.aark>.a(v0_14)) {
                                    throw new RuntimeException("Zip files were not valid.");
                                } else {
                                    ark>android.support.c.aark>.a(v2_12, v3_20, v0_14);
                                }
                            } else {
                                ark>android.support.c.aark>.a(v2_12, v3_20, v4_14);
                            }
                            android.util.Log.i("MultiDex", "install done");
                        } else {
                            android.util.Log.e("MultiDex", "Context class loader is null. Must be running in test mode. Skip patching.");
                        }
                    } else {
                    }
                }
            } else {
                throw new RuntimeException(new StringBuilder().append("Multi dex installation failed. SDK ").append(android.os.Build$VERSION.SDK_INT).append(" is unsupported. Min SDK version is ").append(4).append(".").toString());
            }
        } else {
            android.util.Log.i("MultiDex", "VM has multidex support, MultiDex support library is disabled.");
        }
        return;
    }

Method android.support.c.a.<clinit>() calling method java.lang.System.getProperty()


    static a()
    {
        android.support.c.a.a = new StringBuilder().append("code_cache").append(java.io.File.separator).append("secondary-dexes").toString();
        android.support.c.a.b = new java.util.HashSet();
        android.support.c.a.c = android.support.c.a.a(System.getProperty("java.vm.version"));
        return;
    }

Method pl.droidsonroids.gif.i.a() calling method java.lang.System.load()


    static void a(android.content.Context p2)
    {
        try {
            System.load(ark>pl.droidsonroids.gif.iark>.b(p2).getAbsolutePath());
            return;
        } catch (Throwable v0_2) {
            throw v0_2;
        }
    }

Method io.card.payment.CardScanner.a() calling method java.lang.System.load()


    private static void a(String p4)
    {
        try {
            System.loadLibrary(p4);
        } catch (String v1_0) {
            String v0_2 = io.card.payment.CardIONativeLibsConfig.a();
            if (v0_2 != null) {
                if (v0_2.length() != 0) {
                    if (!java.io.File.separator.equals(Character.valueOf(v0_2.charAt((v0_2.length() - 1))))) {
                        v0_2 = new StringBuilder().append(v0_2).append(java.io.File.separator).toString();
                    }
                    String v0_7 = new StringBuilder().append(v0_2).append(android.os.Build.CPU_ABI).append(java.io.File.separator).append(System.mapLibraryName(p4)).toString();
                    android.util.Log.d("card.io", new StringBuilder().append("loadLibrary failed for library ").append(p4).append(". Trying ").append(v0_7).toString());
                    System.load(v0_7);
                }
            }
            throw v1_0;
        }
        return;
    }

Method pl.droidsonroids.gif.g.a() calling method java.lang.System.loadLibrary()


    static void a(android.content.Context p1)
    {
        try {
            System.loadLibrary("pl_droidsonroids_gif");
        } catch (UnsatisfiedLinkError v0) {
            if (p1 == null) {
                p1 = ark>pl.droidsonroids.gif.gark>.a();
            }
            pl.droidsonroids.gif.i.a(p1);
        }
        return;
    }

Method jp.co.cyberagent.android.gpuimage.GPUImageNativeLibrary.<clinit>() calling method java.lang.System.loadLibrary()


    static GPUImageNativeLibrary()
    {
        System.loadLibrary("gpuimage-library");
        return;
    }

Method io.card.payment.CardScanner.a() calling method java.lang.System.loadLibrary()


    private static void a(String p4)
    {
        try {
            System.loadLibrary(p4);
        } catch (String v1_0) {
            String v0_2 = io.card.payment.CardIONativeLibsConfig.a();
            if (v0_2 != null) {
                if (v0_2.length() != 0) {
                    if (!java.io.File.separator.equals(Character.valueOf(v0_2.charAt((v0_2.length() - 1))))) {
                        v0_2 = new StringBuilder().append(v0_2).append(java.io.File.separator).toString();
                    }
                    String v0_7 = new StringBuilder().append(v0_2).append(android.os.Build.CPU_ABI).append(java.io.File.separator).append(System.mapLibraryName(p4)).toString();
                    android.util.Log.d("card.io", new StringBuilder().append("loadLibrary failed for library ").append(p4).append(". Trying ").append(v0_7).toString());
                    System.load(v0_7);
                }
            }
            throw v1_0;
        }
        return;
    }

Method com.korvac.liquid.other.JNI.<clinit>() calling method java.lang.System.loadLibrary()


    static JNI()
    {
        System.loadLibrary("liquid-jni");
        return;
    }

Method android.support.c.a$c.b() calling method dalvik.system.DexFile.loadDex()


    private static void b(ClassLoader p11, java.util.List p12)
    {
        dalvik.system.DexFile[] v1_0 = p12.size();
        reflect.Field v2 = android.support.c.a.a(p11, "path");
        StringBuilder v3_1 = new StringBuilder(((String) v2.get(p11)));
        String[] v4 = new String[v1_0];
        java.io.File[] v5 = new java.io.File[v1_0];
        java.util.zip.ZipFile[] v6 = new java.util.zip.ZipFile[v1_0];
        dalvik.system.DexFile[] v1_1 = new dalvik.system.DexFile[v1_0];
        java.util.ListIterator v7 = p12.listIterator();
        while (v7.hasNext()) {
            String v0_8 = ((java.io.File) v7.next());
            String v8 = v0_8.getAbsolutePath();
            v3_1.append(58).append(v8);
            int v9_2 = v7.previousIndex();
            v4[v9_2] = v8;
            v5[v9_2] = v0_8;
            v6[v9_2] = new java.util.zip.ZipFile(v0_8);
            v1_1[v9_2] = dalvik.system.DexFile.loadDex(v8, new StringBuilder().append(v8).append(".dex").toString(), 0);
        }
        v2.set(p11, v3_1.toString());
        android.support.c.a.a(p11, "mPaths", v4);
        android.support.c.a.a(p11, "mFiles", v5);
        android.support.c.a.a(p11, "mZips", v6);
        android.support.c.a.a(p11, "mDexs", v1_1);
        return;
    }

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


    DynamiteModule$9(String p1, ClassLoader p2)
    {
        super(p1, p2);
        return;
    }