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 androidx.concurrent.futures.AbstractResolvableFuture.<clinit>() calling method java.lang.System.getProperty()


    static AbstractResolvableFuture()
    {
        androidx.concurrent.futures.AbstractResolvableFuture.GENERATE_CANCELLATION_CAUSES = Boolean.parseBoolean(System.getProperty("guava.concurrent.generate_cancellation_cause", "false"));
        androidx.concurrent.futures.AbstractResolvableFuture.log = java.util.logging.Logger.getLogger(androidx.concurrent.futures.AbstractResolvableFuture.getName());
        try {
            Object v0_2 = new androidx.concurrent.futures.AbstractResolvableFuture$SafeAtomicHelper;
            v0_2(java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(androidx.concurrent.futures.AbstractResolvableFuture$Waiter, Thread, "thread"), java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(androidx.concurrent.futures.AbstractResolvableFuture$Waiter, androidx.concurrent.futures.AbstractResolvableFuture$Waiter, "next"), java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(androidx.concurrent.futures.AbstractResolvableFuture, androidx.concurrent.futures.AbstractResolvableFuture$Waiter, "waiters"), java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(androidx.concurrent.futures.AbstractResolvableFuture, androidx.concurrent.futures.AbstractResolvableFuture$Listener, "listeners"), java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(androidx.concurrent.futures.AbstractResolvableFuture, Object, "value"));
            Throwable v1_7 = 0;
        } catch (Object v0_4) {
            v1_7 = v0_4;
            v0_2 = new androidx.concurrent.futures.AbstractResolvableFuture$SynchronizedHelper();
        }
        androidx.concurrent.futures.AbstractResolvableFuture.ATOMIC_HELPER = v0_2;
        if (v1_7 != null) {
            androidx.concurrent.futures.AbstractResolvableFuture.log.log(java.util.logging.Level.SEVERE, "SafeAtomicHelper is broken!", v1_7);
        }
        androidx.concurrent.futures.AbstractResolvableFuture.NULL = new Object();
        return;
    }

Method io.flutter.view.FlutterMain.startInitialization() calling method java.lang.System.load()


    public static void startInitialization(android.content.Context p3, io.flutter.view.FlutterMain$Settings p4)
    {
        if (android.os.Looper.myLooper() != android.os.Looper.getMainLooper()) {
            throw new IllegalStateException("startInitialization must be called on the main thread");
        } else {
            if (io.flutter.view.FlutterMain.sSettings == null) {
                io.flutter.view.FlutterMain.sSettings = p4;
                long v0_1 = android.os.SystemClock.uptimeMillis();
                io.flutter.view.FlutterMain.initConfig(p3);
                io.flutter.view.FlutterMain.initAot(p3);
                io.flutter.view.FlutterMain.initResources(p3);
                if (io.flutter.view.FlutterMain.sResourceUpdater != null) {
                    io.flutter.view.FlutterMain.sResourceExtractor.waitForCompletion();
                    java.io.File v4_4 = new java.io.File(io.flutter.util.PathUtils.getDataDirectory(p3), "libflutter.so");
                    if (!v4_4.exists()) {
                        System.loadLibrary("flutter");
                    } else {
                        System.load(v4_4.getAbsolutePath());
                    }
                } else {
                    System.loadLibrary("flutter");
                }
                io.flutter.view.FlutterMain.nativeRecordStartTimestamp((android.os.SystemClock.uptimeMillis() - v0_1));
                return;
            } else {
                return;
            }
        }
    }

Method io.flutter.view.FlutterMain.startInitialization() calling method java.lang.System.loadLibrary()


    public static void startInitialization(android.content.Context p3, io.flutter.view.FlutterMain$Settings p4)
    {
        if (android.os.Looper.myLooper() != android.os.Looper.getMainLooper()) {
            throw new IllegalStateException("startInitialization must be called on the main thread");
        } else {
            if (io.flutter.view.FlutterMain.sSettings == null) {
                io.flutter.view.FlutterMain.sSettings = p4;
                long v0_1 = android.os.SystemClock.uptimeMillis();
                io.flutter.view.FlutterMain.initConfig(p3);
                io.flutter.view.FlutterMain.initAot(p3);
                io.flutter.view.FlutterMain.initResources(p3);
                if (io.flutter.view.FlutterMain.sResourceUpdater != null) {
                    io.flutter.view.FlutterMain.sResourceExtractor.waitForCompletion();
                    java.io.File v4_4 = new java.io.File(io.flutter.util.PathUtils.getDataDirectory(p3), "libflutter.so");
                    if (!v4_4.exists()) {
                        System.loadLibrary("flutter");
                    } else {
                        System.load(v4_4.getAbsolutePath());
                    }
                } else {
                    System.loadLibrary("flutter");
                }
                io.flutter.view.FlutterMain.nativeRecordStartTimestamp((android.os.SystemClock.uptimeMillis() - v0_1));
                return;
            } else {
                return;
            }
        }
    }