[Optimus One, P500, V General] :
working camera...

Here is the ROM with working camera:

http://www1.zippyshare.com/v/68771674/file.html

My number 1 for nobodyAtall:

[YOUTUBE]n5Sju9fTLUk[/YOUTUBE]

Camerahal fix:

diff --git a/libcamera/cameraHal.cpp b/libcamera/cameraHal.cpp
index 3fb3261..d333922 100644
--- a/libcamera/cameraHal.cpp
+++ b/libcamera/cameraHal.cpp
@@ -417,30 +417,32 @@ CameraHAL_GetCam_Info(int camera_id, struct camera_info *info)
void
CameraHAL_FixupParams(android::CameraParameters &settings)
{
-// FIXME TODO
-
const char *preview_sizes =
- "1280x720,800x480,768x432,720x480,640x480,576x432,480x320,384x288,352x288,320x240,240x160,176x144";
+ "640x480,576x432,480x320,384x288,352x288,320x240,240x160,176x144";
const char *video_sizes =
- "1280x720,800x480,720x480,640x480,352x288,320x240,176x144";
+ "640x480,352x288,320x240,176x144";
const char *preferred_size = "480x320";
- const char *preview_frame_rates = "30,27,24,15";
+ const char *preview_frame_rates = "10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25";
const char *preferred_frame_rate = "15";
- const char *frame_rate_range = "(15,30)";
+ const char *frame_rate_range = "(10,25)";
+ const char *preferred_horizontal_viewing_angle = "51.2";
+ const char *preferred_vertical_viewing_angle = "39.4";

settings.set(android::CameraParameters::KEY_VIDEO_FRAME_FORMAT,
android::CameraParameters::PIXEL_FORMAT_YUV420SP);

-#if 0
+
if (!settings.get(android::CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES)) {
settings.set(android::CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES,
preview_sizes);
}

+#if 0
if (!settings.get(android::CameraParameters::KEY_SUPPORTED_VIDEO_SIZES)) {
settings.set(android::CameraParameters::KEY_SUPPORTED_VIDEO_SIZES,
video_sizes);
}
+#endif

if (!settings.get(android::CameraParameters::KEY_VIDEO_SIZE)) {
settings.set(android::CameraParameters::KEY_VIDEO_SIZE, preferred_size);
@@ -466,7 +468,16 @@ CameraHAL_FixupParams(android::CameraParameters &settings)
settings.set(android::CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE,
frame_rate_range);
}
-#endif
+
+ if (!settings.get(android::CameraParameters::KEY_HORIZONTAL_VIEW_ANGLE)) {
+ settings.set(android::CameraParameters::KEY_HORIZONTAL_VIEW_ANGLE,
+ preferred_horizontal_viewing_angle);
+ }
+
+ if (!settings.get(android::CameraParameters::KEY_VERTICAL_VIEW_ANGLE)) {
+ settings.set(android::CameraParameters::KEY_VERTICAL_VIEW_ANGLE,
+ preferred_vertical_viewing_angle);
+ }
}

/* Hardware Camera interface handlers. */
@@ -738,6 +749,9 @@ camera_device_close(hw_device_t* device)
return rc;
}

+void sighandle(int s){
+ //abort();
+}

