concrypt package is not where it should be
- Use
Register.cpp
instead ofregisterCoreLibrariesJni
andregisterJniHelp
- Missing dependency to patched imvai libgc (using hp's instead). See this exchange
- Compiling openssl with
OPENSSL_SMALL_FOOTPRINT
to . See this exchange - Review Openssl compilation flags
- Porting luni/posix code to windows
This code doesn't compile on windows because pthread_t
is a struct:
static unsigned long id_function(void) {
// cannot convert 'pthread_t' (aka 'ptw32_handle_t') to 'unsigned long' without a conversion operator
return ((unsigned long)THREAD_ID);
}
See this post
This code looks odd on Windows
bool JniInvocation::Init(const char* library) {
#ifdef HAVE_ANDROID_OS
char default_library[PROPERTY_VALUE_MAX];
property_get("persist.sys.dalvik.vm.lib", default_library, "libdvm.so");
#else
// CARL HACK : what is this ??
const char* default_library = "libdvm.so";
#endif
if (library == NULL) {
library = default_library;
}
handle_ = dlopen(library, RTLD_NOW);
if (handle_ == NULL) {
ALOGE("Failed to dlopen %s: %s", library, dlerror());
return false;
}
if (!FindSymbol(reinterpret_cast<void**>(&JNI_GetDefaultJavaVMInitArgs_),
"JNI_GetDefaultJavaVMInitArgs")) {
return false;
}
if (!FindSymbol(reinterpret_cast<void**>(&JNI_CreateJavaVM_),
"JNI_CreateJavaVM")) {
return false;
}
if (!FindSymbol(reinterpret_cast<void**>(&JNI_GetCreatedJavaVMs_),
"JNI_GetCreatedJavaVMs")) {
return false;
}
return true;
}
How do libdvm.so
applies on Windows? Is the whole feature?
Will it break JNI on Windows?
In vm\core\src\signal.c
See this post
See this