diff --git a/CAMERA.md b/CAMERA.md new file mode 100644 index 0000000..c15c078 --- /dev/null +++ b/CAMERA.md @@ -0,0 +1,19 @@ +# Exynos7885 Camera + +## Patches needed + +- sed -i 's/_ZN7android8hardware6camera6device4V3_214implementation12CameraDevice24getCameraCharacteristicsENSt3__18functionIFvNS1_6common4V1_06StatusERKNS0_8hidl_vecIhEEEEE/_ZN7android8hardware6camera6device4V3_214implementation12CameraDevice24getEurekaCharacteristicsENSt3__18functionIFvNS1_6common4V1_06StatusERKNS0_8hidl_vecIhEEEEE/g' camera.device@3.2-impl.so + +- patchelf --add-needed libcorrectcamera.so camera.device@3.2-impl.so + +## Camera IDs reported by Exynos camera module + +- Camera ID 0 = Back primary camera +- Camera ID 1 = Mixed cam which has back secondary cam's resolution and front cam's direction, therefore, ignored by us +- Camera ID 2 = Real front camera, which has correct values (8MP) +- Canera ID 50 = Back secondary camera + +## Hacks + +- In [libcorrectcamera](universal7885-common/libshims/camera/CorrectCameraID.cpp) shim, if the Android OS request info for cam id 1, it will ask the Exynos camera module with cam id 2, and get the correct resolution for front cam. +- In [custom camera provider](universal7885-common/hidl/camera/provider/SamsungCameraProvider.cpp), We ask for additional camera info, rear back cam, id 50, and add it to camera device list. Also, gets rid of useless camera id 2, which info is mapped to cam id 1. diff --git a/README.md b/README.md index 3430f15..19022e7 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,4 @@ The Galaxy A10/A20/A20e/A30/A40 (codenamed "a10/a20/a20e/a30/a40") is a low-end ![Galaxy A20](https://fdn2.gsmarena.com/vv/bigpic/samsung-galaxy-a20e.jpg "Galaxy A20e") +