HAL3: enable jpeg debug dump

BUG=28377449

Change-Id: I43d099065620cb42791247f98ed2f72a053966c7
diff --git a/QCamera2/HAL3/QCamera3Channel.cpp b/QCamera2/HAL3/QCamera3Channel.cpp
index d6f4fab..365b1da 100644
--- a/QCamera2/HAL3/QCamera3Channel.cpp
+++ b/QCamera2/HAL3/QCamera3Channel.cpp
@@ -3074,6 +3074,28 @@
                     char *jpeg_eof = &jpeg_buf[jpeg_eof_offset];
                     memcpy(jpeg_eof, &jpegHeader, sizeof(jpegHeader));
                     obj->mMemory.cleanInvalidateCache(bufIdx);
+                    bool jpegDump = false;    
+                    char prop[PROPERTY_VALUE_MAX];
+                    property_get("persist.camera.jpeg.dump", prop, "0");
+                    jpegDump = atoi(prop);
+                    if (jpegDump) {
+                        char buf[FILENAME_MAX];
+                        snprintf(buf, sizeof(buf), QCAMERA_DUMP_FRM_LOCATION"halDump_%d.jpeg",
+                                obj->mMemory.getFrameNumber(bufIdx));
+                        int file_fd = open(buf, O_RDWR | O_CREAT, 0777);
+                        ssize_t written_len = 0;
+                        if (file_fd >= 0) {
+                            fchmod(file_fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+                            written_len += write(file_fd, jpeg_buf,
+                                    (size_t)maxJpegSize);
+                            LOGI("written number of bytes %ld attempted: %ld\n", written_len,
+                                maxJpegSize);
+                            close(file_fd);
+                        } else {
+                            LOGE("failed to open file to dump image");
+                        }
+
+                    }
                 } else {
                     LOGE("JPEG buffer not found and index: %d",
                             bufIdx);