diff options
author | xkeita <keita_nya@live.jp> | 2017-05-27 07:47:42 +0000 |
---|---|---|
committer | nailyk-fr <nailyk_git@nailyk.fr> | 2017-06-24 15:05:49 +0000 |
commit | 0fad7808d04605b18caa089f2a718f0ac11e2de7 (patch) | |
tree | 140fe75ee87be368cab4159c72b9fd56d0edd6ea /libshims | |
parent | e276fb3f369a096c6f5e48dd12cae276ee432b34 (diff) |
shinano-common: camera: Enable sonycamera proprietary capabilities
Sony camera blobs are encrypted, so they need
com.sonyericsson.permission.CAMERA_EXTENDED permission from original
camera to be present in apk to enable Sony custom options (4k video,
iso settings, etc)
camera.qcom.so checks if this permission is available in current camera
app but it can be bypassed when "ro.build.type=eng" thus enabling Sony
camera options. The point of this shim is to make camera.qcom.so believe
that we're currently on an engineering android rom so it bypasses the
permission check allowing camera apps to have full capabilities.
-----------------------------------------------------------------------
Credits to Balázs Triszka from sony-kitakami
Change-Id: I14ef800608c7ed7a95921dd71a56702ed2d68b18
-----------------------------------------------------------------------
Change-Id: I2052aa30fbd30a730ea7b9c60b98f35f99314a51
Diffstat (limited to 'libshims')
-rw-r--r-- | libshims/Android.mk | 8 | ||||
-rw-r--r-- | libshims/libsonycamera.cpp | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libshims/Android.mk b/libshims/Android.mk index 88e307f..e4bfd9f 100644 --- a/libshims/Android.mk +++ b/libshims/Android.mk @@ -43,3 +43,11 @@ LOCAL_MODULE_TAGS := optional LOCAL_32_BIT_ONLY := true include $(BUILD_SHARED_LIBRARY) +include $(CLEAR_VARS) +LOCAL_SRC_FILES := libsonycamera.cpp +LOCAL_MODULE := libsonycamera +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_SHARED_LIBRARIES := liblog +LOCAL_32_BIT_ONLY := true +include $(BUILD_SHARED_LIBRARY) diff --git a/libshims/libsonycamera.cpp b/libshims/libsonycamera.cpp new file mode 100644 index 0000000..8d759fe --- /dev/null +++ b/libshims/libsonycamera.cpp @@ -0,0 +1,16 @@ +#include <cutils/log.h> +#include <sys/types.h> +#include <dlfcn.h> +#include <string.h> + +// Unlock all Sony parameters +extern "C" { + int property_get(const char * key, char * value, const char * default_value) { + if (strcmp("ro.build.type", key) == 0) { + strcpy(value, "eng"); + return 3; + } + + return ((int( * )(const char * , char *, const char * ))(dlsym((void * ) - 1, "property_get")))(key, value, default_value); + } +}
\ No newline at end of file |