@@ -109,6 +109,8 @@
void (*_android_get_LD_LIBRARY_PATH)(char* buffer, size_t buffer_size) = NULL;
void (*_android_update_LD_LIBRARY_PATH)(const char* ld_library_path) = NULL;
void *(*_android_dlopen_ext)(const char* filename, int flag, const void* extinfo) = NULL;
+void (*_android_set_application_target_sdk_version)(uint32_t target) = NULL;
+uint32_t (*_android_get_application_target_sdk_version)() = NULL;
void *(*_android_create_namespace)(const char* name,
const char* ld_library_path,
const char* default_library_path,
@@ -2542,6 +2544,20 @@
return _android_dlopen_ext(filename, flag, extinfo);
}
+void _hybris_hook_android_set_application_target_sdk_version(uint32_t target)
+{
+ TRACE("target %d", target);
+
+ android_set_application_target_sdk_version(target);
+}
+
+uint32_t _hybris_hook_android_get_application_target_sdk_version()
+{
+ TRACE("");
+
+ return _android_get_application_target_sdk_version();
+}
+
void* _hybris_hook_android_create_namespace(const char* name,
const char* ld_library_path,
const char* default_library_path,
@@ -2835,6 +2851,8 @@
HOOK_INDIRECT(android_get_LD_LIBRARY_PATH),
HOOK_INDIRECT(android_update_LD_LIBRARY_PATH),
HOOK_INDIRECT(android_dlopen_ext),
+ HOOK_INDIRECT(android_set_application_target_sdk_version),
+ HOOK_INDIRECT(android_get_application_target_sdk_version),
HOOK_INDIRECT(android_create_namespace),
HOOK_INDIRECT(android_init_anonymous_namespace),
HOOK_INDIRECT(android_dlwarning),
@@ -3214,6 +3232,8 @@
_android_get_LD_LIBRARY_PATH = dlsym(linker_handle, "android_get_LD_LIBRARY_PATH");
_android_update_LD_LIBRARY_PATH = dlsym(linker_handle, "android_update_LD_LIBRARY_PATH");
_android_dlopen_ext = dlsym(linker_handle, "android_dlopen_ext");
+ _android_set_application_target_sdk_version = dlsym(linker_handle, "android_set_application_target_sdk_version");
+ _android_get_application_target_sdk_version = dlsym(linker_handle, "android_get_application_target_sdk_version");
_android_create_namespace = dlsym(linker_handle, "android_create_namespace");
_android_init_anonymous_namespace = dlsym(linker_handle, "android_init_anonymous_namespace");
_android_dlwarning = dlsym(linker_handle, "android_dlwarning");
@@ -3226,6 +3246,10 @@
_android_linker_init(sdk_version, __hybris_get_hooked_symbol);
#endif
+ if (_android_set_application_target_sdk_version) {
+ _android_set_application_target_sdk_version(sdk_version);
+ }
+
linker_initialized = 1;
}
@@ -3371,6 +3395,28 @@
return _android_dlopen_ext(filename, flag, extinfo);
}
+void android_set_application_target_sdk_version(uint32_t target)
+{
+ ENSURE_LINKER_IS_LOADED();
+
+ if (!_android_set_application_target_sdk_version) {
+ return;
+ }
+
+ _android_set_application_target_sdk_version(target);
+}
+
+uint32_t android_get_application_target_sdk_version()
+{
+ ENSURE_LINKER_IS_LOADED();
+
+ if (!_android_get_application_target_sdk_version) {
+ return 0;
+ }
+
+ return _android_get_application_target_sdk_version();
+}
+
struct android_namespace_t* android_create_namespace(const char* name,
const char* ld_library_path,
const char* default_library_path,
@@ -3476,6 +3522,16 @@
return android_dlopen_ext(filename, flag, extinfo);
}
+void hybris_set_application_target_sdk_version(uint32_t target)
+{
+ android_set_application_target_sdk_version(target);
+}
+
+uint32_t hybris_get_application_target_sdk_version()
+{
+ return android_get_application_target_sdk_version();
+}
+
void* hybris_create_namespace(const char* name,
const char* ld_library_path,
const char* default_library_path,
|
@@ -19,6 +19,10 @@
#include <hardware/gralloc.h>
#include <hardware/gralloc1.h>
+#ifndef ANDROID_BUILD
+#include <config.h>
+#endif
+
void android_convertGralloc0To1Usage(int32_t usage, uint64_t* producerUsage,
uint64_t* consumerUsage) {
constexpr uint64_t PRODUCER_MASK =
@@ -28,7 +32,7 @@
/* GRALLOC1_PRODUCER_USAGE_CPU_WRITE_OFTEN | */
GRALLOC1_PRODUCER_USAGE_GPU_RENDER_TARGET | GRALLOC1_PRODUCER_USAGE_PROTECTED |
GRALLOC1_PRODUCER_USAGE_CAMERA | GRALLOC1_PRODUCER_USAGE_VIDEO_DECODER
-#ifdef GRALLOC1_PRODUCER_USAGE_SENSOR_DIRECT_DATA
+#if ANDROID_VERSION_MAJOR >= 8
| GRALLOC1_PRODUCER_USAGE_SENSOR_DIRECT_DATA
#endif
;
@@ -39,8 +43,8 @@
GRALLOC1_CONSUMER_USAGE_CLIENT_TARGET | GRALLOC1_CONSUMER_USAGE_CURSOR |
GRALLOC1_CONSUMER_USAGE_VIDEO_ENCODER | GRALLOC1_CONSUMER_USAGE_CAMERA |
GRALLOC1_CONSUMER_USAGE_RENDERSCRIPT
-#ifdef GRALLOC1_PRODUCER_USAGE_SENSOR_DIRECT_DATA
- | GRALLOC1_CONSUMER_USAGE_GPU_DATA_BUFFER
+#if ANDROID_VERSION_MAJOR >= 8
+ | GRALLOC1_CONSUMER_USAGE_GPU_DATA_BUFFER
#endif
;
*producerUsage = static_cast<uint64_t>(usage) & PRODUCER_MASK;
|