INNER CODE UNIT · Rust

load_class

jub0t/Concat · src/crates/concat-android/src/lib.rs:180

    fn load_class(
        env: &mut Env,
        activity: &JObject,
    ) -> jni::errors::Result<Global<JClass<'static>>> {
        let parent = env
            .call_method(
                activity,
                jni_str!("getClassLoader"),
                jni_sig!("()Ljava/lang/ClassLoader;"),
                &[],
            )?
            .l()?;
        // SAFETY: DEX is 'static and the loader never writes to it.
        let buffer = unsafe { env.new_direct_byte_buffer(DEX.as_ptr().cast_mut(), DEX.len()) }?;
        let loader = env.new_object(
            jni_str!("dalvik/system/InMemoryDexClassLoader"),
            jni_sig!("(Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V"),
            &[(&buffer).into(), (&parent).into()],

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…