2020年9月17日 星期四

將so的symbol直接取出來用.

 vlc-android\vlc\modules\codec\omxil\mediacodec_ndk.c

void *ndk_handle = dlopen("libmediandk.so", RTLD_NOW);
if (!ndk_handle)
goto end;

for (int i = 0; members[i].name; i++)
    {
void *sym = dlsym(ndk_handle, members[i].name);
if (!sym && members[i].critical) {
dlclose(ndk_handle);
goto end;
}
msg_Err(api->p_obj, "haha check the symbol get ???");
(void *)((uint8_t*)&syms + members[i].offset) = sym;
}

很罕見的做法. 將so的symbol直接取出來用.
第一次見到.

沒有留言:

張貼留言