int
qcamera_device_open(const hw_module_t* module, const char* name,
@@ -746,6 +760,7 @@ qcamera_device_open(const hw_module_t* module, const char* name,

void *libcameraHandle;
int cameraId = atoi(name);
+ signal(SIGFPE,(*sighandle)); //@nAa: Bad boy doing hacks

ALOGD("qcamera_device_open: name:%s device:%p cameraId:%d\n",
name, device, cameraId);

BoardConfigCommon.mk

# WARNING: This line must come *before* including the proprietary
# variant, so that it gets overwritten by the parent (which goes
# against the traditional rules of inheritance).
USE_CAMERA_STUB := true

# Camera
TARGET_DISABLE_ARM_PIE := true
BOARD_NEEDS_MEMORYHEAPPMEM := true
BOARD_USE_NASTY_PTHREAD_CREATE_HACK := true
COMMON_GLOBAL_CFLAGS += -DBINDER_COMPAT
COMMON_GLOBAL_CFLAGS += -DQCOM_ICS_COMPAT
#BOARD_CAMERA_USE_GETBUFFERINFO := true
#BOARD_USE_CAF_LIBCAMERA := true

# Kernel
TARGET_KERNEL_SOURCE := kernel/lge/msm7x27
# Copy LG Kernel Headers here if necessary, DON'T use Adroid auto-generated headers
TARGET_SPECIFIC_HEADER_PATH := device/lge/msm7x27-common/include
BOARD_KERNEL_CMDLINE := mem=471M console=ttyMSM2,115200n8 androidboot.hardware=qcom no_console_suspend

# CPU & Platform
ARCH_ARM_HAVE_VFP := true
TARGET_CPU_ABI := armeabi-v6l
TARGET_CPU_ABI2 := armeabi
TARGET_ARCH_VARIANT := armv6-vfp
TARGET_BOARD_PLATFORM := msm7x27
TARGET_BOARD_PLATFORM_GPU := qcom-adreno200
COMMON_GLOBAL_CFLAGS += -DTARGET_MSM7x27

# Browser & WebKit
JS_ENGINE := v8
HTTP := chrome
WITH_JIT := true
ENABLE_JSC_JIT := true
ENABLE_WEBGL := true
TARGET_FORCE_CPU_UPLOAD := true

# Boot loader & recovery
TARGET_NO_BOOTLOADER := true
TARGET_BOOTANIMATION_USE_RGB565 := true
TARGET_BOOTANIMATION_PRELOAD := false
TARGET_BOOTANIMATION_TEXTURE_CACHE := true
TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
BOARD_HAS_NO_SELECT_BUTTON := true

# Fix this up by examining /proc/mtd on a running device
BOARD_KERNEL_BASE := 0x12800000
BOARD_KERNEL_PAGESIZE := 2048
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00440000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00500000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x0be00000
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x0c780000
BOARD_FLASH_BLOCK_SIZE := 131072

# Enable OpenGL Hardware Acceleration
# msm7x27: no support for overlay, bypass, or c2d
USE_OPENGL_RENDERER := true
TARGET_NO_HW_VSYNC := true
TARGET_USES_GENLOCK := true
TARGET_LIBAGL_USE_GRALLOC_COPYBITS := true
BOARD_USES_QCOM_HARDWARE := true
BOARD_USES_QCOM_LIBS := true
BOARD_ADRENO_DECIDE_TEXTURE_TARGET := true
BOARD_USE_SKIA_LCDTEXT := true
BOARD_EGL_CFG := device/lge/msm7x27-common/configs/egl.cfg
COMMON_GLOBAL_CFLAGS += -DQCOM_HARDWARE
COMMON_GLOBAL_CFLAGS += -DQCOM_NO_SECURE_PLAYBACK

# Enable the GPS HAL & AMSS version to use for GPS
BOARD_USES_QCOM_LIBRPC := true
BOARD_USES_QCOM_GPS := true
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default
BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 50000

# Audio & Bluetooth & FM Radio
TARGET_PROVIDES_LIBAUDIO := true
BOARD_USES_ICS_LIBAUDIO := true
BOARD_USES_AUDIO_LEGACY := false
BOARD_COMBO_DEVICE_SUPPORTED := true
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
#BOARD_FM_DEVICE := bcm4325
#BOARD_HAVE_FM_RADIO := true
#COMMON_GLOBAL_CFLAGS += -DHAVE_FM_RADIO
COMMON_GLOBAL_CFLAGS += -DICS_AUDIO_BLOB

# RIL
BOARD_PROVIDES_LIBRIL := true

# Mass Storage for ICS
TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun/file
BOARD_UMS_LUNFILE := /sys/class/android_usb/android0/f_mass_storage/lun/file

# Touch screen compatibility for ICS
BOARD_USE_LEGACY_TOUCHSCREEN := true

# Wi-Fi & Wi-Fi HotSpot
WPA_SUPPLICANT_VERSION := VER_0_6_X
BOARD_WLAN_DEVICE := bcm4325
BOARD_WEXT_NO_COMBO_SCAN := true
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
WIFI_DRIVER_HAS_LGE_SOFTAP := true
WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/wireless.ko"
WIFI_DRIVER_MODULE_ARG := "firmware_path=/etc/wl/rtecdc.bin nvram_path=/etc/wl/nvram.txt config_path=/data/misc/wifi/config"
WIFI_DRIVER_MODULE_NAME := "wireless"
WIFI_DRIVER_FW_PATH_STA := "/system/etc/wl/rtecdc.bin"
WIFI_DRIVER_FW_PATH_AP := "/system/etc/wl/rtecdc-apsta.bin"

# Command line for charging mode
BOARD_CHARGING_CMDLINE_NAME := "lge.reboot"
BOARD_CHARGING_CMDLINE_VALUE := "pwroff"
BOARD_USES_RECOVERY_CHARGEMODE := false

# OTA script
TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT := device/lge/msm7x27-common/releasetools/ota_from_target_files